The 3 Myths of Learning Programming Languages

Charles Manfre

Are you yet to learn your first programming language?

Why is it that you’re putting it off?

If you think it’s going to be too hard, like learning a real, spoken language – you are wrong.

In fact, you’ve fallen victim to what I like to call The Big Programming Language Fallacy – the mistaken belief that programming languages are analogous to real languages.

If you’re a victim of the Fallacy, you probably think that programming languages…

  • are the ‘languages of computers’
  • are foreign and hard to read, and
  • take years to learn.

Let me tell you that all three of those beliefs are myths.

Continue reading to watch me disprove these three myths, and to discover that learning your first programming language is easier than you think.

Myth 1: Programming Languages are the ‘Languages of Computers’

A quick Google search reveals that people are saying things like this…

How do I get fluent in Python?

These people apparently think that learning a language like Python means…

  • learning to ‘speak to the computer’,
  • learning to ‘think like a computer’, and
  • becoming ‘fluent’ in a language not ‘native’ to them.

They’re wrong.

In fact, the vast majority of the time, programming languages are designed exclusively for people like you and me.

Here’s why…

In the context of computer science, there are low-level programming languages and high-level programming languages.

A low-level language like assembly language actually does speak to a computer directly – performing a long series of processor operations, one byte at a time.

But assembly language is only the 19th most used programming language in the world today. The vast majority of modern programmers write only in high-level languages like Python.

Here is the Collins English Dictionary definition of ‘high-level language':

a computer programming language that resembles natural language or mathematical notation…

High-level languages resemble natural language, and use concepts like mathematics and logic, because they are designed to be easy for humans to understand, not computers.

Learning one of these high-level languages doesn’t mean learning to ‘speak to a computer’. The whole reason they exist is so that we don’t have to.

So if high-level languages are designed to be easy for us to understand, what does one actually look like? Continue reading to see an example…

Myth 2: Programming Languages are Foreign and Hard to Read

If you were to attempt to read some text written in a language foreign to you, you may be faced with…

  • a different alphabet to the one you’re familiar with,
  • unfamiliar grammar rules and syntax,
  • and most dauntingly, a whole new set of words you’ve never seen.

But if you were to read some high-level programming language code, you’d be faced with none of those things.

Let me prove it to you…

Take a look at this code written in a programming language called SQL:

INSERT INTO Table
VALUES ('1', 'SQL', 'Programming language')

For the purpose of this example, let’s assume your primary tongue is English, and we’ll compare that to SQL.

Firstly, the alphabet is most certainly not foreign. All the characters used can be found on a standard Roman alphabet keyboard.

Secondly, look at the grammar rules and syntax. While there’s a bit of deviance, ‘insert into table’ is familiar and readable. As an English speaker, you’d have little trouble figuring out the meaning of the code.

Lastly, look at the words. Every word there is pre-existing in the English language. No foreign words, no difficult pronunciations, no scratching your head working out the meaning of each word.

Granted, programming languages do invent abbreviations – such as regex (regular expression) and varchar (variable character), just to name a few.

But at the end of the day, the full ‘lexicon’ of a programming language is derived entirely from a real-world language – whether that be English or any other tongue.

This is why programming languages aren’t languages at all. In fact, you could say programming languages are really more like dialects than languages.

Learning your first programming language now doesn’t seem so hard as learning a real-world language. And as you’ll see next, it doesn’t take as long either…

Myth 3: Programming Languages Take Years to Learn

To learn a foreign language, you need to learn…

  • the vocabulary (so that you have the words to express your ideas),
  • the grammar (to be able to string them together into sentences), and
  • the ability to read, listen, pronounce and speak.

That’s a lot.

So it comes as no surprise that it can range from 23 weeks up to 1.7 years, and beyond, for an average native English speaker to pick up a new foreign language.

Learning a programming language would probably take just as long, if not longer – if they truly were designed with computers in mind, and were foreign and hard to read.

But we already know that’s not true…

Learning the commands and functions of a programming language (the equivalent of learning the vocabulary of a real-world language) is made a lot easier by the fact that programming languages use the same words as an existing language (almost always English).

Assuming you speak this language, that’s a huge chunk of learning time eliminated.

Similarly, learning to read the language is not such a big deal. All the words will be familiar to you, and as we’ve seen, deciphering programming language code is not that hard.

Learning the syntax of a programming language (the equivalent of learning the grammar of a real-world language) isn’t quite so easy – but remember that high-level programming languages are designed to be easily understood, so it’s not ridiculously hard either.

Finally, the challenges of learning how to listen, pronounce and speak are literally non-existent. I don’t know about you, but I’ve never heard anyone speak out loud in a programming language.

So as you can see, there’s not nearly as much to learn in a programming language as there is in a real-world language. And less to learn means less time needed to learn.

In fact, there are stories online of people who have learnt a programming language and achieved results in mere months, even as little as 12 weeks.

Years? I don’t think so.

Bottom Line…

Programming languages are easy to read, quick to learn and designed with people like you in mind.

So why not make today the day you finally learn your first programming language? After all, now you have no excuses left!

Do you find learning a programming language easy or hard? Share your thoughts with us in the comments.

And if you enjoyed reading this post, you’ll love Learnable; the place to learn fresh skills and techniques from the masters. Members get instant access to all of SitePoint’s ebooks and interactive online courses, like HTML5 & CSS3 For the Real World.

Comments on this article are closed. Have a question about learning a programming language? Why not ask it on our forums?

Win an Annual Membership to Learnable,

SitePoint's Learning Platform

  • http://r.je TomB

    I strongly disagree with point #3. It may be possible to learn the basic syntax and commands of a programming language in a short space of time, that’s a tiny element of learning to program.

    Sure you can learn to hack something together that works, but to continue your analogy of programming languages to real languages, being able to say “Me tom. To meet you be nice” is different than being able to write a book with chapters, a narrative, keeping a consistent tenses and using eloquent language that keeps people interested.

    Learning the vocabulary and syntax is probably 5% of learning how to program. Once you consider variables, types, data structures (which have no direct equivalent in spoken languages), programming paradigms (e.g. procedural/functional/OOP), design patterns and best practices, there’s a lot more to “programming” that just learning how to call a few functions.

    • http://www.codeconquest.com/ Charles Manfre

      You’re right Tom, but this article is aimed at those who are yet to learn their first programming language. To become a pro, you do need to learn all of the things you mentioned – but if you’re just starting out and writing your first few simple programs, you don’t need advanced techniques like that. And that’s part of the fallacy.

  • http://daihuws.me.uk/ David Hughes

    But how common are these misconceptions? I don’t honestly think that I’ve ever subscribed to points 1 and 2, although I put that down to me being just about old enough to have owned a computer that you practically needed to learn BASIC to get the best out of (the venerable BBC B).
    Point 3, I’m not so sure about; it depends what we mean by being able to program. Within a few weeks one could learn to do basic tasks, but I’m of the opinion that to truly master computer programming takes years of effort.

    • http://www.codeconquest.com/ Charles Manfre

      Hi, David.

      To truly master computer programming does take years of effort, you are right there. But to grasp the basics of your very first programming language doesn’t take nearly as long.

  • http://www.optimalworks.net/ Craig Buckler

    Hmm, OK, the rules of chess are even simpler — but that doesn’t make me a grand master.

    Programming is the application of techniques and algorithms to solve problems. It rarely matters what syntactical rules are required; only practice will make you a programmer. It’s relatively easy to start but will take time to become proficient. Years? I’m afraid so: the more you learn, the less you realize you know!

    • http://www.codeconquest.com/ Charles Manfre

      Hi, Craig.

      I think you’re forgetting what it’s like to be a beginner. I’m not saying that it is super easy to become a grand master of programming, the article is aimed more at those who are at the stage of grasping the basics of their first programming language.

  • Jason

    I find programming learning languages pretty easy. Once you wrap your head around booleans, decision structures, and loops, it’s simply a matter of learning the syntax and idiosyncrasies of the particular language.

    I have a friend, who is quite smart, who wanted to learn PHP so I gave her a couple of my books (including one by SitePoint) and she couldn’t wrap her head around it. She took JavaScript through the local community college as part of her web design course, and if it wasn’t for my help, she would’ve failed. She can read and understand what code does; she just can’t write it.

    It also helps if you can think abstractly when building larger projects. I’ve seen some horribly written code, while syntactically correct, is a nightmare to maintain because simple concepts such as DRY have been ignored (in the same file).

    So I don’t think programming is something that everyone has an aptitude for, let alone doing it well.

    • http://www.codeconquest.com/ Charles Manfre

      Hi, Jason.

      That’s an interesting story. I don’t personally think it’s impossible for some people to learn code, only that it’s harder for some people than others. It goes to show the difference in aptitudes there is between people.

  • http://www.jamesfend.com James Fend

    Great article! Thanks for featuring my blog article in it…

    • http://www.codeconquest.com/ Charles Manfre

      Glad you liked it, James.

  • http://webdesignpop.com Michael

    These myths may be easily shot down, when put in the context of a “language,” which is really just proven as a misnomer. Learning to write “code” is the difficult part since, as you pointed out, most of the language of code is pretty semantic, which needs to be for humans to even bother with it. It’s assembling the many, many variable parts of the language into proper, readable and effective code to render the desired and optimal output that’s the trick. On top of that, rules for it all are pretty dynamic, so what you were just learning yesterday may be outdated or shunned by developers tomorrow.

    • http://www.codeconquest.com/sitepoint/ Charles Manfre

      Hi Michael, glad you liked the article.

  • http://www.codeproject.com/Members/Muigai-Mwaura Muigai

    Some languages are easier to learn than others; I wouldn’t describe C++ for example as easy to learn or read, Python however would qualify. Also facilities such as interactive debugging and a REPL can make it easier to learn a language.

    • http://www.codeconquest.com/ Charles Manfre

      That’s true, and how hard a language is to learn or read depends a lot on how high- or low-level it is.

  • AdamP

    While I agree with you Charles, that people shouldn’t be ‘frightened’ out of learning a programming language, there is a huge difference between relative understanding and proficiency. It is that difference that draws the line between a programmer and an enthusiast.

    If one wants to make a career as a programmer, then learning the language makes sense. If a full-time designer wants to dabble, it does not make sense to try to pick up a language. Their time is much better spent learning new techniques in their own realm.

    If you are going to learn a programming language, you should ensure that the knowledge is solid enough to support your career in some way. If there is real value for you, then yes, jump right in. Otherwise, don’t waste your time.

    • http://www.codeconquest.com/ Charles Manfre

      Good advice, Adam.

  • Jesus Ruiz

    Thanks for the inspiration!