EDIT: Article is now on Reddit front page. Look here for my replies.
This is a little tale of the troubles I have had since I started working as a programmer, and it might come off as a rant. I am currently 26 years old and I have been into electronics and computers since I was very young. With this article, I hope to share my experiences with other programmers, and get some useful feedback from the web community.
I have changed jobs 4 times since December 2007. I started out working for an Internet customer support call center in late 2007. I hated it. I would swear to myself before answering calls, and started avoiding them. I was fired by a red-faced manager who said I was wasting their money and time.
My next job came to me in February 2008, and was with a software company that developed web applications. I was put to work solving bug tickets. Their main platform was written in Perl. Our latest project would use MS SQL as the database engine, and it was notoriously slow. At first, I cursed Microsoft, but then learned that the database didn't have a single index. After inquiring about this, I received a rather indifferent answer, something about maybe looking into it one fine day.
Someone complained to the manager about all the bug tickets coming in. The manager responded by complaining about all the shitty code they were producing. We got another new project, a system for connecting mobile ads to geographic locations, and the prospect of writing an algorithm for ranking the ads seemed exciting... until I learned that I would probably not work on the project, and that they were going to have another company develop the algorithm for them. They laughed off my proposal of writing our own algorithm. I was relegated to answering bug tickets and started to lose my motivation. I hate doing a million different small tasks involving fixing problems that other people created. After not too long, I was fired from this job too.
My next job was for a company that produced a cellphone mapping library for Java phones. This seemed exciting enough, and my first task was actually rather enjoyable. I was assigned to write a closed-source GZIP decompressor for our GPL fearing customers. This was great fun and I learned a lot about things like Huffman trees and LZ77 compression. After completing this, I was feeling rather proud of myself. Then the manager said something along the lines of "You're finished? Good. I'm sure you will do a good job soon." as if my week of working on the code had been nothing to him.
I shared an office with another newly employed guy, who seemed to get all the cool work, calculating vectors and doing visible things that begat positive feedback from the managers. I got assigned the task of porting some Visual C code to Solaris x86. My motivation had began to fade away at this point, and the project took half an eternity and tested the patience of my manager. Predictably enough, I was soon fired.
My next and current job is with a business application software company. My first project was more of a test than a project. I was assigned to setting up a wireless hot spot for the company. We hardly have any visitors, so it was pointless. However, they gave me a low profile desktop PC, a touchscreen and a Dymo label printer to play with, so it was fun anyway. I got the touchscreen working so the label printer would print out WLAN info (usernames, passwords, etc) on a label, and I wrote some PHP scripts to add temporary users to our RADIUS server. This all worked beautifully and everyone was impressed.
Then I was assigned to solving tickets. Not again! I had little understanding of the rather complicated platform they had put together and a lot of time was wasted asking uncooperative or busy people how to do things. There was no documentation, not even Javadoc. Oh, and it was all wired with Spring. I hate anything that loosely couples objects, because I can't see the structure just from the Java code. Nothing refers to anything else. Instead, all references (the ones that aren't automagic) are listed in 5 XML files. I hate XML. It's just not a very readable format. Whoever thought it'd be good for encoding logic should be lobotomized. On top of that, business logic has a sleep inducing effect on me.
I couldn't take it much longer, so before I had too many absent days, I had my doctor put me on medical leave. The boss called me to a meeting and asked me to bring all the company's possessions. I thought I was going to get fired again. Although I was hammered pretty hard for my low reliability, I wasn't fired.
A month later I am back at work, and seeing a psychiatrist, just to see if something's the matter with me, since I can't seem to keep a job for more than 6 months. So far, he has concluded that I am very resourceful and have achieved a lot for a 26 year old, and that I am a medical mystery. He says I don't have Aspberger's syndrome and he dismisses ADD too.
I'm beginning to wonder if I'm simply unhappy with my job, or with the ties of professional life in general. I get reprimanded for being 8 minutes late and I'm tempted to say "screw this," because 8 minutes is nothing. I even got reprimanded for staying home because I was going to the doctor before lunch.
My company has began laying people off now. Their biggest customers are cancelling their projects because the credit crisis forces them to cut back. I sit here in Norway, having never set my foot on American soil, and I am losing income because of some pyramid scheme concocted by Wall Street in America. It is so surrealistic it's not even funny.
I am feeling increasingly disillusioned due to all of this. I have to go out and search for a job, again. I will probably get assigned mind numbing tasks, again. And I will probably get fired, again.
I'm hoping to find a job in embedded programming because that stuff excites me rather more than performing database operations. It's looking grim, though; low-level programminng jobs aren't exactly a flourishing market here in Norway.
If anyone out there has experienced the same thing, feels the same way about work, or has good advice, I'd like to hear it. I will be posting this article to Reddit, Digg and Slashdot for comments. Please let me know if I have permission to publish your reply on this page, if you are writing by e-mail.