-----------------------------------------------------------------------------------------------
I am an imposter.
I am a fake, not a real programmer but a Computer Science major who masquerades as a “junior coder.” I am a person that Sam Phippen would refuse to hire, for I am just one of the “every final year CS student he currently knows” instead of a coding bootcamp graduate. I am wearing the mask of a true CS major, for I have squandered this absolutely amazing education by sliding through my Computer Science classes by the skin of my teeth. Even though I have passed all of my classes, I have learned so little about programming that, if asked, I could not program a linked list in any coding language. Sure, I could easily tell the basic theory concerning a linked list, but creating one, especially in a short time frame? That would be impossible.
I really am just an imposter.
Because of this attitude, I have had nothing but terrifying and embarrassing experiences with the technical interview process. Too nervous and too busy trying to juggle schoolwork, activities, and applications to study, I have gone into interviews so nervous that I could not even code a simple function. All I felt afterward was embarrassment and shame, for I could discuss the time complexity of a function but struggled to write a simple class in C++. Since that failure, I tried skimming through Cracking the Coding Interview and going to workshops about technical interviews, but this preparation did not bestow any confidence or optimism about obtaining another internship or a job. The prospect of continuing this search does not excite me whatsoever; I am terrified and disheartened because I know that immediate rejection is right around the corner.
Imposter.
Jeff Atwood reaffirms my fears about the hiring process, saying that “it is better to reject a good applicant every single time than accidentally accept one single mediocre applicant.” I am one of those mediocre applicants, destined to be rejected simply because of my nervousness and my inability to work quickly and accurately. Due to these fears and the troubles I have in technical interviews, I wish that tech companies would approach their hiring process in a more uniform manner.
While I would like to entirely rid the interview process of its technical components, I do understand its importance, as highlighted within the reading for this week and the quote in the previous paragraph. One aspect of this hiring process that I dislike, however, is the inconsistency of question difficulty across companies’ tech interviews. For example, one company my hire you, as Dan Kegel says, “if you can successfully write a loop that goes from 1 to 10 in every language on your resume, can do simple arithmetic without a calculator, and can use recursion to solve a real problem.” In other interviews for a similar position, however, you may be asked to write an algorithm on a whiteboard in 15 minutes or recall ideas and concepts from every single one of your past Computer Science classes. Also, it is a little concerning that other engineering disciplines are not quizzed in the same manner that Computer Scientists are, for I know Mechanical Engineers, for example, who have gone through countless interviews without once being questioned about their engineering knowledge. While I realize that every field of practice, position, and company require different skills and that we should be able to adapt to these differences, the disparity between question complexities is tiring for interviewees.
Based on what was said in the articles, I believe that companies should adopt the job shadowing format for their hiring process. Interviewees would spend a day partner-programming with a senior in the company, and by the end of the day, the senior programmer would access the interviewee and decide whether or not to hire the junior coder. In my opinion, this format would probably be very successful, as all other forms of interview do not accurately capture how a young graduate would operate as a member of the workforce. Quincy Larson agrees with me on this point, saying that “virtually every developer I’ve talked with agrees that one’s ability to write algorithms from memory on a whiteboard has almost nothing to do with real day-to-day developer work.”
Whiteboard questions force programmers into unnecessary perfection. We are messy creators, where about 70 percent of our time is spent fixing and tweaking the little mistakes we make during the construction of our art. Therefore, I believe, as Sam Phippen says, that whiteboard questioning and other forms of rapid but technical testing are “really not fair. Immediately you’re randomly filtering for people who are good at a kind of thinking which most programmers don’t encounter every day. Worse than that, you’re going to knock a lot of people’s confidence.”
This is true in my case; these interviews, as I have explained before, completely destroyed my confidence concerning technical interviews and obtaining a software position at a company. In all honesty, I probably could be successful in such interviews if they were not daunting, complicated, and nerve-wreaking for a simple Computer Science graduate, but because of these factors, there is only the smallest of chances that I will obtain a job in Computer Science upon graduation.
Therefore, I truly am a Computer Science imposter.