Tom Ritchford
2 min readOct 25, 2023

--

I did enjoy this, but you missed two very key points: "Master the fundamentals" and "Master your toolchain".

I gave hundreds of interviews at Google. Very few of these candidates were duds. Sadly, a lot of strong programmers didn't get accepted, not because of any obvious flaw, but simply because they were not quite amazing enough. On a different day, they might have gotten the job.

But the most common reason I personally would reject a candidate was fundamentals.

These aren't the same as basics. Basics you can learn in a few days. Fundamentals take years to master.

For example, you need to understand hashing, deep in your heart. Given a container like an array or a hashmap, you should instinctively know if insertions and retrievals are O(1), O(log n) or O(n), and what this means.

For any project, the toolchain is the collection of programs and utilities that you use to go from the code you type in, to tests and a finished prodict/

You simply never get taught about the importance of toolchains in school, and unfortunately, you can't really test for toolchains in interviews, but watching over people's shoulders, I see that many of them are wasting a huge amount of time because they don't understand their toolchain.

I see people spending hours to fix their git repo by hand, when they should at some point have spent a few hours playing with git to learn how to get out of trouble, without doing it when their code is trapped in the balance.

I see people who don't know how to use a debugger - to be fair, 90% of my debugging is print statements because it's faster, but the 10% of the time I need the debugger, I really need it!

I see people who are really strong in some aspects of their language, and amazingly weak on some other aspects.

Generally, the moment I get a new job I take over the toolchain and make it as slick as possible for everyone. I see it as my job to do the dirty jobs that make everyone else's work faster.

Thanks again for a good article!

--

--

No responses yet