10 Top Programming Languages For Learning To Code
Everyone wants to learn how to code, but what is the best entry point? Here are 10 top ways to check "programming" off your skills life-list.
![](https://eu-images.contentstack.com/v3/assets/blt69509c9116440be8/blte9d7c95534b5952b/64cb464f23388b0cc338fe5c/tux-325.png?width=700&auto=webp&quality=80&disable=upscale)
It seems that everyone wants to learn how to write computer code these days. No matter what field or profession a person works in, the ability to make a computer (or mobile device) dance to your tune seems part of the basic skill set. The question is, how does a person take the first step toward gaining those skills?
Once upon a time the path was simple: BASIC was where most people started before moving into Fortran or COBOL (depending on whether they were heading toward scientific or business programming). Now, though, there are far more options and rather less clarity.
If you want to know how to get started (or give advice to others), then you have a number of options. Choosing the best means looking at what you ultimately want to do, what you like to do now, and how you best learn new skills.
[See 10 Fascinating Facts About Apple's Swift Programming Language.]
Do you like to see things move at your command? Do you want to handle physical-world input and output? Is there a database at the center of your application dreams? Do you live your life on the Web? Depending on how you answer each of these, there could be a different "best" language for your foray into application development. The nice thing is that, once you've taken the first step, the second step is much easier regardless of the direction it takes you.
Did you use one of these languages to learn programming? Would you recommend one of these to someone who came to you for advice? I'd love to know the answer -- and to know about any good options I might have missed. I'll look forward to seeing you in the comments -- no advanced programming necessary!
According to the ACM (an organization that really should know), Python is the most popular way for universities to teach students their first language. Python is a general-purpose language that starts from a simple code base and adds extensions as necessary to allow for complex projects.
The good news about Python is that it emphasizes clear, simple syntax that can later be related to a number of other languages. The bad news is that it will be a challenge to build a career on Python. It's not one of the "heavy hitter" production languages in high demand among large organizations. It's unlikely that you'll regret learning Python, though, and its popularity at universities means there are a lot of resources to help someone who's learning the ropes.
Java is the language Python passed in order to become the most popular language for teaching programming at the university level. What is it that made Java so popular? There are a couple of things that work in the caffeinated language's favor.
First, Java is a language in the mainstream of development, which means that it doesn't use lots of odd syntax and unique symbols to get things done. If you learn how to program in Java, you can transfer your knowledge to most of the other popular enterprise development languages.
Next, Java is a popular language in enterprise development. In terms of use, most measures put it right up there with C++ on the corporate-use scale, so it's entirely possible that you could learn Java and become employable on that basis alone. It's not the simplest to learn, but since it might be the only one you need to learn, the overall time commitment could make sense if programming as a new career path is your plan.
The reason to choose C++ as your first language is purely mercenary. C++ and Java are the two most commonly used languages in enterprise programming projects. If you want to devote your time to learning a single language that has serious enterprise implications, then C++ could be your answer.
You'll pay for the commercial advantage with a rather steep learning curve, since C++ wasn't designed as a learning tool. On the other hand, it was designed to allow a programmer to control computer hardware at a very low level. When you learn C++, you have the opportunity to learn precisely how a computer works and how to make it work for your purposes.
Some people learn best when they can be hands-on with physical objects. Some people like the idea of making bright lights go blinky blinky. If you're one of those people and you're looking for a simple language to get you started, then skip a couple of lattes and buy an Arduino.
The Arduino IDE supports a simplified subset of C/C++ to let you get started with programming the little board. That means you can ease into the languages that are frequently used for enterprise projects while you make lights blink and gardens grow. Programming an Arduino also makes you part of a huge community of people doing very cool and interesting things with a tiny embedded computer.
Before there was Arduino there was Lego Mindstorms. For the last couple of decades people have been learning how to make small vehicles, robots, and machines operate through a simple but rather powerful controller. First the NXT and now the EV3 are programmed through operational blocks rather than traditional code, but the concepts of control and logic-flow apply to both.
It's easy to think that Lego is only a children's toy, but there are university classes, engineering prototype projects, and builder clubs around the world using Lego bricks and controllers. If your programming education needs to start with basic logic, there's no easier (or more fun) way to start than with Lego.
Ruby is a mash-up language, bringing together parts of Perl, Smalltalk, Eiffel, Ada, and Lisp to make a programming tool that its creator, Yukihiro ("Matz") Matsumoto, describes as "natural, not simple." Translated into real life, that means Ruby is a powerful commercial language that can be learned in readily digestible pieces.
If you want to learn object-oriented programming discipline, Ruby is a very solid choice, because it treats everything -- absolutely everything -- as an object. Unlike many other object-oriented languages, though, Ruby's syntax is easy to read and understand.
Ruby is used as the foundation for many Web-fronted applications through the Ruby on Rails framework. Like other open source languages, there is also a huge user community and a large number of tutorial and learning modules available.
Every time you look at a Web page, you're seeing the results of programming. We call HTML a "page definition language," but it defines the page by giving instructions to an application (the Web browser) about how to display information. That's programming.
HTML5 is the latest version of HTML, and it's a far more powerful way to tell browsers how to interact with information, input, and the underlying computer system. While HTML5 has a syntax that won't translate directly into other languages, it is a popular development language in the enterprise and a solid contender for "bankable skill." It will also let you build a killer website to tell the world about your new skill. That's something to think about.
Scratch is a visual programming language developed by the Lifelong Kindergarten Group of the MIT Media Lab. The name of the developing group should give you a hint about both the language's purpose and its target audience. Even if you're not part of the Kindergarten demographic, you should think about Scratch if you want to learn the basics of programming.
Scratch is part of a unified development environment that allows you to create games, make visualizations from math and science data, produce your own animated clips, and do other things. In addition, there are modules that allow Scratch to interface with external hardware so you can use Scratch to program your Lego Mindstorms modules if you're ready to move beyond the Lego block programming model. Scratch is free and part of a huge user community, so it might be a good tool for taking care of your "learning to program" itch.
If your interest in programming is coupled with needs for numerical analysis, especially for scientific or engineering purposes, then MATLAB could be the first step you need to take in learning to code. MATLAB is a scripting language originally developed by a computer science professor at the University of New Mexico who wanted to save his students the pain of learning Fortran.
Now, it's time for a suggestion that could be controversial. Perl is a scripting language (meaning that it tells the underlying system to use its facilities to do things, rather than talking directly to the hardware control functions) that is widely used in Web and Internet applications. It's amazingly useful -- and can be exceptionally ugly.
Part of the problem is that Perl is very forgiving. It doesn't enforce the sort of tight programming discipline that some people feel is critical when learning to program. On the other hand, if you think that the best way to learn is to see a result quickly, Perl could be perfect for you. Perl has frequently been described in terms that compare it to "duct tape" and "the Swiss Army chainsaw of scripting languages" (in a notable passage by Doug Sheppard in his Beginner's Introduction to Perl), so it's not the elegant choice. But it can be effective -- and it's also an in-demand language on the job market.
Now, it's time for a suggestion that could be controversial. Perl is a scripting language (meaning that it tells the underlying system to use its facilities to do things, rather than talking directly to the hardware control functions) that is widely used in Web and Internet applications. It's amazingly useful -- and can be exceptionally ugly.
Part of the problem is that Perl is very forgiving. It doesn't enforce the sort of tight programming discipline that some people feel is critical when learning to program. On the other hand, if you think that the best way to learn is to see a result quickly, Perl could be perfect for you. Perl has frequently been described in terms that compare it to "duct tape" and "the Swiss Army chainsaw of scripting languages" (in a notable passage by Doug Sheppard in his Beginner's Introduction to Perl), so it's not the elegant choice. But it can be effective -- and it's also an in-demand language on the job market.
-
About the Author(s)
You May Also Like