We are all programmers, and we are all learners. It’s surprising to see how many people(learners) who are bashing their head against the walls thinking they are learning to program.

You might be learning a programming language instead of programming itself

Don’t feel surprised to know that computer science does not study computers. Instead, it’s the study of automated problem solving using computers. Problem-solving is computer science, not programming. That’s why many computer science students seem not to understand why they learn algorithm or mathematics.

If you have been to a computer science class before, you won’t be surprised by what I am saying here. Because you would have noticed that programming has few to do with programming languages. Ask yourself why the pseudo code is so common in those classes.

But, most self-thought programmers always fall into the trap. We learn programming language for decades before we realize what exactly we’ve got to do: programming. I myself have been a victim.

I took more than a decade learning bit by bit various programming languages. The more I learn, the harder it is to build something simple. I have had that sensation of not finding the right tool. But, the issue is that I forgot to look for the right job to do instead of the right tool when I don’t even know the job to do.

And the strange things with programming languages is that they always evolve. Programming languages change almost every single day. It’s very hard to follow up. And most good programs use only a little part of a programming language.

The problem with learning programming languages first is like learning how to use a carpenter saw, a hammer, and all sort of cutting machines before learning carpentry. Carpentry requires attention: ideas, analysis of feasibility, measurements, tests, customer behavior. The boss carpenter will be more interested in those things than the hammer and nails. During his scientific study of the job, he would also take time to check the quality of the nails, colorants, woods, etc.

What is the difference between learning programming and learning a programming language?

To program is setting a system free to operate by giving it instructions only once. We do that every day in everything. We teach our kids, our soldiers, our customers. We give them or we receive instructions to be free/independent to live in a given way. Your parent doesn’t need to follow you and instruct you on every move you make in your life. They would have already programmed you in many aspects of life.

Most schools and educational websites will teach a programming language’s syntax. They could add some design patterns(while you ignore what exactly design is), a few arithmetic calculations, how variables are declared and how to use them, the data types and how to declare/create them.

This does not teach you reasoning. With such method, you will discover reasoning methods, but later. It will make you feel like you wasted or it took a lot of time to learn to program.

We solve problems with programming and programming languages are tools which help us do that.

They are like tool boxes. We call them frameworks. They help you organize your thoughts.

If you are learning to programme and you can’t still plan and code a real application, it means you are learning more about the programming language than programming.

How many time do we meet people(learners) who still wonder how to create a program. To a programmer, a program is a problem to solve. He solves it with critical analysis, before even involving any programming language. When you solve any problem, it can be coded in any programming language. Let’s take the case of the square. To square something, we times it by itself. We could have it implemented in various languages like:

  • In C
    int square(int x) {
        return x * x;
    }
    
  • In PHP
    function square ($x){
        return $x * $x;
    }
    
  • In JavaScript
    function square(x){
        return x * x
    }
    
  • In Sheme (a Lisp dialect)
    (define (square x) (* x x))
    

You can notice that only the syntax matters in the implementations. The solution is the same. And this is one of the main reasons why you can almost use any programming language at which you are more comfortable to build any type of software.

It’s easier to discover a language through programming

The issue generally is the human language. The human language is fraught with limitation and errors. It’s impossible to use to instruct machines since they can’t feel.

When learning to programme, you would learn a new jargon and new tools to help you write your logic in a manner that computers or other programmers could understand and agree on.

Usually, you would start from a simple and human-language-like symbolic called pseudo code. It’s a good transition tool from human language to computer programming language. That is usually done to prevent you from wasting time on the language. That way you have full focus on reasoning. Through that, you will discover core parts that make up a good programming tool(language). You understand what exactly is needed. You understand the core goals of a programming language. With that, you learn it without realizing when you did it.


REFERENCES

[1] zooboole. Learning programming is different from learning a programming language[EB/OL]. (2018-02-05). https://phpocean.com/blog/article/learning-programming-is-different-from-learning-a-programming-language/80 .