Why do seniors tell us to print Hello World?
When you ask seniors for advice on how to improve your technical skills, one of the most common pieces of advice you'll hear is to 'print Hello World'.
Of course, they don't mean just printing Hello World and stopping there. I believe it's advice that signifies 'starting is half the battle' while also containing various other meanings. If someone were to ask me where to start when they want to learn a new technology but feel overwhelmed, I would also tell them to output Hello World in some way.
You could display it in a terminal, store it in memory, or save it to a database – there are many ways. After that, I believe that directly triggering an action in an operation (regardless of its form) by utilizing input/output functions and then further refining it can create a huge difference in understanding compared to not doing so.
Of course, simply printing it out yourself doesn't make a huge difference, but I believe that by doing it yourself, new and different questions can arise, and these questions can lead to the next step of learning.
Output-Based Learning #
I think many people typically approach learning by cramming in a vast amount of input, much like studying for school exams. This is especially true if you've followed the educational curriculum (elementary-middle-high-university (tbd)) in South Korea. I believe this is because, in that system, exam scores are absolute, and you are ranked and recognized based on those evaluated scores.
Do you think it's good to just cram in a lot of input when studying development? Almost no developers would answer yes to this. (At least, if the goal is fundamental development, excluding certification exams.) The proposition that simply inputting is inefficient is not exclusive to the field of development.
Software development is about creating something intangible, and for those who develop something and release it into the world to innovate, whether it has a physical form or not, it's difficult to know everything. The pace might be too slow, making it hard to adapt in a rapidly changing market.
That's why various methodologies like MVP or Agile are emerging, and similarly, learning is best done on an output-based approach. First, set a goal to create something, and then you can efficiently explore the inputs needed to achieve that output and determine which direction to take.
If you try to learn all knowledge by brute force, all knowledge will have the same weight of 1, making it impossible to know what's important, and it won't stick in your mind easily. Your brain might either think less weighted knowledge is unimportant and try not to remember it, or it might think everything is important, leading to cognitive overload and difficulty in processing.
Output-based learning is different. First, there's no single right way, but you'll start to see the inputs that seem critically necessary. How will you see what's needed? Won't you get stuck while building? Won't you raise questions yourself? The questions you ask yourself should be identified as the most highly weighted knowledge among the inputs you need.
Hello Wolrd #
Now, coming back to it, the meaning of Hello World is also equivalent to 'create an output'. In other words, it means to create many questions and assign weight to specific inputs. The more outputs you create, the more inputs you'll need. If there's no output, there are no necessary inputs.
In conclusion, the advice to 'print Hello Wolrd' itself means to create many outputs. In development terms, it means your search engine's algorithm hasn't learned what its goal is yet, so set clear outputs and tune it. Make it learn on its own. It means to think for yourself and store the knowledge you need as you go.
And once you've accumulated a good number of outputs, there will come a time when you'll be curious about deeper concepts. At that point, try a study method where you significantly increase your input, reading books or thoroughly reviewing documentation over a broader scope. Then you'll be able to quickly skip over what you already understand, and with the thrill and enjoyment of new knowledge, you will succeed explosively.
Tuning is inefficient if any one aspect is extreme. This applies to computer resources, and also to your strategy. The same goes for your brain. Therefore, let's tune your learning engine with an accurate output/input ratio and learn efficiently. The moment you realize it, you'll be an expert.