10
头图

Earlier on, I heard about an John Washam who taught himself programming, and he was once on the GitHub hot list.

In order to transform himself from a non-CS subject self-study party to a Google software engineer, he insisted on self-study 8~12 hours every day. After several months, he got his wish and became a software development engineer at a large factory.

The point is that this little brother is also willing to share. He organized his learning journey as a software engineer into a rich GitHub resource repository and open sourced it (github.com/jwasham/coding-interview-university), and was once Called the most inspirational computer self-study tutorial on GitHub!

Yesterday I went in and took another look, good guy, so far 171k+ the Star of 060ca9ea38dd1a, so scared that I slapped my knees on the spot. Soon!

What about the charm of open source projects? Many open source enthusiasts have participated in translating this study note into many languages, including simplified Chinese.

A closer look at this list of self-study topics, you will find that the content covers a lot of things, such as:

  • Development environment and development tool learning
  • Essential computer knowledge
  • Choice of programming language
  • Various data structures
  • Common algorithms and algorithm complexity analysis
  • Design Patterns
  • Operating system basics
  • Computer network foundation
  • software test
  • System design issues
  • Book list recommendation
  • Interview precautions and interview preparation related
  • Learning methods and experience
  • ...

In addition to these, this list of self-study and even involves about computer hardware foundation , information theory , cryptography , computer security , signal processing , discrete mathematics , probability theory , A series of content such as the classic paper computer field can be said to be very hard-core.


After reading it, in addition to the technical content of the author's hard-core learning topic list itself, what resonated with me is his learning attitude and learning method , which is also the point I have the deepest experience.

On weekdays, I have discussed various issues about learning methods with many friends. Regarding self-learning programming, I also stepped on the pit step by step. The point I personally still believe most is that not in learning, but out.

What does that mean?

In the process of self-study, many people always care about how many books they have read, how many videos they have listened to, and how many questions they have written. It seems that these are the criteria for measuring whether they have really learned a certain technical point.

However, it must be clear that, in fact, they are only a way to obtain knowledge, not the ultimate goal. After reading so many materials and brushing so many questions, how much of it is that you truly understand and transform into an improvement in your own abilities?

If you just do it for the sake of doing it, and you fall into a kind of busy illusion, it into what everyone calls the 160ca9ea38dfee pseudo-diligence . Tired yourself, but failed to taste the sweet spot of real improving skills. This may be the feeling that you and I have shared.

So let's talk about some small ideas. I have been trying and implementing in the past time, and I feel that it is still very helpful to myself.

  • overall research, overall planning and route planning .

It is very important to make a good overall plan of the learning route before pay attention to the formation of own knowledge system 160ca9ea38e04d.

Without planning, jumping into the ocean of knowledge will often make people lose themselves. I found a common problem (of course, including myself), in fact, everyone in the learning process the most painful point often is not say specifically how to learn a particular technique, this is not the most painful point. The most painful point is often that many people do not have a macro perspective on the technology (position) they want to learn.

in it and not knowing where to , I think this is the biggest malice on the path of personal self-study! If you don't plan ahead and dive in, you will be easily persuaded by various internal or external factors over time. Sooner or later, one hammer from the east and one stick from the west will extinguish their enthusiasm for learning.

I think it’s important to have real-time insights into where you are in the learning path. It is convenient for you to control your time and efficiency, and you can also increase your sense of gain and accomplishment. also important to isn’t it?

  • make a mark, step by step for .

Just as we are accustomed to taking pictures when traveling to a place, every difficulty encountered in the learning process, every pit we stepped on, every feeling left behind, every achievement we have obtained, are worthy of being recorded.

Personal blogs, e-notes, GitHub repositories, and Wiki documents are all very good methods. There is no way to go in vain. Everything in the past is wealth.

As time accumulates, this will be a valuable resource, which will also witness his own learning path. Didn’t this little brother above do the same?

  • summary, output, review .

I don’t know if everyone feels this way. Sometimes some knowledge has to be reinvented several times in order to suddenly have a feeling of opening up the two channels of Ren and Du at a later time, just like what this little partner said:

To be honest, I am also obsessed with this feeling.

After reading more books, you can't actually test whether you have really learned a certain technology, and only the knowledge that can be clearly expressed from your own mouth or pen can truly belong to you.

Use your own language or mind map to organize the knowledge you have learned into texts and graphs, which is also convenient for your follow-up review and review.


In addition, I have recently spent a lot of effort to organize the programming learning resources for my own use.

They are all pure liver products, the catalog is as follows.

The content on GitHub https://github.com/rd2coding/Road2Coding has been included, and there is also my own six programming directions self-study routes + knowledge points combing , my resume, , , several hardcore pdf notes , and My Programmer’s Life , welcome star.

It is not easy to organize, welcome support, see you next time!


CodeSheep
3.4k 声望7.6k 粉丝