Technical learning should take into account both depth and breadth

Consolidate technical foundation

I’ve interviewed a lot of people over the years. More and more, I feel that “technical foundation” is very important.

The essence of many technologies is the same. If the technical foundation is good enough, you can learn things very quickly. As you move down to the operating system level, or even the computer hardware level, you find that programming language features and virtual machine features are no longer important. And the technical foundation and the specific programming language does not matter too much, you have a good technical foundation, interview what kind of technical personnel are barrier-free.

Computers, on the other hand, are moving particularly fast in software, and the further you go up the ladder, the faster you change, and the further you go down the ladder, the slower you change. The more foundations we have, the less likely we are to be obsolete.

Over the years of computer software and hardware development, the fundamental things have not changed much. The technical basis here includes computer hardware, operating system (resource abstraction and resource management scheduling), TCP at the network level, HTTP (if you have a deep understanding of TCP, whether it is middleware or underlying operations, will be able to proficiently), language virtual machine (how does the VIRTUAL machine deal with memory? What is the virtual machine code execution process), security fundamentals, design patterns, methodologies, databases, statistics, etc.

For example, security foundation, security is a big basic principles, as long as you understand, in terms of security is not easy to make low-level mistakes. Such as SQL injection, cross-site scripting attacks, to put it simply, to thoroughly understand that “data is data, code is code, code and data exchange should be filtered or isolated”.

Breadth of technology learning

If you have a good breadth of technology, it’s easier to make the best technical solution, rather than just go with what you’re most familiar with. For technical managers, we have a good breadth of technology, and we can communicate with all positions smoothly, such as client, server, front end, test, database, algorithm engineers… Technically, a lot of things are the same, and it’s easy for us to understand various solutions and not be fooled.

The truth is, most technologies take only a day to learn, a week to learn, and a month to get started. The hardest part is taking the first step. It is necessary to read widely. I bought several shelves of books in all fields. The amount of information and value brought by a book is much greater than the price of the book. The value of reading all the classics in various fields is definitely more than tens of thousands of yuan of book cost.

If you have time, read technical articles, wechat official accounts and blogs, and read book rankings from time to time to supplement your real-time understanding of technology. I keep track of new nouns I see everywhere, so I know what they do — not necessarily in great detail right away — and I’ll remember them later if I need them.

It’s not that difficult to get out of your comfort zone by learning more languages. It only took me a week to transfer from.NET to Java, and I have all the things and ideas of Java and.NET. There is nothing too special, as long as I debug the basic IDE and understand the SDK.

There are so many open source projects, and for well-known open source projects, I’ll spend an hour or two writing the simplest demo, tuning the parameters myself, understanding how it works, and getting a basic understanding of the product.

A lot of people ask me about the transition from.NET to Java, and I think that if it is small and toB oriented, THE development efficiency and stability of.NET is good. As companies go Online and scale up, Java is more suitable for both hiring and community support.

Technical depth is equally important

Technical depth versus breadth is also very important.

With technical depth, problems can be quickly located and fundamentally solved. If you don’t know the underlying technology, you may have to guess. Once you have technical depth, you can learn other technologies faster, and then you won’t be afraid to go deeper into other technologies.

For technical depth, reading the role of little, the exploration of technical depth is mainly need to practice, in the process of practice to step on the pit filling pit experience. The best way to practice is to write your own code, do experiments, and prove your own conclusions. Find your own interest points to build wheels, compare who made better wheels, and even open source and common discussion.

I wrote MVC, RPC, IOC and the underlying network framework by myself. Although I just wrote for fun, this process helped me a lot.

Reading the source code is important. The source code that evolved for a long time must have a lot of subtle design and performance optimization techniques, and must have stepped on various performance pits.

Sharing and community contribution are also important. You can only share if you understand 100%; You learn more when people give you feedback.

Share and help others, build your personal brand

Building your personal brand is important. However, building a personal brand is not about spreading the word. It’s about sharing and helping others.

I like forums at the beginning. I started from CSDN and served as the moderator of.NET section. I wrote my own blog and was once ranked top 10 in the blog garden. He has written and translated a number of books; If I have the chance, I will do offline sharing.

To sort out the technology into a detailed technical network, which is very good for their own technical refinement. If it’s offline, you can dig deep into your interests and share them in the simplest language possible.

I think mixing forums, blogging, and writing books has helped my personal brand and technology grow tremendously. Of course, the most important thing about writing and translating books is to get things done, not to get your name on them.

Multi-pronged Approach to English learning

English is very important. Using English keywords to search for technical questions on Google makes it easier to find real answers quickly. The English community abroad is very active, and there are many technical materials. By the time Chinese materials are available, they are often half a year or even a year behind. If you can speak English well enough, it will be convenient to work with foreigners. In addition, English can also expand career and improve the quality of life, such as traveling abroad or watching American TV series.

My English was poor in college. After graduation, my first company was a foreign company, and then I gradually became interested in English. People at work don’t have much concentrated time to learn English. I have summarized the English learning methods that are easy to practice for working people, and I share them with you here.

Read and begin with translation

Reading can begin by translating technical documents and books. Accumulate basic vocabulary and basic expressions, at least to read English data without turning over the dictionary. It’s a very quick process, and after a book or two, you can get rid of the dictionary completely.

Also force yourself to read English material first. The reading of technical materials is the first level, while the reading of daily life is more difficult. Finding a favorite novel or even playing English games are much more difficult than technical materials. The latter is the longer process.

With the increase of reading, there is no need to look up the dictionary, which is not difficult. After a year, you won’t need a dictionary to read anything — you may not be able to write it, but you know what it means. There’s nothing wrong with that.

Write, starting with a work-related document blog

If you don’t have experience in foreign companies, you can write English documents, blog or daily life diary, and keep practicing. At the same time, you are exporting and sharing. English and Chinese, ordinary expression, correct expression, accurate expression and elegant expression four levels are very different. Only after a lot of reading, you can feel the difference between words, your writing will be more beautiful.

If you’re more interested, read a professional writing book, such as College English Writing. You can also reverse translate your Chinese translation and compare your own translation with the original one, so that you can know the differences between your Native Speaker and your expression: which ones are immature? Which ones are not authentic?

Listen, start with the technical video

It’s harder and takes more time.

You can watch technical video introduction, for example, there are many foreign university teaching videos on YouTube, not only can learn technology, but also can improve the ability to listen to English. Like the Stanford iOS course, the Deep learning course. Here, you can listen to native speakers speaking at a normal speed, instead of the slow expressions in English learning materials. Getting used to speaking at a normal speed is very important for listening, and watching lectures is an easy and beneficial way for yourself.

For me, the most important thing is to watch American TV series. People at work don’t have much time to study English, but you still need to relax. Watching American TV series is a good way. Watch it repeatedly, watch it with Chinese subtitles, watch it with English subtitles, watch it without subtitles, listen to it without watching the screen… When I first watched American TV series, only 30% of me could understand it. Step by step, after 200 hours, 300 hours or even 600 or 700 hours, a qualitative change happened. My ears suddenly became more sensitive, and most of them could be understood and understood.

I don’t need subtitles to watch most American TV series and I can speak at a normal speed. The cultivation of listening ability depends on watching American TV series. Believe it or not, if you have no basic listening skills, stick to watching three TV series like Friends, and you will pass the listening test.

Of course, they can also listen to podcasts they are interested in, and they can also train. It’s different from the American TV series, where there’s no graphics, you can listen to it while you’re driving, you can listen to it on the subway, it’s all ok. Conditional can install satellite TV, watch foreign TV programs directly.

Say, start with simple keywords

Said it was the hardest. The most important thing is to know the phonetic symbols. The core is stress. If the stress is not pronounced correctly, it becomes a different word altogether.

You can buy oral courses and have oral conversations with foreign teachers. In the beginning, if your presentation is not smooth, you can grasp the key words so that the other person knows what you want to say. Don’t use complicated grammar and lots of qualifiers, just say key words. As time goes by, you will be able to translate from Chinese to English and become a direct expression of English thinking.

Management, above all, is about hiring good people

Hire good people and build an echelon

Finding good people, hiring good people and, if possible, having as many good people as possible is critical to the team. Why go after the good ones? Good people are several times more efficient, and they’re more likely to make the right decision, which is faster and doesn’t require you to correct.

Most importantly, great people are self-driven and can influence others around them. Also, he may make unexpected innovations that can be revolutionary to the team.

Next, in terms of team building, there are a few things to note. First of all, don’t be afraid of people who are better than you. As a technical manager, you should not be the most skilled. Competent managers, even those who don’t understand technology, can manage all technical people very well.

And inside, how to screen and screen? Trial period is very important, we should dare to eliminate unqualified people in time, let the team full of positive energy. Muddling through the probation period often brings great side effects to the team.

As far as possible to let the team technology unity, reduce management costs. I had a team that was mostly Java and had only one PHP. From my point of view, this PHP student also needs to cultivate, and also needs room for improvement. I put a lot of effort into getting to know him and developing him, but in hindsight it wasn’t worth the time to manage the whole team.

As the team size grows, build teams with gradients. You have to have great architects, but you also have to have young people who are fresh out of school and driven to do gradients. Similarly, you need to develop good deputies and leave yourself time for more senior things.

Management should lead by example and treat each other sincerely

I think the most important thing in team management is to lead by example. In terms of team atmosphere, we should build a learning team, encourage open source, and even formulate corresponding regulations to increase some financial rewards.

Treat team members sincerely and help others. Make it clear to team members that there is a balance between work and personal growth. For those who are too focused on their work, show them how to grow. For those who are more focused on personal growth than work, it is important to remind yourself that personal brand and professionalism are important and that your personal growth is more valuable in the context of work.

Try to maintain the workload of the team, it is not easy to think more after busy. Even when we’re at a plateau, thinking about how to make the product better, how to innovate, how to be more efficient keeps the team busy. Let people know why they’re doing it, not just tell them to get it done. The common goal is very important, we recognize the goal, will do better, will take the initiative from their own point of view to consider how to achieve the goal.

Be goal-oriented and think high

I’m goal-oriented. Once you set your goals, be confident that you can win, so that you can ignore all the difficulties along the way, including job boundaries and the so-called division between party A and party B.

Think and analyze more. Most of the time, you feel that you can’t go on, in fact, there is a small point in the block, analyze the nature of the difficulty is easy to break through, rather than premature conclusion that cannot be completed. Before, a colleague asked me, I want to do this, do you think it is feasible? I evaluated it and decided it wasn’t feasible. My colleague told me that’s what other companies do. When I thought about it, there was a way around the limitations I had thought of. In the end, my colleague told me that the company did not materialize. Of course, it also helps to analyze your peers’ products.

Finally, think higher. So that you can understand the decisions of your superiors and make better decisions from a company perspective, and even better decisions from a social value perspective. Only when you think at a higher level, can you make higher decisions.