Thursday, September 19, 2013

Coding 101: What Languages to Learn

Let's keep going.  At this point I've talked a lot about different programming languages.  But, the more important question that needs to be answered is, what programming languages should you learn?  More than that which programming languages are easiest to learn?

My answer to those questions is...that depends.  Yea, I know that's a cop out but it really does.  The context in which you want to program is really important and I'll cover some of the biggest contexts and what languages would be most helpful for each one in this post.

Let's start with the one that surrounds us the most, internet programming.  Let's be clear, for this I mean the front end or the websites that you view as a surfer of the web.  To design those pages, the most important languages (not all strictly programming languages) would be HTML, which stands for HyperText Markup Language, CSS or Cascading Style Sheets, and JavaScript.  Of those, only JavaScript would really be called a "programming language".

Now let's move onto the back end of the web.  This is where you get all of the data to properly serve web pages.  For this layer there are a lot of choices.  Unlike above where those are the things you need to know, in this layer you can pick and choose some of the languages.  One language that you will need to know is a querying language, more specifically a dialect of SQL or Structured Query Language.  Now, there are different flavors of SQL from mySQL to MS-SQL but for the most part they're all really similar.  Knowing just SQL is actually really useful on its own, but without other languages it's hard to really build things.  If however you find that you enjoy SQL, look into becoming a DBA or Database Administrator of which there is high demand.

Let's say you know SQL, then what other languages would you need to know for back end web programming?  This is where you get options.  The languages that you need to know require that you can connect to databases.  Some of the more popular languages in use are PHP, python, Ruby, Java, and C#.  Usually however, when building a large website, or even a small one, just using those languages isn't enough and you end up needing to use web frameworks specifically designed to help you write clean and simple code for your websites.  I recommend learning one of these frameworks.  In relation to the languages mentioned the frameworks paired are cakePHP, Django, Ruby on Rails, Spring MVC with Java Server Pages, and ASP.NET.

Now, if you're really hardcore with your hardware, there's a whole host of other languages to learn from Assembly to C to COBOL.  But I'm assuming that you don't want to do that (I don't and don't know much about those languages sans C).  That isn't to say those are bad languages, just not the most beginner friendly.

If you want to do statistical or mathematical calculations R and MATLAB might be of use to you.  Also of use for those purposes are any of the many functional programming languages (these can be used in other places too) like Haskell, Scheme, or Lisp.

If you want to build apps for phones, you need to learn a different language for each platform.  If you want to program Android applications, you need to learn both XML (eXtensible Markup Language) and Java.  If you want to program for iOS, you need to at least learn Objective-C.  Last if you want to program for Windows Phone they have opened up the options.  For Windows Phone, you can build apps with JavaScript with HTML/CSS, C++ with XAML(eXtensible Application Markup Language, or C# with XAML.

The last class of developing is desktop applications or general purpose applications.  These can be written in a bunch of languages but I'll just name off a couple that are commonly taught and used.  Python, Java, C++, ActionScript with Flash, and Scala.

There are plenty of other programming languages out there in use in applications around the world.  However, if I were to tell you what programming languages you should learn, I would say learn Java, Python, and JavaScript.  I'd also tell you to be at least somewhat familiar with SQL as it is incredibly
powerful and useful to know.  I intend to put up some examples of each in future posts.  Look forward to it and until next time.

--CsMiREK

No comments:

Post a Comment