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.
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.
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.
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.
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.
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. "
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.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.
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
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).
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 :-)
And why JS? Because that is what runs in the browsers.
[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
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.
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.
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.
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.
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.
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.
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.
The subjects you mentioned have much smaller, specialized job markets and take longer to learn.
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.
- Ruby has less of a learning curve in contrast to a lot of other languages, though the margin is definitely narrowing with ECMAScript
/end rattling my cane
https://www.google.com/search?q=php+vs+rails+stats&ie=utf-8&...
Otherwise, can you ellaborate?
> 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.
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.
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
alert("hello world"); prompt("hello world");
console.log("hello world"); console.info("hello world"); console.warn("hello world");
process.stdout.write("hello world");