I’ve heard of a man named
John WashamThe inspirational story of self-taught programming by a foreign brother was once on the GitHub popularity list.
He insisted on self-study every day in order to transform himself from a self-study Party of non CS subjects to a software engineer of Google
8~12After hours and months, he got his wish and became a software development engineer in a large factory.
The point is that this little brother is also happy to share. He sorted his learning process of becoming a software engineer into a rich GitHub resource warehouse and opened it (GitHub. COM / jwasham / coding interview University), which was once called the most inspirational computer self-study tutorial on GitHub!
I went in and took another look yesterday. Good guy, I’ve slashed so far
171k+Star, I was so scared that I slapped my knees on the spot. Soon!
Not to mention the charm of open source projects, many open source enthusiasts 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 it covers a lot of things, such as:
- Development environment and development tool learning
- Basic computer knowledge
- Selection of programming language
- Various data structures
- Common algorithms and algorithm complexity analysis
- Design mode
- Operating system basis
- 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, the self-study list even involves relevant informationFundamentals of computer hardware、information theory、cryptography、computer security、signal processing 、discrete mathematics 、probability theory、Classic papers in computer fieldAnd a series of contents, it can be said that it is very hard core.
After reading it, in addition to the technical content of the author’s list of hard core learning topics, what resonates with me is hisLearning attitude and learning methods, this is also one of the points I know most.
On weekdays, I have also discussed various problems about learning methods with many small partners. About self-study programming, I also stepped on the pit step by step. One thing I personally still believe in most is: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 questions they brush. It seems that these are the criteria to measure whether they really learn a certain technical point.
However, it must be clear that they are only a way to obtain knowledge, not the ultimate goal. After reading so many materials and brushing 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 plunge yourself into the illusion of being busy, it has become what everyone saysPseudo diligenceYes. I’ve made myself very tired, but I haven’t tasted the sweet spot of really improving my skills. This may be the feeling you and I once shared.
So let’s talk about some small ideas. I’ve been trying and implementing in the past, and I feel it’s very helpful to me.
- Do a good job in overall research, overall planning and route planning in advance。
It is very important to make an overall plan for the learning route before starting to study. Reading and brushing questions are not the ultimate goal, but we should do it in the endPay attention to the formation of their own knowledge system。
If you don’t make a plan and plunge into the ocean of knowledge, you will often lose yourself. I found a common problem (including myself, of course). In fact, everyone is in the process of learningThe most painful pointIt is often not about how to learn a specific technology. This is not the most painful point. The most painful point often lies in that many people do not have a macro perspective on a technology (post) direction they want to learn.
Be in it and don’t know where you’re going, I think this is the biggest malice on the road of personal self-study! If you plunge in without making a good plan in advance, you will be easily persuaded to retreat by various internal or external factors over time. One hammer in the East and one stick in the West will sooner or later extinguish their enthusiasm for learning.
I think it’s very important to have a 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 achievement and achievement,It’s also important to have a head start in learningisn’t it?
- Leave a mark and do it step by step。
Just like traveling to a place, we are used to taking photos as souvenirs. Every difficulty we encounter in the process of learning, every pit we step on, every feeling left, and every achievement we achieve are worth recording.
I think personal blogs, E-notes, GitHub warehouse and Wiki documents are all very good ways. There can be no white road. Everything in the past is wealth.
With the accumulation of time, this will be a valuable resource, which will also witness their own learning path. Isn’t this little brother above doing the same?
- Summary, output and review。
I don’t know if you have this feeling. Sometimes some knowledge has to be rebuilt several times before it can suddenly get through Ren Du’s two veins at a later moment, just as the little partner 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 the knowledge you have learned into documents and maps, which is also convenient for your subsequent review and review.
In addition, I have recently made great efforts to sort out my own programming learning resources.
They are all pure liver goods. The catalogue is as follows.
This content GitHubhttps://github.com/rd2coding/Road2CodingIt has been included, and I have sorted it outSelf study route of 6 major programming directions + combing of knowledge points、My resume、Interview site、Several hard core PDF notes, andMy life as a programmerWelcome, star.
Sorting is not easy. Welcome to support. See you next time!