Hacker News new | ask | show | jobs
by rednukleus 4866 days ago
I've been learning Python and a bit of Django, and it has taken me a lot longer than 2 man-weeks to get to grips with it. I can't imagine that I would be able to learn enough Ruby to give Rails a good shot in two weeks.

I'm absolutely sure that there are many developers out there that can pick these frameworks up that quickly, but I'm equally sure that there are plenty of developers who "aren't that talented".

2 comments

I don't want to sound pretentious, but were you coding >6 hours a day?

Languages are as much a process of thinking as they are a string of instructions for a computer. If you think in object-orientation you'll learn object-oriented languages very fast. Likewise, if you know a language like Lisp you'll learn man of its descendants in the same family of language quickly.

I work full time and program when I'm not working, and I'm often surprised at the improvements and iterations I can make in (relatively) short periods of time. It's the same way you can become fluent in a spoken language in 3 months [1]. Talent isn't relevant after the first week - raw determination is.

That said, you're right, you shouldn't expect to be a capable programmer in a language after just 2 weeks, but don't be so hard on yourself that such an accomplishment is impossible.

[1]: http://www.fluentin3months.com/

By man-weeks I mean 40-60 hours effort per "week". I think that some developers can "learn Django in a week or two from scratch", but I don't think most newbies can.
Well for newbies coming to the table, there sure are a lot of concepts they'll have to pickup. Same for PHP developers. In all of these frameworks, there is the concept of routes, data models, views/templates, controller actions, etc.

So learning one framework definitely helps out in others. The biggest hurdle for me (coming from Perl CGI then PHP to Java 10 years ago) was that I was no longer accessing a "page"... I was accessing an action in a controller. I could use views as a template and REUSE those views for other things. The "one page for each action" paradigm became dumb after that.

Most newbies can fight through the demo "blog apps" rails/django tutorials and still have no idea what they're doing. But doing them multiple times until one is comfortable with the pieces is probably more beneficial.

Lastly. Learn the actual language. I love Ruby because it's a joy to use. I hate Python. It's not a bad language I PERSONALLY don't enjoy it. So Rails was a no-brainer. I enjoy Scala, so Play Framework was a no-brainer. I (I'll admit) have fun writing Javascript, so Node.js with Express.js is fun to write.

After learning a couple of (different) languages, learning the new one is easy. So easy that it usually equates learning its standard library. So learning either Django or Rails, if you are moderately experienced developer shouldn't really take more than a few weeks.

Of course, learning the first language is challenging.

I have become proficient in about 10-15 languages over the years, but Python is sufficiently different from all of them that 2 weeks is not enough to give Django a fair trial. I'm sure Rails is the same. Knowing 80x86 assembler, Commodore 64 basic and Amos only go so far, but maybe knowing Python it is easier to switch to Ruby.