Very recently I was attending an internship interview for a well-established company. I have good skills and was reflected on my resume, so things should go favorably, right? Well, it turned out that I wasn’t selected.
Why? Officially, I guess I’ll never know, but post-fact and having spent a lot of time thinking over the matter, I feel it was because I just wasn’t the kind of person they were looking for. My resume states that I have 3-4 years of experience in the embedded space with C programming. It’s a fine point, but one of the reasons I joined up my Master’s course was because I wanted to get OUT of that line of work. Don’t get me wrong, I love coding. But, in the embedded space, tools, most notably debuggers aren’t as robust as they are in the upper levels, aka application space and I wanted to move there. In fact, my more recent dabbling in C# reflects that.
That aside, there is one part of my interview performance that I’m personally disappointed with. As a software programmer, I really hate the idea of blind coding. More often than not, it almost always produces one of the most inefficient solutions you can think of and even worse, it will sometimes push you into a niche of inefficiency as you would be really reluctant to change your code.
I was nervous during the 3rd round of interview. That and I was hungry (I missed both breakfast AND lunch!). The result, was that I wasn’t thinking like my usual self. It was a very technical round and I did answer some of the questions my interviewer asked. There were others I had no idea about. Towards the end, he started asking me about problems involving pointers. I like to blame my stomach, but what happened was that I bungled that part. Then he started to ask me to try and write a solution. I, in a moment of lapse, blindly started writing some lines of code, without really thinking about what I was doing. A few moments later, my interviewer commented “… you start off by writing code without analysis? …”.
I was flabbergasted. The very thing I keep telling others NOT to do and here I go, getting caught red-handed! What caused me to do such a thing? Is it some innate part of me from my early school-days that makes me want to start off with code that I forget design?
I can speculate, but I’m not sure if I’ll ever know the answer. What I do know, is that I need more practice in my programming discipline. Badly.