Quora: Do you find yourself in a situation where even the best programmers and engineers ādonāt know what they are doingā or ādonāt know what they donāt knowā? How do you deal with or resolve it? respondent
-
Yuki Sonoda, Software Engineer at Niantic Labs (2018-present)
-
It would be helpful to read it in conjunction with The Intellectual Production of Engineers for a better understanding.
When we do things in areas where we are a little inexperienced, we get into a state of āI donāt know what Iām doing,ā ā[I donāt understand.
How to deal with such a situation to get out of it.
-
First, try and move it.
-
next to a systematic understanding of the concept.
-
Then a comprehensive understanding of real-world examples and available resources.
-
Finally, we need to create opportunities to practice and acquire the skills.
-
guidance documents like tutorial or Getting Started
-
Scenarios like the one in the tutorial are relatively small, boring examplesā¦ This gives me a false sense of confidence that I can understand them without moving my hands, and Iām tempted to skip them, but Iāll hold it in and foolishly follow the steps as described in the tutorial.
-
When you actually try your hand at a tutorial, you may stumble upon a wrong assumption about something minor, or some unknown terminology that you donāt understand. When you get to this point, you are only half a step away from āI donāt know what I donāt knowā.
- p.25 (1.3.4.1) The technique of sutra copying
- p.10 (1.2.2.2) Tutorial brings the goal closer
-
-
The next step is to understand the concept, using the stumbling blocks and unknown terms experienced earlier as clues.
-
When you are in a state of not knowing what you are doing, what you really need to know is not how to do it.
-
What is the structure of the technology and tools and how are they connected?
-
ā¦ While it is important to talk about concepts, if you suddenly get into this, it becomes too abstract to know what you are talking about or why the abstraction is useful. So to prevent this, it is helpful to have experienced a small example in the first step.
- Cannot put a box in the air Must be stacked in order from the foundation..
Examples and Coverage
-
However, an understanding learned by reading only abstract concepts is fragile. It is not backed up by real-life examples, so it can be overlooked unexpectedly and forgotten quickly. Also, even if you have a vague understanding of the concept and have an idea of where the solution lies, you may be at a loss as to what exactly to do with it. - Taking the top of the pyramid is not what I expected.
-
So, the next thing to do is to read good examples and also cover the resources available.
-
If you are learning a new language, read the entire standard library reference from the beginning. By doing so, you will learn a wealth of real-world examples of how the language elements you just read about in the āUnderstanding Conceptsā step are used in actual library design. Also, understanding the standard library will help you when writing code in the language, because you will know what is available to you when you write code in the language.
-
ā¦ Naturally, you will not be able to get everything in your head after reading it once. However, the process of reading through it will build a rough table of contents in your mind, and it is beneficial to read a large number of good use cases of language functions.
Acquire
-
Finally, we have the practice stage.
-
After you get this far, you can do a little problem-solving while doing your own research. Now all you have to do is actually try it and gain experience.
-
ā¦ It is normal for new things to emerge during this process that are not clear to us, at which point we go back to the previous step to organize our conceptual understanding and review what we have forgotten.
- p.16 (1.3.1) From where you want to know
- p.18 (1.3.2) Prerequisites for learning from what you want to know
- Goals are clarified.
- Goals are achievable.
- I have a broad overview of the whole picture.
- p.18 (1.3.2) Prerequisites for learning from what you want to know
- p.16 (1.3.1) From where you want to know
Summary
-
First, try it out and get it moving. Experiencing stumbling blocks by moving your hands will give you clues as to what you donāt understand, and having an image of what is working will motivate you to learn a new technique.
-
Next, understand the concepts systematically. It is important to understand the background concepts and their connections, as simply learning how to move things around a bit is difficult to apply. It is preferable to refer to organized materials here, so if you have a good book, make good use of it.
-
Then, get a comprehensive understanding of the real-world examples and resources available. The goal is to back up the concepts you understand with real examples and to increase the number of hands available for the next step.
-
Finally, practice. When you get to this point, you will know what you donāt know, you just need to gain experience.
p.v
This page is auto-translated from /nishio/åŗę„ćććć°ć©ćć®å¦ć³ę¹ using DeepL. If you looks something interesting but the auto-translated English is not good enough to understand it, feel free to let me know at @nishio_en. Iām very happy to spread my thought to non-Japanese readers.