I’m going doing a whole revised version of this article soon! New infographic, new content, and whole new article!
You already took the first step in your journey to becoming a programmer; you decided you wanted to learn how to code.
But there’s numerous programming languages you can choose from, and it can get confusing to decide which programming language to start with.
You probably already have a goal in mind, such as I want to develop a video game; I want to build a website.
Do you know what the best tools to develop a video game? Or, how about the best programming language to build a website?
I’m going to cover both of the questions in this article.
So keep reading to find out.
Before we get started, I want to say that choosing one certain language doesn’t matter all that much.
Once you master the basics, most of the knowledge is transferable and you can learn the others pretty easily.
But different languages has better features, are easier or harder to learn, and can do different tasks better.
So in order to understand what programming language you want to learn, you need to know why you want to code in the first place.
From there, I can explain which programming language would be the best to learn.
Let’s get started.
We cover all of the information in the article. So you can click here if you want to skip the infographic.
If you read the whole infographic and don’t want to read the same information, click on the jobs section in the table of contents.
But if you skipped it, keep reading to get all the information from the infographic.
Table of contents
First, let’s overview some of the popular programming languages that are good to start off with. I organized them in 5 categories; front-end, back-end, software, mobile, and database. By doing this, I can give you a better idea of what you can do with each programming language.
Website development falls under two categories, which are front-end and back-end development.
At this moment, we are going to stick with the front-end development.
The front-end of your website usually involves with what your visitor sees on your site.
For example, it could be the words, buttons, links, and so on.
You mainly use a client-side programming language for front-end development.
But, with the first 2 languages we are going to be talking about…
HTML and CSS are actually not programming languages.
HTML is a markup language. CSS is a style sheet language. They are the first steps of your front-end development.
HTML has everything to do with your fonts, sizes/color of text, creating hyperlinks, and the images of a website. While on the other hand, CSS is all of the background images, color, and style of your website.
They are very easy to grasp.
You can look up on google, let’s say for example, how to change the size of my headline with HTML.
And you could figure it out pretty easily.
So if you see a pop up or sliding content…
It’s the most used programming language for client-side scripting, using libraries and frameworks such as Jquery, AngularJS, React, and so on.
The back-end is the foundation of your site. Without it, the front-end could never work.
Back-end development usually consists of the database, API, security, and the speed of a site.
You also need to familiarize yourself with a server-side programming language in order to develop the back-end.
PHP is a general purpose programming language, but it’s mostly used as a server-side scripting language. It’s one of the most used languages for back-end development and is one of the easier languages to learn.
Java is a general purpose programming language that’s popular for developing enterprise applications, and it’s a good solution for high-traffic sites that needs room to grow. Java is famous for its ‘write once, run anywhere’ motto, meaning any application written in Java can be compiled to byte code and run on any operating system that supports the Java virtual Machine (JVM).
As it says here,
“While it is most well-known as the scripting language for web pages, many non-browser environments also use it, such as node.js, Apache CouchDB and Adobe Acrobat.”
Ruby is a general-purpose programming language that was made with a easy to learn syntax.
With the framework Ruby on Rails, which is a tool that helps you use Ruby even easier, you can build apps and websites in a matter of minutes. It’s actually considered one of the easiest programming languages you can learn and many people say it should be your first language.
As Ruby was considered one of the easiest programming languages you can learn, Python is just as easy, if not easier.
Python is a general-purpose programming language that’s simple, safe, fun, and generally a really good first language to start off with. Ever since Python was released, it has developed an extensive amount of libraries and frameworks that can be used for almost any situation you come across.
Software development is the act of programming in order to develop software. You can develop web apps, games, desktop apps, and software.
But what’s the best programming language to develop software?
C++ is based off of C.
Most video games are written in C++ and is a popular programming language used for desktop applications, operating systems, you name it.
Also, if you know C or C++, the other languages will be easier to learn since almost every programming language is based off of C.
Developed by Microsoft, C# is an object-oriented programming language that was made to develop Window applications.
With the .NET framework, which was also created by Microsoft, you can develop applications with ease. C# is one of the best languages for Window applications.
Python is a great resource for data mining.
With that said, Python can build programs for that purpose, but it’s definitely not limited to just that.
Python can also create more with less lines of code compared to other languages to develop software.
According to camscore, in 2015, mobile passed the amount of desktop users for the first time and continues to rise.
With that said, there’s a rising interest to create mobile apps.
But what’s the best programming language to do the job?
When it comes to developing mobile apps in Android, Java is the main choice.
As I’m going to be talking about later on, there’s environments and tools that has been built with Java for the purpose of mobile development.
Objective-C/Swift (for software development as well)
Developed by Apple, Objective-C and Swift are a general-purpose programming language based off of C.
They are the main programming languages used for any macOS or iOS development.
While Objective-C is typically harder to learn, swift was made for programming happiness, fixing some flaws in Objective-C.
But if you want the greatest customizability, I would suggest you try the other two for mobile development.
A database is where all your information and data is stored for applications and websites.
A database management system (DBMS) is software to help you manage data in a database.
There are four types of DBMS, such as hierarchical, network, relational, and object-oriented.
The one we’re going to be talking about is with the relational model and that’s where data is represented as a table.
The way you interact with that database is with:
SQL, structured query language, helps you communicate and manage a relational database. It can help you update, search, and among many other things with your database records.
Since now that you have the basic concept of what each language does, we can answer the question:
Why do we want to code in the first place?
Once we answer this question, we can better understand what coding language you may want to start with.
If you’re goal was to create job opportunities with coding, then you’re going to want to know what the chances you’ll get the job and how much you’ll make.
The first factor we are going to look at is how many job postings there are on indeed.com:
Still, while these findings are interesting, it doesn’t mean everyone should go for software development. You may be more interested in front-end development and want to pursue that field.
Now, let’s look at the average salaries from indeed:
Jobs aren’t the only reason people start learning code.
You may want to:
Build your own website
There’s many advantages of building your own website, which includes creating a start up, marketing out your own product, and creating an income.
There are many different ways to go about building your website for business purposes.
But for now, we’re just going to stick to the most two common ways to build your site; a CMS (content management system) or build it from scratch with code.
What is a CMS anyway?
A CMS is software that let’s you design and manage your site.
First of all, you need to choose from a hosted or a self-hosted CMS.
A hosted CMS usually has limited of tools and has a lot of control over your site, which is not the best option for building a business.
On the other side of things, a self-hosted CMS has various of tools and resources you can choose from to build your site. And probably:
The biggest deciding factor between the two is that you own the site.
The most popular self-hosted CMS are WordPress, Joomla, and Drupal. All three of them use the programming language PHP and uses a form of SQL for their back-end.
The beauty of a CMS is that you don’t need be to a programming genius to build a beautiful website. As you go along and get better at using them, you’ll learn how they work.
And for the most part, the tools they provide is enough to get started.
Now, if you want absolute control over your website, then I would suggest to build your website from scratch with code.
You already know that website development usually falls under two categories; front-end and back-end. You also know what programming languages you can use for them.
But what are the best choices for front-end and back-end development?
To see the popularity of each language, let’s take a look at how many sites are using a certain client-side language:
But what about server-side languages?
As you can see from the chart above, the server-side languages are a little more spread out.
Still, PHP covers an impressive 83% of all websites, while Java covers only 2.5% of all sites and Ruby covers 0.5% of all sites.
There’s many reasons for why you should choose a certain language for the back-end, such as speed, ability to grow, and so on.
Just imagine for a second, you take the time to learn how to code.
After, you build a site.
Then, you market it out and build a good amount of traffic.
With that traffic, you hold webinars on how to code on your site – free or paid.
You develop a whole program, feature it on your site, and people love it. You make sure your visitors know who you are, what you’re good at, and even what you’re not good at.
And then one day, someone discovers your site. He or she is impress with your skills and emails you with a job offer. You just landed your first gig as a programmer.
While a site can be a great way to create an income for yourself, through advertising and selling, it can also create opportunities.
If your goal was to develop software, then you need to determine what you want to develop.
And if you want some tips on deveopling a program, then go check out my what is coding article. I go through 5 useful tips that will help you at the process.
As I said before, you can develop web apps, mobile apps, games, desktop apps, software, and so on. You should pick the one that interest you the most or not. It’s really up to you.
Then, you need to decide what operating system you want to code on, such as Apple, Windows, or Linux.
Finally, you need to decide where you want to write the code.
And for bigger projects, I would suggest an IDE.
An IDE, stands for integrated development environment, is a program environment where you can write code to develop programs.
With an IDE, it contains features that was made for the programming languages they support.
For example, it can come with a debugger, source code editor, compiler, automation tools, and test tools.
But not all IDEs use the same programming languages, are built for the same purpose, or even have the same features.
Here’s a few you can choose from:
Microsoft Visual studio – the best choice for using Microsoft’s supported languages and tools for developing software on Windows.
- Runs on – Mac, Windows, and Linux
- Used for – computer programs, web sites, web apps, and mobile apps
Xcode – the main IDE for developing software on any Apple device.
- Runs on – Mac
- Supports – C/C++, objective-C, Java, Python, Ruby, swift, including others
- Used for developing software – macOS, iOS, watchOS, and tvOS
Android studio – if you want the full experience for developing an Android app.
- Runs on – Mac, Windows, and Linux
- Supports – Java and C/C++
- Used for – Android apps
Not everyone likes using IDEs and for smaller projects, a simple text editor may fit your needs better.
Since text editors only edit text, you’ll need a complier and do the debugging separately if you want to develop software, while with an IDE, it can build software in the program environment without the use of any third party programs.
Experience programmers often prefer text editors, because it doesn’t come with complicated features that’s sometimes unneeded.
Here’s a few good ones:
Sublime text – a solid text editor that comes with some neat features to help you write code efficiently.
- Runs on – Mac, Windows, and Linux
- Supports – almost any programming language
- Used for – writing and editing text
Atom – developed by the team at Github, the text editor gives a good platform to manage every day code.
- Runs on – Mac, Windows, and Linux
- Used for – writing and editing text
Game engines are specialized IDEs for game development. They come with the source code and features in order to develop a game without having to code a single line, which means you can focus more on the game and not spend hours trying to ‘reinvent the wheel’ as they say.
Here’s a few:
Unreal engine – the game engine for creating high-graphic games.
- Runs on – Mac and Windows
- Supports – C++
- Used for – macOS, Windows, Linux, Steam, HTML5, Xbox one, Nintendo Switch, Playstation 4, Android, iOS, SteamVR, Oculus Rift, Playstation VR, Samsung Gear VR, Google Daydream, and OSVR
Unity – the game engine that has more assets to create the games you want.
- Runs on – Mac and Windows
- Used for – iOS, Android, Windows, Tizen, Mac, Linux, Steam, WebGL, Playstation 4/Vita, Xbox one, Wii U, Nintendo 3DS, Oculus Rift, Google Cardboard, Steam VR, Playstation VR, Gear VR, Google Daydream, Android TV, Samsung Smart TV, tvOS, Nintendo Switch, fire OS, and Facebook Gameroom
Note: you don’t have to know how to code to build a game. But by knowing a programming language, it will help you be more efficient, doing more in a shorter time.
As you can see, depending on what you use, what you want to develop; it can be the deciding factor for what programming language you want to learn first.
1. Sell your product/service
You can create your own product/service, such as a mobile/desktop app, ebook, lesson plan, software, or digital/physical product. You can sell your product/service to them directly with a one time payment or subscription based method, depending on the type of product.
Ads are a great way to create an income for your website or application. There are generally two models ads earn revenue; pay per click (PPC) and cost per 1,000 impressions (CPM). With PPC, every time someone clicks on your ad, you’ll make a certain amount, ranging from $0.10 to $7.00. With CPM, you’ll get paid per 1,000 impressions. For example, you could have a set $5 per 1,000 impressions.
3. Affiliate marketing
Affiliate marketing is where you find products, promote them on your website or application, and then send your visitors to the product through an affiliate link. If your visitor purchases the product, you’ll get a percentage of the sale.
4. Cost per action (CPA)
CPA is where you get paid every time a visitor does an action, such as download software/app, makes a call, gives their name/email/address/phone, and so on. The CPA model is nice because you don’t always have to make a sale and sometimes the payout is high.
Once you have enough traffic, you may get companies contacting you to do a review on their product or sponsor their app. Depending on how popular your site or app is, this method can be for money or a free product.
Sometimes, all you need to do is ask. If your traffic loves your website or app enough, they may give you donations.
The amount you’ll make from each method will depend on how much traffic you’re getting, how great your app or content is, and so on. You should try to focus on one method until you’re making some money, then try another one.
How to make money from WordPress
As it says on the site, WordPress is powering about 28% of all the internet.
That’s a lot of customers.
So why not use that to your advantage?
I briefly talked about WordPress when I was on the topic of building your own site. Now, I’m going to go a little more in depth about it.
As I said before, you can either have a hosted CMS or a self-hosted CMS.
The main difference between wordpress.com (hosted by them) and wordpress.org (hosted by you).
Now, wordpress.com does have different prices where you can have more features than your average hosted CMS. But you won’t get to use any third party themes or plugins unless you pay the most expensive price.
And who wants to do that?
Anyway, what we’re going to be talking about today is with wordpress.org.
Now, a WordPress site is built with themes and plugins.
A theme is basically how your website looks to your visitor.
On the other hand, a plugin is basically an add-on with how themes function, how WordPress function, and so on.
But here comes the good part.
Because of how many people are using WordPress, writing a good theme or plugin could make you a lot of money.
Let’s take a step back for a second and do some math!
A popular backup plugin called Updraftplus is charging anywhere from $70 – $140 a year.
It says on the free version of this plugin, there’s 1+ million active installs.
Let’s just say, if 500 people of the 1 million active installs were paying for the $70 a year price, then that would come out to be $35,000 a year. You can start a business with figures like that.
And the same goes for themes.
With a good paid theme or plugin, you’ll need to have regular updates, answer questions incase anyone has problems, and so on.
It’s also up to you to set the price. You can have one time payments or monthly payments.
You can do a lot with automation. You can automate payments, rename files, automate updates, send automated emails, analyze data, and so on.
Here, you can even read about how a programmer automated his full time job from home and now only spends about 2 hours a week on the actual job.
As you can see, automation can be a very powerful tool.
But where do I start?
What programming language is the best for automation?
Do I even need to know how to program in order to automate?
All good questions. And I’m gong to cover all of them.
First, let’s cover what programming languages you want to use for automation.
Before I get into it, I want to say, it really depends on what you want to do. But my advice for a beginner is to start off with:
Python, because it’s easy to learn and has a vast amount of libraries to work with.
For getting started, I would suggest heading over to the online lesson plan called Automate the boring stuff with Python. There, you can learn how to create a program with Python that I quote “do in minutes what would take you hours to do by hand-no prior programming experience required.”
If you already know a programming language, then you should just stick with it. Because as I said before and i’m going to say again, it really doesn’t matter what programming language you use for these tasks.
But depending on what tool you want to use, also depends on…
The most common tool you can use for automation is called Selenium. It’s a tool where you can test web based applications or automate web based tasks.
Now, lets say for instance, you wanted to use Test studio, then your main programming languages would be C# or VB.Net.
But isn’t there programs you can use without learning any of these languages?
Yes, you’re absolutely right. You can even read about 9 of them right here.
Then why should I learn a programming language in order to automate?
Well, here’s a quote from Al Sweigart, the person who wrote Automate the boring stuff with Python,
“Not everyone needs to become a software engineer, but almost every office worker uses a laptop as a daily tool. Computers are such a huge productivity booster because they support a large market of programs and apps designed for these workers. But commercial and open source software have a “last mile” problem: that they don’t automate every conceivable task. There are still computing chores that require a lot of repetitive (and fairly mindless) typing and clicking. Even if you have an intern to push these tasks on, they’re tasks that require a human because there’s no software to automate it. These tasks are too small-scale or specific to your organization’s workflow for it to be economical for a software company to create a custom solution.
This is where everyday programming can save the day. A little bit of coding knowledge can let anyone write small scripts to do these tasks and save them hours (or weeks or months) of effort.”
And I couldn’t have said it any better myself.
While there are programs you can buy to automate tasks, they may not automate every task.
How could they?
By learning a programming language like Python, you can build programs that automate simple annoying tasks.
And ultimately, save you time.
Where can I learn
While picking your first language is a big step to becoming a programmer, the fact of the matter is you need to start learning somewhere.
Here’s 3 good places where you can start learning today:
- Udemy is a great place to find online courses if you’re looking to pay some money for step to step video guides. The site offers some great courses for programming, such as C# programming for beginners and Android Programming from scratch.
- Books! Ever since the internet, I know people often don’t go to books first to learn. But they still give you a lot of detail information and is a great place to learn a new skill. You just need to have the patience to read it and obtain the knowledge.
As you get better at coding, you may want to start developing a program or project.
And with GitHub, which is a place where you can post a project and work alongside with other developers on your project or vise versa, you can look at existing code to help you with a project.
It’s really up to you to decide what programming language you want to learn first.
And more often than not, your first programming language won’t be your last. But by knowing the answer to why do I want to code in the first place, you may already have one in mind.
You just didn’t know it until now.