I just learned how negative numbers are stored at a binary level by Java. It was an interesting fact and something that I needed to know in order to solve the latest Hacker Rank question I was attempting.
I was diving into Hacker Rank to get a feel for how the process worked. Having seen it used as a way to filter out job candidates, and also having seen that this kind of coding test was in style after a few recent job applications, I figured it was worth at least being competent with the “cleverness” that was so often required to pass these kinds of questions.
Two things become obvious after working through a couple of the more challenging questions: one, that I either did not know or had forgotten a lot of nitty gritty theory of algorithms and how they apply to software development and two, that I had very little use for that nitty gritty theory in my day job.
The reality is that I often don’t have to deal with negative numbers at all, let alone understand how they are represented at a binary level. I could take every piece of code I have written in the last year, convert every int to an unsigned int, and the code would work the same.
The more I look at it, the more I realize just how much being good at my job involves a horizontal spread of knowledge across a huge technology stack, and just how little it involves a deep vertical understanding of any single given piece of technology. And I suspect this situation is the same for anyone not developing a new language, creating a new NoSQL service, or building data centers that take up whole suburban blocks.
“I heard about this interview process,” Geary said. “It seemed fine-tuned for people just out of college. When you are just out college, there’s a lot of algorithms and data structures and fast-thinking on a whiteboard, like you do in school. As opposed to real software engineering, there’s a lot of other stuff that goes into that. In my real work, in 20 years, I’ve never used a whiteboard. I use my computer. But in job interviews they do it all the time.”
It was a pretty simple choice.