Becoming a Better Software Engineer 2: On Learning Language(s)

“What programming language should I learn?”

Ahh… the common tome that I have heard and said myself through the several years gearing up to be a software engineer. I’ve come to realize that the reason why new devs ask this question so often is that believe the language they choose will make or break their career. This is sort of true, but more of a fallacy than not.

First about me

The first thing I learned when I was young was some HTML and CSS so I could create websites. I remember starting a Star Wars website when I was 12 or 13. It had a Galaxy background and everything. I wouldn’t necessarily call HTML or CSS “programming languages” (‘markup’ fits), but it did introduce me to the idea that there were syntaxes that you could use to manipulate data and the presentation of it in some way.

I didn’t really start programming until I messed around with PHP around the age of 18. I wrote a few custom things like sign-up forms and learned how to pull data out of a MySQL database, but that was the extent of it.

I really started programming when I entered college and learned VB, C# (both with .NET), C++, bash scripting, Java, JavaScript, and XML. This is when I actually wrote programs that compiled down and could be run on a computer. So, I would say that I have been programming “for real” for about 4 years.

Now about you

So, what language(s) should you learn? As many as you want.

I know, I know. Not the answer you were looking for, but it’s true. Learning programming languages to a developer is like learning spoken languages to a world traveler. There is a “core set” that you need to know to get things done now, but there are so many more interesting ones that you can use later in your travels.

So, here is a basic plan that can probably work for just about anyone.

1. Learn some “standard languages” first

First, learn at least one, if not a few, “standard languages”. By this I mean languages like C, C++, Java, or C#. All of these accept for C# are cross-platform and are (at the time of this writing) in super high demand. You really can’t go wrong with learning any or all of these languages. Plus there is a ton of information about all of them on the web.

2. Learn a “web” language

Since the web is the new cross-platform platform, you should invest some serious time in learning a web language or two as well as some frameworks. If you don’t know HTML or CSS you better get on those. After that you can learn some web languages like PHP, Ruby (for Ruby on Rails), C# and .NET libraries, Java and web libraries, etc. These are by no means all the “web” languages that are available to learn, but once again, if you learn these few you will definitely be applying yourself in areas that are marketable.

And of course you should learn JavaScript as well as a good JavaScript wrapper like jQuery.

3. Dive in

After you have garnered a nice set of “standard languages” under you belt, it’s time to dive into anything and everything you little hacker heart desires. Learn Scala. Grok F#. Write some Perl then try to understand it after you write it. Get into any language that you think is cool and then get passionate about them. There will always be new and “better” languages that enter the development scene. You will never get bored as a developer, nor will you ever learn and know everything.

Wrap-up

You may be thinking,

“I wanted to know exactly which programming languages to learn to be a relevant developer. Thanks for nothing”

Well, if you are looking for a “magic-bullet” type of programming language to be the absolute best for your first language to learn, then stop it. It doesn’t exist. There are definitely some great languages to learn off-the-bat that get you started programming, but the reality of developing software for an extended period of time is that you will have to learn several languages and keep learning them throughout your career.

Some sites you should check out

Learn C++: http://www.cplusplus.com/doc/tutorial/

Learn C: http://www.cprogramming.com/

Learn C#: http://msdn.microsoft.com/en-us/vcsharp/dd919145.aspx

Learn Java: http://download.oracle.com/javase/tutorial/reallybigindex.html

Learn Ruby: http://www.ruby-lang.org/en/documentation/quickstart/

Learn PHP: http://devzone.zend.com/article/627

Learn JavaScript: http://www.learn-javascript-tutorial.com/

Learn HTML: http://www.html.net/tutorials/html/

Learn CSS: http://www.html.net/tutorials/css/

Comments

  1. AnkitAgrahari says

    I want to know the sequence of learning programming languages. Please tell me which language should i learn first?
    I am little confused that which feild i should try? They are WEB developer and Software Engineer.
    And I am from India.. Please tell me which is recommended in IIT-JEE.

Leave a Reply

Your email address will not be published. Required fields are marked *