One of the cardinal sins in engineering is “Not Invented Here” Syndrome, or NIH. Folks afflicted with NIH insist on re-creating everything, all the time. Need a logging framework? Going to have to create one from scratch. Need to do database connection pooling? That’s tricky, but yeah, they will whip that up for you (it’ll even work… at least some of the time). The classic example of this is a Content Management System (CMS). It’s almost a rite of passage for engineers to create their own from scratch, rather than using one of the bazillion that are already out there. I was guilty of this myself, early in my career!
Most of the time, NIH problems have a really simple root cause: the offending engineer just didn’t know that this was already a solved problem. And why didn’t they know that? Because they were stuck inside of their own little bubble. There’s a whole big, wide Internet out there! But they don’t really use it.
So. What do I want to convey to you more than anything else? There’s really only one guideline for your career that I’m convinced is 100% completely absolute, and it’s this:
Always Be Learning
Every day. No exceptions. Blogs, books, YouTube, podcasts, Twitter, whatever. Just make sure that — at the end of the day — you know more about something related to your job than you did at the start of the day.
It will help prevent NIH, but that’s only the beginning. Learning is really a first step that will lead to so many other good things in your career. Being on top of the state of the art in your field makes it much easier for you to switch jobs, which means that you’re far more likely to end up at a place where you’re happy and well-compensated. Wherever you work, you can contribute more. You’ll know how to do things better, faster, and cheaper. You’ll be able to advise others on how best to do things, and what paths are best to be avoided. If you’re aware of all the interesting advances in your field, you’ll have the option of trying them out yourself, which is usually tons of fun. Most importantly, though, you’ll have to worry a lot less about being stuck: your skills won’t be in danger of stagnating, and will be more transferable.
If you’re an engineer, you should be finding smart engineers and forums to follow, marching through their entire back catalog, and then subscribing to their RSS feed in feedly or something similar to stay on top of all their new stuff. Need some to start with? I’d recommend…
- Steve Yegge’s new blog and also his old “Drunken Rants” blog.
- The /r/programming subreddit, but start by chewing through the first few pages of its “Greatest Hits” catalog.
- Hacker News, which is often full of obnoxious brogrammer startup-worshippers, but is also often full of amazingly kind and thoughtful folks. Bit of a crapshoot. But you might start with its “best” list, which contains its recent high-ranking posts.
- The Mythical Man Month, which is just a timeless classic that all engineers and managers should read.
- Continuous Delivery, which I haven’t yet finished but is absolutely fantastic.
- The Software Engineering Radio podcast. Not every episode is great, but the great ones are probably worth listening to three times. (By the way, if you’re on Android and need a podcast player, I’d recommend Pocket Casts. It’s not perfect, but it’s pretty solid.)
- Julia Evans’ blog is also a must-read. She does a better job than anyone else I’ve come across of making really really complicated things understandable. And her enthusiasm is infectious.
If you’re an engineering manager? Same thing: find the folks out there that are saying smart things and read everything they put out. I’d recommend…
- The Mythical Man Month. It’s listed for both engineers and managers, but for managers it deserves pride of place. If you haven’t yet read it, stop reading this, stop whatever else you’re doing, go buy it, and read it immediately. It really is that important.
- Rands in Repose. I will read any & every thing that this man writes. Always worth my time.
- Lean Enterprise. I’m still reading through this, but I feel like I’m highlighting every other sentence in it. And yeah, this is the second book I’ve listed that Jez Humble has co-authored. He’s really smart.
As an advanced move you should also start following on Twitter the smart folks that I’ve listed or that you come across on Reddit or HN. After keeping up with all of that stuff above for several years, I find that I’m getting more value from Twitter than anything else these days. Not sure if that’d be quite as true if you’re just starting out, though.
Anyways. You don’t have to read all of that tonight (unless you’re an engineering manager and haven’t read Mythical Man Month, which you need to fix ASAP), or even this week, but you should definitely get started. Read/watch/listen to something every day. Carve out at least 30 minutes for it. It’s super important. Seriously. Year-from-now-you will thank yourself for it.
Personally, I love finding new and interesting stuff to read and then sharing it with other folks. I’m also trying to get better about writing down the things that I learn as I go. Enter your email below and I’ll send you weekly letters with the things I’m writing and the best stuff that I’ve found in my own web wanderings.
The world is full of lessons that other folks have kindly already learned for you. They probably learned those lessons the hard way, but since they were kind and humble enough to writte about it afterwards, you can learn it the easy way! Yay! Sharing is awesome! Our jobs are all hard enough already, without us having to go and make them harder by failing to educate ourselves.