Learning to Code Isn’t Enough
Listen, I know the feeling. You’ve read the news articles, seen the reports, and the advertisements are popping up everywhere. Technology is in demand. Every company everywhere needs developers, engineers, full stack ninjas and machine learning gurus. You know those companies have fully stocked beer fridges, unlimited vacations, and of course, salaries that look incredibly appealing.
So I understand why you want to learn to code. I get it. You want something better, something more invigorating. You want something _more_. Maybe you took few classes at Udacity or Coursera or TreeHouse or… there are a lot these days aren’t there? You’ve got the basics down and you’re ready for your new adventure as a developer (though I’ve heard that calling yourself an engineer gives you a free 10% salary bump for the same work).
I’m talking to those of you who are ready for a new position. You’ve gone through _Cracking the Coding Interview_ a dozen times. You know your favorite framework or library inside and out. You’ve built the blog, you’ve built the CRM, you’ve built the Twilio app. Maybe you are even working as a developer. Right. Now.
Aside — if you haven’t built an app with Twilio, you’re missing out. Their API is fantastic. You should check it out. They have no idea who I am, and I make nothing from them by sharing this. Do yourself a favor, though and build a basic Twilio app. It’s so much fun.
All right. Here’s the rub. Coding is hard. Writing and maintaining useful and effective software is a collaborative effort that will leave you pulling out your hair and screaming at the sky when it doesn’t seem to be going right. There are a lot of developers out there who, gasp, don’t like their jobs. It’s not hard to understand why.
Imagine that you are an entrepreneur looking to hire a few sharp engineers. You interview a couple, and they’re fine. They know their stuff, and they’re really excited about technology. I mean, they can implement a binary search tree in seconds and they have a deep understanding of algorithms and both Object-Oriented and functional programming. They’re _really_ good with their tools.
But their tools is all they talk about.
Your company is about changing the world, though, or at least solving a specific problem inside it. Do you really want to hire someone because they’re excited about their tools? That’s like hiring an architect because they’re super into blueprint software.
If you’re an education company, you want all of your employees to be passionate about education. When you’re mission is about connecting everyone, like Facebook’s, you want your developers to be invested in that mission.
All right. Here’s the bottom line. You have to find a place where your skills _and_ your passions matter. Don’t just look for engineering jobs. Look for engineering jobs at companies that are doing something you care about. My passion is education. Maybe yours is video games, or botany or astronomy or business processes or logistics.
If you don’t have something that lights your fire outside of coding, you’re going to find yourself bored, unsatisfied and unhappy. Because coding is hard. It’s not always fun. Other people are going to disagree with you and they’re going to dislike your coding style or how little or how much you comment your code.
All of that is going to happen, no matter where you work or what you do.
So, figure out what makes you tick. Go do that thing, and if you must, write code to do it.