Attila Vágó, web developer, materials and content engineer for eLearning, told Hackernoon how coding differs from programming and why it is becoming more and more popular.
Coding has become part of pop culture. But programming is not.
And I will explain why.
Fifteen years ago I was advised to become a programmer because I was an introvert and shy man, and had an analytical mindset and a complete lack of social life, but I only laughed and dismissed such advisers. At that time I was a teenager, and in my adolescence the programmer lived forever in the basement of my parents’ house, was pimply and wore ugly glasses, he never had a girlfriend, but it paid off the fantasies about Princess Leia (and quite often). This lifestyle was not to my liking. In addition, then I already had a girlfriend, and quite beautiful.
Let’s move on for six years: I’m sitting at the Budapest airport reading a book about HTML….
Six more years later I was employed by a North Irish startup company as a broadcaster. Yes, it seems to have taken some time. But how long exactly? I can’t say for sure. But it took a lot. The mythical 10 thousand hours? No. If I was asked to name an approximate figure, I would say that by that day I “coded” about 8 thousand hours. Technically speaking, if to believe the rule 10 thousand hours, in 2 thousand hours I would become an expert in this field.
But will I become an expert?
This is what I managed to achieve in 8 thousand hours. Sit down comfortably, because my story will be long. I coded in the following languages: C, HTML, CSS, JavaScript, Java (Android), Swift, PHP, Ruby, Python, Chuck, SQL, worked with the following frameworks: Node, Angular, Bootstrap, Foundation, React, Rails, CodeIgniter, Ionic and created target pages, sites WordPress, e-commerce solutions, content of the electronic learning environment (eLearning), sites Moodle and Totara, sites Mahara, packages Common Cartridge and SCORM, programs for Android and iOS, hybrid programs, internal web applications, e-books, magazines, games, as well as additional applications for desktop games. So, where am I going with this?
I want to say that the area itself is not, so the task of becoming an expert in it is unattainable. Coding is not an area. Informatics is, yes, but it is completely different.
Coding is what the young generation of presidents, teachers and parents are pushing to, as if they were leading sheep to the golden fields of opportunity.
This promise is a dream, propaganda is so well created and expressed (now it is not even expressed in words) that it is absurdly simplified to pictures, so that cute crawling toddlers understand that logical thinking is more important than the desire to feed themselves (please pay attention to sarcasm).
After 15 years, coding has become a pop-cultural version of programming, and now the population has high hopes for the future army of coders, through which we will have artificial intelligence-driven homes, traffic, retail, entertainment, as well as a revolution in medicine, industry and sex – just crazy, there is no other word. And all because of the fact that programming is put up for coding, and it is, in theory, easy to learn. But it is so far from the truth.
Let’s figure it out. The myth accepted as a “fact” that anyone can learn one programming language in just a few hours is only true up to a certain point, and this point comes at an early stage of learning. Indeed, you can learn a programming language in just one day. In general, if you have set yourself the goal of becoming a polyglot in programming in a month, with a job you can learn 8-10 languages if you study on weekends. But here is where the catch is. Each programming language has its own libraries as well as syntactic features, and you can’t learn all this easily or quickly or over the weekend. In fact, in the real world, a programming language is far from being the main problem.
Just because you have learned a language doesn’t mean that you know how to write a program. Add to that a myriad of frameworks, plug-ins, libraries, preprocessors, postprocessors, coding standards, industry standards, development through testing (TDD), development through behavioral implementation (BDD), Content management systems, file versioning, continuous integration (CI), release and deployment management, debugging, ticketing, cascade models, agile and scrum methods, as well as their combinations, and I’m not sure what else to call it. The point is that the concept of “encoder” covers about everything mentioned above. Programming, on the other hand, only affects a small part. An important, but still a small part.
However, programming continues to simplify…
Apple has launched Playgrounds, MIT has launched Scratch, and Lego is preparing Boost, and everyone is trying to sell coding to the young and rising generation, as if they want to fill the jobs of new programmers in the 2020s.
I see it in the following way: “Don’t worry about the code, take these virtual parts of the puzzle and that’s it, you can program”. If that were true. Here is what you need to know about programming: it is text-based. It has always been and will be for many years to come. Children playing Lego Boost, Playgrounds or Scratch will not be more experienced programmers by the age of 22 than those who started learning programming with 16 and worked with the real programming language. In fact, where do these expectations come from? I don’t think that my child will learn to earn bread himself or herself by the age of 22. But if he learns coding for 6 years, I guarantee that he will find a job quickly.
The graphical interface also has nothing to do with real programming, and logical thinking can be taught to my child in other ways. When was the last time you saw a child collecting a puzzle of 1000 pieces on a table? That’s right.
Children have a tendency to logic by default. In fact, thanks to it, they will know the world.
They will learn the value of the phrase “what-if” from their first birthday. “If I cry, my mother will fix everything, otherwise I will continue crying until my father comes (and he will probably only make it worse, but I will still risk it). Children are very logical, hence their often cruel straightforwardness. You call it innocence, and they call it a world divided into black and white. They do not have many choices yet. There are no shades of gray. All this will appear later in the literal and literary sense (at least in three volumes). In general, they are more than capable of thinking logically, but put them in front of the TV or let them use a tablet for 6 hours a day, and all this will turn into a bunch of distorted values, as such activities usually do not require intense thinking.
Coding is not the musical talent, piano, or violin that a child will need to develop muscle memory. It is an art of engineering.
Programming requires analytical thinking, a commitment to problem solving, resistance to mistakes made in trying to find the right solution, interest in technology, a sense of pride in the written code and recognition of another person’s comments and improvements, and a sense of responsibility for your code.
Correct me if I am wrong, but all these qualities are not so easy to develop. And certainly not at the age of 5 years! However, no one sells coding as the product that it is – a fascinating but difficult way to discover, success and failure and return to the beginning all year long.
Just because coding sounds cool doesn’t mean that it isn’t a good old “hardcore” programming. If anything, it is more true now than 15 years ago. Only now we wear tight jeans, thin laptops, climbed out of cellars and can even find beautiful girls.