programming languages

Programming is becoming a necessary 21st-century skill for all kinds of professionals, whether they actually work as web developers or not. With more and more business conducted through the web and even through online apps, professionals across the board have come to realize it makes sense to start learning about programming. However, deciding which programming language to begin with can be a difficult question to answer. To uncover the answer, it really boils down to what your current role is and where you hope to go career-wise. Certain programming languages are better-suited for specific tasks than others, and you need to think about which tasks you’ll get the most utility out of to determine which programming language to learn first.

With that in mind, let’s take a look at some of the most common programming languages that you might want to start out with, and the professionals who would benefit most from learning them first:

Are you a “front-end” professional working with the “face” of a website?

In that case, you might not need to learn true programming at all, but you would be well-served by getting your toes wet with HTML and CSS. (Side note: though recently both HTML and CSS have begun adopting some programming language patterns, they still cannot really be called programming languages. Instead, they are referred to as “markup” because they don’t dictate the actual functionality of a website, just how it is displayed and how the user interacts with it).

Marketers, bloggers, freelance writers, and other professionals in this area have a background in writing and editing, but not necessarily formatting article for online publication, so usually someone needs to convert their text or multimedia materials into a format that will display properly online. If you’re working in a situation with multiple collaborators, it’s likely you use some kind of CMS (Content Management System) such as WordPress. Learning basic HTML, though not necessary, will greatly expand the possibilities for what you are able to accomplish on such a platform. If you are responsible for writing and/or managing blogs or other online content, then learning markup is probably a good place to start rather than diving into true programming For this kind of position, it’s likely all you’ll need, and you’ll be able to apply what you learn directly to your work.

Do you want to build a website or web app?

If your answer is yes, it makes sense for you to go beyond markup such as HTML and CSS and take a stab at some actual programming languages as well. JavaScript, PHP, Python, and Ruby are a good starting place, as they are more intuitive than some other languages, and you can make use of what you learn right off the bat. Many web apps can now be built in pure JavaScript(Spotify, for example, is nearly all JavaScript), though the majority of them will also require some degree of back end development. If your goal is to build your product 100% by yourself, however, you’re going to have to become a full stack developer. In other words, you’ll need to be able to build both the front and back end (i.e., do both the web work and the server-side coding). The five most popular languages for web apps are PHP, Ruby, Python, Perl, and JavaScript (not listed in any particular order). Which of those languages will best suit your needs will depend on what you want your web app to do, and can be determined by some simple Googling. Keep in mind that none of those (with the partial exception of JavaScript) can be used without a framework, and the framework goes beyond just knowing the fundamentals of the language.

If your goal is to build an app, you have two main options: Android or iOS. If you’re building an iOS app, you’ll need to learn Objective-C. Keep in mind that in a couple years’ time it will be replaced by the newer Swift, but for now you needn’t worry about it.

You’ll also want to do significant research before deciding which framework you want to use. Frameworks are publicly available code for a certain language, usually designed for a specific purpose. The community of each language has already been through the struggles of making sites and apps without any help from a central code base, and collectively that community has built one to make things easier for themselves and others. So for PHP, for instance, you’ll be able to find web app frameworks, whereas JavaScript will have database frameworks. Finding a good framework that you like and that works well for your purposes is important because today most of the code in a new website or app no longer needs to be written from scratch. If you can familiarize yourself deeply enough with one or two quality frameworks, much of the heavy lifting can be offloaded onto community code.

When it comes to learning Objective-C, as well as other languages, the framework and Xcode arguably play a bigger role in the language’s practical application than even the language itself does. It’s important to put in the time before deciding which frameworks you’ll invest your time in learning because in the long run it will significantly influence your development efficiency and overall process.

If you’re building an Android app, learning Java (not to be confused with JavaScript – they are not the same thing) is a must. You can also use Ruby on Rails to develop Android apps with JRuby, though if you have to choose one, our recommendation would be to go with Java due to its versatility (you’ll need Java knowledge whether you’re using JRuby or not). There are tons of great resources online to help you determine what you need and to get your app development off the ground, such as this one for iOS. Researching online and finding open courses and guides to teach yourself the necessary languages is where you’d want to focus your time if the goal is to develop an app specifically for your business.

Do you want to become a professional programmer?

If your goal is to become a programming professional, it will be important for you to know multiple languages. Though this may sound daunting, the good news is that programming languages share similar foundations and use similar structures. Many online courses and camps are intentionally semi-theoretical because there are common principles that apply across all programming languages. In addition to just the technical ability, however, the curiosity and desire to learn (and the skill of knowing how to learn) is of equal importance. A professional programmer’s growth does not stop when he or she is hired; they are always learning as programming trends change and the skills required to meet the demands of those trends change, too. Learning to think like a coder will also make it easier to learn additional programming languages later down the line.

Once again, your best plan of action is to become a “full stack” programmer. If you’re interested in being a “professional web developer” by title, you’ll need to learn HTML, CSS, JavaScript,Ruby on Rails, and also possibly PHP if you intend on using it for your framework (in that order). Once you have established this foundation, there are various paths you can take. Rails has the advantage of an active, helpful community and dearth of online open-sourced resources. Learning Rails first is probably the most profitable plan of action – you’ll be able to start getting a return on your time investment much faster than with other languages.HTML and CSS are not difficult, and you will probably get the hang of them with minimal research. The biggest investment of your time will be in mastering the separate pieces of Ruby on Rails, and in understanding the ins and outs of JavaScript. Essentially, learning a new programming language can be done in as little time as a week. Learning how to effectively utilize the support network that has been built up in and around that basic tool (the language) is much harder but that’s where you’ll start being able to do more powerful things.

Above all, remember that the field of programming is a fluid one. Small changes happen every week, and new languages are developed and evolve each year. While these suggestions should give you a basis of where to dive in first now, it can change quickly. Learning these languages, however, will give you a strong foundation and teach you how to start thinking like a programmer, which ultimately will allow you to learn whichever new languages you would like to in the future.

Read more: