The landscape view of programming languages contains hundreds of different languages from which to choose.  Which one should you pick?  That is the question we are starting with.

Some programming languages are highly specialized while others may be used to create any kind of application for any computing environment.  Some are incredibly popular, making it easier to find talented help when your projects get too big.  Others are obscure, or maybe just new.  Given the constant shift in the field of software engineering around language, and tools, it is a given that whatever programming language you might have mastered before today may or may not be the language you are using next year.  Most University programs strive to teach general computing and mathematical concepts, but don’t focus too much on how to write code.  When they do, they tend to focus on one or two languages leaving graduates with the mistaken impression that they can’t work on any given project unless it was written in a language they already know.  If only there were a truly easy way to learn any programming language quickly.

Hello and welcome.  This series is designed to teach you how to program using any language in 10 easy steps.  This makes it very different from other books and tutorials you’ll find which generally cover one particular version of one particular language.  While that’s a fine way to learn your first language, as a student of software engineering you aren’t generally taught how to learn new languages.  That’s why I developed this framework.  I’ve used it to very successfully teach literally millions of students to code in classroom environments at colleges and universities, as well as through online publications.

This series is appropriate for absolute beginners wanting to take their careers in a different direction, high school and college students who are looking for a edge, and seasoned professionals who have shipped code and are looking to move on to the next challenge.

The key to learning a new language, any new language, is to master the fundamentals.  This is true of human languages just as it is with coding languages.  If you never master grammar in your native language, then learning a different language is an uphill, but not insurmountable challenge.  In junior high and high school, I studied Latin.  Everyone said I was crazy.  They’d say “Nobody speaks Latin, what are you going to do with that?”  When I was subsequently required to take French, purely against my will you understand, I found it was very easy because like English, modern French is based on the Latin language owing to Julius Caesar’s conquest of Gaul (France) in 52 BC.  For that matter, my English got better because I was forced to learn a different set of rules.  I found that I could think about the rules in Latin and better understand the rules, such as they are, in English.

This idea is the very basis for this series.  It’s about syntax, regardless of whether you are writing code or prose.

Picking a New Language

Before you start learning a new language, generally, you pick one that you’re interested in.  Your interest may be because you need a particular language for school or a project at work.  Maybe it’s the hot new language that all the cool kids are using and you want in on the action.

Regardless of your motivations, take a minute to learn the marketing pitch for the language itself.  Languages are rarely created “just because”.  Like any software project, some impetus inspired and drove its creation.  In my experience, I’ve found many languages were created out of frustrations surrounding existing languages.  Other times languages are invented to work with specific computer hardware and operating systems.  For example, the C programming language was created by AT&T, a large telecommunications company in the US, to control their telephone switches.  Java was created specifically to run on set-top boxes like the one you might have to control your cable TV in your home.

Sometimes languages are built by companies competing with other companies.  Microsoft created C# (pronounced see sharp like the musical note) to compete with Java, and by addressing a lot of the frustrations people had with Java, they were able to capture a lot of Java’s market share.

The “big three”, Microsoft, Apple, and Google all have their favorite languages that they have invented specifically for writing code from their particular perspective.

If you look hard enough, you’ll find the elevator pitch for your prospective language.  It’s called an elevator pitch because you should be able to speak to the pro’s and con’s of the language in the time it takes to take an elevator ride from the top floor of a building to the bottom floor.

For example, I could tell you the C programming language has an elevator pitch that goes something like this.  And you’ll have to excuse me.  My knowledge of C programming is actually limited to a class I took in 1995.  I haven’t used it much since then.

The main reason to use C is its speed of execution.  Programs written in C run faster than they do in other languages owing to the fact that C allows a programmer to “talk” directly to hardware while other languages add abstraction layers for broad compatibility, at the expense of performance.  C is also portable, meaning you can create a program that runs on a Mac, and with only a few adjustments, you can get it working in Windows, Linux, Unix, or even on an old mainframe.

Essentially C is a good choice when speed of execution is of primary concern.  For this reason, it is widely used in projects the require speed, such as operating systems and video games.  Naturally as with anything, there is a tradeoff for this speed and power wielded by C.  Creating user interfaces with windows, buttons, sliders, drop-downs, and text boxes is really difficult and it takes a long time.

The Visual Basic language from Microsoft was invented to give programmers a way to make user interfaces for C programs by drawing the interface in Windows, and then “gluing” together your speedy code written in C.

Let’s do another one.  Let’s take about Python.  Python was created to help programmers be more productive.  It was created with the motto “batteries included” because it comes with a standard library that does pretty much anything you might be able to imagine, and you generally only need a half a dozen lines of code even for complex tasks.  This tends to make programming in Python feel “fun” because you get a lot done in a short amount of time.

Next:  Classifying Coding Languages