Over a recent weekend, I installed a new faucet in a bathroom. Aren’t I handy? Well, not especially—I heard the same joke from the employees at three separate hardware stores: “Well, it’s not a real house project until you’ve gone back to the store at least twice.”
It’s a bit irritating to hear the same tired joke everywhere you go, but there’s a kernel of truth there: No one has all the answers at their fingertips. Instead, they get started, learn more, and respond to change.
That reactiveness, that lack of perfect expertise, was something I kept seeing. As I was talking to people, as I watched YouTube, and as I started spouting off expletives, I kept seeing just how accepted my inexperience in those domains was.
How do I know how to install a drain trap? I asked my dad. How do I remove a door panel in a car? I watched a video. I learned from people, who first learned from others.
This is a lesson that I think new developers often don’t take to heart: None of us knows everything. This isn’t a new message, but I think it’s a good reminder to hear once in a while.
No living human understands computers from top to bottom. No one. There’s even much too much in the stack—across silicon and packet routing and web servers and HTML and interpreters and jQuery—to know all the pieces of our apps.
Every experienced developer or handyman knows a few things well, but at the boundaries, we all need help to know how to deal with registering COM components or knob-and-tube wiring.
Moral of the story? Never feel bad about going to Stack Overflow, or the Google, or the office maintenance person.