Welcome to personal site

directory

  1. Understand the vim
  2. Develop git specifications
  3. To learn deeply is more important than to learn widely
  4. Have their own knowledge system, form a methodology to solve problems

Understand the vim

Vim is known as the “god of editors”, and it’s not for nothing.

After using Vim for half a year, I advised every programmer around me to learn Vim.

Because once you learn vim, you’re poisoned, and you hate the mouse, and you hate it when you’re tapping on the keyboard and suddenly you have to move the cursor, because the time it takes to move the hand from the keyboard to the mouse is much longer than the time it takes to move the finger across the keyboard.

And you’ll want vim plugins on all your editors, whether it’s vscode, idea, or emacs; Whether it’s your computer or someone else’s; Whether it’s a coding editor or a browser that looks at a web page.

Fortunately, it has everything you could wish for: every plug-in editor has the Vim plug-in, and even browsers have Vimum.

When you get really used to vim, you can’t wait to have a mechanical keyboard, because you spend most of your time typing code on the keyboard, and the mouse doesn’t matter much anymore.

Mechanical keyboard recommended red axis, green axis and tea axis although they are very comfortable, feel very good, but more affect other people, the keyboard sound is too noisy, the black axis is not considered, code word too tired, not suitable for programmers.

I personally used green axis and red axis, green axis gives me the feeling that the code is a piece of the code, listen to the sound I feel very comfortable, knocking code very feel.

While the red axis gives me the feeling that when typing code, you will forget the keyboard in your hand, giving me a feeling of integration of hand and keyboard. I completely concentrate on the code and can’t feel the feeling of typing the keyboard.

Finally, learn the basics of Vim first, then install a plugin and practice on your existing editor. You don’t need to use the Vim editor.

Because you use the Vim editor directly, as a newbie, there are no plugins, shortcuts, etc., no prompts, no highlighting. When you’re writing a project, you’re going to be miserable, and you’re going to use the editor that you’re familiar with to highlight, to indicate code that you’ve done before, so it’s a lot easier to actually use.

In order to recommend more programmers to learn Vim, I have also written an introductory article for those who are interested.

People around me, as long as they used ViM to knock on the code, no one ever said that using ViM to knock on the code is not good and give up using it, will only love ViM deeper and deeper.

Git specification

Git, in my opinion, is the best version management tool out there. It is a programmer’s tool and must be used with ease.

What I want to talk about today is not how to use Git well. If you need it, you can leave a message to me. I will write an article or a series later.

I would like to say is the standard, do not think commit casually write, in fact, the standard degree of the commit part reflects your attitude to do things, whether correct, rigorous.

For example, when I was working in a certain meter, I had a friend who had an elder sister in her group. Her commit was very random and could not reflect the content of the code she submitted, for example, haha; Holiday, good happy; The bug. Not to mention a bug that caused my classmate to have no idea what code she submitted.

I don’t know what she did, and on a team, that’s a pain in the ass.

Especially if your boss or colleagues want to do a review, seeing such a bad commit will make a bad impression on you.

If you’re an intern, it’s probably not easy to get hired because you’re seen as a casual person.

The norms I usually use come from Ruan’s norms. Link: http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html

Depth is more important than breadth

Now also in the school of students, may often listen to seniors say so, in the interview when both to test your depth, also want to test your breadth, the so-called depth simply say is to a certain knowledge point grasp degree, and breadth is how many knowledge points you know.

For example, you may often hear people who have interviewed come back saying that the interviewer who held on to a question until he couldn’t answer it was exploring the depth of mastery.

And then there’s the question, do you know what? What do you know? What have you used? That’s looking at your breadth.

Therefore, some students in school do not know whether they should expand their width, learn new knowledge, or dig deeper and study the previous knowledge.

I also interviewed a lot of big companies and got several offers, and I talked to some old drivers who had worked for many years during my internship.

The final answer is that depth is more important than breadth.

Let me give you my perspective on why depth is more important than breadth.

I don’t know if there is such A thing around you, someone (student A) got A better offer, but the one with him (student B), who you think is more skilled than him, didn’t get it, and then you ask the student who got the offer, he said he was lucky.

If you break it down, it could be luck, like

  • They are not the same interviewer, which leads to different questions asked by the two interviewers and different judgment criteria.

  • Both of them are the same the interviewer, but A students and B students technology is different, A classmate technology with the interviewer technology stack overlap sex more, because the statistics, the interviewer prefers to find more similar to yourself, because the interviewer feel is good, the higher the similarity with him, will think the interviewer is more outstanding.

In the case of the first two cases based on luck, of course, it is certain that student A has the strength. If the foundation is not solid, he cannot grasp the luck.

So how do we make luck happen?

My advice is to depth and breadth, depth can reflect a person to knowledge “trivial pursuit” of the spirit, and for the questions like the don’t know, maybe you are proficient in a door frame (front React, for example), for other framework just know, but this is better than a skilled use of several framework interview success, Because if you meet an interviewer at the React Tech Stack, chances are you’ll pass. For those who are proficient in using several frameworks but not proficient, that is, the interviewer asks you what? Answer, I can ah, and then ask a bit deeper do not know, this kind of chance will be much smaller.

So it’s important to dig deep in order to be able to take your luck when it comes.

If you’re considering should I put something before consolidate, or to learn new knowledge, you carefully think about it, are you familiar with previous knowledge deep enough, enough to learn the new knowledge, don’t what will be the interviewer asks, what all don’t, this is my last night chat with a trained students in our class time out, He said he learned a lot in training, and when I asked him about framework principles, he couldn’t answer, and came to the conclusion that he only knew how to use API.

And then I said depth is more important than breadth for college students, not breadth is not important, and the purpose of this is to give you advice in case you don’t know whether you should learn something new or reinforce what you’ve learned before.

Have their own knowledge system, form a methodology to solve problems

To consolidate the foundation, have their own knowledge system, and form the methodology to solve problems, this requirement is what my boss told me in the first week of my internship in Xiaomi.

At that time, I really did not understand what the so-called knowledge system was, and I felt confused when talking about methodology. After so long thinking and practice, I would like to talk about my understanding.

In fact, knowledge system and problem-solving methodology complement each other. When you solve problems, you will use knowledge system, and part of the formation of knowledge system is built by solving problems.

What is a knowledge system?

It’s a mind map, so to speak, and that mind map is a summary of what you know, or don’t know, that you feel you need to know. For example, as a front-end engineer, you should know HTML, CSS, Javascript, front-end frameworks, HTTP, Web security, etc.

Javascript requires knowledge of basic types, functions, objects, built-in objects, etc.

Then functions have to master closures, scopes, this, etc., objects have to master prototypes, new, etc.

I will no longer extend, according to their own knowledge to form a knowledge system, and then was very easy to solve the problem of time according to their own knowledge system to solve the problem, you may have a cross-domain problems, for example, you from all your brain to search the knowledge system, you can know that there are several methods which cross domain, then what is each method’s applicable scenario.

In the process of forming your knowledge system, you know what you know and what you don’t know, and then you spend time supplementing what you don’t know and gradually perfecting your knowledge system.

Once you’ve formed your body of knowledge, you’ll be more prepared for the interview.

Your knowledge system is like a net, and the interview process is to test how big the holes in your net are, while the learning process is like weaving the gaps in the net smaller and smaller, your ultimate goal is to make your net gap smaller and smaller.