3 ms·
> CS whiteboarding makes sense when tech stack isn't going to be constant and the tasks you might be doing requires more than making calls to backend from MVC.
by clarry 7y ago
> CS whiteboarding makes sense when tech stack isn't going to be constant and the tasks you might be doing requires more than making calls to backend from MVC.
I'm not inclined to agree. If I look at my job, well, it's rather "full-stack", spanning from hardware to bootloader to kernel to init system to application level. Debugging techniques range from probing with an oscilloscope, disassembly, dissecting core dumps, printf-tracing of asynchronous multithreaded systems, packet captures and traffic analysis at raw ethernet level..
I can't think of a single "CS whiteboarding" question that would do much to help me select a candidate for my position. As far as algo wizardry goes.. dude, naive O(n) and O(n*n) algorithms work for damn well near everything, and if you can figure out how to use one of the existing binary tree libraries or call bsearch(), you're pretty much set. I'm sure we could give you a few days to figure out some more advanced algorithm if profiling proves it to be necessary for some particular job.
Honestly I think the most important skill is the ability to learn new stuff and dig deep. I don't know how to test for that in an interview, I really have no clue.
Probably understanding concurrency and races is one of the more "critical skills" and I'd like to see that in a candidate, but I don't know if lacking a good grasp of that is grounds for rejecting a candidate. All too often I see lists prerequisite "critical skills" that any good programmer would be able to pick up on the job as needed. Do you really need to test people for something they can figure out in a day or three and get good at over the coming few weeks?
- sytelus 7y agoAgain, you are assuming all software engineering jobs are like yours. I’d been on projects where I’d to deeply think about graphs and literally invent variations of algorithms that worked for my scenario. I’d to written code for tree searching, online median finding, distributed minimum tree spanning etc in my various projects. If you are working in things search, AR, DL related products anyone will tell you that 1% of improvement in algo performance often translates to millions of dollars of savings. Unfortunately designing and evaluating algorithms is very hard earned skills and candidates who have internalized tools of this trade do much better than regular full stack folks. CS whiteboarding is precisely for such candidates but unfortunately full stack guys also started adopting them for their jobs. For full stack projects that need little to no algorithms design, take home coding question specific to tech stack works much better.