Hacker News new | comments | show | ask | jobs | submit login
Ask HN: Why do coding bootcamps teach Ruby on Rails and JavaScript?
69 points by Onixelen on Jan 14, 2017 | hide | past | web | favorite | 58 comments

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.

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

The HN gods said it, you're not a n00bie but a real leet. ;)

  user:	rubyn00bie
  created: 1337 days ago
Back on topic, I would argue that it's more because bootcamps are here to get you a job fast, and that Rails and JS (maybe followed by Swift/iOS) probably offer the best (available jobs)/(time to learn) ratio of anything you can learn in a few months.

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.

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.


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.

because python is used by professionals and people who come out of science programs. math, physics, we all use python. and we have at the very least a rudimentary understanding of algorithms.

if you want to interview with us you better know at least a little bit about the foundations of CS.

you will not know jack, coming out of a 12 week bootcamp with no prior formal education.

on the ruby front, you are confronted with web hipsters who subscribe to this paradigm that formal training is a hindrance to "getting shit done" and "being pragmatic". way easier to roll with those guys. way easier.

thats the reason they teach you ruby instead of python.

- I'm not saying that the ruby crowd gets nothing done. they do. just a different mindset.

Rails was only one of many Patterns of Enterprise Architecture projects. Martin Fowler made a book, then RoR came along, and the environment at the time was "hating" on PHP and ignoring it's PoEA frameworks (Cake) in search of a new shiny. Then it had an uptrend (common s-curve) and some sticking. Now JS is (re) having a similar trend.

Plus ça change I guess.

Also, the students I'm hiring (right out of USA community college) are taught Python and don't know any web-stuff yet.

So, I have to teach server-side PHP (dozens of legacy projects (still using PoEA)) and some HTML and JS.

As long as the know the code basics language syntax is a small hurdle.

Oh, and please SHIP something, anything to demonstrate at interviews.

Cake PHP was basically a copy of Rails. When Rails first appeared, it didn't exist.

According to Wikipedia that is false. CakePHP in April 2005, RoR in December 2005

No, that's not true.

The history section of the wikipedia entry on rails says: "Hansson first released Rails as open source in July 2004, but did not share commit rights to the project until February 2005."[1]

The very second sentence of the wikipedia article on CakePHP is: " It follows the model–view–controller (MVC) approach and is written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT License."[2]

Then, in the fourth paragraph: "One of the project's inspirations was Ruby on Rails, using many of its concepts. "



I stand corrected.

PoEA. "Philippine Overseas Employment Administration"?


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.

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

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

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.

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 [2] https://news.ycombinator.com/item?id=13196431#13197538

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).

I agree about "easy to get started." When I came up with the idea for 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 :-)

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.

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/ [1] https://tessel.io/ https://www.sitepoint.com/creating-webgl-game-unity-5-javasc... https://www.youtube.com/watch?v=5sETJs2_jwo

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.

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

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.

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.

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.

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.

I've actually seen the opposite in my own job searches (though I'm admittedly not actively searching for Node jobs); outside the tech bubbles, the programming jobs are mostly around enterprise stuff, which is far more likely to be centered around either the JVM or the .NET CLR. Rails is actually starting to catch on in these sectors, since it's gradually becoming "legacy" (which translates to "actually tried and true in production") while Node becomes the new hotness.

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.

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.

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.

Is that true though, it seems Multiple Survey said Rails and Ruby Jobs is still on the rise. And Scaling Ruby Rails is expensive.

It's true in my experience trying to help a fresh boot camp grad find local employment. We even emailed the organizer of the local Rails user group and he said no one around here was hiring for it anymore. I'm in Central FL.

Haven't looked up the surveys so can't speak for them. I guess they'd be interesting? But unless they're excluding SF, SEA, NYC, and maybe Boston/Austin it's not really an equivalent comparison.

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.

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

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

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

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


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.

Agreed on the first part. Don't know Ruby but the amount of hate PHP gets is not normal, especially for such a mainstream language

I guess you meant "it will not be difficult...".

Otherwise, can you ellaborate?

Also, as you can see, mentioning php will get you down voted.

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.

For one Ruby just has easy syntax

easy, not simple.

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

document.write("hello world"); document.querySelector("body").innerHTML = "hello world";

alert("hello world"); prompt("hello world");

console.log("hello world"); console.info("hello world"); console.warn("hello world");

process.stdout.write("hello world");

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

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

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

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact