English Original: I Am a bad Software Developer, compiled: Dennis Gao
In the last 4 months, I have profoundly reflected on myself. Just 7 months ago, I was working on a job that was not very annoying but did not feel happy. I can't exactly describe why I feel this way until a friend of mine finds me again and says that I have a job that I do, but I have the opportunity to participate in open source software project development, and then I quit. All this let me know:
I'm a garbage programmer.
I chose to leave the company 3 months later. At that time I signed a temporary contract, before the full commitment to work, but first felt the wind of factional struggle within the company. I don't feel any pleasure in this job, but I'm not particularly unhappy. It's just that I haven't found anything particularly challenging and interesting. So I decided to take some time off to sum up my life.
In order not to affect the family's income, I carefully arranged the vacation plan. After the bank bill is repaid, the rest of the money is enough to keep me out of work for 4-5 months. After making a cash and budget statement, I decided to take a 2-month vacation and then spend 1 months on the interview, the 4th month as a buffer, just in case the interview was more than I expected.
Now I'm really in the buffer period. So far, I've interviewed nearly 10 companies, but none of them has considered hiring me. Even in most companies, I didn't pass a technical interview. I'm a programmer, and I've always felt good about myself, and I think I'm a good programmer. But in an industry that is recruiting through auditions, I find it hard to think of myself as a good programmer.
Some of my friends and colleagues, I think most of them are more experienced and have higher IQ than me. When I describe my anxiety to them, the feedback can be summed up as "the ideal is full, the reality is very bony." In my last job, my colleagues were familiar with my way of doing things and I enjoyed working with me. And I think my work background, professionalism and technical ability are very good. So I can not say that I am a incapable programmer, but I am not good at the interview to express themselves.
But if only a handful of companies have turned me down, I can still trust them. But so far I have failed, and only two times I have successfully passed the first round of technical interviews. If I have one or two offer, I can admit my ability, but can you say that all the companies have made the same mistake, and unanimously ignored me, although the interview performance is not good but very good programmers? In other words, is it possible that a garbage programmer like me can always grab a job from a competent person?
From the history of the past, I should not be the kind of people who do not speak and practise. I'll practice writing some code before I start working every day. And just for fun, I'm going to use some fancy programming language to solve some of the classic scenarios. I often contribute to the open source community. Sometimes I even try to talk to others and learn how to show myself as much as possible in a conversation. Later on, I found that the most challenging thing to do with people was not that difficult. This story tells me that you don't know if you can do it unless you try.
The problem is that before I can do anything, I'm broke. I can afford to pay rent and credit cards this month, but I haven't got any offer yet and I'm going to be in debt next month. I even had to think about moving from my current apartment to the old shaped. But more importantly, it seems that I have no ability to continue to work in this industry, and I am afraid I do not know how to write a program I can do.
So what exactly is a garbage programmer?
My bookshelf is stuffed with all kinds of classic books: "SICP: the construction and interpretation of computer programs", "Lisp Programming", "TAOCP: Computer Programming Art", "C expert programming", "effective C + +" and some algorithms, distributed computing, security, graphics, mathematics and other textbooks, And I've read most of it (TAOCP I'm still grinding). I also often read some ACM, IEEE articles and doctoral dissertations. If you only judge from my reading list, you may think I'm trained, but in fact, I just like programming and want to do my best to master more knowledge.
I have contributed to many open source software projects, including C + +, Perl, Python, and even some Lisp languages. Some of these projects I used but lacked some features, some were new to fix bugs or add functionality, and others I found were the class libraries or programs I needed.
I have been constantly improving my ability. I mentioned earlier that I would write some practice code. In the department I worked for, I would recommend automated testing. I have read a lot of books, papers and technical articles, and I also write articles to try to help others.
I like maths very much. After reading the information theory and ascertaining Shannon's entropy, I began to delve into the theory of order. I really like joint-semi-lattices, set theory, relational algebra, Sentential-database. Something I can't remember now, for example, I know that there's an iterative approach to each form of recursion, and if I need to know more about it, I can quickly check in a magazine or textbook.
Still, I'm writing a failure to write a function that asks whether sequence A is a subset of sequence B and returns a Boolean value. When asked about the complexity of the function I had just written, I still couldn't remember (erase, obviously the list of complexity is N square, but at the time it was like an interrogation that I could recall these details, my mind was blank). Every confidence in me has been defeated by these mistakes, mistakes and rejections by 1.1 points.
In the end, I found myself becoming more and more depressed, hopeless, and very afraid of letting my family down. Later my daughter will ask me what I do, I may not directly answer her, or tell her that I am writing programs for the computer, and then hurriedly avoid opening her daughter further questioning. When she grows up, I will try to avoid telling her that I may do anything to get mixed up with food. I've never been successful, I haven't even done anything to make me proud. I'm just doing my best, even though the whole world feels like I'm not good enough.
I am a garbage programmer, this is my life.