| 1 comments ]


I've decided that it's time I learned a new programming language, or maybe even a couple. Using the same couple languages for the past few years has allowed me to become very efficient in it's use and syntax, but it has also caused me to think of all problems through the lens of only a couple of languages.

A bit of background to begin: I am well versed in C# and SQL. I have been employed in various positions over the past decade where I have worked extensively with COBOL, JCL, EasyTrieve, Visual Basic, VBScript (classic ASP hideousness mostly), JavaScript, VBA, and some VB.Net. I've touched a tiny bit of Cold Fusion, and I've putzed around with Linux shell scripting and C++.

You may notice some glaringly obvious languages missing from my repertoire, probably Java, C, and PHP. It should be obvious that I should learn one of these and I have seriously considered Java. Similarities to C# should make the transition relatively smooth and I should be able to become proficient quickly...the only problem is that this bores me. I want something that's more of a challenge and a step in a new direction. I think I'm leaning toward Python.

The problem I run into here is that I have nothing to code! No ideas pop into my head. Sure, there's the standard Hello World! application, but I want something more. I don't want to begin and end this attempt with a very simple app that just does some minor string parsing and printing to the screen...I want to do something more. Even if this could be part of a bigger project, maybe something open source where I could contribute. Something to give me a chance to learn the language in a way that I could remember it would be great.

As far as learning new languages goes, I seem to have a unique problem. Most developers have experience with the free software tools and languages and have a tough time learning the Microsoft stuff. I'm coming from the exact opposite position. Does anyone have suggestions for the best route to learn any languages for someone coming from my background? Tools, sample code, and different language suggestions are all welcome. The most welcome things would be ideas for apps. :)

1 comments

Unknown said... @ November 13, 2009 at 1:38 PM

The best choice given your experience is C. It doesn't seem like you've worked with a low level language like C and you can't really claim C++ if in the same time you admit you don't know C.
C is not as productive as C# or Java (not even close) but it has one major advantage which is to put you closer to the machine and give you the ability to understand the system level ( stacks, heaps, processes, threads, virtual memory, dlls, memory mapped files, etc...). If you are interested in learning even more about the hardware (cpu registers and instructions) you should take a look at HLA (high level assembly), it looks like C or Pascal but you can write real assembly. When learning a new language ideas for complete projects are useless and even harmful.

Post a Comment