In ordinary work, suddenly have to prepare a live share, like a flat thunder. Predict the thunder is not big, please see below & video complete version: B station back broadcast address, niuke network broadcast address.

This sharing is invited by Tencent Rhinobird “Cloud Development” campus technology evangelist development plan, to answer questions for young programmers, such as how to learn to improve themselves, how to find the most suitable technical route for their own, and how to enter dachang after graduation.

This paper starts from two modules. First, it shares the growth process of becoming a senior engineer from a young white boy, and then discusses what aspects programmers should start from to improve their technical strength.

1. Sharing of growth history

My growth was roughly divided into three stages: refactoring development, front-end development, and then full-stack development.

Refactoring development

In 2015, it was in the reconstruction development stage.

At that time, I was a junior intern in the transition from hardware to software. I only learned front-end related knowledge for one month before my internship, but my foundation was weak. At the beginning, my daily work was to write static pages with HTML + CSS, or directly scour websites to change styles and copywriting. Animation and interaction development began after the front and back end of the project was separated.

The front-end development

2016-2018 is in the front-end development stage.

2016 is a particularly good year to find a job, there are a lot of interviews for the resume, HTML + CSS + jQuery + project experience can be a primary front-end development. In addition to the daily work, I set some tasks every week which book to read, which technical documents to read, and also started to write a technical blog. During my work, I participated in the development of the company’s official website system. During this project, I gained practical experience in front-end construction tool FIS3, CSS precompilation tool Sass, then popular CSS/HTML framework Bootstrap and template engine EJS. Later, I worked on a staff management system where I started building projects with Angular, and in 2017, I became an intermediate front-end developer.

The difference between the junior level and the intermediate level lies in the proportion of responsibility. The junior level is generally only responsible for the development of a single module, while the intermediate level needs to assume more management responsibilities for a certain business line of the project in addition to module development.

In terms of front-end framework, Vue and React have better performance than Angular, and Angular has also come out in a higher version. In terms of front-end construction tools, Webpack is more convenient and expansibility than FIS3. In terms of new trends in technology, there are also more and more small program businesses. I also continue to learn new techniques and apply them to project scenarios.

The picture is taken from GitHub Issue analyzing three front-end frameworks using NLP

The whole development of the stack

2019-2020 is in the full stack development stage.

In the process of front-end development, I always wanted to move towards the direction of full stack, learning Python, Nodejs, MongoDB and Nginx. With these accumulation, I began to take charge of the full stack project and became a senior front-end development engineer at the level of rank.

In this process, I began to like this job from just for employment, and found that programming was not as difficult and boring as I expected. On the contrary, solving problems and realizing requirements in the process of programming was a very fulfilling thing.

Like most beginners, I was very confused at the beginning and rushed into the internship without a good career plan. However, my advice is if you don’t know what you’re going to do, make sure you do what’s in front of you first.

Ii. How to improve technical strength

How to improve the technical strength, it is suggested to do a good job in the following three points: pay attention to the basic, practical practice, in the process of thinking.

basis

First of all, as far as MY personal experience is concerned, I think beginners should pay special attention to this point, should pay attention to the foundation, should not be in a hurry, haste makes waste, in order to improve quickly, must be to slow play fast, in order to be faster. Because for beginners, basic knowledge, programming language must be tamped down, only the real understanding of the foundation, to be able to draw inferences.

So how to learn the basics?

Video tutorials

There are many online. I also watched video tutorials to learn at the beginning stage, but this way of learning is inefficient. A 30-minute video tutorial can save at least half of the time if you read directly. However, it is possible to watch videos in the beginning stage, and the teacher’s explanation is more interesting than just reading books and documents. It is suggested to search a complete set of teaching videos on the net directly, and learn systematically.

2. Get started blogging

In the major forum website to find or directly baidu search, the front of the students recommend ruan Yifeng god’s blog, zhihu column, concave-convex official website, see the blog is also very helpful to learning.

3. Authority books

If you want to learn basic solid, or recommended reading, especially the authoritative books, because books without missing a key, can increase the depth of the cognition of technology, such as the introduction to the blog, it is to accept secondary transmission of bloggers, the lecture is his book on the understanding of technology, his understanding is not book people’s understanding of the deep, also might miss some of the key. So you might as well just read a book.

For the front end, be sure to read JavaScript Advanced Programming, or the definitive JavaScript guide, both of which are cornerstones for learning front ends. JavaScript advanced programming I read many times, each time there will be new harvest, I suggest you also read the authority of the book several times, read more to know the principle, rather than just know how to knock code implementation.

4. Official documents

Must learn how to read the document, the process of development will certainly encounter a lot of problems, learn to read the document can improve their ability to solve problems, can also improve the ability to learn new technologies.

practice

Practice as well as learning the basics. There are three ways to start.

1. Part exercises

First of all we need to do some local practice, such as small in actual combat, environment building, example, encountered in the process of learning can pick one to do the actual operation, because there are some things you might see very fuzzy, this time you have to knock a bit of code, the actual running, see the effect, can truly understand, and in practice to encounter problems, In the process of solving problems is the real grasp of this technology, the actual combat process to timely record the problems encountered and how to solve, in the long term is very helpful to their growth.

2. Get hands-on with the project

After doing some small actual combat, is to get started with the actual project, in the actual project, you can really use the knowledge learned, but also can find their own shortcomings, there are many people do not know what they do not know, do the project will know. Many students in school do not have actual projects in the learning process, no matter, we can also start from the open source project, from the source code of the open source project learning, is a kind of highest learning way, is also the most efficient and can learn things, this open source learning way. There is a premise, is to lay a solid foundation, including computer networks and data structures, which are the basic qualities of being able to play an open source project.

3. Build the wheel

As you learn more, you can build wheels, create source code reading articles, or videos, share things with others, and write in-depth blogs. Let’s look at it. This step is really more difficult to achieve, I myself also in constant groping.

thinking

Again, the most important step in learning is thinking.

1. Take notes

When you study, learn to take notes and summaries. In the process of learning, the demo and knowledge points summarized by the teacher were recorded in the technical blog by themselves. There are too many programming knowledge points and it is impossible to know them thoroughly by heart. It is better to write a blog to record them. Write in the blog, can share already, can convenient oneself search again, still can consolidate oneself knowledge point. And in the process of blog accumulation, it can also accumulate traffic for you, build your own IP, which is very helpful for job hunting.

2. Find your mentor

Another important thing for beginners is to find a teacher. Everyone needs a mentor in the workplace. This could be your first job mentor or someone you know who came before you. You need to have a very long-term relationship, not just for one company, but ideally for your entire career. Whenever you are in doubt, you can always ask him for advice, which will be your most valuable wealth of contacts. Not long after I started my career, I also met such a teacher, who asked me how I was doing and gave me goals, and gave me one-on-one classes. Of course, he opened the class because he wanted to develop in the direction of education, but I have to say that he helped me a lot and I am very grateful to him. He also told me that his mentor was a big influence on him.

Everyone understands the importance of networking, but actually doing it is not easy. Attending offline events, such as developer conferences or salons, can be one of the most direct ways to network.

Third, summary

This article to share the programmer’s personal growth process and how to improve the technical strength, the programmer’s growth path are not alone, we are a group of love to share, there are a lot of community, see here, you must have already in our community, I hope this article can give you harvest, in the road of technology grows together!

Write in the last

Here is a team recruitment, interested children’s shoes welcome to vote ~ ~

JDC Bump Lab spring campus recruitment has begun!

We are a team that loves to create and constantly try new technologies, new experiences and new products.

Internship vacancies are open for 2020, so come and join!

  • Contact email: AOtu [AT]jd.com
  • Location: Shenzhen

The basic requirements

  • A full-time bachelor degree or above with a minimum of 1 October 2020 to 30 September 2021;
  • Solid foundation, logical, good communication skills and team work spirit;
  • Love computer programming, pay attention to new things, new technology, creative, strong learning ability;
  • Have some understanding of Web standards, usability, accessibility and other related knowledge;
  • Learn how to use HTML, CSS, JavaScript to build high-performance Web applications;
  • Understand mainstream front-end frameworks (React/Vue/Angular, etc.), multi-end development frameworks (Taro/Uni-app/Chameleon/MpVue, etc.), pursue good code style, and have a good understanding of interface design and program architecture;

Give priority to

  • Knowledge of Node.js/Java server development;
  • Understand wechat applets/mobile terminal development;
  • Have a personal open source project or technical blog with frequent updates.

Please specify the source [gold digging]