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

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.

Iā€™ll try to move it.

  • 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

systematic conceptual understanding

  • 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.

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.

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.

image 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.