About this course
What is computer programming?
Computer programming is a way of giving computers instructions about what they should do next. These instructions are known as code, and computer programmers write code to solve problems or perform a task.
The end goal is to create something: that could mean anything from a web page, or a piece of software, or even just a pretty picture. That’s why computer programming is often described as a mix between art and science; it’s technical and analytical, yet creative at the same time.
When I first started looking for courses to teach myself how to code, I realized just how much I didn’t know. My brothers work as programmers, so I’d seen the lines and lines of symbols and letters they wrote, but I had no idea what they all meant. I didn’t even know how what I saw on my screen when I was carrying out simple tasks such as shopping online or browsing social media related to these mystical languages.
I researched the subject thoroughly, but most of the articles I read were full of technical jargon that I didn’t understand. In what is a pretty common problem in the B2B tech world, I couldn’t find anything that explained it clearly and simply.
The definition above is my attempt—as a journalist first and techie second—at explaining exactly what it is, as simply as possible.
Coding versus programming
When I was looking for resources to learn to code at an affordable price, I stumbled across Codecademy’s HTML course. When I told my techie friends what I was learning, they informed me that HTML is not considered a programming language. I had a poke around Stack Overflow to find out more, and I discovered that while some seasoned programmers consider it a programming language, others don’t.
Take this answer:
Any instruction that tells the computer to do something is a programming language.
No, HTML is not a programming language. The "M" stands for "Markup". Generally, a programming language allows you to describe some sort of process of doing something, whereas HTML is a way of adding context and structure to text.
In fact, Stackify doesn’t include either HTML or CSS in its list of most popular coding languages for 2017.
This uncertainty brought me to the debate that continues to rage over the difference between coding and programming. One of the distinctions that are often made: coding is a lightweight version of programming. Programmers write serious code, but coders are often marketers, content creators (like myself), or graphic designers who dabble in a bit of HTML or CSS.
In reality, there is no real difference between the two terms!
What programming languages should I learn?
I’ve lived in both France and Spain, and part of the reason I decided to live in these countries, was because I already spoke the language in both places. If I achieve my dream of living in Italy, I know exactly which language I’ll learn to make it as easy as possible to integrate: Italian, obviously (or love and food, depending on your perspective).
Deciding which computer programming language to learn isn’t quite so straightforward; it all depends on what your goal is, what task you want to achieve, or what problem you need to solve.
Some of the most common languages include (we’re including the aforementioned HTML and CSS, despite the debate):
Some of these languages are easier and more desirable to learn than others, although that doesn’t make them any less useful. In fact, it may be more beneficial for your career to learn one of the “dreaded” computer programming languages, as you’ll be more in demand.
According to Stack Overflow’s data, the most disliked languages are Perl, Delphi, and VBA followed by PHP, Objective-C, CoffeeScript, and Ruby.
The most important question you need to ask yourself before starting to learn is:
Do you want to focus on how a website looks to users, or do you care more about how it works?
Those are two of the main distinctions between what are known as front-end and back-end computer programming languages.
What are front-end and back-end computer programming?
Front-end development involves working with code that produces the elements that users can see and interact with; it’s all about how a website looks and feels.
Back-end web developers make sure the website works as it should do, and the code they write is normally invisible to users. Back-end web developers work with databases that store information such as customer details, and servers which are where databases (virtually) live.
Both front-end and back-end computer programming jobs are creative in their own ways, but front-end developers often need to have a visual eye so they can judge what will work best for site users.
Basic examples of front-end development include that pretty-looking font on your favourite web page, or that slider on the homepage of a news site, or even the drop-down menu where you can choose your preferred option. Everything from the colour scheme to the layout to the positioning to the typography is a front-end developer’s responsibility.
The three main languages front-end developers need to know are:
The below is an example of some basic HTML coding that has determined the positioning of an image, text bolding, and bullet points.
You might also hear about other elements, such as Bootstrap, AngularJS, and EmberJS, which control how content looks on different devices such as smartphones and tablets. A front-end developer often works with user experience and user interface specialists to make sure the way the website looks, feels, and works are best for users.
On the other hand, common back-end languages include:
Below is an example of some basic Python code that is telling the computer that I want it to print the phrases (or strings) “hello” and “Karen McCandless” (my name).
To get a better understanding of when you might interact with front-end or back-end code, think about when you’re making a purchase on Amazon. When you’re searching, filtering, and going through the process of buying a product, you’ll be interacting with a front-end developer’s work. But the smooth running of functionality such as recommendations, or when you enter your payment details, is the work of a back-end developer.
Some web developers know both front-end and back-end programming languages. They are normally referred to as full-stack developers.
Why should I take a course in computer programming?
If you’re worried about finding a job in this uncertain economy, then a technical role is a good bet, with eight of the top 25 jobs this year being tech positions.
Programmers (or coders) are often portrayed as a certain type of person: geeks (mostly male) who hide behind their glasses and are socially awkward, or spend most of their time home alone playing video games. Thankfully, we’ve moved past this outdated stereotype, and coding is becoming much more accessible (and useful) to a wide variety of different job roles.
Not only have companies and non-profits introduced initiatives to get a more diverse range of people into programming, but the number of resources available to learn to code has dramatically increased.
Codecademy (and especially the free HTML course) was my saviour when I needed to learn how to code fast, so I could run a leading online news website with minimal technical resources.
Aside from online journalists who need to know basic HTML at the very least, there are other, traditionally less “technical” professions that greatly benefit from computer programming skills.
Take marketers for example. If you want to build landing pages, it helps to know front-end development languages to ensure you know what is and isn’t possible, and to ensure you’re able to make changes with minimal input from an engineering team. Or if you work in any other role at a software company, you need to understand how your product was created and works, for which you’ll need to learn to code.
I hope that, by using my journalistic skills in explaining complex subjects in simple terms, you can now understand the basics of computer programming. It’s a really useful skill to have on your resume, no matter what kind of job you’re applying for, and at what level.
The jobs of the future will involve technical skills, and you need to get a headstart now to be prepared (although you shouldn’t neglect your “soft” skills for when the robots eventually take over).