One Piece of Advice

A couple of weeks ago, Jessica Rose posed this question to the tech crowd:

It's a great question. Previously, I had different answers depending what age range I was addressing -- one for middle school students, and another one entirely for college students. While the answers I've given have changed throughout my career, I think I can consolidate all the different versions into this one:

But why? Why is this the one thing I want to impart upon folks just coming into tech?

Don't resent your work

I see this a lot with interns or new graduates. They're so excited to get their first position that they throw everything into it. Many of us have heard tale of the genius whose code has stayed unchanged for as long as the codebase still lives (this is a myth, by the way) and -- fearing that we aren't that prodigy -- give up everything that might stand in our way of maybe someday evolving into them.

You may think that it's the price of entry. But after a while, you've built up this subconscious resentment at what's taking you away from what you've grown to enjoy over the course of your lives thus far. Guess what! You've had a wealth of other experiences besides working, and odds are you liked some of them at least passingly well.

If you resent your work, it's going to be much harder to find the joy that drew you to technology in the first place.

You aren't a machine

Machine, Flickr image CC-BY-2.0

I'm spilling some well-kept secrets here, aren't a machine, nor are you expected to be. You don't sign a contract when you get a job saying that you renounce all parts of yourself that aren't technology. I promise, if someone finds out, they'll probably ask you every so often about what sort of table saw you have at home and have you tried any of the cool Japanese wood joints that have been making the rounds lately?

By sharing interests with your coworkers, you become a real person to them, and them to you. This helps people treat each other with kindness and respect, even if this should be the default starting point.

Don't lock yourself in

Moss, Flickr image CC-BY-2.0

Software is a craft. But it's very easy to get locked into patterns of thinking that just build on what you (currently) know. Some breakthroughs in software engineering come from strange approaches to problems that draw parallels to things completely unrelated to the problem at hand. Exploring outside interests can help you reframe your existing work and dissect problems in unique ways.

Communicate outside your comfort zone

I moved to Seattle after college, wound up making friends from the tech community, relishing the ability to talk about Smalltalk at the bar instead of the small talk that I loathed. I went from being one of the few people studying computer science and not being able to talk about my research with peers to "these people understand me"! My experiences swung from one extreme to the other, I thought for the better.

But, I left Seattle, went back to school, and found I had forgotten how to really communicate with anyone outside of engineering. By giving up my interests outside of technology, I stopped having to push myself to communicate with others in language that wasn't industry-specific jargon. I didn't communicate outside my comfort zone, so my skills not only stagnated; they atrophied.

This really held me back as I started to advance in my career. Communication is arguably one of the most important aspects of building software, whether that's communicating your idea to others, agreeing on implementation details, or even convincing others that your idea is important enough to build. Without proper communication skills, your progress within technology is severely hampered.

Have you tried to read a design document or a technical paper written by someone who can't communicate well? It takes much more cognitive effort, more time, and increases the amount of follow-up questions you have to ask. Good communication skills can mean the difference between a good engineer and a great one.

If you ever want to move into a role where engineering isn't your full-time occupation, this will be even more important.


We'll get to retire one day, right? Right? Might be good to remember what else we like to ending blog posts in Latin!

clausula *

I wish someone had given me this advice when I first started out. Neglecting your interests is one of those things that so many new-to-industry folks do in an effort to get ahead. The problem with this is that after years of focusing solely on work, it gets harder to discover new ones, or reconnect with the pleasure of old ones. Keep the joy.

* I really hope this is the right one. I dug out my dictionary...


Popular posts from this blog

Engineering: a first run experience

Saving the world: using persistent storage with a containerized Minecraft server

Julia on Google Compute Engine: working with files