A jack of all trades… but master of none.
Says the popular notion. It’s about how you cannot be good in everything, and, by trying, you won’t be good at anything. People associate focus in one domain as something positive. After all, a drive towards one single thing is a sign of determination, motivation, keeping interest and passion. Jumping from one topic to another could be a sign of impulsiveness, indecision, and it does not bring trust and safety.
Some time ago I’ve read a book called Range. It covers the topic of specialists and generalists. People who excel in a single domain, most of the time even a subdomain of some domain, AND, on the other side of the spectrum, people with so-called interdisciplinary knowledge or experience, spanning maybe not so deeply as the specialists, but across multiple domains.
Turns out, the results of its investigation are contrary to the notion in question:
Being apt in multiple domains is an advantage.
It’s of particular interest to me as it confirms an observation I made in computer science, that is – multiple fields of interest make the best programmers.
Consider C++ software development. Put a magnifying glass, what do you see? There’s design patterns, standard library knowledge, build systems, tools, libraries, platform-specific (Linux, Windows, Mac) knowledge, especially when it comes to building artifacts and I didn’t even mention the core language knowledge – which is a significant yet only one of many puzzles in C++ development.
Each of the little things under the magnifying glass can be applied to make a game engine, make a stock-exchange program where every millisecond counts, make not less demanding software for embedded devices with a lot of constraints, make an operating system, and so on. This knowledge is 100% transferable between the projects, even though the project may be diametrically different in high-level terms (compare software for controlling medical equipment VS a video game). Some of it is even transferable between programming languages – from the list above, an easy pick are design patterns and libraries (i.e a native library with bindings to multiple languages, the SDL’s bindings exist for Rust, Python, Go, and probably a lot more).
Consider another example, moderately astray software development – cybersecurity. It crosses paths with Linux administration (or at least proficiency), web development, programming as a lot of times you want to automatise something or make a custom tool (here comes Bash and Python scripting). There’s a little bit of forensics, i.e Wireshark. There are protocols, file types, reverse engineering! A very, very big bubble – and yet it still overlaps the aforementioned bubble of C++ programming – when it comes to security mitigations like canary values (-fstack-protector in gcc ;)), position-independent-code, or security vulnerabilities like stack overflow (i.e C function gets not checking for input length) or format string attacks (using printf/scanf).
Now, my point is – computer science is so interconnected, that you benefit tenfolds when you mix backgrounds. Less and less is a black-box, like a map that continuously gets charted, removing empty spots. Ideas from one place are likely to be useful elsewhere, or at least provide an inspiration – no experience is wasted. Heck, everything is interconnected. Me writing this post is an exercise in presenting information. It’s an exercise in English. Is it computer science? No. Will it contribute to the overall picture when making software? Yes.
Now you may understand the beef I have with leetcode-based interviews. Throwing away all of the aspects of software-development and screening your candidate based on a very narrow part of their job – is that really the best one can come up when recruiting? Google the phrase “leetcode considered harmful” for more insights on this, I won’t expand on the topic because that’s not what I want you to take from this post.
What I want to be taken from this post is:
- Pursue novelty – makes your mind fresh
- Be a renaissance man – for fun and profit
- There’s space for both specialists and generalists (though the latter seem to get a bad press), both equally important
I’d like to finish with a massive excerpt from the book Range – a big one, but it’s distilled essence of its 333 pages:
„There are domains beyond chess in which massive amounts of narrow practice make for grandmaster-like intuition. Like golfers, surgeons improve with repetition of the same procedure. Accountants and bridge and poker players develop accurate intuition through repetitive experience. Kahneman pointed to those domains’ “robust statistical regularities.” But when the rules are altered just slightly, it makes experts appear to have traded flexibility for narrow skill. In research in the game of bridge where the order of play was altered, experts had a more difficult time adapting to new rules than did nonexperts. When experienced accountants were asked in a study to use a new tax law for deductions that replaced a previous one, they did worse than novices. Erik Dane, a Rice University professor who studies organizational behavior, calls this phenomenon “cognitive entrenchment.” His suggestions for avoiding it are about the polar opposite of the strict version of the ten-thousand-hours school of thought: vary challenges within a domain drastically, and, as a fellow researcher put it, insist on “having one foot outside your world.” Scientists and members of the general public are about equally likely to have artistic hobbies, but scientists inducted into the highest national academies are much more likely to have avocations outside of their vocation. And those who have won the Nobel Prize are more likely still. Compared to other scientists, Nobel laureates are at least twenty-two times more likely to partake as an amateur actor, dancer, magician, or other type of performer. Nationally recognized scientists are much more likely than other scientists to be musicians, sculptors, painters, printmakers, woodworkers, mechanics, electronics tinkerers, glassblowers, poets, or writers, of both fiction and nonfiction. And, again, Nobel laureates are far more likely still. The most successful experts also belong to the wider world. “To him who observes them from afar,” said Spanish Nobel laureate Santiago Ramón y Cajal, the father of modern neuroscience, “it appears as though they are scattering and dissipating their energies, while in reality they are channeling and strengthening them.” [highlight mine – Daniel] The main conclusion of work that took years of studying scientists and engineers, all of whom were regarded by peers as true technical experts, was that those who did not make a creative contribution to their field lacked aesthetic interests outside their narrow area. As psychologist and prominent creativity researcher Dean Keith Simonton observed, “rather than obsessively focus[ing] on a narrow topic,” creative achievers tend to have broad interests. “This breadth often supports insights that cannot be attributed to domain-specific expertise alone.”
Those findings are reminiscent of a speech Steve Jobs gave, in which he famously recounted the importance of a calligraphy class to his design aesthetics. “When we were designing the first Macintosh computer, it all came back to me,” he said. “If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces or proportionally spaced fonts.”
Cheers,
Daniel