Epic Interview Fail! Need career advice! Also: Whining!



  • 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.






  • If you can do the normal business programmer stuff then you should be fine doing certifications and self teaching to fill in gaps in underlying theory (assuming you are looking at normal businessy coding anyway).  Sounds like you should probably find a Computer Architecture college level CS book (check the book store at local uni, they are normally labeled by the class they go with) and get some low level coding practice (I suggest C as it is the lingua franca) to get a feel for what is going on under the hood on your businessy things you are doing.  It will help with interview questions and can occasionally give you insight on why doing something is the wrong way to do it, though you won't use it much in day to day work (again depending on where you want to work as a programmer).

     Other CS stuff to read would be the textbook from networking and operating systems classes at the local uni.  These are more of a just read the book to get what you can out of them, but if it is a big state school you should be able to just sign up for some classes if you learn better from being in a class (note: still get the book first to verify that you think you can handle the class).



  • @Fiskadoro said:

    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).
     

    So why not look at getting into systems architecture, rather than coding?

    Most coder have no idea about BA stuff, they're just builders. It looks like you could apply yourself to transforming business requirements into workable plans to be passed over to builders and let them carve out code. You could pick up additional tips about code as you go along, but I've come across far too many coders that have no real clue about design and architecture (the fact you know about antipatterns puts you a stage or two above them).

    Leave the entry-level positions to eager clueless graduates in CS. Use your experience and knowledge to point them in the right direction.



  • @Fiskadoro said:

    This was 100% me being a largely
    self-taught idiot and getting in WAY over my head.

    I'm 99% self-taught.

    @Fiskadoro said:

    We're talking
    questions about hexadecimal, bit shifting, ternary operators.

    Useless, useless, useless.

    @Fiskadoro said:

    I swear to God, I referred to the ternary operator as "that question mark assignment thing" AND I USE IT ALL THE TIME.

    Hmm. The problem (in my estimation) isn't that you're self-taught, it's that you lack curiosity to go out and explore these things.

    @Fiskadoro said:

    I mean, I can write clean, maintainable
    code

    Ternary operator!

    @Fiskadoro said:

    Is it too late in my career for me to buckle down,
    get really serious, and devote myself to programming?

    No. You probably already know the actually important stuff. This company you interviewed with asked you crap you learn in college, but turns out has NOTHING to do with the day-to-day process of actually writing software.

    Even with the knowledge you have now, you could have turned around that interview and said something like, "look guys, I know you think that converting binary to hexadecimal is important, but here's the deal: do I know how to do that? No. But I've worked at a company creating reliable, maintainable, useful solutions for a decade and it's literally never come up. I get totally that your goal in your interview process is to weed-out the guys who fail the fizzbuzz test, and while my education might not be down the traditional computer programming path, the end product is competent and confident. Ask me about X and I'll convince you." (Where X is the thing you're best at.)

    Here's the thing though: 1) This requires you have confidence in your abilities. 2) This requires you are "in the field" (i.e. you spend time reading articles about it, learning all you can, you know Raymond Chen's name and what he's famous for, you've read the FizzBuzz article and recognize how ironic its comments section is, you've read "No Silver Bullet", "Bazaar and Cathedral", "Goto Considered Harmful" (and at least one rebuttal to it), etc. That's stuff you can pick up in a month, no problem.

    @Fiskadoro said:

    Is it too late in my career for me to buckle down,
    get really serious, and devote myself to programming?

    I would say really good developers don't need to "buckle down" because they're interested enough in things like, "how does CPU scheduling actually work?" that they independently go out and seek articles and learn about that shit.

    That's not to say you need to be that type of person to get a job-- God knows I've worked with hundreds of developers who don't know shit-- but I'm just saying if you're not that person already by "the wrong side of 35", you should face the possibility that you'll never be that person.

    @Fiskadoro said:

    Should I go
    back to school for a CS degree,

    God no.

    @Fiskadoro said:

    or should I look into certifications?

    Only if you're sure they're valuable. For example, if you have a Adobe Omniture Test & Target cert and put that shit on LinkedIn, you'll have recruiters blowing out your email quota. (I know it's not your field, just saying there are good certs out there.)

    @Fiskadoro said:

    Is there a good book anyone could recommend for basic,
    language-agnostic computer architecture/CS stuff?

    Start with histories. Computers started very simple and easy-to-understand. If you skip from ENIAC straight to trying to figure out what the fuck Windows 7's memory manager is doing when you ask for a gig of space, you'll get very confused and very discouraged very quickly.

    @Fiskadoro said:

    Thanks in advance for either advice or
    (at least entertaining) abuse.

    Cheers.



  • I wouldn't go back and do a CS degree. It sounds to me like you have the right sort of brain to do development, but you'd run the risk of spending time & money to get a new qualification that hundreds of 21 year old graduates also have - if you want to do this as a living then you'll have to be more specific in your areas of expertise & combine that with the experience you do have in the field.

    Also, you won't get a good (single) book to cover computer architecture/CS stuff - it's too broad a subject. There's a massive range there and you'll get nothing from it other than superficial knowledge in many areas you'll never use again.

    If I were you I'd stick to what you know, and expand on it. You've gotten into SQL from writing t-sql & stored procedures - maybe an area like Business Intelligence would let you broaden your CV, learn useful stuff whilst in your current job & let you use your experience?

    But drop all COBOL stuff - if I got a CV which mentioned COBOL sent to me for a position it'd be headed for the discard pile.



  • I used paragraphs when I wrote that. Can I be arsed to fix it? Nah...



  • @nosliwmas said:

    I wouldn't go back and do a CS degree. It sounds to me like you have the right sort of brain to do development, but you'd run the risk of spending time & money to get a new qualification that hundreds of 21 year old graduates also have - if you want to do this as a living then you'll have to be more specific in your areas of expertise & combine that with the experience you do have in the field.

    Also, you won't get a good (single) book to cover computer architecture/CS stuff - it's too broad a subject. There's a massive range there and you'll get nothing from it other than superficial knowledge in many areas you'll never use again.

    If I were you I'd stick to what you know, and expand on it. You've gotten into SQL from writing t-sql & stored procedures - maybe an area like Business Intelligence would let you broaden your CV, learn useful stuff whilst in your current job & let you use your experience?

    But drop all COBOL stuff - if I got a CV which mentioned COBOL sent to me for a position it'd be headed for the discard pile.



  • I've been there, and I've got the CS degree (summa cum laude) and lots of experience. The interview process has basically driven me out of the software development field. I've got a pretty good developer job at present, but I've resolved to never, ever go thorough the horrible process of finding another one. As a result, I'm taking classes in another field in preparation for a career change... all because I can't (or won't) get a job I consider worthy of my abilities. So I guess my advice to the OP is "if you want to be a programmer, keep your present job."



    All too often, the technical interview devolves into trying to figure out which data structure some stammering 24-year-old virgin thinks is cool on one particular day. I've had a couple like that, including one where I was able to articulate a very good solution that my interviewer obviously hadn't considered. Unfortunately, he didn't care to consider it, either, having just read about Reverse Red/Black Spanning Croatian D-Trees (or whatever). And, of course, it's not just one interview... it's two or more, plus an online or written test, plus dinner with the CIO, etcetera. And it's all about as laid back and collegial as a pelvic exam conducted by a prison doctor. I think all of this may be roundabout way of figuring out whether you've got a real life and/or a brain that does something other than memorize class names, both of which seem to be considered undesirable in this field.



    Much of this is precipitated by the wannabes: the over-tatooed twenty-somethings living with mom and dad, who heard they could walk right into a $70,000-per-year desk job. Those people have to be weeded out. Unfortunately, the shotgun approach taken to this task culls some really good people from the herd as well.



    Also, I think Blakeyrat was dead on with that comment about "curiosity." I don't have as much of it as the people who get the really good jobs, and I've reached the point where I can admit that to myself. If you don't have that annoying Big Bang Theory-level curiosity about technical trivialities, you may be a damned productive programmer (I am), but you're not likely to climb the totem pole in any meaningful way.



  • @Ben L. said:

    @nosliwmas said:
    I wouldn't go back and do a CS degree. It sounds to me like you have the right sort of brain to do development, but you'd run the risk of spending time & money to get a new qualification that hundreds of 21 year old graduates also have - if you want to do this as a living then you'll have to be more specific in your areas of expertise & combine that with the experience you do have in the field.

    Also, you won't get a good (single) book to cover computer architecture/CS stuff - it's too broad a subject. There's a massive range there and you'll get nothing from it other than superficial knowledge in many areas you'll never use again.

    If I were you I'd stick to what you know, and expand on it. You've gotten into SQL from writing t-sql & stored procedures - maybe an area like Business Intelligence would let you broaden your CV, learn useful stuff whilst in your current job & let you use your experience?

    But drop all COBOL stuff - if I got a CV which mentioned COBOL sent to me for a position it'd be headed for the discard pile.

    Ta.


  • Discourse touched me in a no-no place

    @blakeyrat said:

    @Fiskadoro said:
    This was 100% me being a largely
    self-taught idiot and getting in WAY over my head.

    I'm 99% self-taught.

    It shows.

    @blakeyrat said:

    @Fiskadoro said:
    I mean, I can write clean, maintainable
    code

    Ternary operator!

    See?



  • @nosliwmas said:

    if I got a CV which mentioned COBOL sent to me for a position it'd be headed for the discard pile.
    Why exactly?

    And yes, what Blakey said. Minus the hatred towards the ternary operator which is perflecty fine when used in moderation.



  • @Fiskadoro said:

    Is there a good book anyone could recommend for basic, language-agnostic computer architecture/CS stuff?
     

    I'd recommend reading SICP, then looking at the MIT video lectures (available legally via torrents and download), then reading the book once again (and perhaps once more).

    Yes, it's about Scheme, which isn't used very often now - but the book should give you a overview, and (if you really take the time to finish it) you'll learn an awful lot.


Log in to reply