Next week, I will go to the new company to report that the decision to change cities (leaving Beijing) and occupations (not development) is still quite difficult. I have been reflecting on my five years of work since I graduated. I am ashamed to find a place to record my work. (This is mainly because no one knows me here ), it is also a kind of self-defense and provides some suggestions to people who come over. Let's take a detour.
In, I joined a very famous non-software company for software development with the aura of a master's degree. Everything was actually wonderful at the beginning. The various good fortune of large foreign companies brought a lot of Halo to themselves in the first year, of course, they also learned a lot (mainly non-technical stuff ). However, since the second year, when I was surrounded by various emails, meetings, and wrappings, my technical skills had to go straight down. However, I was not aware of the problem at the time. I felt that the money was okay and I was not busy. I was confused when I joined the problem. It was not until last year that many colleagues from Tsinghua University left their posts and repeat their work day after day, with significant ceilings, non-rising wages, and concentrated family-related outbreaks that brought them to their senses that they began to wake up, then begin to make up your mind to make changes.
However, the transformation is painful. In the past five years, we have mainly performed some internal business processing and presentation on the Windows platform, mainly using C ++/C # and MFC, winform, WPF, and WCF. Basically, the technology is what it looks like. Generally, msdn, Google, and stackoverflow can be used to solve the problem. No databases, no data structures, a little network knowledge, and focus on business presentation. All of this seems to me that recruiting a fresh graduate can have the same development capability as me in a year. The only business that understands a lot and does not grow much is complicated and repetitive. Therefore, BS has been used many times when I started an interview and looked for a job. In the light of the Halo, people usually give you an interview opportunity. However, once I talk about the technical details, I cannot answer many of them, it was once quite frustrating. Fortunately, I finally got a technical-related position, and I was able to take into account the ideas of my family and future development. That's not to be discussed yet.
To sum up the unsuccessful development experience over the past five years, consider the following main issues:
- The goal is unclear. Because the major I learned is not pure software, I accidentally come in for software development, and I have never thought about my goal, as a result, the development remains unchanged for five years.
- Lack of persistence,I failed to stick to one thing to the end. In fact, I have learned some things over the past five years, including HTML, JavaScript, CSS, Python, Java ...... I also read a lot of technical things. But they are superficial, and they do not have to stick to it in depth. They understand everything and the result is that they do not understand anything.
- I am not diligent enough. I have excellent performance in my childhood, strong learning ability, and lack of hard work and investment to do things, so I develop the habit of diligence, only at work can we find that we need to redouble our efforts to succeed.
In addition, I would like to talk about my understanding of software development from the perspective of a non-specialist software program:
- I have learned so many so-called Languages, frameworks, and technologies through upper-layer development, but now I think the underlying data structures, operating systems, network communication, and some other basic things. I am also a programmer. I used to despise basic things. I always thought that I understood WPF and could draw a dazzling interface. In fact, it is too superficial to understand. Only by mastering what remains unchanged can we deal with upper-layer technologies. Otherwise, Microsoft will only take the lead. So it is very important for new people to lay a good foundation.
- In addition to the basic things, I think the second important thing is the software architecture. A good architecture can make things get twice the result with half the effort.CodeIs easy. To put it too far, a good architect can bring a group of interns to work to make good things. Software development increasingly does not require us to understand the underlying things, and many ready-made wheels can be used, but we need a good architect to know how to build blocks. So I think we usually need to look at the good open-source architecture and learn more about the box. Of course, the wheel and the building block know where to get it. The most feared is that, like me, Google will only search for building blocks. This is the so-called pure codoon :(
- The second is the business. Many developers often need to understand the business. Many developers do not care about the business and think that technology is the most important. In fact, most of the time, the business is the King. In my opinion, software development serves the business most of the time. For support, companies rely on the business to make money. Therefore, developers also need to understand the business, especially for those who don't really want to keep developing, understanding the business and technology may give you more opportunities.
- Finally, the software development career was developed. My personal opinion was that codenong was able to climb up to work as architects and managers, but it was actually very rare. I saw that developers were always able to retire as foreigners, people do not have a title, so I can only observe two types of people. One is a company that is proficient in business and knowledgeable about technical systems. One is that I am very enthusiastic about the technology and have a strong ability. I don't want to ask for any title. I can pick a major question. I think the situation in China is not the same, but it can be used by foreigners. Of course there is still much to do without development. What I want to say is that development can be done for a lifetime. It depends on my personal thoughts. I have been thinking about this problem. At present, there is only one fuzzy path, and I have to touch the stone.
The above is the reflection on five years of work by coders, who are not experienced yet. They basically write what they think, and their ideas are messy. Please forgive me.
note: In the morning, I saw my homepage and many comments from my peers. Thank you for your encouragement. I will cheer up!