The Coder’s Dilema: What to learn.
I’d love to tell you that I code at work, at home, in the shower and in my sleep, but that’s simply not true. I code at work, and occasionally I’ll mess around with a project at home. I almost always get bored with the projects I work on at home, and I rarely finish them….. OK I’ll be honest I NEVER finish them.
At work I code in java, and lately I’ve been able to work on a new product. We’re using Java 6,Stripes, Spring, Hibernate, and CXF. Learning these new frameworks and how to make them work together, but I still get bored.The reason I get bored is I LOVE to learn new things: new frameworks, new technologies, new languages. I love the challenge, and I love having that aha it all makes sense now moment.So now I’m faced with this question: What should I learn next?There are a lot of languages I’m interested in and here are a few:
- Python
- Ruby
- Clojure
- c#
- c++
- objective c
- c
- groovy
Ruby: I know a little ruby, I tried writing a prototype of our new product at work in it about a year ago. It was a fun language, but I found a bug in the http client implementation and that halted my progress. (I’m happy to say they fixed the bug in a relatively short period of time) but at the time ruby did not have the polish or the features of java.
C#: is too much like java to make it interesting right now, but it would probably be a good career move to go ahead and get some experience using it.
Clojure: I just recently discovered Clojure. I don’t know how you’d go about writing a “Real World” application with it, but something about lisp style languages is just cool. It’s very different than any other language i’ve used.
Python: Python interests me because it’s different and it opens up the world of gui programming to me. (I’m not really interested in swing or swt).
C / C++ / Objective C: These languages make sense, but the api’s available and how to use them are where I get tripped up. I may just need to focus on doing some very specific things with these languages before I jump into their various api’s and frameworks. I really wish I knew enough objective c to write some iPhone applications! I may have to pick up a book to get me started.
Groovy: Finally we have Groovy. It looks cool, but since it requires a jdk, I haven’t seen the benefit of using it instead of java, but to be honest I haven’t spent much time on it.
Ok…so all of that to say, I really wish I had a method of learning new languages. Something that when finished would give me a good understanding of the languages so I could know which language would be best for solving different problems.I have a manager that implements a simple application that reads and writes records to a database. Maybe this is a good start, then I could develop a simple gui in each language. Maybe that will give me something to blog about here.