Some Thoughts on Learning to Code
I’ve no idea when and how it started.
Almost everyone I know in China starts talking about coding; every second or third article on WeChat is about learning Python; coding becomes one of the most important skills for kids to get enrolled in a primary school, which parents are paying hundreds and thousands of fees to courses and institutes… It looks like people are getting crazy about learning how to code with a programming language.
From my point of view, at least, it is not a bad thing. It is like, finally, people know how to use a calculator to help them calculate numbers. A computer is just a giant calculator, isn’t it? We are in the 21st century and since we are human beings, we spontaneously learn new tools that appeared in this century. With these new tools, even a kid can create a cross-platform mobile app, someone with almost zero knowledge about writing software can write a script for their tasks.
However, there is something you need to know before diving into this water.
Coding is not programming, coding is not software engineering. If everyone starts learning Python and good at coding with it, it does not mean everyone can create proper scripts and software. It is like everyone can drive cars, but taxi and truck drivers are still needed. Coding is like you write your thoughts in a language that a computer understands so that it can help you do tasks you don’t want to do. That’s it. Programming requires you to have a better understanding of how a computer works and to have a broad range of knowledge about algorithms supported by mathematics so that you can let a computer supports you the best. Software engineering requires you to know how to set up the architecture of software so that it seamlessly integrates all components and lets it work for the required scenarios.
To be proficient with software engineering, you need time to get experienced. Not everyone has time to code because they have more important things than coding to do; also, not everyone has the capacity to learn to code. Coding is a tool, and it is always a tool, and not everyone can be proficient with a tool.
It actually creates more opportunities and fairness if more people from different areas can code a bit. They will realize how many things they are manually working on can be actually automated, and they will somehow understand writing software is not an easy task and why they have to pay millions to create an app. However, remember, coding is a tool to boost their productivity. It is a bad thing if people learn to code but have no idea why they learn or have a wrong perception and prediction. Coding is not a magic bullet that can solve everything. Before learning to code, one should really think about if it worths spending time on it, otherwise, it is just a waste of time. What you need to do in the end, is to give the “coding” tasks to the professionals and to focus on the real tasks you should work on.