“Live up to the time, the creation of non-stop, this article is participating in 2021 year-end summary essay competition”

Imperceptibly, graduation also many 3 years, calculate go up practice, the job also has 4 years more than. Sometimes I feel like I just graduated. Take some time to talk about your experience in the past few years and have a periodic summary of yourself.

Talk about experience

I have been doing Web development in the lab since my sophomore year, writing simple JS at the front end and simple Java at the back end. I have always felt that I have been ahead of many others, so I did not feel nervous about work until my senior year. In the autumn of my senior year, several of my classmates and I went to Chengdu from Chongqing. On the one hand, we wanted to see the world and on the other hand, we wanted to listen to the speeches of various big companies. I was already planning Tencent, Ali, Meituan which company I should choose, but those days basically just listen to the publicity meeting to help promote the company for free to draw lottery to cast resumes, and then play around in various universities. Later, I met a company whose name I had forgotten, and I needed to write a written test on the spot. I also took part in the written test with the hope that I could finally show my talents. After the written test, I bought the high-speed train back to Chongqing that night. I don’t need to say more about what happened…

To attend a lecture at Sichuan University

Won a headset in the raffle

After coming back, I began to think seriously about my work and review (study) seriously. I chose the front end for the simple reason that I didn’t like the boring work of the back end dealing with complex data. After reviewing for about a month, I met with two companies and successfully joined my first company. I had a great time there, had few difficulties with my work, matched the tech stack I used at university, and worked with lovely colleagues. At that time, I was also learning like crazy, and even applied the new technology I learned to the company’s projects. However, after a year, I felt THAT I could not stay in such a comfortable environment any longer, and I wanted to seek a breakthrough (🐶). So I and my little friend @Panpan, who also wanted to seek a breakthrough (🐶), resigned naked and came to Hangzhou. We rented a single room (bunk bed) in Binjiang for a month, and if we didn’t find a job, we took the train back. At that time, I just experienced the wave of layoffs (in early 19th), so there were not many interview opportunities. However, I interviewed three companies on the most day. I got up at dawn in the morning and didn’t go back until the evening. That time is very tired, but every day like playing chicken blood, now also very nostalgic for that time.

Took a photo of Ali during the interview in Binjiang

I joined Rolling Horse Network Co., LTD., a small but beautiful company with advanced technology stack, and I quickly adapted to the pace of work. It was here that I learned about Flutter and later devoted myself to the company’s Flutter development full time. I learned a lot about Flutter, which I still think is a great development model. In the past two years, I have learned a lot. Technically, I began to think about the ease-to-use and maintainable code structure. I also learned to think about the feasibility of business from the product side. Here, I would like to thank my supervisor @Li Heng for his encouragement and help (Mario fun 😂). The team atmosphere here is very good, and many colleagues have become friends. Now we play board games (gambling) and basketball together. Thank you very much for this experience.

Exercise time for horse rolling

Climbing mountains

At the beginning of this year, just before the second anniversary of Rolling horse stay, I left rolling horse and joined weidian. Compared with the rolling horse, the volume here is much larger, and the pace of work is a little slower. After simple adaptation, I participated in the campaign in June, July and August. It is the first time to participate in the project mode of campaign. I think it is very novel, which can not only make a breakthrough in business quickly, but also stimulate the enthusiasm of each student. After the battle, the pace of the business slowed down. My supervisor, @Jie Ge, encouraged us to innovate and optimize the project. I started to upgrade Flutter1.17 to 2.5 with @Yang Xin, another iOS mogul, and encountered numerous problems during the process. Every day, I solved one bug after another, just like fighting monsters. I also found problems in the use of our ICONS in the project, which prompted the designers to use IconFONT instead of image mode, and developed a process for the use and update of Flutter on Android, iOS and iOS. I took the initiative to promote the progress of things, and learned to look at every little thing I did with a higher vision, with a stronger sense of responsibility. Thank you very much @Chen Feng for explaining everything to me and @Yu Lun for giving me a lot of technical guidance.

Face to face with the boss

During this period, I began to seriously study and review some underlying knowledge of Flutter, compiled the Flutter Engine by myself, and tried to check some principles of the Engine. I have written a series of articles on Flutter Canvas, such as the basics of Flutter Canvas learning, and spent a lot of time writing a series of articles on the Flutter Framework rendering update process, such as the start of Flutter rendering and the construction of three trees. With the support of my boss, I shared Kraken related technology within the team. This makes me more convinced that this is the right way to learn — only by sharing and trying to make others understand can I become more comfortable with the fact that I really understand.

At the end of November, after some twists and turns, I joined Aliyun, which is almost a month now. Ali is one of the reasons I chose to come to Hangzhou, and I feel very lucky to be here. Tonight, our small team had some heated discussions on the system functions I developed, and I also gained a lot, which is also the first growth I gained here (1). File naming needs to be more formal 2. Any API designed needs to be logically testable 3. Bigwigs are really strong). In order to keep my body up to speed with my mind, I also started my fitness program (to get free gyms).

Start a Fitness program

Finally, I would like to thank my girlfriend @Sunwalker who is thousands of miles away for her encouragement and support all the time.

feeling

I have really gained a lot in the past few years after graduation, and I have achieved rapid growth. Here is a summary of hard and soft strength.

Hard power

Web front end

Although I used JS for several years in university, I never really understood its design principle and some underlying concepts. Start learning the basics, such as prototypes, prototype chains, scopes and execution contexts, this, and so on. I learned the Vue framework and understood its underlying principles (and wrote a simple version of my own toy), and became familiar with React. I learned a lot about the use of front-end toolchains (which are probably obsolete by now). Many attempts have been made to build various services using Node. It’s been a long time since I learned Web front-end technology, and the skill points should have gone off the rails.

Flutter

In the past two years, I have been engaged in the development of Flutter full time and gradually revealed its mystery. From the use of the application layer to the framework layer and then to the engine layer, I like to beat strange in the same difficulty. Flutter is now evolving and there are still many blind spots for me to crack, which feels great. Flutter is my current research area and I also recommend some useful information for getting started

  • The official documentation
  • Chinese Official Documents
  • Flutter actual combat: more comprehensive Flutter knowledge, the first choice for entry
  • Xianyu technology: Xianyu is one of the first Flutter applications produced in China, which contains many Flutter dry goods
  • Gityuan: I haven’t updated this for a long time. He has many articles on Flutter source code parsing

Of course, I hope you will pay attention to me and share more dry goods with you in the future.

network

Universities have internet-related courses, which may be because they do not realize the importance of it, or because the teachers are rather awkward, and do not seriously learn, until graduation began to supplement this knowledge. My appeal is very simple, and I have no intention of becoming an expert in this field. I have bought two books “Illustrating HTTP” and “Illustrating TCP/IP”, as well as interesting courses on network protocols, and have written simple notes myself. Although the network is seldom used in daily work at present, it is easier for me to understand the network scenes in daily development and deal with some network problems in daily life (helping neighbors restart routers) after knowing this knowledge.

Algorithms and data structures

Algorithms and data structures in the programming of how important it goes without saying, should be said to be a programmer compulsory knowledge points. Algorithm I have brushed more than 100 questions on Leetcode, which are basically simple and medium difficulty. I also bought books like “Algorithm Diagram” and “Data Structure and Algorithm JavaScript Description” to read them. Although I can’t say how in-depth the research is, I am still able to write common search, sorting and search algorithms by hand, and can be flexibly applied to work. I also recommend some interesting open source blogs

  • JavaScript algorithms and data structures: comprehensive knowledge
  • Small hao algorithm: some of the various types of problem solving ideas
  • Visualgo: Animate common algorithms with manual control of each step

Design patterns versus programming paradigms

In fact, design pattern is a knowledge point that programmers are most likely to ignore. Some people may think that they can cope with our daily work without mastering design pattern. In fact, for the same thing, the code written by those who are skilled in understanding design and those who do not understand design pattern must be completely different. I also studied 23 of the current classic design patterns and wrote simple examples using Dart (blog address). I learned programming paradigms (notes), which enabled me to better understand the differences between languages and learn new languages faster.

other

I’d like to mention a few other things I’ve learned over the years that have more or less influenced my work.

  1. Linux server

    After graduation has been buying ali cloud or Tencent cloud the cheapest server, but also a year of free Google server (VISA card can be wasted), above the most troubled or Web site construction, what nginx, PM2, MySql(this thing every time to step on the pit, not with duplicate), etc., Domain name record, parsing process has also done, basically the whole set of website deployment process is very familiar. I installed Ubuntu dual system on my desktop computer (I bought more than 100 solid state disks on Pindoduo, which is still very good), and was forced to learn a lot of shell commands, which not only enabled me to operate Linux system freely, but also improved my efficiency in daily development.

  2. Python

    There are two purposes for learning Python, one is to use it as a script to improve the efficiency of learning or working (although shell can also write scripts, but I am not used to its syntax so far, it does not run on my Windows), and the other is to brush up on LeetCode. As I understand it, Python’s syntax is simple and the toolset is so complete that you can do almost anything with it. When I was in the wechat store, I used it to write the Iconfont automatic update system, and also used it to write my own notes and blog update system. Learn Python and watch the Rookie tutorial (Python3).

  3. C++

    I have the foundation of C language in university. I still remember that C language was the first language I got into contact with programming at that time. I was very energetic every day, listening to lectures carefully, preparing in advance and handing in homework on time. There is still a big gap between C++ and C. The main purpose of learning C++ is to understand the codes related to Flutter Engine and broaden my thinking on work. I’ve only finished the rookie tutorial so far, but I’ll spend more time learning about it and its associated toolchain.

Soft power

To do things

When I was in school, I just had to do the homework assigned by teachers (not even by myself), or the lab assignments, and nothing else was my concern. Change your mindset slowly when you get to work — it’s your responsibility and obligation to care about anything that matters to you. When you’re assigned business, you need to be familiar with connecting upstream and downstream, thinking about recording first, then master planning, then coding. Don’t commit yourself to deadlines. If you do, try to meet them within the time set. Get the details right, and don’t get mad at testers or product questions — you both want the same thing, to make the product great.

communication

Communication is not only important in work, but also in our whole life. At present, it is also something I need to improve. I bought the book “Speak Well” and read some of it. I feel that it is not very effective. Communication still needs our daily experience and summary to improve. At present, I also consciously summarize and reflect on daily communication, clarify before communication, focus on the key points of communication, and complete information exchange in the shortest time.

Taking notes

In school, I always disdained to take notes. I didn’t realize the importance of notes until I had worked for a year or two. We come into contact with a lot of things in our work or life. If we don’t record it, it’s unnecessary to step on a pit again later. Now I have developed a good habit of recording my ideas at work. I take notes of thinking before development and summarize after development. Record the learning process at any time for subsequent review. I used a lot of recording tools, but I chose VSCode in the end. I felt that the most primitive is the best, and even wrote a VSCode plug-in (note-sync) to synchronize notes. You can read my article to learn how to configure VSCode.

The work efficiency

I read the book “Redo 3” recommended by @Liheng, which has a great influence on me. The longer we work, the more likely we are to be interrupted by other things, and the less time we spend quietly doing things. Finally, we get lost in the busy day and even go home every day without knowing what we have done. This will have a certain impact on our work, life and personal development. So we need to consciously optimize our workflow in our daily work, such as using the Pomodoro Technique.

share

For me, sharing is to motivate myself to learn more in-depth knowledge, and to communicate with more people. I wrote about 10 articles in 2021, most of which I spent a lot of time writing. My writing ability is not good and needs to be improved. I also hope to have more output in 2022. I have done on-site sharing twice before, and I hope to have more opportunities to participate in on-site sharing this year.

Looking forward to

Also do not set a flag, hope 2022 more prosperous motherland, Taiwan return, also hope to eat more melon 🍉

Finally, HAPPY New Year to you all.