I’ve heard of a man named
John WashamHis inspirational story of self-learning programming was once on the GitHub hot list.
In order to transform himself from a non CS self-study party into a Google software engineer, he insisted on self-study every day
8~12After several months, he got what he wanted and became a software development engineer in a large factory.
The key point is that this little brother is also happy to share. He organized his learning process of becoming a software engineer into a rich GitHub resource warehouse and opened it up (GitHub. COM / jwasham / coding interview University), which was once known as the most inspirational computer self-study course on GitHub!
I went in and had another look yesterday. Good guy, I’ve slashed so far
171k+Star, scared me to give my knee on the spot, soon!
In other words, the charm of open source projects is great. Many open source enthusiasts have participated in translating this learning note into many languages, including simplified Chinese.
If you take a closer look at this list of self-study topics, you will find that there are many things covered, such as:
- Development environment and development tool learning
- Basic knowledge of computer
- The choice of programming language
- Various data structures
- Common algorithms and algorithm complexity analysis
- Design pattern
- Operating system foundation
- Fundamentals of computer network
- software test
- System design problems
- Book list recommendation
- Interview precautions are related to interview preparation
- Learning methods and experience
In addition to these, this list of self-study even involves related topicsFundamentals of computer hardware、information theory、cryptography、computer security、signal processing 、discrete mathematics 、probability theory、Classic papers in computer fieldAnd so on. It’s very hard core.
After reading, in addition to appreciating the technical content of the author’s hard core learning topic list, what resonates with me is hisLearning attitude and learning methodsThis is also the point that I have the deepest experience.
On weekdays, I have discussed various learning methods with many friends. About self-learning programming, I also step by step through the pit. I still firmly believe that:Learning is not in but out。
What do you mean?
In the process of self-study, many people always care about how many books they read, how many videos they listen to, and how many topics they brush. It seems that these are the standards to measure whether they really learn a certain technical point.
However, it must be clear that they are only a way to acquire knowledge, not the ultimate goal. After reading so many materials and writing so many questions, how many of them are really integrated and transformed into the improvement of their own ability?
If you just do it for the sake of doing it, and put yourself in the illusion of being busy, it will become what everyone saysPseudo diligenceIt’s too late. Make yourself tired, but can’t really taste the sweet point of improving skills, this may be what you and I used to share.
So next, let’s talk about some small ideas. I’ve tried and implemented them in the past time. I feel it’s very helpful for me.
- Do a good job of overall investigation, overall control and route planning in advance。
It’s very important to make the overall planning of the learning route before hands-on learning. Reading books and brushing questions are not the ultimate goal, but the ultimate goalFocus on the formation of your own knowledge system。
If you don’t make a plan and plunge into the sea of knowledge, you will lose yourself. I found a common problem (including myself of course). In fact, in the process of learning, there are many problemsThe most painful pointIt’s often not about how to learn a specific technology, which is not the most painful point. The most painful point is that many people do not have a macro perspective on a technology (position) direction they want to learn.
Being in it and not knowing where to goI think it’s the biggest malice on the road of self-study! If you don’t plan ahead of time and plunge in, it will be easy to be discouraged by various internal or external factors. Sooner or later, a hammer in the East and a stick in the West will extinguish their enthusiasm for learning.
I think it’s very important to have real-time insight into your position in the learning path. On the one hand, it’s convenient for you to control your time and efficiency. On the other hand, it can also increase your sense of acquisition and achievement,It’s also important to have a passion for learningisn’t it?
- Do a good job of leaving marks, step by step。
Just like traveling to a place, we are used to taking photos as a memento. Every difficulty we encounter, every pit we step on, every feeling we leave behind and every achievement we achieve in the process of learning are worth recording.
I think personal blogs, E-notes, GitHub warehouses and Wiki documents are all very good ways. There is no way to go in vain. Everything in the past is wealth.
With the accumulation of time, this will be a valuable resource, which will also witness their own way of learning. Isn’t the little brother above doing the same thing?
- Summary, output and review。
I don’t know if you have this feeling. Sometimes some knowledge has to be rebuilt several times before you suddenly have a feeling of opening up Ren Du’s two channels at a later moment. Just like this little friend said:
To be honest, I’m also obsessed with this feeling.
No matter how many books you read, you can’t test whether you have really learned a certain technology. Only the knowledge that can be clearly expressed from your mouth or pen can really belong to you.
Use your own language or mind map to sort out what you have learned into a picture, which is also convenient for your subsequent review and review.
In addition, we have recently made great efforts to organize our own programming learning resources.
They are all pure liver goods. The catalogue is as follows.
The content is GitHubhttps://github.com/rd2coding/Road2CodingHas been included, there are also my collationSelf study route of 6 major programming directions + sorting out knowledge points、My resume、Interview test site、Some hard core PDF notes, andMy life as a programmerWelcome to star.
Sorting is not easy, welcome to support, see you next time!