A year ago, I had dinner with a friend. I had a conversation with him. If you could choose your career direction again, would you still stick to your current choice? She firmly told me that although she was very tired, she would choose to study medicine without hesitation, just out of love. Then she asked me, if you could do it again, would you?

I hesitated, I this year 22 years old, master degree in this month, will soon be joining the Internet work force, the line starting salary is very high, and even a lot of other industries struggle struggle for years overtake the high salary, I admit that I am a man of a secular, this line of the high salary makes me very satisfied, but I always think, I really love it?

Where dreams begin

I was a very noisy person, belong to the kind of class love to make little moves, love to talk after class, for this young inevitably by the teacher “invited to tea”. When middle school also once indulged in the game cannot extricate oneself, almost became a net addiction teenager, fortunately later awakening. Although I gave up playing games, I developed a strong interest in computer by accident. When I applied for college, I once had a dilemma about whether to choose computer science or software engineering. Now I think it is not so important.

I majored in software engineering, so I went black. Many people say that the difference between software engineering and computer science is mainly in the latter two words, one is “engineering”, the other is “science”, soft engineering is more application, computer science is more research. There is nothing wrong with this statement, because the routes of the two really have a lot of intersection, without the guidance of the theory of engineering will only be water without a source, a tree without roots; No matter how theoretical research evolves into engineering practice, it is just a loft in the sky. Therefore, I think for those who have just entered or are about to enter the field of computer, there is no need to struggle with the choice of “software engineering” or “computer science”. Instead, focus on the cultivation of interest.

Interest is the best teacher

Whenever people ask me why I like computers, I tell them THAT I like the feeling of creating. Harry Potter is one of my favorite books, and in the computer world of 01 binary, I am the Wizard of Hogwarts. Here I can give directions, inspire the text, I realize any unconstrained ideas, carefully think about this is a much cool thing ah.

In his book hackers and Painters, he argues that programming is a technical creation, that hackers are artists, and that developing software is not fundamentally different from painters painting, sculptors sculpting, or architects designing houses. They’re all just creating what’s in their head, and that’s why I love programming.

Whenever I talk about this, some friends joke with me that they have no such idea and choose this major simply because they don’t know what to choose, or because there is more money in this field.

Yes, a lot of people choose computers more out of necessity, I understand. But I can’t lecture you, and I can’t tell you how to get excited about programming. Life is made up of countless choices, if you really have no feelings, let go as soon as possible is good for each other; But if you’re determined to do it, just keep doing it.

10,000-hour rule and 100,000 lines of code

Malcolm Gladwell, in his book Outliers: The Different Lessons of Success, talks about the 10,000-hour rule: “What makes a genius extraordinary is not that it is superior, but that it is consistent effort. 10,000 hours of exercise is necessary for anyone to go from ordinary to extraordinary.”

Proportionally, it takes at least five years to become an expert in a field by working eight hours a day, five days a week.

It is also said that from a beginner to a qualified programmer, you need to accumulate 100,000 lines of code, so how many lines of code have you written since you started learning programming?

Of course, the number of lines of code written is not directly related to a programmer’s ability. The number of lines of code is only a reflection of programming ability, not a generalization. Moreover, the amount of code ability varies greatly among different positions. The 10,000-hour rule and 100,000 lines of code are more to tell people that practice is absolutely indispensable if they want to learn programming well.

Friends who are familiar with me know that I don’t have many hobbies in real life, except photography, maybe reading books and drinking coffee. However, I have a wide range of interests in the binary world, including mobile App, desktop application, crawler, Vue/React, Java Web, Python Web, AI, container, distributed, etc. I have more or less contacted and practiced them. Some people may think that it is useless for you to be proficient in so many things. Indeed, I can’t guarantee that I am proficient in any of these things, but if you don’t cast a wide net and dabble in new things during the six years of campus life, why not wait until you get to work and dabble in new things at 996 every day?

What’s more, while dabbling in new gadgets, my practical ability has made a qualitative leap. After acquiring a lot of pre-knowledge, WHEN I touch some new things, I often feel “Oh ~, isn’t this device just like that XXX?” A lot of things will be “by analogy”, the start of new things will naturally be faster and faster.

So get on with it and do it now. Don’t make any excuses!

Just do it!

Making things is the best way to learn.

Both software engineering and computer science are divided into the fields of “engineering”, and the most important thing of engineering is practice. I have said the theory of 10,000 hours and 100,000 lines of code above. I believe many people will ask how to learn the knowledge of those specialized courses in the computer field and how to improve themselves. After all, many people find Computer Networks, Operating Systems, and How Computers Are Made up boring, and I thought so too. Fortunately, one of my teachers once answered this question, and he said:

In the undergraduate stage, we should not spend a lot of time to chew on a thick professional book worth hundreds of yuan, but should first do a related iterative project, which is a better way to learn. Exercise in the project, encounter problems and difficulties, and then targeted knowledge learning, the efficiency is the highest. Also learned later can’t use knowledge is actually very easy to forget, and the study of the course can help you to understand the summary, understand the whole picture, can more accurately find relevant knowledge to learn, so you will find that after practice learning in fact has been eating away many books tome, return to chew thick book, You’ll get a lot more out of it than you did in the first place!

I know this view well. When I was an undergraduate, I was very interested in making App, so I studied and studied the first Line of Code written by Guo Lin Dashen repeatedly. Later, by chance, I made a campus application Fruit Core with two friends, which was the first work of the three of us. In the process of making this gadget encountered many, many problems, crawler, computer network, multi-threading in the operating system and so on.

In the process of solving these problems, I not only gained experience value, but also deepened my understanding of these boring knowledge points. Then, in order to facilitate the use of Apple users, we learned the production of wechat small program. When Flutter came out, I used Flutter to reconstruct the entire App so that it could run cross-platform, deepening my understanding of design patterns in the process. Although the whole process is very rough from today’s point of view, both in code writing and later promotion operation, we are exploring a cute new identity, but it is that experience that made us who we are now.

To later, every learning new things, I will be with them the knowledge to make a few small things, study the Electron made “MediaPub”, learning neural network with reference to the whole a “migration” image style small program, and he did a undergraduate course project, until now there are people in the public, the background comments to the code.

The point is that you learn what you need to learn as you build something, which is a much more effective way to learn than reading boring programming books.

More exploration

I often think about what my core competitiveness is, after all, there are more and more people engaged in this industry. Some people are always young, and some people are always beaten to death on the beach by the back wave. I’m ashamed to say THAT I’m still searching, and I’ve been searching all these years.

I am a person who loves to share, both in life and in technology. Micro-blog, instant, circle of friends have my active figure, I will send some funny jokes, will also send their own think take better photos, of course, sometimes sometimes strange diss some things, large probability in the next few years I may still be so.

Technically, I run a wechat public account by myself, and my articles will also be published on the platforms such as Nuggets, Jianshu and Zhihu. Although I have persisted for several years, compared with those big V’s, my data can be described as miserable. Today my fans, only 3200 people, the single article reading and only 300 or so, I know that Buddha is updated and I can’t get away, even though I have been guided to pursue the principle of quality rather than quantity, but when I saw my articles are reprinted after reading dozens of times my you said don’t envy that must be false.

Now the public circle of homogenization is too serious, or put some notes up, or is a variety of interviews. To tell the truth, I am really too lazy to write these things, I think these content as long as the first big guy summed up, the following people no matter how to write it will not be bad, this is like the paper weight drop, turn over and over these words. The old fans of the public account all know that I rarely write these (of course, I also went through a lot of detour before), I hope to analyze more life reflected in this field of some interesting, interesting points, and express its principle and use of feeling in popular language. In my opinion, there is no KPI in learning. Only by constantly accepting new things can we achieve better growth.

In addition to writing my own articles, I also translated some English articles before. After passing cet-4 and CET-6 in the first year of college, I didn’t think of the grading afterwards, so I basically didn’t have much contact with English. During my postgraduate study, I had to read some English literature and even translated some articles in the translation project of Nuggets. I am ashamed to say that I have translated only 23 articles from the original goal of 40. The last one was translated at the end of last year. Of course, all this was because I was busy with my graduation and thesis (frantically rationing myself) and believed that everything would fall into place at the end of this period.

I have tried to make some videos before, but I am not satisfied with them. I will try to do it in the future, and I hope you can give me your support.

A long way to go before

All that I have said above is to review the past few years as a student. Last year, I had an internship in Taobao for three months and initially felt the so-called Dachang blessing. Then I came back to school to enjoy life. Next month to taobao, it is really a worker’s identity to enter ali this river’s lake. There’s a long way to go, and god knows what I can do in that world. There is a saying that others will care about whether you fly high or not, but I only care about whether you fly tired or not, after all, if you fly high and not tired, that can be too annoying.

The road ahead is long, I would like to leave half life, return is still a teenager.

The last

Above is all content of this article, before you said will find a time to talk about my study programming over the years, but have been busy with graduation, now is empty down to have time to owe article up, this article is not only the journey I learning to program, and at the end of this age eighteen years students do a small summary. So, back to the original question, if I could choose a new career, would I change it?

Don’t!