Hi, I’m crooked.

A few days ago, Zhihu sent me a question. I clicked on it and saw what was going on.

Let me repeat the question first. The chat record is quite long, but it is easy to be impulsive in the process of reading, so pay attention to controlling emotions:

Finally, the questioner says: By the way, can you analyze my way of thinking? What kind of person is he?

Was not to live

How was it? How did it make you feel?

Anyway, AFTER I read it, I called it “unbearable”.

I even wondered if the master had something in his disciple’s hand.

This is a dialogue with a strong sense of dislocation, and I think the reason for the dislocation is that the two people have different cognition.

Master, a big factory programmer who is struggling in the workplace.

Apprentice, a simple chicken ready to enter the workplace.

The teacher has been talking about: interview, job, offer…

What this apprentice has been mentioning is: principle, bottom layer, details…

If this apprentice learns programming knowledge purely for hobby and learning to play, he does not want to make a living by it, but just wants to study what programming is.

Then very good, the apprentice is not wrong, is a worthy of encouragement of the academic school.

But I guess my apprentice didn’t learn programming purely for hobby. He also wanted to find a job and get into the field of programmer.

Based on “wanting to go to an interview”, he asked this question:

Excuse me each programmer, is my way of thinking wrong?

There’s a problem! That’s a very problem!

It’s not just the way of thinking that’s wrong, it’s the whole way of talking that gives the impression that emotional intelligence needs to be improved.

I don’t mean to criticize him. I just want to make a comment based on his question.

Way of thinking

Let me start with a story from my college days.

My university major is the department of planning, this major is to learn analog circuit. But that year, I was such a mess that I couldn’t understand the teacher. I thought it was too difficult.

Imperceptibly mixed to the end of the exam.

Before the exam, I downloaded a whole set of video related to analog electricity. After a month of hard work in the library, I finally finished watching this set of videos at the end of the semester.

That month oneself of move of not line, feel oneself true cow force: so difficult thing, I unexpectedly chew down.

Study on the road is afraid is misguided, but also moved.

Finally went to the exam, I found that in fact, everyone can also test. Because most of the exam questions are from the book after class exercises, you take a week to focus on the after-class exercises.

As I reflected on it later, I thought it was silly of me to spend a month in the library watching VIDEO models. It was a waste of my time.

I was totally spending my time in the wrong place.

I remember that when I watched the video, there were some difficult parts that I could not understand. I would watch it again and again and look up other materials, but in the end, I did not know much about it.

I regret it now when I think about it.

I could have just spent a week cramming, but I foolishly spent a precious month, during which it was very difficult to learn.

If I were to go back to college with what I know now, I would have to find myself in the library chewing on analog circuit videos, and it would be a slap in the face:

Let’s go over this together.

First of all, I just want to pass my final exam, if I don’t fail.

Secondly, the time of the final exam is fixed, so my time is very limited, which belongs to my resources.

In the end, I worked alone in the whole process. No one even knew that I went to the library every day, and a considerable part of the time was watching the model electricity.

As a result, you know, the input-output ratio is very small.

The situation is similar to that of the disciple who asked the question:

First of all, he went there to get into the programmer business, as long as he passed the interview.

Second, even if he extended the timeline to a year or two, time would still be limited.

But what he did better than me was that he had a teacher, a veteran, who said to him, “Don’t look at this thing, it’s not going to be very profitable for you, and go focus on something else that’s more valuable to you right now.”

Like I said, someone came up to me and slapped me while I was looking at the model and said, “You’d better spend a month looking at this thing than typing a few lines of code.”

I kind of came to my senses, but. no.

I was also into a vicious circle, see do not understand the place will also be a point, but also want to try those additional questions. Explore the different ways to write hui.

This is a sign of not prioritizing.

Prioritizing is a very, very, very important thing!

The apprentice seemed to have fallen into the same trap as me, but he didn’t know it.

But he is more serious than I am, someone to show him the way, he still feel that he insisted on the right.

Here’s another example from a book I read earlier.

If you’re in Java development, you probably know of a book called Understanding the Java Virtual Machine in Depth.

When I first read this book, it was the National Day of 2016. At that time, I only graduated three months ago, and my knowledge about JVM was 0.

But I knew it was a very good book at that time, so I spent the National Day of that year turning over the book page by page, and I read it seriously and took notes, not just for a cursory glance.

In the first few chapters of the book, I even typed the examples on my computer, ran up and looked at them.

But after reading the whole book, I feel like I’m in a fog. I can’t remember anything after I close the book.

Fortunately, I knew it was low-level stuff, so the goal was just to read through it and not force myself to learn much.

If I had asked myself to read this book thoroughly, it would have been a very low input/output thing. I could have used the time to learn about frameworks I didn’t know at the time but were using at work, such as Dubbo, Spring, MyBatis, etc.

It’s a lot more cost-effective.

At that time, I was able to think of the “cost performance” of time, which was entirely due to the idea brought to me by the example of modular electricity.

I stepped in the hole, I learned the lesson, the next time I encounter a similar situation I will know to avoid it.

I didn’t learn much at the time, but after I had some programming experience, for example, two years later, I went back to Understanding Java Virtual Machines and found that I was able to absorb a lot.

I’ve written a lot about this book before.

If I had been so fascinated by the question described in the following passage when I first read it, it would have taken me a long time to figure out what it was:

The hole dug by Deep Understanding the Java Virtual Machine (2ND edition) was finally filled in by R in 3rd edition

Or, I’m so drawn to the local code that it doesn’t make sense to investigate why it works differently:

The way to check this Bug is really interesting.

Even then I delved into tricolor tags, memory sets, card tables, read/write barriers, JIT… These things, they are meaningless.

It’s not something a programmer with less than a year’s experience should know. Can’t master is normal, master means you are awesome, you can do the additional questions.

What I want to express in this example is:

The order of learning is also very, very, very important!

You can go to the point of learning, but don’t forget, you are a “low achiever”, “high achiever” is capable of doing things.

So don’t forget that when you ask, you say you’re a “front-end beginner” and that studying underlying principles is something that a “mid-to-advanced programmer” can do.

I’m not saying you don’t deserve to study the “principle, the bottom, the details” stuff, but I think your input/output ratio is too small, can be said to be negligible.

And your research path is not quite right in terms of the order of learning. If you really want to understand the underlying things, you should take a serious look at the four years of undergraduate major courses and learn in that order.

It is possible to “bottom of the road” to go a little smoother.

My personal learning experience is that if you focus too much on minutiae before you get the big picture, it will slow you down.

And if you don’t get the big picture soon enough, the little details you’re after are as your master says:

Time is already a tight resource for a programmer who wants to break into the game but is not there yet.

Originally good use of this resource, you can test more than 60 points in the interview, but because of your unreasonable allocation of resources, a strong eating principle, resulting in the situation is the time node arrived, but the results are not ideal.

You don’t get your priorities straight, even when someone reminds you. There is no way to maximize resource utilization for a task.

The task is to pass the interview. One of these resources is time.

If you’re a real programmer, chances are that when a task is about to be tested, it’s not done because you’re spending most of your time figuring out how to write a few lines of code that would be more elegant.

I think one of the professional qualities of a good practical programmer is to constantly find a balance between limited development time and elegant code implementation.

In a word, the questioner may still have a kind of student mentality. When I was a student, I often did one thing at hand without the ability to distinguish the priority of things.

When oneself do not have, can consult experienced person.

If the task of accumulation is very much in your hand, and you don’t know the task priority, so a sensible thing to do is ask a colleague assign you a task as soon as possible, and then tell him: I now have a few tasks, conflict, trouble to help me make a priority, myself a bit of a winding.

Do urgent things first. Avoid by all means, to do a thing on a matter.

Emotional intelligence

I mentioned this earlier when ANSWERING this question on Zhihu:

Why this conversation can make people look elevated blood pressure.

I took a few places, the first is not to be persuaded:

Other people talk about this, still on the line, still on the line, still on the line!

On the way to study, you will encounter countless such small problems. If each of you have to go to the bar, come on, don’t study, go to be an athlete, a national bar athlete.

Besides, I know this question from a backend, and it’s easy to find the answer through a browser search.

Without the slightest awareness of browser-oriented programming, how can we trust you to set foot in the world?

And then too much of me, you know, the arrogant, unbeaten self.

Please replace this with: I think it might be better this way.

I may not have talked with you before, but I am actually a person who likes to pursue principles, so I will be a little tangled.

This sentence can be replaced by…

Forget it. It’s hopeless. Read a book about it and practice a lot.

These are some of the best ways to treat low blood pressure:

If you bring that personality, that conversation into the workplace, trust me, the beatings from society will come so fast and so hard that you won’t even see who’s doing it, and you’ll be down.

Also, “fast” and “accurate” are two words:

In addition, the disciple mentioned in his reply that he had given money:

It’s worth the money, but a master is just as useful as a college teacher. The object is to lead you to the door, and it is up to fate whether you can walk inside. Not always to answer your technical questions.

Instead of improving your programming skills, I personally think you should learn how to deal with people.

Pay attention to this information when you surf the Internet.

When you enter the workplace, the code isn’t complicated, the people are. You can Debug code, but your heart is in the closet.

Finally, here is a picture that I suggest you take out and look at carefully: