Programming is easy to start with, but hard to master. In our IT program we mostly use JavaScript and for that you only need a text editor and a browser. But to become good at programming it takes time, effort, and persistence. In this post I will look at why programming is so hard, what you can do to make it easier, and why it is such a useful and important skill to learn.
Why is programming so hard? I think there are two parts to the answer of this question. The first part is that the tool we use, computers, have become incredibly complex devices over time that still require very precise instructions to work. The consequence of this is that it is very easy for things to go wrong and fixing them may require a lot of knowledge about the internals of the computer. The good news is that this can largely be avoided when starting to program (that is, most complexity can be avoided, but you still have to be very precise). The second part of the answer is that learning to solve problems requires a lot of practice. Programming is a great tool to solve problems but there are so many different problems and so many ways to solve them that you have to learn to recognize common patterns and associate them with common solutions. The only way this can be learned is through practice, but it is very easy to get discouraged. Let’s see what can be done about that.
What can I do to make programming easier? There is no one single answer to this question but many small things you can do. Here’s a list with some suggestions that should help:
- Learn by doing. There is only one way to learn programming: by doing it. You won’t learn it from reading a book or discussing it with someone else. You have to put in time to work on problems, easy ones at first, and then gradually increasing the difficulty.
- Make a little bit of progress every day. Putting in consistent efforts will make you go a long way. Not only will you practice more, but by doing it often your brain has the capability to solve problems even when you’re not working on one. While this sounds like magic every programmer has experienced this. But it only works if your brain knows about the problem, so programming often helps. Another advantage is that a fresh look at problem often leads to new insights.
- Get rid of distractions. For example, this means that you should turn off (most) notifications on your phone because programming needs your full attention. It is hard work to keep track of what all the pieces of your program are doing, the different variables and functions and their interplay, and an interruption will not make this any easier.
- Ask someone more experienced for help when you get stuck. Getting stuck can be discouraging so it is a good idea to ask someone more senior to help you solve an issue. This will usually be easy for a more experienced programmer (e.g., your professor) and then you can continue with the next steps. Enjoy this luxury while it lasts, when your programs get more complex it will be much harder for outsiders to help solve your problems. See here for suggestions on how to ask questions.
- Remember that the main difference between you and a senior programming is experience. Initially, all problems look difficult because all of them are new to you. Over time you will learn to recognize them and instantly know how to fix them. The only thing required is that you learn from your mistakes.
Why is programming so important to learn? There are several reasons. The first one is that it can be a lot of fun and it’s very satisfying to solve a problem. While at times your may not feel that way while solving the problem, once you get everything to work it’s great. A second reason is that programming is very empowering: instead of relying on other people to solve problems for you, it is possible to write a little program (perhaps as a prototype initially) to get this done. Google was started by two people who thought they could generate better search results, and Facebook was started by someone who thought sharing photos and information on a university campus would be useful. If these individuals did not know (or learn) how to program, the world may look very differently today. A third reason is that there is a huge demand for technical people, specifically programmers and software developers and engineers. This is reflected in salaries as you can easily check yourself. Finally, and this is an important point, there is an ongoing trend (e.g., see this) where many things are being automated. Programmers are uniquely equipped to facilitate this process. In other words, by becoming a programmer you will prepare yourself for the world of tomorrow!
1 comment on “The Skill of Programming”