Hi All. I apologize for my very first post being this epically long vanity post, but right now I need a cold, hard reality check, and the Daily WTF seemed like the right place for it.
(the TL:DR version: OP is EVERYTHING THAT IS WRONG WITH THIS INDUSTRY. And also kind of a crybaby.)
I just got done interviewing for a developer position, and my performance may be the biggest train wreck in the history of trains. Or wrecks. So, I thought I'd share my huge Interview WTF(s), then get some career advice about what my next steps should be.
Some background: After I received my BA in English (the FIRST WTF!), I took a position as a Business Analyst at a finance company. After discovering I could write not-bad SQL, and had a pretty good handle on the database schema, they pushed me up into a Business Systems Analyst role, where I wrote stored procedures, did maintenance on COBOL code, did debugging, helped with the build/release process etc. Yeah, I know that's not what a BSA is supposed to do. Titles here are random and arbitrary.
Anyway, some of the developers started giving me some Java maintenance tasks to do, and after about 6 years as a BSA, I was moved into a Programmer/Analyst position, where I've been for the last 2 years. I've been mentored by some really great Java developers, and was taking part in all sorts of exciting Java projects, but about half my time was still being spent writing stored procedures, wrestling with legacy COBOL code, helping the BAs write their requirements, etc.
So, when a friend told me that his company was hiring entry level Java Developers (0-2 years experience!) it looked like it would be an ideal fit. It looked like I'd be able to focus more on development, which sounded exciting, because I really enjoy it! So I applied! And I got an interview!
And then everything fell apart.
The technical portion of the interview was literally 45 minutes of me coming up with new and unique variations of the phrase “uhhhh...” and rubbing my temples uncomfortably. I have to admit, the vast majority of the development work we do is of the “Grab data from database, muck with it, put it back in the database, send an email!” variety. Clearly that is NOT what these guys were looking for, even in an entry level position.
Let me clarify, these were not, in retrospect, bad questions. They were not trick questions. These were very good, very fundamental CS-related questions, that I was absolutely clueless about. This was 100% me being a largely self-taught idiot and getting in WAY over my head. We're talking questions about hexadecimal, bit shifting, ternary operators. I swear to God, I referred to the ternary operator as "that question mark assignment thing" AND I USE IT ALL THE TIME. It was BRUTAL how awful I was. Even the questions I got right involved such a tortuous path to get there that the interviewers could only look at me with what I think was pity (but may have been mild disgust). And then I finally realized something:
After 12 years of working in a moderately tech-y capacity, 2 years of which were spent as an actual programmer, I know nothing about programming.
I mean, I can write clean, maintainable code that solves specific business problems. I can avoid anti-patterns. If they asked me any JDBC questions, I would have been all over it. But bits? Hex? I am clueless. I HAVE NO IDEA WHAT IS GOING ON UNDER THE HOOD.
I finally put an end to the interview (they were SUPER nice guys), apologized for wasting their time, told them that the job was not a good fit, and left.
So, here's the crux. I love coding. I love solving business problems. I'm legitimately interested in learning more and correcting my deficiencies (and I am sure they are many). I'm also on the wrong side of 35, and seem to have spread myself way too thin between programming and about 20 other roles at my current job. Is it too late in my career for me to buckle down, get really serious, and devote myself to programming? Should I go back to school for a CS degree, or should I look into certifications? Is there a good book anyone could recommend for basic, language-agnostic computer architecture/CS stuff?
Thanks in advance for either advice or
(at least entertaining) abuse.