I have been fortunate to have a relatively good job-seeking experience during my time as an undergrad at Notre Dame. For that reason, I do not particularly disagree with any of the hiring practices I was subject to, but there are a few things I would like to see altered over time. Most of my interviewing experience, minimal in comparison to some of my peers, was behavioral. I am a fan of behavioral interviews simply because I have less anxiety. That might make you think – is this guy just not technically skilled? At this stage of my education, I consider myself a good programmer with the technical ability necessary to be productive in the tech industry. I prefer less technical interviews because I do experience anxiety in tense situations like that and it affects my ability to focus. I would like to see more tech companies focus more on the person during interviews and allow their work to speak for itself.
My proposed solution would be to make it an industry standard to analyze technical abilities through an individuals past work. There are many ways to do this, most notably asking to view their GitHub profile (or other comparable online repositories). I think this is an effective solution because you can grasp an understanding of their coding style, if they have worked with teams, and how well the contribute to larger team projects. None of this can be done when you make someone write code on a whiteboard or piece of paper in an hour long interview. One example of a trait that could be analyzed by looking at past code is the willingness to document code. Thorough documentation is an important part of large software projects and you can’t determine how well someone documents their code during an interview because most candidates aren’t going to spend time writing comments when they have been put on the spot to complete a task in a limited amount of time.
Like Jeff Atwood says in “Why Can’t Programmers.. Program?”, there will be candidates who sign up for interviews that don’t have much programming experience, so how do you analyze technical ability in these situations? In these situations, I am a firm believer in having candidates write very simple programs to ensure they have basic knowledge of computer science. In my first interview, I was subject to several coding questions including the FizzBuzz problem Atwood mentions. For me, the FizzBuzz problem was helpful because it gave me confidence going forward. One critique I have of my first experience is the questions I was given were not tailored to my experience. I think companies should be more diligent in reading resumes and gearing their interview to affirm that the candidate knows the things he or she says she knows. Why ask a candidate who has never taken data structures a question that requires understanding of a B-tree? My interviewer often skipped questions or explained the solution to me because he knew it would be over my head. I think it would have been more beneficial to the company to have given me questions pertaining to my current level of expertise.
Looking back, I have no grievances with respect to the interviewing process I experienced. I believe behavioral interviews are more effective in assessing the quality of a candidate and making the interview a positive experience. I also think some companies who focus solely on technical interviews are misguided. If we invest so much money in a college education, why should companies feel the need to grill us on our technical abilities? Didn’t we just pay a ton of money to develop our technical skills and provide a transcript to describe how well we developed? If all companies care about are technical skills at the entry level, then I think the tech industry should be more open to interviewing students out of high school who can prove their technical skills without needing to pay for a 4-year degree. Wouldn’t a 22 year old employee who’s been working in the industry for 4 years be much more valuable than a 22 year old employee who just graduated from college and has had a few internships?