

Ask HN: Master a Language in 1 Month - grep

Can you master a language&#38;framework in 1 month? (Rails,Django, etC). How?
======
TallGuyShort
I've always done best by choosing a project that I'm naturally and personally
interested in, and trying to implement it in that language. Bonus points if
the project is something that takes advantage of what the language is best at,
or what the culture focuses on.

For instance, I recently wanted to learn Clojure, so I chose a project that
involved a lot of multi-threading related to a topic I'm very interested in.
It's been about a week, and I feel very comfortable in the language.

In the past I've tried learning from books, etc... but when I need to apply
the knowledge, I find myself referring back to what I read entirely too much.
By having a specific project I'm trying to accomplish, my learning is
directed. I'm learning solutions to problems that I already understand and
appreciate. This way, you understand a lot more about the reasoning behind the
language, and the way it should be applied. By just reading cold, you miss
that entire aspect.

------
yan
Define "master."

Usually, you get your start by picking a project in a domain you're intimately
familiar, read an introduction/tutorial, and start implementing.

A lot of this depends on how well you understand a language's or framework's
reason for existence. If you know Ruby (or something similar) and have done a
lot of web development in the past, you should be able to start 'getting'
Rails fairly quickly.

~~~
CyberFonic
By most employer's definition of "master" ... NO !

As for what you produce in that first month, you'll throw it all away before
the year is out. If you can avoid it, don't try to learn a new language and
develop a new product with it.

------
cjus
Agreed that if your goal is not mastery you can actually learn the basics of a
language and become semi-productive in a month. Anything more requires
exceptional skill, or more likely much more time.

Checkout the book "Outliers" by Malcolm Gladwell. Gladwell asserts (not
originally) that it takes 10,000 hours to master a subject.

See: [http://robertoyudice.com/thoughts/10000-hours-to-master-
prog...](http://robertoyudice.com/thoughts/10000-hours-to-master-programming/)

------
samratjp
Judging by your question, I am assuming you're planning on mastering one of
the above said frameworks. If that's the case, the answer is yes (i.e. you're
going to put in a non-trivial amount of time AND effort).

Here's how I did it the last time I tried something similar: 1) Grab a decent
book with plenty of sample code that builds towards a working product. This
way, you get to see the moving parts and the theory. For Rails, Hartl's
railstutorial.org is excellent - you build a twitter clone. Their much older
book RailsSpace is pretty good too. While you're at it, checkout tryruby.org.

2) After doing 1 above, now pick a project and get building quick. Use the
sample code from above and tear it apart.

3) 1 and 2 works really well if you do it with someone who is already either
proficient or interested enough in going through the exercise with you.

0) Well, 1-3 would go a lot smoother if you already know another language or
two, some decent background with data structures. Of course, that's not
necessary, but useful nonetheless.

4) Regardless of what happens, keep plowing ahead. You will hit random errors
or whatever. Keep with your schedule - "Finish chapter 4-6 today or whatever"
and soon enough you can definitely finish the book in a week or two. Then the
following two weeks is where you will learn the most with your own project!

42) You definitely will know enough to do something non-trivial, but again
mastery depends on your case. As a friend of mine says, "anyone can learn to
spit out a few words together, but writing an elegant sentence (or solution)
is not that easy always... same with programming"

Good luck!

------
jerf
Flipping the question upside down: Anything you can master in a month is
almost by definition trivial.

------
mithaler
In my experience, the line between "mastering" a language/framework and
"becoming competent in" it isn't very distinct. Once you grok the way the
syntax works, the rest is all learning library functions and new methods for
things (often idioms); that happens over a long period of time no matter what.

Once I learned to program my first language, though, I could pretty reliably
reach that point not long after it, unless I'm moving into a language of a
completely unfamiliar paradigm (e.g. Java to Scheme).

------
gte910h
Master? No. Get moderately competent? Yes

~~~
CyberFonic
Even becoming competent depends on the level of prior experience and
knowledge. First time programmers ... not likely!

