I just had my first experience with an algorithm-focused white-board coding interview. It was… interesting. I reflect on my responses and reactions, and have some thoughts on the nature of technical interviewing and candidate assessment
So, I had my first white board session as part of an interview yesterday. I don’t have any real read on “how I did” in terms of what the interviewers were expecting, but I wasn’t at all happy with my performance. I think I did a reasonable job of talking/reasoning my way through the approach I took, of assessing the performance and trade-offs of approaches I considered, and of rejecting a few unreasonable trains of thought. But I overlooked some really fundamental, basic, and (in retrospect) obvious approaches that came to me in flashes later in the day — one on the car trip home, another as I was settling down to bed.
Without giving out all the details (it was a basic enough problem, and no one asked me not to share it, but still…) the problem involved a quantity of both existing and of new data, all of the same type. It was data that was comparable, and had hash and equals methods amenable to the operations involved in sorting, matching, etc.
I recently completed the software “boot camp” at The Software Guild in Akron, Ohio. While I both enjoyed the experience and feel that I learned a very great deal, such programs are indeed demanding and not for everyone.
Ever since I hinted at an upcoming “deep dive,” in a post back in August, I’ve been quiet on this site. Where I have been is at The Software Guild, in Akron, Ohio. The Guild is one of the new breed of software-development ‘coding boot camps’ that provide intensive exposure, over a relatively short period of time, to coding and related development skills. I entered the September Java cohort, which meant that I spent time in July and August on “pre-work” and participated in “boot camp” proper from September through December. As a career change, this represents the pursuit of long-time interests on my part. Even in my administrative and managerial library roles, I’ve particularly valued my contributions as the “accidental” or “incidental” technologist and developer. Time spent on wireframes, code, and software design decisions was always among my favorite working time.