Review Of 2019

Page content

1. The progress that I achieved

1.1. Technically

After plenty of projects, I had a deeper understanding of software development. ASP.Net Core is the mainly framework of developing a web application which I often use. I learned a lot from its design, for example, the middlewares, the dependency injection. Alse I wrote some Nuget packages for our team to improve their development efficiency.

At the begining of 2019, our team shrinks to only one developer. Apparently, the developer is me. Those days I work that hard and when I came to office, I jumped into the code for hours, even forgot to eat. My leader was haunted by the users, as well as our top leaders. By the way, the top leaders have poor knowledge of computer science and software engineering, so they always raise unreasonable requirements. I’m tired and I turned to develop infrastructures. During that period, I got a lot of experience of micro service, software design, that can make software robust and extensible.

First of all, I want to talk about how to find the balance point between developing as fast as possible and considering further to fit the protential changes. I used to be over-worried about how to design a perfect system to fit these unexpected features, which may cause a big modification of the code. I was exhausted because I got the pressure from myself. Fortunately, I read some articles about design, one of criteria is, Simple is best, so I realized it is so important to design a system just right at the begining, also hard to achieve that. Here I learn from the philosophy of UNIX, Write programs that do one thing and do it well. Now I always follow these rule to design, to write, and I got a broader vision.

Secondly, I know about a bunch of opensource softwares such as Redis, MongoDB, RabbitMQ, and so on. These are brilliant components that can be used into our ecosystem. At first, I only use them by reading their documentation and invoking the SDKs or calling the APIs. But after a time, I thought maybe I should take more steps to figure out how they work. So I bought some books and by now I studied part of theory of Redis, and I planed to finish reading it before the Chinese New Year.

At last, I learn the art of collaboration of coding, it reflects in using Git to manage our contributions to the projects. I introduced Git flow to the leader, and showed him the benefit of using Gitflow to manage the development process. It is significant to make sense of the flow we develop new features and fix bugs, otherwise our repositories will be completely messed up.

In short, I played an irreplaceable role this year in the team, it forced me to become stronger to handle all the staff. Now, as the result, I can take charge of a top-down design and develop every part of a whole software or system.

1.2. Some principles

I learned to pay attention to the details. Coding is a strict thing that machines only run as we told. Sometimes a single symbol of plus or minus may cause the entire system break down. Details are not only for the coding but the human beings, a job you give someone else should be detailed, too. We programmers are some kind of machines, accepting orders to produce specific products, that’s why I like things are definite rather than uncertain.

My office is near to leaders’, so it is dangerous to talk aloud. I was an easy going person, making little jokes at people or things, but it changed when I start to work. Others want listen nice words, so I keep silence.

My company is not formal at personnel staffing. I want work with people outstanding, to promote myself to be better. I desire to learn good skills, good theories, but the reality is, people around me are good enough. I can’t put up with them ruining codes but I fell tired to fix things up, so I became impassive that I only mind my own business. What a tragedy. It happens every minute everywhere in the world, but no one can stop that.

2. Shortcomings

Combine the work and life, I found that

  • I’m too kind to everyone. Literally, a job is just a contract between the company and the employee. This simple relationship shouldn’t involve other moods that could make things complex. I tried to help everyone on their job, any other things, but they won’t buy it. And finally I know what is like to be unaccepted.
  • I’m optimistic to estimate tasks or someone else. In terms of the taks, some of them are not detailed or clear because of my leader. He should have played a role that distinguish what can do and what can’t, but he did not. I supposed to turn down these things but I was too young to know what should be reject, and I recognize that I can’t believe anyone except myself.

3. A Plan of 2020

  • Finish reading books bought at least several months ago. They are money.
  • Rebuild my knowledge tree. Find out what I still lack of.
  • Write a program or an application, to become a truly full stack engineer.
  • Earn some money, Buy a house.
  • Spend more time on my family, people who I love and love me.