Read the source code (III)

Previous series: " Thinking From Reading Source Code " " Thinking From Reading Source Code | Part 2 "

There is an article Why You Don't Deserve That Dream Developer Job on Medium , written by a beautiful programmer. The article can't help but sell some anxiety, but it also talks about some unavoidable issues: whether for professionals who want to continue to develop on the original route or want to switch to another path, there will be no hardships and struggles involved. Reduce by half.

If you think that your current situation is in a big pit, then it is estimated that you have to fight a little bit harder, and then you can escape the dangerous land that is ambushed on all sides. For you at this time, "desperately" is no longer a noble self-movement, but a realistic and violent response to fear. Moreover, you can't simply hand over the struggle to your emotions, you also need to use a clear and systematic way to clear the obstacles in front of you one by one.

  • If you need to consolidate the language foundation, you need to chew on the documentation.

  • If you need to improve your code skills, read the source code carefully.

  • If you need to gain practical experience, you can accumulate code.

Keep practicing, step-by-step, like you did in a workbook when you were a student.

Reading the source code is easy to worry. Before getting ready for things, I was in a hurry to get into the details and read in a daze. Sharpening knives doesn’t cut wood by mistake. Often, we involuntarily skip the process of “sharpening” and just pick up the axe and start dry.

So, what should the sharpening of the source code be like?

First, stretch and dissect each concept. For example, for the ss ladder project, it is extremely inappropriate to fall into various network protocols as soon as it comes up. You should jump out first and start examining its final output: jumping over the wall. Then, according to this concept, its functions and connections are continuously scrutinized: for example, what is spanning? What is the way to cross? In order to achieve this leaping action, what other functions are needed to support it? And what modules do you need to implement? Further, which classes are implemented by this module?

In this way, starting from the most intuitive basic point, gradually adding layers of in-depth details, and grasping the project step by step. Instead of the other way around, getting lost in the details in the first place.

Therefore, before reading the source code, it actually takes a lot of effort to consult and understand those macro perspectives. From the macro perspective, understand the necessity and original considerations of infrastructure modules, and then go deeper. A good researcher, like a good reader of mathematical proofs, will make great efforts to polish the macro concept in the early stage, clarify the motivation, clarify the starting point and connect the ideas. After that, it goes into the details, and displays the superb technology in a targeted manner.

This long exploration of the ins and outs can go a little further. You can carefully organize these bits and pieces into slides or manuscripts, and in the finishing of writing, you can further consolidate your systematic and in-depth cognition in this area.

Even, even if you haven't gained enough correct understanding in the process, you should sort out your gains, losses, and current situation. Strive to write a detailed status description report. You can fully expect to get clarity of thought and a burst of inspiration in writing this summary report.

Otherwise, you will only be led into a bottomless pit by the details, and you will not gain insight, and you will be surrounded by endless frustration and loss of confidence.

 

 

 

 

recent review

" Writing Summary in March 2018 "
" Revisiting Sheep, Pigs, and Dogs "
" Scarce Time and the Troubles of Conservation "

 

 

 

If you like my article or share, please long press the QR code below to follow my WeChat public account, thank you!

 

   

For more information exchange and viewpoint sharing, you can join Knowledge Planet:

 

   

VIP Appreciation Zone

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325143986&siteId=291194637