Hello, I am crooked.
A few days ago, Zhihu sent me a question. I clicked in and took a look. Good guy, what happened to my blood pressure.
I will repeat the question first. The chat record is relatively long, but it is easy to be impulsive in the process of reading, and pay attention to controlling emotions:
In the end, the questioner still said: By the way, could you please analyze my way of thinking? What kind of person is he?
can't stand it
How, how do you feel after watching it?
Anyway, after reading it, I said "I can't stand it".
I even once wondered if this master had any reason to fall into the hands of the apprentice?
This is a conversation with a very strong sense of dislocation, and I think the reason for the sense of dislocation is that the two people have different perceptions.
Master, a big factory programmer who is working hard in the workplace.
Apprentice, a simple rookie who is ready to enter the workplace.
This master has been mentioning: interviews, jobs, offers...
This apprentice has been mentioning: principles, underlying layers, details...
If it is said that this apprentice learns programming knowledge purely for hobby, learning to play, and does not want to rely on this thing to make a living, he just wants to study and study what programming is.
That's very good, the apprentice is fine, and he is an academic school worthy of encouragement.
But from these two sentences, I guess that this apprentice is not learning programming purely for hobbies, but also wants to find a job and enter the ranks of programmers:
Based on the advance of "want to interview", his question:
I ask you programmers, is my way of thinking wrong?
There is a problem, that is quite a problem!
Not only is there a problem with the way of thinking, but the entire dialogue style is problematic, giving people a feeling that emotional intelligence needs to be improved.
I don't mean to criticize him, I just want to share my opinion based on his question.
way of thinking
Let me tell you a story from my college days.
My major in university is computer science, and this major is to learn analog circuits. But that year, my class was a complete mess. I couldn't understand the teacher in class, and I thought it was too difficult.
Before I knew it, it was time for the exam.
Before the exam, I downloaded a whole set of video related to modding. After abruptly gnawing in the library for a month, and stumbling, I finally finished watching this set of videos near the end of the term.
I was so moved that month that I felt really awesome: I actually gnawed on such a difficult thing.
On the way to study, I am afraid that I will go astray, and I am also moved by myself.
In the end, when I went to the exam, I found that in fact, everyone could pass the exam. Because most of the exam questions are after-school exercises in the book, everyone should focus on the after-school exercises for a week.
Later, I reflected on it, and I felt that it was just too stupid to watch a month-long TV video in the library, and it was just a waste of my time.
I am totally using my time in the wrong place.
I remember that there were some difficult points when watching the video.
I regret it now thinking about it.
I could have just made a surprise attack for a week, but I foolishly spent a precious month, and it was very uncomfortable to learn during that time.
If I go back to college with my current knowledge, I must find myself who was eating analog circuit videos in the library at that time, and I just slapped twice when I went up:
Let's review this together.
First of all, my original intention of watching the model TV is just to pass the final exam, not to fail the course.
Second, the time for the final exam is fixed, so my time is very limited and it belongs to my resources.
In the end, I was alone in the whole process, and no one even knew that I went to the library every morning and came home late, and a considerable part of the time was watching analog TV.
As a result, you also know that such an input-output ratio is very small.
This situation is actually a bit like the apprentice who asked the question:
First of all, his purpose of learning these things is to enter the programmer industry, as long as he can pass the interview.
Secondly, even if he stretches the time line to one or two years, in the end, the time is limited.
But he is better than me in that there is a master, a person who has come over, and told him: don't look at this thing first, it will not benefit you much, go ahead and conquer other things that are more valuable to you at present. .
Like I said, someone came over and gave me a slap when I was watching a mod, and said: You might as well spend a month to watch this thing, and you might as well spend some time typing a few lines of code.
I was able to wake up, but, no.
At that time, I was still in a strange circle, and I would go to the horns when I saw something I didn’t understand, and I wanted to try those extra difficult questions. Study the different spellings for "fennel".
That's a sign of not prioritizing things.
able to prioritize things is a very, very important thing!
This apprentice seemed to have entered the same vicious circle as me, but he didn't know it.
But he is more serious than me. Someone gave him directions, and he still has to think that what he insists on is right.
Here's another example from a book I read earlier.
If you are engaged in Java development, then you must know that there is a book called "In-depth understanding of the Java virtual machine".
The first time I read this book was the National Day in 2016. At that time, I had only graduated for 3 months, and the knowledge reserve about JVM was 0.
But I knew at the time that this was a very good book, so on the National Day of that year, I spent the entire National Day turning over the book page by page, and I didn't read it casually. Look carefully and take notes.
The examples in the first few chapters of the book, I even typed on the computer, ran up and looked at them.
But after reading the whole book, the feeling is "in the fog", and after closing the book, I don't remember anything.
Fortunately, I knew at the time that this was a relatively low-level thing, so the purpose was just to read it through, and I didn't force myself to learn much.
If, at the time, I had asked myself to read this book thoroughly, it would have been something with a very low input-output ratio. I can take this time to learn frameworks that I didn't know at the time, but I was using at work, such as Dubbo, Spring, MyBatis, and so on.
This will be much more cost-effective.
I was able to think of the "cost-effectiveness" of time at that time, and it was entirely because of the ideas that the example of modular electricity I gave earlier gave me.
I have stepped on the pit, I have learned my education, and when I encounter something similar again in the future, I know that I should avoid it.
Although I didn't absorb much at that time, after having a certain programming experience, such as two years later, I read "In-depth Understanding of Java Virtual Machine" again and found that I could absorb a lot of things.
I've written a lot about this book before.
Hypothetically, it doesn't make much sense if I'm deeply attracted by the problem described in the following article when I first read it, and then spend a lot of time trying to figure out what it is:
In other words, I was attracted by the code in this place, and it is meaningless to study why the running results are different:
"The way to troubleshoot this bug is really interesting"
Even at that time, I went to study the three-color mark, memory set, card table, read-write barrier, jit... these things are meaningless.
Because that's not something a programmer with less than a year of experience should master. It is normal to fail to master it. If you master it, it means that you are awesome, and you can do the additional questions.
What I want to express in this example is:
The order of learning is also a very, very, very important thing!
You can go to the top when you study, but don't forget, you are a "student scum", and "study tyrants" can only do things.
So don't forget that when you asked a question, you said that you were a "front-end beginner", and that researching the underlying principles is something that only "intermediate and advanced programmers" can do.
I'm not saying that you don't deserve to study "principles, bottom layers, details", but I think your input-output ratio is too small, it can be said to be negligible.
And your research path is not right from the perspective of the order of learning. If you really want to understand the underlying things, you should take a solid look at the four-year undergraduate course. Courses related to professional courses are taken in that order.
It is possible to make the "bottom road" a little smoother.
My personal learning experience is that if you pursue the details too much before mastering the overall situation, it will affect your progress in mastering the overall situation.
And if you can't grasp the overall situation as soon as possible, the details you pursue are as your master said:
For a programmer who wants to enter the industry but has not yet entered the industry, time is a relatively tight resource.
Originally, if you make good use of this resource, you can get more than 60 points in the interview, but because you have made an unreasonable allocation of resources, you have to force the principle as soon as you come up. The results are not ideal.
Failing to grasp the priorities even when someone reminds you. There is no such thing as maximizing the utilization of resources for a task.
The task here is to pass the interview. One of the resources is "time".
If you are really a programmer, it is very likely that when a task is about to be tested, the task has not been completed, because you spend most of your time studying how to write these lines of code more elegantly.
I think one of the professional qualities of a good utility programmer is to constantly find a balance between limited development time and elegant code implementation.
In short, the questioner may still be a student thinking. When I was a student, I often did one thing when I was at hand, and I didn’t have the ability to distinguish the priority of things.
When you don't have it yourself, you can ask someone who comes over.
If you have a lot of tasks on your hands, and you don't know the priority of the task, then a wise thing to do is to ask the colleague who assigned you the task as soon as possible, and tell him: How many do I have now? This task is in conflict, please help me take a priority, I am a little uncertain.
Do the urgent things first. Don't do one thing when you come.
emotional intelligence
I mentioned this before when I answered this question on Zhihu:
Why does his dialogue make people's blood pressure rise?
I intercepted a few places, first of all, I can't listen to the persuasion:
For the sake of other people's words, they are still in the bar, they are still in the bar, they are still in the bar!
On the way of learning, you will encounter countless small problems like this. If you have to go to the bar for each of them, come on, stop learning and become an athlete, a national first-level athlete.
Besides, all of my backends know the question you asked, and it is easy to find the answer through a browser search.
Without any awareness of browser-oriented programming, how can we be assured of letting you step into the society?
Then it's too ego, the kind of self who is arrogant and has never been beaten.
Please replace this sentence with: I think this might be better.
This sentence can be replaced with: I may not have talked to you before, but I am actually a person who prefers to pursue principles, so I will be more entangled.
This can be replaced by...
Forget it, it’s not right to replace it with anything, it’s no help, read some related books, and then practice hard.
The following are good medicines for treating low blood pressure:
If you bring this kind of character and this kind of dialogue into the workplace, believe me, the beatings from the society will come quickly and violently, you can't even see who made the move, and you will fall.
Also, "fast" and "quasi" are two words:
In addition, when the apprentice replied to others, he mentioned that he gave money:
It's worth the money, but the role of a master is actually the same as that of a university teacher. The goal is to lead you to the door. As for whether you can go inside the door or not, it depends on your fortune. Not always used to answer your technical questions.
Compared with the advanced programming ability, I personally think that you should also learn how to deal with people and things.
When surfing the Internet, you can pay more attention to this information.
After entering the workplace, the code is not complicated, it is people who are complicated. You can debug the code, but people are separated from each other.
Finally, I will send you a picture. It is recommended to take it out and watch it carefully:
This article has been included in the personal blog, welcome everyone to play:
https://www.whywhy.vip/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。