What is programming?

Suppose that you work for a multinational company and you have an upcoming meeting with a businessman from China. Your native language is [insert local language] and you don’t speak a word of Chinese. However, you remember that your second language is English and that the Chinese businessman speaks English as well. You then begin to use English as a common language to negotiate and communicate with each other.

 

In the same way, we use languages like HTML, CSS, JavaScript, Java, etc. to communicate with the computer so that we can properly understand each other.

A computer’s native language is binary: an incredibly long list of 1’s and 0’s. Binary isn’t very easy for people to read or write, so we came up with programming languages to talk with computers, instead. Since computers don’t know human languages, we have to meet in the middle somewhere.

However, unlike humans, computers aren’t able to pick up on indirect communication and always take things very literally. If you tell them something, they will do it exactly as they are told. Computers aren’t smart enough to make decisions on their own and won’t understand information that isn’t spelled out for them. For this reason, you need to make sure that you’re giving them exact instructions.

For example, if I told you to make a sandwich, you might ask me what ingredients I want on that sandwich and if I want it toasted or not. To you, that might be all you need to know to make me a delicious sandwich. However, there are many small decisions and previous knowledge involved in making a sandwich.

If you simply tell a computer that you want a toasted ham and cheese sandwich with rye bread and mayonnaise, you might get something very different than what you ordered. A human would know that the mayonnaise goes on the slices of bread first, the ham and cheese are added second, then the sandwich is placed in the oven to be toasted.

 

But, how is a computer supposed to know all that?

Remember that we told the computer that we want, “a toasted ham and cheese sandwich with rye bread and mayonnaise.” To a computer, it might be logical to do all of those things in order. It would toast the ham and cheese by themselves, put two slices of rye bread on top, and then spread mayonnaise on the bread.

 

Aren’t computers supposed to be smarter than that?

Well, because the computer takes things literally, you have to specify the order of each step and the placement of each ingredient. Everyone knows that the ingredients go between the pieces of bread, but a computer has no previous knowledge of what a sandwich is like—it’s just following your direct instructions.

This is another reason why we can’t communicate with computers using human languages, just yet. Our languages are simply too ambiguous and too vague for a computer to understand properly. Also, if a word or a sentence might have a double meaning, a computer wouldn’t know how to interpret it. It needs everything spelled out for it.

The truth is that computers aren’t smart at all; they just happen to process information faster than us.

What is a programmer and what do they do?

Remember, you can’t just tell the computer in [insert local language] what you want. You’ll need a computer programmer to translate for you. A computer programmer is a person who communicates your ideas and instructions to a computer, making websites, games, and other programs appear on the screen.

A programmer could also be defined as a polyglot (one who knows many languages) that specializes in talking to computers. They know exactly what to say and how to say it so that the computer will understand them. If you’ve ever learned another language, you know that each language comes with its own vocabulary, grammar, and set of rules. Computer languages also come with their own way of saying things, called syntax.

While a person might understand you if you mispronounce a word, use the wrong conjugation, or mess up your grammar, a computer is a lot less forgiving with mistakes. As soon as you make a syntax error, the computer will stop listening to you and quit running the program.

How rude.

 

What are you able to accomplish with coding skills?

If you’ve ever used a computer, watched videos online, or played video games, it might be hard to believe that all of that comes from just a series of letters and symbols. The ability to process thousands of lines of code per second is the strength of a computer and allows it to follow highly complex instructions and accomplish incredible tasks.

Let’s take a look at some of the cool things you can do with code:

  • Create & Design Websites
  • Build Mobile Apps
  • Develop Desktop Programs
  • Develop Video Games
  • Create & Maintain Databases
  • Automate Tasks
  • Solve Complex Problems
  • Create AI
  • Perform Statistical Analysis
  • And much more…

If you’re interested in any of these activities and would like to do them for a living, learning to program is definitely an important skill to have.

 

What makes coding useful and what is it good for?

As we rely more and more on computers in our daily lives, the importance of computer programming and coding continues to grow as well.

In the coming years, nearly all fields will involve computer programming and learning to code will give you an edge in your future career. For example, you can use programming skills in the areas of writing, analysis, management, engineering, software development, and so much more.

Advocates of programming see learning to code as a universal skill that everyone should have, such as the ability to read and write or perform simple mathematical equations. Many governments around the world believe this as well and have proposed initiatives to teach coding to kids alongside core curriculum in schools.

Just like us, they see coding as the key to staying competitive in a global marketplace.

 

I already know it’s useful, but what is programming actually like?

The average day in the life of a programmer isn’t as glamorous as it might appear in movies or on television shows.

Being a programmer requires a lot of concentration, patience, and a self-driven attitude. If you aren’t able to sit down and focus for hours at a time, you might want to reconsider pursuing a career in computer programming.

Some programming jobs may require you to work on an irregular schedule and be available to fix bugs and solve problems immediately as they appear. Others may have you work from nine to five o’clock, just like a regular job.

However, working as a computer programmer might give you more freedom than your current job allows. A good number of programming jobs are remote, meaning that you can code while at home, at a café, or while you get a tan at the beach—given that the wifi signal reaches that far.

 

Is programming really right for me?

This is where the rubber meets the road and where you’ll have to seriously weigh the pros and cons of a job in programming. Perhaps, you’ve had an unrealistic idea of what programming is like and haven’t considered that coding is just like any other job out there—it’s still hard work. However, if you meet the following criteria, chances are that you’ll love every second of it.

Signs that Programming Isn’t Right for You:

  • You are only motivated by the money and aren’t interested in computers at all
  • You don’t like to sit down for long periods of time
  • Your eyes glaze over when you look at a page of code
  • You are relatively slow at typing and often make many typos

Signs that Programming IS Right For You:

  • You describe yourself as both analytical AND creative
  • You have high attention to detail
  • You are comfortable working with others and working alone
  • You have a good basis for understanding written English
  • You love problem-solving
  • You love to always learn new things
  • You adapt well to change
  • You like to organize information and automate processes

 

What programming languages do I choose and where do I start?

Let’s go back to the example of our meeting with the Chinese businessman.

Although English may be useful in a business setting, you might find that you need to learn other languages for different fields. For example, you might want to know French for diplomacy, Greek for philosophy, and German in the field of engineering. Depending on what field you work in, you will choose a specific language to meet your needs.

You won’t have the time or ability to learn every programming language out there, so you’ll need to be strategic about what languages you will learn. First, you need to determine what your focus is and what languages you need to know to accomplish your personal goals.

While technically not programming languages, HTML and CSS are great languages to start with to begin learning the fundamentals of how programming works. HTML and CSS are “text markup languages” which are actually languages that we use to format and organize the text. Without HTML or CSS, your browser wouldn’t know if these words I’m writing are a headline, a paragraph, or a footer. It also wouldn’t know if these words should be bolded, italicized, etc.

Even as I write this article, I am using HTML and CSS to help you and your internet browser understand what I have to say.

 

TL;DR (Too Long; Didn’t Read)

In summary, programming is a high-paying career that requires patience, dedication, and extremely high attention to detail.

If you hate sitting down at a computer and aren’t willing to put in the time to practice, you’ll likely hate programming and give up rather quickly. You also won’t do well if you are motivated by the paycheck and have no interest in the job itself.

However, if you love learning new things, are self-motivated and have a can-do attitude, you’ll succeed—regardless of your educational background.