Published: December 07, 2023 • 2 min read
When I was learning to program, I was fortunate to pair with several very
experienced engineers. One day while coding, iterating became necessary,
and I said: “I think we need to use Ruby’s
map method, but I’m not sure how that
works. Let me look it up.”
Later, my pair offered me some feedback: “You can’t be looking up
map. You need
to know how all of Ruby’s Enumerable methods work.”
This bit of radical candor was part of a series of challenges I faced early as a junior engineer. They shook me out of impending Expert Beginnerism. They expanded my concept of engineering excellence.
He was right. A hallmark of great programmers is that don’t waste energy on fundamentals like these. They have extensively explored each of their tools, be it the languages and frameworks in use, terminal, text editor, operating system, browser, or application infrastructure. In the rare case where they don’t know what to do, they know a great question to ask and can find the answer quickly.
That year I really learned Ruby’s Enumerable library. I read the documentation
cover-to-cover (boring but essential), tried to reverse-engineer many of the
functions in Ruby (extremely valuable), and used and misused each extensively
as my programming evolved. I honed opinions on when to use
reduce, plus specialists like
know what the best method for the job is, balancing conventions, readability, and
performance. I stopped having to look them up.
What are your thoughts on radical candid feedback? Let me know!
Join 100+ engineers who subscribe for advice, commentary, and technical deep-dives into the world of software.