On Kelly and why she’s smart(er than us)
Meet Kelly Sommers (@kellabyte). Kelly is smarter than most of us. I don’t really know Kelly other than a few twitter interactions, but I’ve been following her for a year or two. I don’t know what Kelly does for a living; she rarely talks about it. Kelly does, however, talk rather openly about her side projects, what she’s reading, and what she’s thinking about. And I don’t mean about pictures of kittens and the shame that comes from eating alone at an Applebees on a Friday whilst traveling for work (who would do such a thing?). Kelly learns and explores in the open, apparently without fear of judgement. That’s pretty amazing. She doesn’t care what you think. You know something she wants to know and she’s going to get it. She’s the honey badger of systems/distributed systems programming and we’re all just chasing the scraps.
Most of us are terrified of judgement, of revealing our ignorance. I’ve been doing this (whatever this is) for about 15 years. I’ve made a decent career of it. I get to work at Cloudera. I was lucky enough to write a book and give a few talks. My entire education came from O’Reilly books, programs such as MIT’s Open Courseware, and damn near demanding that others answer my questions and teach me what they know. That has worked exceedingly well for me, especially as a high school drop out with no formal university education. But now I’m in a position where I need to make decisions at work, where I need to speak definitively, and that complicates the learning process. It’s not hard to “remain teachable,” as they say; to look for all opportunities to learn, but it is hard to continue to seek it out. We’re terrified that it makes us look weak, dumb, or as if we haven’t earned what we have. We’re textbook examples of insecurity, and it’s robbing us of our evolution.
I read tons of posts on sites such as Quora where people ask how to learn, master a domain, and grow as developers. I’d give examples, but I’d rather not call anyone out. The answers are usually simple. To learn, you need to ask. Find someone who knows what you don’t know and beg them to explain it to you. Spend time thinking about the problem. Test your understanding against them; “So if we can’t guarantee when the underlying storage subsystem actually writes to reliable media, how can we actually make a guarantee about the durability of a committed transaction to an application in a datastore?” (Hint: You can’t. You need to inform the developers of the semantics and guarantees of the underlying storage layers and hope they understand, or place requirements on the storage layer configuration.) You have to be confident and secure enough to ask that question, and in a non-defensive, non-confrontational manner. To master a domain is to learn everything about it. I’m not convinced that’s entirely possible, although some come far closer than others. I don’t believe I’ll ever be that person in any of the domains that interest me or require my attention. For that reason, I simply don’t concern myself with “mastering” anything; I just keep learning. With respect to growing as a developer, we’re really talking about shedding the bad, and replacing it with good. If you’re Kelly, the bad certainly doesn’t include a lack of motivation, inspiration, or willingness or capacity to learn. The good (for all of us) comes in the form of open learning, respect for one’s peers and their expertise, and acceptance that we do not know, or need to know, everything. There’s other stuff as well, but that’s a short list.
We should be more like Kelly. Having an open mind, to chase new things, and to learn without fear, are all powerful things.
If you want to join an environment that strives to support open learning, apply at Cloudera. We need you.
(With all apologies to Kelly Sommers. I hope this doesn’t offend or embarrass. I hope you see it as the compliment it is meant to be. Stay awesome.)