Start with an assignment:

In August 2021, I was invited to talk about “what is the most important ability of a programmer”. Then I wrote down my answer based on my own experience, which was published in the tao System technology official account “What is the most important ability of a programmer?” In the.

At the end of September, students from tao Department’s technical operation department told me that the feedback of the article was good, and they hoped that I could continue to write about the specific journey of my heart, so this article came into being.

I hope I can share my experience with those students who are interested in/hesitant to change careers/are changing careers.

My programming learning experience

I am a programmer, I can share my experience of learning programming.

Before learning programming

In high school, I chose liberal arts because I could not learn physics and chemistry, which meant that computer science was closed to me, but I did not think that I would like to write code and make a living from it.

In retrospect, there were only two things about programming.

One is that DURING my busy high school life, I have been subscribing to Computer Newspaper and keeping abreast of current affairs on the Internet. Second, liberal arts mathematics at that time needed to solve a kind of flow chart problem, which was also my favorite type of problem. Now it seems that it is no different from code flow.

Flow chart of the topic

Start with C

After graduation, I majored in Human Resource Management. At the beginning of 2015, just after the final examination of the first semester of the freshman year, there was still some time to go home, so I took the course “C Language Basics” taught by Weng Kai on the Internet because I was idle and bored. Then I was brought into the pit of computer programming, which has not been out of the pit and is getting deeper and deeper.

Remember me at that time, in the winter vacation of 2015 within a month. Began to listen to lectures every day, thinking. The code was then fed into the phone to run slowly (there were no laptops in those days). At that time, the most happy is the picture of this section of code, one-time compilation and run through.

From “young engineer” to Ali front-end technology expert

In the next half year, the programming study did not go as smoothly as expected. Progress has stagnated. I still clearly remember myself at that time: “Can output Hello World in 20 languages!” “I learned BootStrap in four months that other people could learn in a week” and so on.

By chance, I found a classmate who was willing to teach me to write code, and I stumbled through my first Ajax operation. After that, IT seemed to me that the door of the programming world was finally open for me to explore and travel.

Until one day, I hit a wall. At the beginning of 2016, technology was changing rapidly. At that time, I was quite at a loss for what to do and always felt that there was not enough time. So when I attended the JSConf that year, I met Hax, a famous person in the front circle at that time, so I dared to communicate with him.

At the end of the exchange, I thanked Him and he replied, “Don’t be so utilitarian in learning things, and it would be good for me to help you young engineers.”

At that time, I found that my interest in programming had carried me from being a student to being a “young engineer.” Five years have passed in a flash, and the students of that year have transformed from “young engineers” into ali’s front-end technology experts. Their identities, environments and technologies have changed, but their interest in code has not changed.

From node.js consumer to Node.js Collaborator

Interest-driven motivation is often pure and unadulterated, and in the software world, interest-driven and open source spirit are highly compatible.

As the winter of 2020 approached, I had a new bottleneck and wanted to learn more about Node.js but didn’t know where to start.

This time I chose to collaborate with the Node.js open source community. I started reading the source code of Node.js and solving issues on Github. When I nominated Node.js Core Collaborator after the fact, I counted 50+ Pull requests in just two months.

Looking back now, these “interests” unrelated to the actual work eventually supported me to go further. Now I am in charge of Node.js construction team full-time, and my personal horizon has expanded a lot.

Problems with career changes

The career change was not all plain sailing. During this process, the most common questions are as follows:

  1. Can the non-science students learn to use computers?
  2. You have studied computer science for four years. Can you keep up with yourself?
  3. Can I get a job when I get out?
  4. What do you need to do to change careers

I’ve been asking these questions since I learned to program, and I still get asked these questions today by students who talk to me. I also take this opportunity to write down my thoughts.

Non – subject can learn computer/self – study can follow?

The answer is yes, no problem.

Speaking of which, I have never struggled with my non-academic background. At the beginning of learning programming, I made it clear that if I want to be a good programmer, it doesn’t matter whether I am a professional programmer or not. The real key lies in my learning efficiency and time investment.

In college, I put a lot of time into programming, averaging 6 hours a day, until graduation. By the time I graduated, I had completed about a dozen projects, written more than 100,000 lines of code, and had a blog of more than 100,000 words.

Blog statistics

A project I wrote in college

The Commit record

In other words, I also believe that if a non-academic student, who has taken computer courses and written many lines of code, can successfully complete a project, then he is a programmer.

Can I get a job when I get out

And the answer is yes, no problem.

Computer programming employment environment is still very good, will not be stuck professional, but through the past experience + written test/interview to decide whether to hire you. So don’t worry too much about that.

I have answered this question in Zhihu before, so I will not rewrite it, you can see the screenshots below.

How can students who change careers learn

It’s an everyday problem in the community. But teaching a man to fish is not as good as teaching him to fish. Let me tell you about the method I used to teach myself a new field.

The method is very simple: on zhihu, search XX entry (such as computer entry, front-end entry), there will be a lot of questions, you need just patience to read some of the high praise of the answer, and summed up the analysis, probably on the mind. Then choose which of them you feel reliable high praise to learn.

Many questions of the high praise of the answer is in fact very detailed answer is very good, look for the tutorial can follow learning, learning in the process you will encounter new problems, this time to continue to search.

It works, and to this day, I do it all the time when learning about new areas like products, design, presentations, games, and so on, and you learn to teach yourself better by trial and error.

My way of self-study

When I just learned the front end, I was lucky to see the answer of Da Mo about self-study of the front end on Zhihu.

Then I went through a process where I thought about three types of questions and listed them together: 1. What do you know? 2. What do I know? 3. What don’t you know? And then, once you have three lists like this, you’re very clear about who you are, and you solve the second list, and then the third list. Finally, I suggest that learning is a gradual process, the whole process to grasp: see more, think more, ask more and do more. These are also my own four principles. If you have time, write as much as you can to summarize your knowledge. Now take a look at the specification.

After that, I also drew a mind map for my own situation, and listed the knowledge points I did not understand.

Behind in the winter vacation focus on these problems, and write a summary of the technical article.

The 2016 article

At present, it is a very effective way to learn, summarize and share the knowledge that you “half-understand”. Interested students can also refer to it and try.

I have always insisted that the focus of the learning plan lies in the learning effect, rather than how complex and detailed the plan is. It is as good as it suits me.

What do you need to do to change careers

Here are my suggestions:

  1. Do more project
  2. How to write summary
  3. More groundwork

First of all, I suggest doing more projects. Rather than laying a “solid foundation”, it is more important for students who change careers to develop their interest in programming. Different from the good learning atmosphere and pace of the class, self-study often requires higher self-control. At this time, it is more important to cultivate interest in computers and continue to learn to write codes.

Secondly, I suggest that you write more summaries. Summary is a very efficient learning process. If you want to explain something clearly, you must first understand this knowledge. In the process of self-learning computer, more summary can not only check the gaps and fill in the gaps, but also let oneself in the review of a sense of accumulation.

Finally is suggested that more ground, turned the computer’s classmate, the underlying principle of computer algorithms such as knowledge contact less, but the real is the foundation, can help you in the future on a lot of the knowledge of the pit, less so is also pay more attention to the study of basic computer knowledge (as to how to learn, you can refer to the above answer).

Look back and change careers

Time flies and I look back and have been writing code for almost seven years.

Looking back on my career change experience, I think it is not so much that I changed my career to study computer as that I discovered my interest in computer and continued to devote myself to it.

Finally, I would like to end with a paragraph that I like very much.

“Your work is going to fill a large part of Your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to Love what you do. If you haven’t found it yet, keep looking. Don’t settle. You’ll know when you find it.