Who Wants to be a Developer? Convince Me.
Living in a university town, we typically do not have trouble dredging up some college graduates to apply for our open positions of Programmer Analyst I or II, though a Business degree (with MIS concentration) is more common to see than Computer Science. I generally I assume it's because the business curricula is less technically demanding (though I am sure some might disagree). Still, I am quick to recognize that a person's talent cannot be judged on the basis of the degree held. One of our most talented developers in recent times had a degree in German. Another in Economics.
But herein lies the rub. In this era of ubiquitous opportunity available through the Internet, open source tools, and low-cost educational versions of development software, I find it difficult to take a candidate seriously when he has not taken the initiative to develop anything outside a classroom assignment.
One of our senior developers offered a few .NET technical questions to add to the interview script, but when candidates were mute after the question, "How to you implement exception handling in .NET?” I knew we were in trouble. No need to ask about the assembly cache.
Previous discussions on d.* centered on an article about only hiring the best. "The best," we might agree, is a relative and somewhat subjective characterization, but I believe we can also agree there aren't enough of the best to go around, nor can every organization afford to pay what the best demand.
But I hope that developers realize this: When you are called to an interview, the hiring manager is desperately hoping you will be the one. Most of the time being "the best" means you have to be "good enough" or better than the others, differentiating yourself from others who may have a degree just like you.
I get the feeling that many of our applicants feel they just need a break, a chance. Some are working outside the field in jobs just to pay the bills. I understand that, but if you aren't interested enough in the profession to build a website for a friend's business or develop a game or an application for fun, just to prove what you can do, will you magically develop a drive *after* you get the job? Heck, when the job you’re applying for clearly states it is .NET centric, wouldn't it at least be worth the trouble to do a little reading on .NET before the interview?
I can still remember an interview that I botched many years ago. At the time I was confused about it, but now I understand completely. A large hospital was hiring numerous positions in several different areas of IT as they beefed up their department. I seem to remember the question went something like this: "Do you see yourself as more of a developer or maintenance programmer?"
My thought processes at the time went something like this: "I wonder what I am supposed to say...what will give me the best odds of getting hired? I just want to be hired. I wonder if they need more developers or maintenance programmers? Maybe it's a trick question: maybe they do very little outright development here..."
So I responded in some lukewarm fashion like, "Oh, either, really. I'm flexible," which was very likely instrumental in my name being stricken from the list with a black marker.
Hiring managers want to hire people with hard skills, like .NET experience, surely. But they also want to hire people who have a professional identity.
I'll never forget when an intern in our department wanted so desperately to move from the workstation support group to the development group. When his wish was finally granted, he lasted less than a week. "I hate it," he admitted. He enjoyed the quick turnaround of requests to replace a mouse, or install a program. He hated the sometimes-solitary, desk-stapled existence of a developer who might work on the same project for months.
Another time I conducted an interview, after describing the open position at some length as being primarily a position involving developing software applications, I asked the question, "What area of IT are you most interested in?" The answer? Workstation support.
I realize that until a person has actually worked in the field, he or she may not be certain which area to specialize in. But that is why you should use the everyday opportunities that present themselves (and I know that they do) to try out various aspects of the industry. Try setting up a wireless network for your neighbor and they will love you. Install virus protection software on your parents' computer, or develop a website with a link to a database of inventory for your brother-in-law's business. That way you'll know which jobs to pursue and when you sit for an interview, you can come across as passionate about your field.
In addition to professional identity, it helps to have technical identity. The profession is a goldmine (or minefield, depending on your perspective) of platforms, languages, tools. A hiring manager might very well ask the question, "What are the two programming languages you’re most comfortable using, and what are their relative strengths?" If you cannot respond with some confidence to this question, then the hiring supervisor is going to consider you a crap-shoot candidate. You may very well be able to pick up .NET quickly after being sent to class, but only a crystal ball would be able to tell, because there is no supporting evidence.
I've said all that to say this to aspiring developers: If you're going to go to the trouble and expense to invest precious time in college to develop a career in software development, invest just a little more of yourself to set your resume apart from the slush pile.
Having said all that, (and if it's okay to add a shameless plug) if the idea of living in the southeast U.S appeals to you, you are interested in a career where your IT skills can make a direct impact on humanity, you are a competent (and passionate) .NET developer and might have an interest in a Programmer Analyst I or II position, see: http://www.pittcountync.gov/depts/hr/jobs.asp.
The reason it matters so much
The reason it matters so much to me that new hires have a passion for software development is that it is extremely uncomfortable to have an employee who either doesn't like what they're doing or aren't good at that they're doing. You would think that a person in that situation might do something about it themselves: move on to something they enjoy more or else take advantage of training opportunities and determine to improve skills...but often folks are paralyzed by quasi-misery, as though powerless to change.
I like to think that a job can be mutually satisfying to employee and employer, and often that is the case. Not only does the employee draw a salary that covers the family's living needs (often much less work than yesteryear's alternative of tilling the soil and hunting for wild game) but, as you (EN) suggest, their is an element of personal enjoyment, almost like a hobby. We *choose* this profession because something about it piques the interest. For me, I suppose I enjoyed the challenge, the thrill of creation, and the ability to help people through technology. The employer needs capable hands (or in our case, largely minds) to staff projects, like a contractor needs workers to wield hammers.
One of our most capable staff members (from a pure .NET coding and project management perspective) worked (prior to coming here) at a company where the IT department had evolved (devolved?) into a maintenance mode for years. The other programmers sat passively and let their skills turn to dust, while she signed up for Learning Tree passports, getting certifications on Java, .NET, SQL Server and soforth, so that when she was ready to move on, her resume (unlike theirs) was in good shape.
That is something I think about often, even though I have no plans to leave my place of employment. I often think: If I had to look for a job right now, how would my resume look to a hiring manager? What are my obvious strengths? Do I need to work on beefing up some area or another? Mr greatest nagging concern is that as a manager, I just do not have the time to code any more, and that worries me greatly....to the point that I consider coding at home in the evenings. I feel like by not coding I am giving up a superpower and that those reporting to me will see me as some sort of impotent human being. Is that crazy? I still rotate with the programmers on-call, so I do get to do "real work," and still do a good bit with SQL Server, but just not what you could call development.
Is that what music producers and such feel like when they started out as a musician/performer? Hmmm.
Contradictions
Despite my computing talents, I had a basic contradiction. I liked not only coding but also writing and running my mouth.
I had wanted to be an Artist and a Writer and despite my passion for coding it was a downsized choice.
This contradiction meant that in highly structured environments I could be Disruptive.
However, we have to ask ourselves whether in an advanced society, having crosscurrents and personality disorders isn't the norm. Maybe we're all sick puppies because maybe, as a very intelligent editor at a tech pub company once told me, we're wired to hunt down lions in de mighty jungle, not sit at computers.
So, if someone applies to you for a job with a mad gleam in his eye, who loves to code but wants to be a ballet dancer give him a shot IF he loves to code enough not to show up for work in leotards, or if he agrees to wear a bandanna over his no-fly zone.
DP managers have to understand that work sucks and that people represent timelines who may be effective coders at 25 but then turn into bozos at 26.
Reassignment to technical writing for coders who kin write gude wif korect gramer and speling like me is something to consider.
But given that your office is probably under the gun to "pull its own weight" (while North Carolina wastes money on an eponymous battleship rusting in a swamp, turning it into the USS North Carolina because we glorify war) you might have to can him.
As a teacher, I try to maintain my coding skills on the Lamma ferry. However, to do so, I find myself writing code that builds windows at Load time because on the ferry I cannot use the mouse, and it sucks to use the touchpad to draw.
I tell myself this is what cool developers have always done on GUIs but then when you open the project you don't see its planned display.
Good question
Donna, I like your interview question "What are the two programming languages you’re most comfortable using, and what are their relative strengths?"
In my experience the answer shows a lot about technical maturity. It might range from "more curly brackets" through "strong typing" to "better static analysers".
It's a great open question.
Sometimes what's not asked is telling
I recently interviewed with a company and at the end, the interviewers asked, "So... Do you have any questions for us?" And I certainly did: "Why haven't you asked me a single technical question?"
The interviewer responded, "Well, we know you're technically competent, just judging by your past employers."
At that point I knew I didn't want to work there. There were a great many average and even sub-standard programmers working at the companies I had worked for and their resumes look just like mine and their responses to the interview questions would be similar as well. Apparently, the company I was interviewing with would be perfectly comfortable with hiring any of those drones. Therefore, it's safe to assume that technical excellence will not be appreciated there.
I think the standard resume-based interview questions are an adequate way to distinguish the mediocre programmer from the bullshitter. They can sometimes help you find mediocre programmers that have done very similar work to what you intend to have them do in the future. They really cannot help you determine if a candidate can develop good software or not.
A mediocre programmer of long experience will quickly be surpassed by a superior programmer who has no experience at all with the systems you intend to have them work with. Unfortunately, in standard hiring models, the resumes of these candidates do not even make the first cut.
The classic Microsoft interview...
was the best. You were asked hard questions and graded not on the "right" answer, but the one that showed insight and the ability to communicate.
The cottage industry in the correct "answers" was beside the point, because while it might be useful to "prepare" to build self-confidence you cannot "prepare" to be the sort of person they want at their best.
The Microsoft interview style had a strange effect on me. You see, I've interviewed with Microsoft twice, and twice not been hired...based on the interview.
And yet in neither case I felt literally no resentment!
In both cases I realized that I wasn't right for the job, in fact overqualified...and smarter than Bill.
That would be a receipt for disaster in a company where the successful employees worship Bill. Ballmer would have me for lunch.
In the first interview, I realized that my "mistake" was that I didn't give a good goddamn that in my loop to iterate through a linked list, there's a test for "being in the first iteration in the loop", since I'd made my own peace, in 1972 as a working programmer when Bill was still farting around at Harvard, with the very idea of something that is only apparently inefficient when faithfulness to the algorithm is critical.
By 1986, I was not amused by code that uses a trick to "save" time.
In the second interview, in 2003 and in Dallas, the original Microsoft approach had been reified and hypostatized into an Eleusinian mystery and again I didn't get "the job". But I realized that the original insight had been made into alienated religion by folks who didn't understand geeks in HR, and again I felt no resentment.
Instead, because I had no money at all, I was quite grateful for a fancy hotel room and the opportunity to eat for free for a day or so...and a shot at a job that would have solved my financial problems.
Microsoft is a weird company. It is the only company that is in my subconscious in the form of dreams. I had a dream about being on an Outward Bound expedition with Bill Gates, and a recurring dream about working on a good team at Microsoft.
This is because there is no clean, non-dialectical separation between being a company productive of use-value and being a demoniac machine for producing exchange value.


Donna, I agree
You have to want to program.
I'm 56. I would like to continue to program, but for a company and a boss outside American culture where I am treated like a Sacred Monster.
This isn't gonna happen. So I "want" to teach in Asia and in Africa. The "wanting" here is "wanting" to make a start on giving back to people what America has taken away.
Teaching is real work, unlike programming, which for me is a sordid kind of distracting fun, because its problems are so solvable...in comparision to teaching a kid who's been trapped in a traditional Chinese education and who cannot sit with younger kids who know English. That's REAL work.
But certainly when I was 21, I wanted to do NOTHING but code. And chase girls. And code.
Bill Gates didn't even want to chase girls, apparently, so he focused even more on the prize. Sure, it isn't fair he made so much money, but this is because something so hegemonic as a computer operating system used on 9 out of ten boxes should be a community effort, not a for-profit venture. Not because I envy him his fortune, because I got the girl.
I can't believe it that people come to you for a job without enthusiasm. It's understandable that they think first and foremost of their brutal poverty but the game in finding a job is to be quite the gay (old sense) dog who is positive, and cheerful, and enthusiastic even if he doesn't have a pot to piss in: to find his passion for the job on tap, and communicate it.
If you get one of those stupid questions, such as "what would you rather do, write a compiler or man a help desk", and you'd rather do the former, remember that truth is an old rugged cross, and tell the truth with zing and enthusiasm.
If your honesty and forthrightness means you don't get a job, find a maintenance job. One strategy I used was to get a software sales job at a telemarketing firm. But the key was that the firm was woman and minority owned, and located in downtown San Francisco. I loved it, because there was no BS, and I like bothering people on the phone.
A 'government job' with a good boss like you might be a real turning point for a lot of people. My cousin was slaving away in fast food with a degree until he found a state job in New Jersey, and found a passion for helping people get on welfare, and then get their lives together and get OFF welfare, and he's now enjoying a successful human services career.
The problem in government is the way Republican politicians are always taking pot shots at the very idea that government should do anything else besides kill people or put them in jail.
Life sucks: it's brutally hard for too many people. The lead developer of Windows NT, Dave Cutler, had a hard childhood and this made him deaf (according to my sources) to Tales of Woe at Microsoft such as boo hoo my cubicle doesn't have a window.
But Buddha didn't go from the Noble Truth of suffering to the strange American idea that because life sucks, it's OK to step over homeless people in the street or look the other way when your coworker is escorted in tears out the office.
Buddha in fact learned active compassion for all living things, and that's what's missing on the job in America.
In China, there's no compassion either, but unlike America, no positive moral satisfaction (the Puritan's satisfaction) is taken in another person's adversity.