Originally the title wanted to write "18 years of development experience summary", but I think my development career is not over, how to sum up. Moreover, some personal accumulation and views are not necessarily correct, so it is more appropriate to make a summary, the meaning of their own needs to continue to accumulate progress. This article mainly discusses a few personal experience, these content may be only a part of my own problems, I believe that some other programmers have encountered or faced. Before seeing these questions also thought about, words replied, now summarizes the way to write out, is to own 18 years experience of a review.
How to start writing programs
The first contact with the computer is of course in school, can say nothing learned, also did not learn anything, on the contrary just increased the fear of the computer. For the first time in real sense, I began to learn computer in 1992, my department is responsible for selling computers. Since the operating system of the PC (then called home computer) was DOS, the basic Operation command must be learned in order to use the computer. My first time to learn to use a computer at that time, this for later learning programming down the foundation, because at that time will not operate the computer is not possible to learn programming.
Started working in the company's personnel department in July 1994. At that time the personnel department had a 386 desktop, and 386 was good. The machine is fitted with WPS and foxbase, which can be said to be standard. My first programming language is this foxbase. It should be said that this thing is still very easy to get started, and then the leadership did not arrange any specific work, so have a lot of time to learn, the results soon mastered. While completely driving away the fear of the computer, it has a strong interest in coding. At that time I was entirely self-taught, 3 months after the development of a small management system capacity. Then is the study C language, I also specially bought a book, the title is "C language programming 300 examples". The compiler is Turbo C 2.0. It should be said that C is more difficult than foxbase, but I am more fortunate to have learned. As a result is written in C language a number of small programs, operating foxbase database files, implementation of the foxbase part of the command function.
These experiences made me aware of my expertise in software development, so I began to have the idea of the transformation into a professional programmer.
Two. Career Programmer transformation
It's a good thing to find your own expertise, because you can position your career direction and planning, but the specific operation is not so simple, I did some thinking and evaluation. It involves two questions: first, is the transition worthwhile? Second, do professional programmer my ability is really enough.
For the first question, my father's opinion is not very supportive of my turn. It should be said that the people at that time were more convinced of the so-called iron rice bowl of the state-owned units, Ann Ease and peace days, less toss. And at that time, programmers are very rich in the concept of youth, and some companies even with the company's young programmers as a display of capital. So it's a hard decision to lose the Iron Bowl in your hand to do a job that is obviously higher in relative risk. So I am hesitant to face this problem. For the second question, from my performance in this unit, it is my specialty to write the program. But it's not clear whether I have an advantage over the so-called people who write programs. Feedback from a variety of relationships is very pessimistic. Mainly two reasons: 1. My major is not computer, 2. No actual development experience.
Based on the above situation, I did some preparatory work, first of all, I gave myself a problem, that is, the development of a virus program. If I can independently develop a program that conforms to the concept of the virus program defined by the Ministry of Public Security at the time, then I decide to turn. The choice of this topic is very fastidious. First of all I am interested in this direction, and secondly, the problem is difficult enough. But this topic is not difficult completely divorced from the reality. Because I have learned a long time of the compilation, the usual attention to the collection of virus data, so the implementation of the virus program every technical details I was clear, but did not actually write code. Over the following 4 months, several recurring nightmares of ups and downs, and finally achieved success. The entire virus code probably 1.4K, should not be small. The symptom of that virus program attack is to let the computer buzzer to send a sound once, infect is at that time a very famous tool PC tools. When running PC Tools, the Beep sound I hear is probably the most beautiful single voice I've heard in my life.
The virus successfully developed, so that the real see their expertise, so determined to change careers. In view of the qualifications and experience, I was planning to use the title to make up. So the registration to test the programmer qualification and proficiency test, the test in 2000 years changed, now is not called this name. It was a 1996 thing, and it was a very big blow when the first Test didn't pass. The exam experience made me realize that I lacked a course, is the data structure, from this thing I found that there is a professional system learning and no professional system learning gap is obvious. So on the one hand self-study data structure, on the other hand participated in a adult, professional is the computer. After a few years is basically in the accumulation, on the one hand, the program is also looking for a topic to write, on the other hand in the study of computer courses. Three years later, I have a bachelor's degree, Elevation certificate, in July 2000 began to drift north, looking for my first programmer job, that year I was 30 years old.
I hope that my transformation of the road to have the same confused friends a little reference. Basically my transformation process is still more cautious, belongs to the steady. In fact, there are many details of this process is very test people, limited to the length of writing out. When you have the opportunity to write a summary of the time to write it.
Three. First programmer job
July 2000 to Beijing, and then in a more difficult situation with the Internet to apply for a company. I was so lucky that I got the job because the company was just leaving and needed someone to fill it up. The test of this position is the need to maintain a serial communication program, such procedures I have never been contacted, and all the information is in English, for me this challenge is not small. The way to conquer this misery is two: 1. Bite the bullet read the code, read it; 2. Bite the bullet and read the English document. Because since it came out, there is no retreat, only spell. Read the Code experience let me learn a lot of things, basically this kind of communication program I can write more in place. Therefore, it is also recommended that colleagues, pay a little effort to learn something is always beneficial.
After adjusting to the position, it is basically convenient, and also actively cooperate with the department manager to help other colleagues to complete other projects. Since then, I have been with a considerable number of programmers, constantly in the job-hopping, in the same company did not sign up for the second contract. I am like a sand in the boundless world drift.
Four. About Job-hopping
Working in Beijing for a few years found that it is more difficult to do a long job in a company. Even if the idea is subjective, but the actual events will always lead to job-hopping results. It may be that the employment relationship between employers and employees is looser, and that employees have greater freedom of choice is also a reason.
The first thing to say is, don't just change jobs for wages. And the importance of his several factors is not lower than the salary. Like what:
1. Stability of work
For most people, the ability is similar, stable work can avoid frequent job-hopping, and lead to go and stronger than their own people to compete for positions. My personal view is that there will be more and more so-called older programmers in China in the future. The reason is that the age of whenever and the generation of programmers is beginning to approximate the so-called older. The popular view of the 90 's was that the programmer was in the profession of eating young rice. There is a misunderstanding, that is to engage in this occupation is indeed young people, because the industry has just begun to rise, not a large number of old programmers. The lack of comparison and choice in the job market has in fact caused the situation. But when the market appears a large number of senior programmers, employers will be more choice. As seen in recent years, the 40-year-old programmer has a quick example of finding a job. So, a steady job is becoming more and more a practical goal.
Second, my personal understanding is that the so-called success is not because of how high your salary is, but how long you can work in a company. Because most of the software companies are joint ventures, wholly owned or private, with the increase in working hours, employees and companies and employers will have more and more deep feelings, which is particularly important in private enterprises. This emotional accumulation is the best foundation for individuals to get good development and high wages in the company. So if you can stay in a company for a long time, try not to change jobs.
2. Company leaders to their own appreciation and esteem
A fate or a good boss is a wealth, if you can meet, then please cherish.
3. Do you like the specific work content?
Development work contains a lot of specific content, in a position to get their favorite work content, is not a particularly easy thing. For example, some developers, actually engaged in the work is to modify other people's code, this read the code of others to modify the work, I believe many people are unwilling to do. If the company offers a job that allows you to design and write code according to your own ideas, the experience will be much different. So if your current job is what you like, don't jump.
4. Relationships with colleagues
The relationship with colleagues largely determines the quality of the work environment. If you think you have a good relationship with your co-workers, get along well and have a good time, then think about whether you can get a new company or not. The real case that I come across is that some people are not willing to change jobs because they have a rapport with their co-workers. In addition, I also believe that the relationship between the employees of a company is very harmonious, then the company should not be too bad.
5. Other
such as the opportunity cost of job-hopping, the distance to work and so on.
Five. Entrepreneurship
All along, I have seen a lot of plans or have started a business, here to talk about my views. I think starting a business is not something that you want to do tomorrow. Startups need to wait for opportunities, you need to be ready to wait until the opportunity comes. Don't wait until you feel like you're going to start a business, it's basically late, or the chances of success are not high. As far as I'm concerned, I really started my business in 2009. The development of the product began in 2006, and has been on and off continuously. This period resolved such issues as core technical issues, product positioning, direction of development, market research and so on. At the same time, the company's registration, funding sources, office locations, equipment configuration, personnel recruitment, corporate management issues, etc., these problems are gradually resolved during this period. So in 2009 back to Beijing, full time development products, officially started a business. So my experience is that with a very calm mentality, long-term accumulation and preparation is the basis for starting a business. Must not think oneself simple make a thing to sell money, can start a business, this is impractical. Today's society as a whole is fair, there is no core competitiveness or core technology to make money is basically unrealistic.
Six. Learning
Remember that I have not entered the time, in the television heard Tan Haoqiang old man said, computer this line development fast, need constant learning. If the most important sentence is now to be chosen, then the words Tan Haoqiang said to me, at least in the top three. For programmers, learning is a lifelong thing, of course, this study is broad.
Many people think that as they grow older, their ability to learn is a step backwards. At the age of 80, the brain is only about half the size of the age of 20, so this is certainly a good idea. At the outset I thought so, so once spent the effort to prepare for System analyst qualification, planning to do a full-time design, do not have to write code. But as I grew older, I found it was not the case for older or older programmers working in the workplace, at least for me. A key problem here is that the experience of older or older programmers plays an extremely important role. For a student is often a blank passive receptive knowledge, but for an older or older programmer, you can learn with experience. So the speed of learning not only does not slow down, but is accelerated, the speed of learning knowledge will be more and more quickly. The advantages of experienced programmers are more prominent in the mastery of knowledge and the degree of application in coding. This is unmatched by young people.
So I don't think it's hard to try to touch, understand, and use the new technology and knowledge. Although technology is developing very quickly, but it is also progressive development, in each step of the update is not much. Therefore, every time to keep up, do not lag behind, to maintain the state of lifelong learning is not a difficult task.