Crossroads The ACM Magazine for Students

Sign In

Association for Computing Machinery

XRDS: Resources for Students


Photo by dullhunk, Flickr.

How to Learn Programming Languages

By Ben Deverett

Learning a new language is difficult, and programming languages are no exception. That said, it is immensely rewarding and empowering to learn programming. And fortunately, programming languages are not as difficult to learn as spoken languages.

The majority of modern-day programming languages were invented within the last 50 years, and many are very similar to one another. In fact, programming languages are just different ways to control a small set of instructions that you can give to your computer. As a result, there are important fundamental concepts that apply to all of them.

Why Are There So Many Programming Languages?

Certain programming tasks are easier to achieve in specific languages. The original programming languages were very easy for computers to understand, but not so easy for people to understand. Programmers use "low-level" languages like these to build "high-level" languages that are more programmer-friendly. In these newer languages, it takes less time for the programmer to write a program, but more time for the computer to execute it. Therefore, many languages ranging from "low-level" to "high-level" float around the modern-day programming world, and programmers choose one or many of the most convenient languages to use depending on the specific task at hand.   

With all this in mind, it might be difficult for a new programmer to decide where to begin in terms of learning a programming language.

Here are some tips on how to navigate the world of programming languages.

Master a Core Language

In the programming world, many programmers have a core language– that is, the one they know best, and the one they prefer to use when it comes to their day-to-day programming tasks. Exactly which language this is depends heavily on the type of work being done. Some common ones are:

  • C, C++
  • Java
  • Python
  • Perl, PHP, Javascript

Often, the language you learn first becomes the most familiar and comfortable for you.

Whatever the language, learn it, practice it, and master it. Take the time to understand the meaning and usage of the data structures, keywords, and libraries available. Knowing the ins and outs of one language can make new languages easier to understand and learn.

Mastering a language is also useful because it allows you to keep your goal in mind while programming, rather than focusing on the unfamiliar structure of a language you don't know well.

Learn the History of the Programming Languages

Read up on the origin and the original goal of the languages you learn. Often, the history of a language explains a lot about the features and quirks within it.

For example, when first learning Java, you may wonder why the compilation process is different than in some other languages. If you know that Java was created with the goal of being universal (meaning it runs on most platforms without changing your code), then it is clear why its compilation process must be different. As another example, learn the difference between object-oriented languages and ones that are not object-oriented, and know when to use each. While both can accomplish many of the same goals, one may be more efficient or easier than the other.

The Best Time to Learn a New Language Is When You’re Required To

Learning a new programming language is always a challenging and rewarding task if you’re up to it, but the best time to tackle a new language is when there is a specific task at hand that requires you to do so. If you have a goal to accomplish using the new language, you will be motivated to learn about it, and you may find yourself writing all sorts of programs to try out different features of the language. Once you complete your task, you’ll be surprised by the depth in which you learned the language just by working through some problems.

Learn More Than One Programming Languages

In the programming world, your courses, research labs, and projects will likely be structured around a specific language. You’ll save yourself and your teammates a lot of time if you have experience with that language, or with a similar one. A particular professor, for example, may request that all work in her lab be done in one language for consistency reasons. Additionally, the more languages in which you are proficient, the more valuable you’ll be to potential employers. Sometimes you’ll need to learn a language just for a specific task, but that can never hurt. After all, the more you learn, the easier they get!

Some useful tutorial web pages to get you started with programming languages: