If you're not good at programming and want to change

  • 08 December 2021
Post image

What exactly is programming these days? What kind of process is it? Many skilled engineers and programmers don’t want to teach, or don’t know how to teach, but they don’t explain clearly. That’s why novice engineers have a hard time getting better. If you read the next few articles, anyone can learn how to program in an interesting way. That’s right. Anybody can learn how to program to some extent.
If you have arrived at this page, you are probably someone who has not been able to make good progress in programming and is about to start. Congratulations. You’ve arrived at information that will help you improve your level at once, without any unnecessary detours. If you are at the intermediate level or above, please leave now. There’s no point in reading this.

The difference between those who can do it well and those who can’t

When you were first introduced to programming in your life, what did you start with? In a book or lecture, did you learn “What is a variable? or “looping with for”, “branching with if statements”, or “pointers”? Or did you try Java or Python tutorials available on the web?
To be clear, if you started learning from these things, you are not a high level programmer. Why? Because all of the above is a means to an end, not an end in itself. On the contrary, all the great programmers and coders I’ve met say that they entered this world with a purpose in mind: “I wanted to make apps, so I started using xcode,” “I wanted to make an affiliate site, so I started using WP,” “I wanted to modify erotic games,” and so on. Moreover, many of them did not learn programming systematically in their beginner days, but rather added new knowledge while creating something.

You say, “I don’t have a goal to create something like that. I just want to work as an engineer and make a living. Don’t worry. All you have to do is copy some of the thinking of the best people in the world when you program. If you have to do programming for work, you already have a task, which is instead a “goal”, so you can try to do it with the “goal -> means” thought process.

The best programming languages are object-oriented, polymorphism, etc. These are the masturbation of intermediate and advanced users, and to be honest, this knowledge is not important.

In other words, whether you are a macro programmer or a micro programmer, the first thing you need to do is to create or implement something (purpose), and the second thing you need to do is to figure out how to do it (means). This is a matter of course, isn’t it? On the other hand, people who can’t do it well have the wrong thought process, such as researching the means without clarifying the “purpose,” or losing sight of the purpose while researching the methods.

Just cutting and pasting code from the internet.

In addition, the truth about programming is that most of it is just copying and pasting sample code from Google and changing a few things in it. You can also take a library that someone else has created and just copy and paste it into the document as it is written. I’m not just scrawling on the keyboard and making creative things from scratch one after another, I’m just combining modules that already exist.

When you think about it, it’s no surprise that a programming language that humans can understand has been developed for the unintelligible machine language, and APIs for all kinds of behavior have been created and modularized. Then, APIs for all kinds of behaviors were created and modularized, and further advanced behaviors were modularized by combining these modules. So, for example, if you want to display something on a monitor, you don’t have to send a 24-bit signal to each pixel to display a color, and then create a module to control the diodes of each light source. There are already modules to control these behaviors, and then there are modules to handle these modules, and so on, simplifying it so that you can handle it without knowing more and more details about the mechanism and control.

But that doesn’t mean that programming is easy and anyone can do it. This is because, as mentioned earlier, the most important thing is to be able to clarify the purpose, break down the tasks to achieve the purpose, and recognize the means. Also, I should add that just because you are just cutting and pasting code lying around, you cannot become an advanced user without thinking about the meaning and mechanism at all. (It’s not essential, though.)

Correct your thought process.

I definitely want you to take on the challenge of programming using the steps I’m about to describe. I know you’re probably thinking, “Why are you saying something so obvious? I know you’re probably thinking, “What are you talking about?” but I’m writing this because I’ve seen many people who don’t have this natural thought process. thought process

1. Clarify your objectives

The first step is to clarify what is to be created and what is to be accomplished. The granularity of this clarification is case by case. For example, a slightly larger objective such as “Build a popularity voting system for the website” or a smaller objective such as “Move the character image on the iOS app to the right” is fine. Large objectives and small objectives are hierarchical, and their parent-child relationship is often that of “objective” and “task”.

2. Breaking it down into tasks and enumerating them

The most difficult part of this process is “breaking it down into tasks and enumerating them,” and the difference in experience and knowledge really shows. That’s why, before you get used to it, you should definitely list the tasks in Japanese (your native language). If you can’t explain what you have to do one by one in Japanese, you will never be able to program. If you can’t explain in Japanese what you have to do one by one, you’ll never be able to program, because you won’t know what to do or what to look up, and even if you have someone to teach you, you won’t know what to ask.
I realized that most people who can’t do the job of an engineer well are not able to do this process. And there are a lot of people like that. Before you start programming, you should start by writing down your tasks in Japanese, like this
Example of implementing a voting system on a website
thought process
It’s okay to be wrong, and it’s okay to be over or under. It’s important to think and enumerate. When you get used to it, you will be able to design it in your mind without writing, but the key is to just write it down at first.

3. Google the means and copy and paste.

The rest is already easy! If you can list the tasks, all you have to do is Google each one, look it up, and copy and paste it. Of course, you need to have some experience in how to look up information and how to combine codes, but that’s not a big problem for improving your technical skills. If you write dirty code (uncode) at this stage, even if someone points it out to you, you’ll know exactly what to improve, right? Even if you make a mistake, you can fix it and improve. Yes, the only thing left to do is to grow.

4. Go back and improve.

If you can successfully achieve your goal, you’re done, but if you can’t, someone will tell you the correct answer, or you’ll see the finished code. At work, a senior engineer might say, “Oh, no problem. I’ll do it for you. I’ll take care of it.” Sometimes they do it quickly. After that, you have to look at the correct answer and back-propagate it. At this point, the cause of the failure is either 3. the means were wrong or 2. the task Breaking down was not correct. By recognizing what was lacking, you will gain programming knowledge and experience one after another. And next time, the same mistakes will be drastically reduced.

Summary

The above is the kind of thinking that can be applied to all kinds of jobs and learning, not just programming.
Whether it’s a job or a hobby, the basic premise is to create what you want, and the knowledge and know-how required for that process is just a means to an end! And if you have knowledge of a certain method, it means that similar knowledge is available for free on the Internet, and many other people have that knowledge too. What is important is how you can achieve your goal with the right thought process.
In the next article, I would like to introduce this thought process while creating something concrete.

You May Also Like