> bias against ruby is astounding.

There was no bias. Ruby on Rails is a mature production-level framework which gets things done. I've just said that it may not be the right tool for getting into programming. With Ruby on Rails too much is automated providing a DSL with a high abstraction layer and finally as one big monolithic piece.

This setup might be good for an experienced programmer but I doubt it's perfect for an beginner. That's all I said and it's not bias, rather your post feels biased and very emotional-calm down.

> Rails isn't magic

You are the first who's saying this. I repeat myself but here again: magic is when the user doesn't understand the abstraction level anymore, when it's too far away from the implementation pattern, when the original desgin pattern isn't clear anymore and Rails definitely is.

> You recommend node and Django but recommend against rails?

Did you ever try Node, Sinatra or Django? Maybe you should before giving such strong opinions. All of them, espeically first two are more expressive and force you to think yourself. With Rails you have to learn the convetions, use them and still are clueluss what to do in exceptional situations because the RoR setup won't strengthen your real coding skills (I am just talking about newcomers!). With Node.js and Express, you have to think because there are much less conventions, it;s more modular and thus, you'll be forced to code more and decide which path to go, with Rails everything is given and often the choices are opinionated (SCSS, Coffeescript). Or you wonder which directory to use for which file in Rails all the time according to the convetions, that no coding! For the classic CRUD app Rails might be good. With Python/Django you have more abstraction but those are more related to the actual design pattern and thus more expressive than Rails—but do not startt a flamewar here, Django and Rails are very similar at the end of the day.

> s far as MySQL, you've lost your damned mind.

This is a really bad style and intolerant—this is not HN style. Instead of coming with arguments you get abusive without knowing the big picture. RDBMS are very mature systems, I wouldn't go with MySQL, rather with Postgres and for lots of systems they are the way to go. NoSQLs are young and there's some reasons they should be used by newcomers, especially Mongo:

- No need for an ORM/ODM (for Mongo because of the good native JS interface, you can still use one and it makes sense but you do not need reallly)
- No migrations, no scheme

You still can do both with NoSQL/Mongo but to get started to get out of the door, just to understand what a datastore does the complexity level is just right. An SQL with all its migrations, schemes, ORMs, join tables is too much for a beginner. We know this stuff for years but a beginner?? A beginner has to get quickly some positive experiences which he understands and then Node with Mongo is perfect. Of course Rails + ActiveRecord is great to get started quickly but it's abstract and the beginner would not dare to leave the given path because he doesn't know how to directly access the DB. Later he can always switch to a SQL and a ORM (also in Node and with NoSQL) if he likes.

BTW, this is not just for beginners, for many projects this setup makes sense, it's just a new way. Rails is now 7 years old and lot of people like to stick to old paradigms. And ORMs in particular ActiveRecord are debatable, ActiveRecord is slow and clumsy and often not the right choice for scalable high traffic use cases.

Finally, your recommended way is a muddled and confusing way with too much theory. First he should start with some high level Ruby, then some theory, finally some Objective C and then C?? Which logic does this follow?

Most important when learning something is to have steadily successes in order to stay motivated. Small tasks are important to stay interactive to get self-confidence, just learning theory for days doesn't work without having any good use case at all and following some dull examples from Hartls tutorial won't help either. I know that a proper way would include C, OOP and so on but the way would be too long for startes.