This post is both a rant and a bit of encouragement to any aspiring developers – this will not have code.
Gabriel posted a rant earlier which sparked quite a few comments including a number from a fairly frustrated individual. Ray posted a follow up to the rant and I feel compelled to comment as well. I’ve had frustrations as both a job seeker and as a hiring manager so I have seen both sides of this particular coin. I know the familiar themes, “Not enough quality in the marketplace”, “Employers won’t pay for quality”, “Employers won’t train inexperienced people”, “Employees use jobs as a training exercise to find a better paying job”, etc.
I won’t offer rebuttals or thoughts on any of these because, frankly, I can’t. I can’t tell you if they are true or false and if they are true I can’t change it. I will offer some perspective.
I was a brand new manager in charge of a small (18) software development team when I came across Carla. She was young and inexperienced. She had an MIS degree and some minor work experience – not enough to make me believe she could work on my staff. What Carla had in abundance was energy and intelligence. As we spoke I began to believe in her and so I made her an offer. I would pay her a very low salary for 6 months. During that time she would have to maintain a normal workload and pass the MS developer certifications [I didn't necessarily believe those indicated anything more than some knowledge of the language but . . .]. If she pulled it off I promised a regular position and a raise. The last time I was in touch with Carla she was the manager of a development team at that company (my old job). It wouldn’t surprise me to find out she was a Director by now (or even a VP).
To this day the single accomplishment I’m most proud of in my managerial career [such as it's been] was giving her a chance. In many ways it was a small thing, but it was one of the best professional choices I’ve made. The reality is Carla did it all for herself. I have no doubt she would be just a successful today if I had turned her away. I could tell you stories about several other people from my time in that company – from the CTO who began in Customer Support (answering phones) to several folks on my teams who became very successful – and they would all sound the same. These people succeeded because they invested in themselves and became valuable to the company and in the marketplace. They did this largely on their own, without a company giving them money, time, or training.
I could also tell you other stories. About the man I had to fire after 6 weeks because he spent his time in the office looking for another job because he deserved better. Or the man who felt I should give him a raise even though he hadn’t learned any new skills (even with the training I offered) or taken on any additional responsibilities. These stories would also begin to sound the same and if you listened carefully you would hear the same complaint, “it isn’t fair”. Maybe that was true – I’m not wise enough to know – but in the end, the difference between the stories of success and those of failure wasn’t about fairness – it was about focus. That is what I looked for in employees back then and what I look for in peers today[I'm no longer a manager - just an average programmer]. I would rather hire a totally inexperienced person who has the energy and attitude to succeed than a twenty year veteran programmer who was convinced they deserved something. I can’t teach someone how to work hard for something they desire. I can’t teach attitude. I can teach programming and if someone has the right attitude the rest will take care of itself.
As for the other side – the one where I was on the outside looking in – that story is a bit like Carla’s. I studied English Literature in college (U of O – Go Ducks!) and I left before I graduated so I don’t have a degree. While in school I applied for a job at the University’s Network Services department as a student engineer. I was in the wrong degree program and had no formal programming experience so naturally, I didn’t get the position. As I was leaving – after being told “thanks but no thanks” – I came across a friend of my father’s. He worked in the department and, upon hearing my story, convinced the director to hire me. It was my chance and I took it in both hands. I was the weakest link in a department full of geniuses but I learned as much as I could and drank from the fire-hose. That job led to my first full time position (and my departure from the university without a degree) working for a school district that had just purchased a few UNIX servers, a bunch of Cisco routers, and a few hundred Apples with no-one to take care of them. I made $30,000 my first year and spent 80+ hour a week learning everything I could while keeping the lights on for the district’s network of computers. I became adept at shell scripting and C programming – and putting up with teachers but that’s another story.
I’ve had several jobs since that first one and several jobs that got away. Many companies didn’t even give me a chance because I didn’t have a degree. Several wouldn’t let me even interview. Once I had some experience in programming (C, Perl, JAVA, VB), many companies would offer me lower salaries because I didn’t have a ‘typical’ programming background. I’ve interviewed with one company in Austin twice and been rejected both times. Was any of this fair? Again, I don’t know. Was it fair I got that job in school because someone knew my father? Was it fair that companies rejected me without even giving me a chance to code with them – to see what I could do?
But a better question – and one I’ll answer – is, “does it matter?” No, it doesn’t. I won’t tell you I was fine with the rejection. I wasn’t. It hurt and the next time I’m rejected it will hurt again. But it never changed what I was going to do or how I was going to do it. I’ve been programming professionally for over 16 years and I don’t believe I’ll ever stop. I’ve been learning how to be a better programmer for over 16 years and I hope I’ll never stop. Every year I find new challenges and ways to grow my skills – most of them outside of work. I’ve volunteered at code-camps, attended book clubs, dojos, developer chats, lunch-and-learns all to be a better programmer tomorrow than I am today. I don’t do this to get a better job and I don’t believe I deserve anything for all of my work. I’ve done it for me and that is enough. Coincidentally, I’ve managed to get hired a few times [I've never been out of work] and I’ve made a comfortable living doing something I love. I don’t know if it’s fair or not. I certainly don’t feel I deserve it, but I do feel grateful.
So, if you want to have a career in programming I suggest you spend less time worrying about the fairness of the market or getting what you deserve and more time learning your craft. Even better, learn what you really want and go after it no matter what. You will always face people, some of them good people, who will fail to see the best in you. If you see it yourself and pursue it with all your will then things will work out o.k..
And for anyone hiring out there I suggest you take a good look at the person behind the resume when making your choice. Passion, drive, and determination will pay you tenfold if given an opportunity. You will be hard-pressed to find a quality developer if you can’t find a quality person.