Goal for 2011: Do not learn another programming language
January 14, 2011
Although I basically agree with the Pragmatic Programmers’ old advice about learning a new programming language each year, the time has come for me to slow down.
I have been programming for many years and I know a lot of different languages. Many of them are boring and similar (eg. Java, C#, C++), some are not boring but similar (Ruby, Python) and some are completely different (Clojure, Common Lisp, JavaScript).
I’m well aware that I could learn a lot by studying Haskell or diving deeper into Javascript, but I’m going to take this year off.
Why? Very simple. I still have so much to learn from Clojure. I could write at length about the virtues of functional programming or about how Clojure takes advantage of the JVM. I could go on and on about the REPL, Java libraries, infinite lazy sequences (list of all primes, anyone?), the exceptionally smart community members and so on. But others have already done this much better than I could. For a great introduction to the language itself, go watch the intro videos by Clojure creator Rich Hickey. For all the surrounding stuff, there are lots of interesting blogs to read.
Likewise, although I have a lot of experience with both Ruby and Rails, I’m not done learning here either. Especially, I need to tune my Emacs to achieve better code navigation and debugging support.
Two languages that I really like. This year, I’m going to focus, not diversify.
January 14, 2011 at 3:02 pm
I totally agree. The only way to grow is to study those things which elevate our understanding (see How to Read a Book by Mortimer Alder). They are a challenge which deserves focus. Apart from reading K&R (simply because everything is built on c, and I like nodeJS) I am going to be focusing on Conjure this year.
January 14, 2011 at 8:36 pm
Thanks for the comment. The book you mention looks really interesting!
Oh, but beware of typos when looking for Clojure resources, or you may end up learning about a build tool: http://home.gna.org/conjure/manual/html_node/What-is-Conjure_003f.html
January 14, 2011 at 5:17 pm
Depth and breadth matter… becoming a better generalist supports being a better specialist and vice versa.
January 14, 2011 at 6:10 pm
I feel the same way. After picking up Groovy, Scala and Clojure in 2008, 2009 and 2010 – and taking Groovy and Scala projects into production – I definitely feel like using 2011 to dig deeper into Clojure before picking up another language!
January 16, 2011 at 4:32 am
[...] TalkA podcast by developers for developersLinks for 2011/01/15by delicious on January 15, 2011Goal for 2011: Do not learn another programming language « chop-modeASP.NET MVC 3 and NuGet 1.0 Released (Including Source Code!)How to Write a WordPress Plugin: 12 [...]
January 17, 2011 at 2:56 am
I feel exactly the same way. I feel like I kind of got over a hump with Clojure just at the end of the year. I decided that I really need to push on instead of dropping it and learning another language just because January 1st 2011 happened.
A couple of years ago (2009) my language of the year was Haskell. I learned a lot but never really felt I had gotten close to mastering it. I regret not pushing forward with it and think that was a mistake on my part.
My challenge now is to figure out how to make Clojure more a part of my life, to write more Clojure code and get experience with it. I can’t really do that at work, so have been looking at some open source projects I like in Clojure and getting familiar enough with the code to contribute something (…or…to just become familiar with the code
)
Anyway, thanks for making me feel less alone.