How to Study and Make Use of Coding
How to Study and Make Use of Coding
  • Egoing
  • 승인 2017.09.06 13:11
  • 댓글 0
이 기사를 공유합니다

During the last seven years, I have been teaching coding online and offline under the name of ‘Coding Everybody’, and the most frequent question that I have received was ‘how to study coding’. There is no answer to this question and my thoughts are changing continuously, but my current opinion is this.
Firstly, I would like to suggest we should ponder on the reason why we study. The ultimate reason why we study is not because of school grades, but to solve problems in our lives. If the problem itself is more challenging than studying, then studying becomes the way out to solve the problem, and if studying is more challenging than the problem itself, studying shall become another problem and restrain our lives. In most cases, students start studying coding because they simply believe it will come in handy in the future, without any sense of purpose. Such study inevitably restrains our lives, because our brains naturally like studying as long as it is perceived to be the way out of solving problems.
I personally often use the term ‘not universal software’. In the world, there are personal software used for personal purposes and universal software to be used by many people. For those who have been living their entire lives as consumers of software, they are more likely to answer ‘universal software’ to the question of ‘which software among universal and personal is more ubiquitous’. This is because they are more used to universal software.
My point is this. In metaphor, our world is like a sea of personal software, with islands of universal software sparsely located on the sea. It is indeed a valuable thought to make universal software from the beginning, but it is not realistic. I would like to suggest you to start from personal format and gradually broaden to universal format. The reasons why I encourage you to do so are as follows.
Firstly, you are the most important figure in your life. Who do you come up with as you hear software? You may think of Bill Gates, Mark Zuckerberg, and many more. They have created software that is used by hundreds of millions of people. However, the most important person is not someone whom you haven’t even met, but yourself. It is a worthwhile thought to create software to solve own problems.
Secondly, it is much easier to develop personal software than universal software. Even for a problem that can be solved with two lines of codes, the usability must be considered to let elderly people and kids to use without difficulty. Also, in order to protect your software from malevolent users, you should care about a security system. As your software becomes bigger in size, many users will spontaneously utilize your software which bears lots of additional problems. Then, it will become inevitable to cooperate with other software makers, and during such a team project, maintaining the team is even more difficult than the coding itself.
Thirdly, life is finite. If you think about it, every renowned software maker who has shown exceptional talent in coding was available to execute only a small number of universal software projects. For example, Linux is an open source project started by Linus Benedict Torvalds in 1991, having been used by more than billions of people until now. The number of lines of codes just to maintain its core structure is 15,000,000, and it is a massive project in which thousands of engineers are participating in as an open source format. Torvalds has devoted almost 20 years of his life for this project, and he must have created a countless number of personal software for personal purposes during this project.
If the software that you create comes in handy for you, that software may also be useful to someone around the world. On the other hand, if you create software that you don’t even need, then that software may be not helpful for anyone.
As you gradually develop and improve your own personal software, there is a limit in investing your own time and effort. This is an important crossroad. You may finish the development and use it as personal software, or you may invest more to develop it into universal software. I think this is indeed a genuinely natural course.
If you are just to understand coding as liberal arts or a second major, you can just study coding. However, if you are to solve problems with coding, then you must be able to write codes. During coding, you may encounter problems and feel limits with your coding skills. However, as you study codes and get to know various kinds of sophisticated codes, you won’t even be able to solve problems because your head is filled with various kinds of possible codes as you encounter problems and feel it is hard just to get hold of them.
Study minimally and utilize the knowledge that you have gained as much as possible. That gives you maximum sense of accomplishment. However, it won’t last forever. Soon, you will encounter another problem that you cannot solve with current knowledge. As you feel just enough frustration, study enough to overcome the challenge. Then, utilize the gained knowledge to the maximum. Such circulation of encountering a problem, feeling frustrated, study minimally to utilize the knowledge to solve the problem, will make you into a person who likes studying and solving problems.