Why are most people who just got their BS in Computer Science unable to pass coding interviews?
https://www.quora.com/Why-are-most-people-who-just-got-their-BS-in-Computer-Science-unable-to-pass-coding-interviews/answers/84220209

Why are most people who just got their BS in Computer Science unable to pass coding interviews?

The simple answer is because they have never done it before.

I have never met a developer who writes syntactically correct code on a whiteboard in marker, at work, to solve an actual problem. I have seen pseudo code where a Senior was describing a concept to a Junior Dev or an Intern but, never something like traversing a binary tree or anything of that nature.

A whiteboard interview tells the interviewer you have practiced and/or solved enough problems of that type to recall how to do them off the top of your head. This can mean a few things.

———————————————————————————————————

If you get it correct it shows you either:

  1. A developer with enough practice or experience to use these concepts in the real world.
  2. Someone who has memorized enough basic algorithms and data structures and practiced writing them on a whiteboard in enough timed sessions to correctly answer their question.

If you get it wrong it shows you either:

  1. You lack a variety of experience to solve the problem their business needs you to solve.
  2. You get nervous coding in front of others.
  3. You lack experience coding on a whiteboard.
  4. You rely on your IDE or the internet to help you find libraries and fix your syntax.
  5. You didn’t have the specific knowledge or maybe a potential weakness in the one or two algorithms or data structures you needed to solve the problem in the time frame you were given.

———————————————————————————————————

The problems are varied with whiteboard interviewing but, you can already see from what you gain from the interview is a small window of information about a very specific part of just one of the many skill sets a developer needs.

Let’s HYPOTHETICALLY say that a Developer’s skills are mixed 50/50 between technical and professional. Soft skills are things like your professionalism, communication skills, knowledge of the Software Development Life Cycle, your knowledge of SCRUM, ability to learn, teach, lead, and learn, your time and stress management skills to list a few.

Now your technical skills are also fairly varied depending on the role and your seniority level. So let’s go with a Full Stack Web Developer for this example. There is quite a list from front to back end and everything in between but bare minimum your gonna need a firm grasp of HTML, CSS, JavaScript, probably a server-side language like PHP, C#, Python, Java, etc, familiarity with Databases and SQL, knowledge of how servers like Apache, Nginx, TomCat, etc work, knowledge of different hosting options like AWS, Azure, etc. familiarity with whatever JS framework(s) your company is using, Version Control through Git or another VC, a familiarity with at least basic networking and system concepts, a firm understanding of object-oriented design patterns, experience in debugging concepts, experience in code refactoring, knowledgeable about different testing methodologies and experience in implementing them AND KNOWING ALGORITHMS AND DATA STRUCTURES.

Although my list isn’t comprehensive and you can argue about what belongs on there or not if you count off concepts I listed there are 10 soft skills and 14 technical ones. Knowledge of Algorithms and Data Structures are one of those subjects, so it makes up about 4% of what you need to know to be a Full Stack Developer.

Now, this IS NOT a statement saying how important or unimportant that subject is, I’m just trying to make the point that there are a lot of subjects and the whiteboard coding interview only test for one, and it does so IN AN INCOMPLETE WAY! You can not get an accurate read on a developers knowledge of Algorithms and Data Structures by asking two or three questions. You have tested a dev’s knowledge to work without access to a search engine or an IDE, tools he/she would have access to in a real-world situation.

So many people wanna blame the schools, or blame the students when maybe the process is broken? Sure, memorization skills and a strong knowledge of Algorithms and Data Structures are great things to have but, do they always signal a good developer? Is the reason about 50% of Google SE’s fail their first attempt at getting into Google because they aren’t smart enough or the fact they didn’t specifically prep for the event of having to write code on a whiteboard?

Why are more people in the industry not using coding katas ? I know there is some BS about not having people work for free but, what is a coding interview if not that? Here’s my suggested interview flow:

———————————————————————————————————

  1. Initial phone screen with the candidate
  2. First round easy code kata to evaluate basic skills
  3. Harder coding kata (depending on experience and role)
  4. Bring the candidate on site for a code review and conversation

———————————————————————————————————

This will tell you so much more about your candidate. Were they able to set up the proper environment to code in? How to do they comment, how do they test, how do they design a solution, how did they deploy the solution, how optimized is the solution, was their code cohesive, could it be abstracted more, etc? You can dig deep and talk to your potential new developer/coworker about what they were thinking, why did they make the choices they did, what they wish they could’ve done with more time, what they would refactor, you can see how they respond to critical feedback, etc.

Now doesn’t that sound like a more comprehensive evaluation than you asking a candidate how to invert a binary tree off the top of their head on a white board and waiting for them to do it on the clock?

Iris Otano, CSM??

Director Technical Program Manager | 350M P&L High-Performing Teams | AI | | Strategy, Technology & Operations | BI | Digital Transformation ?? | Top leader under 40 ??♀? | ERG Founder | I Lead w/ #Authenticity ??

1 个月

John Sprunger - I really really like this take :)

J. R. Rossman

Unstoppable Learner, Manager, Resilient, Calm Under Pressure, Solution Goalie, ,U S Veteran,

2 个月

Giggle on some parts. You also lay out points in truth and expectations. There us much that I do not know, however I accept that as being multi-directional. and willing to learn. Thank you for your article.

回复
Michael Adamson

Associate Test Engineer at ZeniMax Online Studios

3 个月

I soo appreciate the pic from the “D2F” seen in Silicon Valley ??. Love that show.

Denny Dombkowski

Frontend Staff Engineer at Experian

3 个月

I'm a developer now who has nearly 20 years of experience. When I first graduated, it took me 3 years to find a job tangentally related to my field (automation tester). I worked that for another 3 years and was finally able to land a job that I wanted: Entry Level software engineer. I can answer the question of why they are unable to pass coding interviews: Because the interviewers don't actually test for the job. Most developers are not working in greenfield projects, they are working with existing software, and their job involves adding new features or fixing bugs. Describing the new features USUALLY start with: "like this other feature but..." And the bugs can involve spending hours analyzing and testing code and then making a 1 line change. My job isn't being able to do advanced rare things on the fly; it's knowing the codebase I work with. In either case, you aren't doing advanced trig, or (looks at comments) Balancing an inverted binary tree. Once I was interviewed for a job to maintain a POS system (point of sale, not the other thing), and the technical lead asked a bunch of Scientific Computing questions using Big O notation. I ended the interview, and told him he was hiring the wrong candidates.

Steve Miller

.NET || Web and Mobile Developer

3 个月

Great article John Sprunger , I like the part about doing code katas, I do a lot of those as they're smaller problems I can usually solve on a break. Ps. It was hard to take anything seriously because I know the show that image is taken from and I know exactly what he's describing in that scene. Lol

要查看或添加评论,请登录

社区洞察

其他会员也浏览了