So You Want to Be a Programmer?

I’ve recently been considering how I would start off programming if I were someone coming into the field right now. It’s a bit of overload once you really take a look out there to see what you can do. C#, Java, C++, Visual Basic, Python, JavaScript, or Perl? Windows, Linux, Mac or mobile? Applications, games or the in-between? There really is no limit to what you can do these day. So where should you start?

Well, first of all, I’d like to say that I’m going to be making some very general statements here. They may work for you, they may not, although I hope more of the former.

I’d like to say that the most primal thing you should learn about programming is how to program, more than how to program in X. The best thing for you is to jump in and learn the fundamentals of what programming is. You should learn variables, functions and IO. Once you’ve got strong skills in that area move on to more complicated things such as Object Oriented Programming and learning to use frameworks and design patterns.

Languages of first choice: Ruby or Python. Really, these two languages are the easiest to master quickly as the syntax is very simple. Yet, they have some very powerful features when you begin to go into advanced stuff. Both have applications on the desktop and on the web.

After that I would move on to languages that are more strongly typed such as C++, C#, Java or Visual Basic. Visual Basic will feel familiar if you’ve programmed Python or Ruby. Java and C# are very close cousins as far as syntax and both have similar language concepts to C++. I have to say, though C++ is a very popular language it is also the most abused language. You really have to know what you’re doing. Also consider that C# and Visual Basic are almost exclusively Microsoft platform languages. All the other languages mentioned thus far are cross-platform. That said, Java is probably your best choice.

So, to recap,  focus on either Python or Ruby. After that move on to Java. After that, branch out in every direction you can!