Hacker News new | ask | show | jobs
by dnsauve 4866 days ago
I don't see why this isn't good advice.

This is exactly what I did when I was trying to decide between the two. It really doesn't take long to work your way through the introductory tutorials to get a feel for which framework and language you prefer.

2 comments

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

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.
It is good advice; it just isn't time-effective to do a thorough job. By the time you've gotten through the tutorials and maybe built a couple simple sites, you've probably gotten to the beginning of understanding how it works, but you have yet to do basically anything that would be considered working with the framework as it applies to what you'd actually do on a real project. You might understand the very basics, but extrapolating that into "this is how working with it actually is" carries the very real possibility of a rude awakening.
How thorough does an evaluation need to be? I'd suggest that doing a few things less-thorough than a real project is sufficient to get a feeling for the framework. There are real projects done in both frameworks, there isn't going to be a point where you find some pitfall and go, "welp, looks like we have to start over in Rails" or whatever.