The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.
© Copyright 2008
Sign in
I'm currently in the process of getting to be more comfortable with Ruby on Rails and really just starting to learn F#. In both cases, simply reading a book or tutorials and following along has not been enough to really get my head around it.
First off, I've decided I have to have a project or something to work against. For RoR, there's a little site I'm working on (more on that some other time) -- For F#, I'm currently working thru the 99 Problems with my brother (you can see our solutions here). When simply reading a book or tutorials you don't generally come accrossed the same kind of road blocks that you would find in a project. I think overcoming the road blocks is what helps me better understand a language.
All that being said, I think it's truly important to read as many books, tutorials and source code as you can. Authors read to become better writers ... as developers we should too (See Justice Gray's blog for more on this). I have this bad habit of thinking in C#/Java/C++; this is pretty much as bad as it would be for me to try and speak Japanese using a English to Japanese dictionary. Seeing how other people code helps me stay away from that.
What are some steps that you take when you start learning a new language?
February 26. 2008 17:20
Agreed! I look forward to seeing more of your journeys in reading - although always remember to have balance! Goodness knows I did not last year and I suffered for it! ;)
Justice~!
February 26. 2008 18:22
@Justice Thank you for the good advice. I agree that balance is important -- At least with me, I'm almost a zombie otherwise
Ryan Lanciaux
February 27. 2008 09:34
I sometimes think in RMCOBOL 85 or Pascal. Not useful when using OO Visual Basic 2005
LFriend
February 29. 2008 02:52
So read books? Thanks for the brilliant insight. You are a true teacher.
Ralph
February 29. 2008 06:47
@Ralph: That should be books and other source code. Something like Open Source projects, etc. Regards!
March 6. 2008 15:42
I think there are at least three steps in learning a new language: 1) Basic syntax. Curly brackets, significant whitespace, how the hell do I write a for loop in this language? The basic stuff you need to know before even trying to do anything in the language. 2) One or more projects that use the language. You can read all you want but it won't stick until you're actually using it. The basic syntax and some of the more common libraries get ingrained. Some of the little projects I've written when learning include a graph plotter, a utility to encrypt / decrypt text files, a utility to search all files in a directory for a given regular expression, a utility to sync files on two different systems. All sort of hobby projects I can do it a few evenings' work. By the end of this you should be able to program in the language but are probably still using the idioms of the language you're most familiar with. 3) Learn the language's idioms. eg in Python (which I'm still getting to grips with) list comprehensions and first class functions. This is the stuff that makes the language stand out from the others, what the language is good at. Hopefully, once you've got to grips with this stuff you'll be writing much more compact code more quickly. Of course, the learning never really ends.
SimonTeW
August 27. 2008 23:36