You mentioned faring well in programming classes. Interview performance aside, do you feel that you're a good and perhaps exceptional programmer?
You mentioned faring well in programming classes. Interview performance aside, do you feel that you're a good and perhaps exceptional programmer?
Once I got my hands off the keyboard, it became pretty clear that the best person for the job was very situational, and that my opinion was often wrong. The technically smartest and most capable person was often the worst choice for many tasks.
One of my best DBA team members was a guy with a history degree with almost no understanding or interest in basic crap like CAP theory, normalization tradeoffs, etc. He was honestly terrible at design.
He was consistently, though, a 10x type resource for production performance problems. But thought of himself as barely qualified for the team because he was a 0.6x resource for many other tasks. I'd hire him every time.
Interviews ask abstract and theoretical computer sciency type questions and in real life I would usually google my way to a solution on those types of questions, so I do very poorly on the spot. (forget everything or say something dumb)
But in practice I can usually deliver quicker than my teammates on real world problems.
Fwiw some of us ask abstract questions with the sole purpose of breaking you out of coding mode and into thinking mode. I wanna see how you break down a problem you haven’t encountered before. Not how you google a solution to a known problem. If you’re talkinng to me, I already trust that you can write code and google solutions.
One of my fav questions to ask is “Design a system to protect a skyscraper from flooding in a scifi Manhattan of 2140”
FWIW I've also seen the opposite. A developer who was a very good thinker and talker, but got stuck for two weeks on an issue with a Google API. It took me five minutes to figure out what was wrong. Not cause I'm smart, actually the opposite, I have to break problems down to things I can understand and it's that process which lends itself well to fixing bugs.
But I'm sure he would've run circles around me when designing an API or architecting out multiple systems.