Ask HN: Why do coding bootcamps teach Ruby on Rails and JavaScript? - Onixelen
======
rubyn00bie
JavaScript is a must know if you want to do web work. It's as necessary as
HTML. It's the only language browsers actually natively run.

Ruby on Rails is sort of the basis for most any other modern MVC web
framework. That is to say it inspired nearly every other web MVC framework, in
most other languages. If you can use Rails you'll be able to use most anything
else. Prior to Rails most web apps had proprietary frameworks powering them or
no framework and were just an bunch of "pages" (endpoints) loosely strung
together.

Rails also, for better or worse, has one of the easiest to use ORMs--
ActiveRecord. This helps new folks worry less about the intricacies of
learning SQL (or whatever your persistence layer is) and more so about what
writing a web service is really about.

Ruby as a language is also very expressive, is truly object oriented, and has
all the right building blocks (that's kind of a pun actually), plus a very
large amount of documentation and examples. It also is very good for meta
programming which is what enables a lot of the rails magic (and fun).

At the end of the day learning more languages like PHP, Python, Java after
Ruby is fairly trivial. I always tell noobs to learn whatever is useful for
them, and stop worrying about what language.

I started with Ruby 10 years ago and now can write Java, PHP, Python, Scala,
Elixir, Objective-C, and Swift; though I am by no means an expert in all of
them. At some point you'll realize you've learned concepts and they're what is
important. Not syntax.

P.s. don't let my username fool you ;) I'm just unfortunately hipster.

Edit: added some thoughts on why your first language isn't so relevant and a
bit of clarity.

Edit 2: fixed absent minded use of rails where I should've written ruby.

~~~
aaronchall
From a substitutes perspectives...

If you look at the absolute numbers, Ruby jobs are fewer, while (its primary
competitor) Python jobs are higher (Python over Ruby by 2:1 according to both
GlassDoor and Indeed). About the same ratio also seems to apply for job
postings.

So why so many Ruby bootcamps? Maybe it's a relative thing, but I don't have
estimates of the number of Ruby bootcamps versus Python bootcamps. But
assuming there are more, I can hypothesize:

Python is increasingly being taught by universities. Thus there is a natural
pipeline of Python users entering the workforce. Plus, with Python's "one
obvious way to do it" philosophy and incredible online documentation, there's
a lot less to learn to master it.

Thus, there would perhaps be more demand for Ruby bootcamps, even if the
relative job market is smaller.

~~~
WaxProlix
How many of those Python jobs are web dev vs data science / analytics /
whatever? Ruby is mostly RoR, but Python is pretty broadly applied these days.

~~~
uniclaude
This.

There might be more Python jobs, but a lot probably require knowledge that
most people can't get in bootcamps.

A simple indeed search of Django vs Flask vs Rails shows there are much more
demand for Ruby web developers, which is what bootcamps train for.

------
bhollan
Programming concepts come more easily the more gradually they are revealed.
Nobody has any concept of what a stack overflow is or why it's important on
day 1. Ruby is approachable and fairly forgiving and (at least in MY opinion)
VERY readable.

Full disclosure: I went to engineering school for 2 degree and then later
attended (and currently work for) a code school.

I can say that I can see a marked difference in students that go through Ruby
as a first programming language vs JS. Ruby-first students are more ready to
deal with new ways of doing things and they are, in general, less likely to
have serious learning issues. JS-first students tend to have more consistent
problems grasping things like scope and return values. It IS possible it's
bent as such due to our curriculum, but all I can tell you is what I've seen
in our students.

~~~
paulddraper
Because if you can understand Ruby, you can understand anything.

~~~
h1d
You won't understand why some languages aren't as elegant to write as ruby.

~~~
herbst
This is really a issue as ruby dev. Its hard to motivate yourself picking up
anything that is not as cute. Glad more and more cute/elegant languages are
coming out every day.

------
niftich
Code camps were a product of the mid-to-late '00s, and the premise and format
has largely remained the same.

In the late 2000s, the popularity of Ruby exploded when Rails gained
mindshare. Rails, along with its healthy share of innovations [1] and
productivity gains [2], was a good fit for code camps because it took little
effort to crank out a basic CRUD app. Such fast feedback is very impactful on
people who are just starting out programming.

Despite other frameworks borrowing from RoR in the years to come, Ruby's
culture is largely compatible with the notion of 'programmer awesomeness' \--
where a motivated coder is given a powerful toolset and is allowed to do great
things, even if they're a bit quirky -- and is lighter on idiomatic dogma than
some other languages that are popular for greenfield development today. While
those idioms and mores are an asset to the languages that have them, they may
stifle independent exploration and make people more afraid to make mistakes,
which are quite detrimental to new learners.

Meanwhile, since the late 2000s, Javascript has become practically mandatory,
largely buoyed by the HTML5/Web Platform effort and browsers finally getting
their act together, but also by Node opening up an entirely new frontier for
JS in a very desirable application domain. This, coupled with the JS
community's tolerance and encouragement for exploration and independent re-
discovery, also makes it a good fit.

[1]
[https://news.ycombinator.com/item?id=12758085#12761705](https://news.ycombinator.com/item?id=12758085#12761705)
[2]
[https://news.ycombinator.com/item?id=13196431#13197538](https://news.ycombinator.com/item?id=13196431#13197538)

------
jw2k
Quite simply, it's great market fit.

JavaScript has extremely low barrier to entry. Everyone has a browser, so you
can get someone to get started without download any software. That's huge.

Rails has the benefit of providing a framework that can get someone building
functional CRUD apps in a tremendously short period of time.

Between those two, you've hit a nice sweet spot where someone can be fully
functional as a developer in a short period of time (talent/quality/patience
aside).

~~~
pjbrunet
I agree about "easy to get started." When I came up with the idea for
[http://TexasCoders.com](http://TexasCoders.com) I absolutely didn't want
people to think about Javascript or any particular language, because I mostly
care about teaching the fundamental concepts. I'm not advertising it as a
Javascript class.

Maybe the appeal of Ruby is that it's "new" but not so new that it's a waste
of time to learn. Also, my impression is that some effort was made to make
Ruby's syntax "pretty" in a holistic sense, which might save a teacher some
time. Personally, I was turned off by RoR very early on because it was a pain
to install on Site5 (the first and only web host to offer it) and then had no
compelling reason to try it again after that. Also the concept of "Rails"
bothers me, because I think software should be unique and "off the rails" like
art. But that's just my opinion :-)

------
codingdave
Look at the goals of a bootcamp in the first place - to get you just enough
knowledge to have the minimum skill needed to be useful to a team. They are
not trying to make you a computer scientist... they are trying to teach you as
little as possible, while still knowing enough to get work done, which means
knowing how to work with a toolkit that does most of the work for you. And RoR
does that. It also is popular enough that once you know it, you can probably
find a team using it that needs help.

And why JS? Because that is what runs in the browsers.

------
agentultra
I'd guess Javascript is quite popular[0] because it's literally on every
modern computer and has incredible reach[1]. It's also a bit of a kitchen-sink
language so students can grow into a style and paradigm that suits them. Plus
there's nothing to install to get started... just open a browser.

[0] [http://www.tiobe.com/tiobe-index/javascript/](http://www.tiobe.com/tiobe-
index/javascript/) [1] [https://tessel.io/](https://tessel.io/)
[https://www.sitepoint.com/creating-webgl-game-
unity-5-javasc...](https://www.sitepoint.com/creating-webgl-game-
unity-5-javascript/)
[https://www.youtube.com/watch?v=5sETJs2_jwo](https://www.youtube.com/watch?v=5sETJs2_jwo)

------
aczerepinski
I think it hardly matters which language you learn first. I went to a Ruby
bootcamp but Ruby is #4 or 5 on the list of languages I've used most since
then. I didn't use it at all in my first job after the bootcamp.

Those programs are three months out of your life and then you're back to
learning on the job and in your free time like everyone else.

I think a dynamic OO language like Ruby or Python is a great place to start
but it doesn't really matter. Any mainstream language would be fine.

------
yellowapple
You ask this as if _all_ coding bootcamps teach these things, which I highly
doubt to be the case. In fact, I'm aware of several "bootcamps" for both Java
and Python. Hell, there's even one out there for COBOL:
[http://www.wintrac.com/courses/mfcobc.asp](http://www.wintrac.com/courses/mfcobc.asp)

As someone who ended up learning Ruby (and Rails) for a previous job, I can
attest that it's a great language from a learning/teaching perspective. Huge
ecosystem, the syntax is actually readable, you don't have to fiddle with
compilers, and so on. As mentioned in other comments, Rails is also the
archetypal MVC framework, for better or worse; while I don't personally care
for it, it gets the job done and is in relatively common use; in terms of
getting students from zero to hireable quickly, Rails knowledge is pretty
useful.

Meanwhile, Javascript is one of those necessities for web development, for
better or worse, so a web-centric bootcamp will understandably put some
emphasis on learning it.

------
amorphid
A lot of it might just be timing. Dev Bootcamp (the original bootcamp?)
started up when Rails was the cool kid on the block, and it was a break out
success. They proved there was a market, and the busy model was easy to clone.
A bunch of Rails bootcamp copycats popped almost immediately.

------
tavrobel
My guess is that they are the flavor of the month (knowing only Rails+JS is
widely employable), and have a low enough barrier to entry that you can
realistically teach someone enough to be useful in the timescale of a
bootcamp. Add a little HTML/CSS and you can do front end as well.

I think the auto-magicness of Rails helps, since it gives you so much even if
you are relatively inexperienced. Then you have a jumping off point, to start
learning on the job, earning money and you can ostensibly choose your own
adventure from there.

edit: I'm not sure what's objectionable about this comment. I'm new here and
trying to be helpful, so if I've gone against some rule, I'd like to know so I
can learn from it.

~~~
cookiecaper
Rails is not that employable anymore. Sure, you can find gigs for it in tech
hotspots, but that's true for any language. For people living in the Real
World outside of the tech bubbles, Rails jobs have mostly died out and been
replaced with Node jobs.

~~~
cutler
Not here in the UK. Agreed, most Rails jobs are in London but outside the
capital PHP:Node is about 7:1 on Indeed.co.uk by job title and that's
excluding WordPress, Drupal, Magento and Joomla.

~~~
cookiecaper
Yeah, PHP, .NET, and Java are always going to be king outside of the tech
hubs. I'm saying that the niche that used to be occupied by Rails jobs is
being/has been replaced by the niche now occupied by Node.js jobs.

Rails does not have the widespread appeal it used to -- it's not the hip new
kid on the block like it was in 2005. At my employer, the people who handle
Rails act like it's radioactive and are itching to replace it with more
"modern" things.

~~~
cutler
Node:Rails is about 1.5 in London and 2.2 in the rest of the UK so, yes, Node
seems to be more popular than Rails outside the capital. The complicating
factor, however, may be the hiring culture in the Rails community. Because
Ruby and Rails are so strong on community it may be that a lot more Rails
vacancies are advertised informally. That's certainly been my experience.

------
nrjdhsbsid
Essentially because they're easy to grok. Take js for example. No interfaces,
basic OO system, no access modifiers or static typing, no multithreading, no
pointers Etc...

A lot of concepts can be handwaved when you're using a language that doesn't
support them. Js is easy to learn and widely useful.

------
slap_shot
They are ubiquitous and compliment each other in full stack entry level
developer roles.

------
caconym_
IMO Ruby does a pretty good job hosting a bunch of different programming
paradigms and techniques in a consistent way. Whether or not that's ultimately
a good thing in a language, I don't know, but I can believe it has benefits in
an educational context. Add to that the popularity of the language in general,
and it seems like a decent choice for a "boot camp" style education.

If there's a real argument to be made for the pedagogical merits of
Javascript, I'd love to hear it. There does seem to be a sizable job market
for relatively inexperienced Javascript developers, though.

------
slowrabbit
If they are teaching Ruby and Javascript, then that must be a web development
specific bootcamp. Javascript is a must for web, Ruby is a solid backend
choice with very high readability.

------
gravypod
I think the question that I'd really love answered is why do all of the
bootcamps focus on web development. Why don't some focus on systems
development, operating systems, trading systems, and other things that won't
be covered that I'd consider "important programming" stuff.

~~~
coryl
The purpose of a bootcamp is to take an inexperienced or new developer and get
them job ready. This is possible with web dev, as theres a large market for it
and its sufficiently "shallow" enough to be usefully productive in a few
months.

The subjects you mentioned have much smaller, specialized job markets and take
longer to learn.

~~~
gravypod
I don't think the job markets are smaller nor does it take longer to take
someone and teach them how to be a deveoper on low-level systems. These fields
are more about knowladge and tricks to learn to make your software efficent
and an understanding of existing systems. This is very easily codifiable in a
code-camp like course.

You can take students and build real products (embeded systems like example
medical gear and such) and teach them all of the same programming-specific
information they already learn.

Now granted this wont happen any time soon. I don't think it's impossible I
just think the kind of people who go to code boot camps aren't the kind of
people who are interested in low level systems development. Maybe that's just
a stereotype but as long as it persists people probably won't attempt to build
things like schools like that.

------
proyb2
Both frontend and backend, definitely if you are to be in charge of a project
that involve security and quality coding on both side that most developers
must be proficient and competent to deliver with "Web application" framework.

------
newsat13
Because they are the (one of the) easiest ways to get things done. Did you
have a specific question? This seems to be one of those questions that will
bring out the trolls and people will start talking about elixir, rust etc.

------
rednerrus
If I did it again, I'd do a longer bootcamp that was Devops focused.

------
pmontra
JavaScript is everywhere and they need it for the browser. Ruby is the most
consistent and concise mainstream OO language IMHO. Ruby on Rails is still the
easiest web framework to program with.

------
joeclark77
My first programming class employed Pascal. It hasn't held me back. Let them
learn Ruby... one day they'll tell it to their grandchildren and everyone will
have a laugh.

------
ravenstine
A few points I don't think anyone has mentioned yet:

\- Ruby has less of a learning curve in contrast to a lot of other languages,
though the margin is definitely narrowing with ECMAScript

------
ransom1538
Most actual work is in "php". But, it isn't 'hip' anymore. So, they teach
ruby. Ruby is more difficult and less clear. Rails itself is a land of
'gotchas' (I have 10 years exp in both). After learning ruby/rails it will be
difficult to find work and understand basic database constructs.

/end rattling my cane

[https://www.google.com/search?q=php+vs+rails+stats&ie=utf-8&...](https://www.google.com/search?q=php+vs+rails+stats&ie=utf-8&oe=utf-8#q=web+language+usage+statistics)

~~~
bdcravens
According to first link in those search results, ColdFusion is as popular as
Ruby. I think you have to factor in the number of PHP "applications" where
there's little to no development needed. There's a tremendous number of
websites thrown up on $5 hosting with Wordpress and a $20 theme.

> After learning ruby/rails it will be difficult to find work and understand
> basic database constructs.

Doesn't have to be that way, but I'd posit that developers should learn to
build an application using pure SQL before they learn an ORM.

------
cookiecaper
Web is the most accessible medium. If you can view it in your browser, so can
anyone else. There is no complex configuration or build process (though it
seems the JS community is dead set on changing that). What You See Is What You
Get. It's an immediately useful and intelligible medium and you mostly stay
away from the really scary things. Teaching simple web dev first makes sense.

Rails is probably chosen mostly out of the false tradition that Ruby is a good
beginner's language or the also-false tradition Rails is a good framework.

------
746F7475
For one Ruby just has easy syntax

~~~
smnplk
easy, not simple.

------
baybal2
Ask ten people to write a hello world in js, and they all will do it, and do
it the exactly same way - this is great for a production language. On that
point, JS is as good as C/Cxx

The downside - ask 10 people for an example of proper use of advanced oop in
js, and out of these 10 you will get 5 passible anwers all of which will be
drastically different - horrid thing for production

~~~
paulddraper
How many ways do people write Hello World in C, Java, Ruby, Python?

~~~
purity_resigns
for letter in 'hello world?': print(letter, end='')

~~~
paulddraper
Hm, yes, I think I have seen that once on HN.

