So this is how it all starts. Over the past handful of years I have felt like my career has been in a slump. Sure, I have jobs, I write code, I have done all the things that you do when you have a professional career as a software developer. The problem was, my heart just didn't seem to be in it.
No matter how much I told myself, "Get excited, this is a fun job! You're working with cool new frameworks and toys!", the shine wore off faster and faster. I eventually switched to the opposite side of the coin, telling myself, "Hey, look, it's not that bad. Just do your job and you can go home. This isn't your life, it's just a job". It took even less time for that to start failing as a motivation technique.
I have recently discovered a bit of information that I never realized, not about people in general, developers as a group or certainly not myself. Uncle Bob, Martin Fowler, Jeff Atwood, everyone that has ever written about software development and craftsmanship from the viewpoint of a developer looking past the code, are right.
Developers, by and large, cannot thrive in a vacuum (along with most other forms of complex life). We, or at least I, honestly cannot grow as a developer without at least some minimal interaction with other humans who are truly interested in code. It can be done for a while, sometimes a very long while, but eventually, I think it gets to you, you just flame out. I can't formulate it into words at the moment, but that's how I feel.
Clearly, none of what I just said is new information. Every developer who has ever read a book on development, or hell, even taken a computer related class and studied with other people, is familiar with this concept. I mean, this really is a, "No shit, Sherlock", kind of moment. Of course, I knew this concept. I have read a lot of those books, the blogs, hell, even knowing the names of the authors you almost have to have heard these thoughts aired out before. But here's the thing; It never made it to my gut.
I have been working as a professional developer for almost 16 years. And by professional, I mean, someone was foolish enough to pay me for it, although by that definition I started developing almost 28 years ago when I was a junior in high school and the only travel agency in town asked me to do some report creation for them once a month. But the point is, people have been paying me to write code for a while now.
I have had significant ups and downs in my career. I have worked for multiple startups (most of which failed, but those were not my fault, I swear), large ISPs manufacturing companies, and game companies, I have worked in positions that were not, in my opinion, software development (no matter what the title or job description said) but were related; QA roles and BA roles. There is nothing wrong with these roles, they can be indispensable, but in neither of those was my primary duty to actually sit and create code. I have had moments when I felt that I really didn't belong in the industry writing code, that every single developer out there, had more skill and plain raw talent than I did. There were times where I did truly shameful things that damaged both myself and my career.
I have also, on a few occasions, been the hero, saving the day with an idea that no one had brought to the table or had heard of before.
OK, I know, that was a bit of a ramble. Those previous few paragraphs were all written to say this; I have been doing this for a while now, have suffered my ups and downs, crises of faith, but it hasn't been until very recently that my gut simply has accepted that My most successful and satisfying moments have been the times during which I spent significant time around fellow coders who were also passionate about code.
Now, that last part is worth reading again.I didn't qualify that with work, hobby, personally, or anything else. It didn't matter if I was in junior high learning to program a TRS-80 after school at the office of a friends parent, trying to program wire framed perspective graphics on a Commodore 64 in high school with a mentor that was trying to teach me how vector math could be used to draw shapes in perspective or creating one of the first scaled services allowing a customer to make changes to their ISP package without having to call in to customer support (things like adding email addresses, provisioning websites, etc.) I had people that I spent time with that were passionate about code. We all have things we are passionate about aside from code but they all had that passion for code in common.
Now to swing this back around to my opening statement that, 'my heart just wasn't in it'. How did I not know this? I just didn't. I lost track. I had moved on, changing jobs, changing towns, and lets face, I'm really not a people person anyway. Pick any excuse you want but the bottom line is I lost touch with any kind of community of developers that were passionate about code and lost my passion in the process.
The good news is, that can change. And I WANT that to change. I miss that old me and I want to get it back. Not to mention, when I speak to peers that I used to mentor and realize how much further ahead of me they are it provides a stark and unforgiving mirror of how much I have missed over the years. OK, so that sounds like a childish and selfish thought. OK, I can understand that. I'm also OK with that. As long as it motivates me, and it does, without making me bitter or angry, which (it mostly) doesn't, I can live with that answer.
To catch up, I have to go full throttle. I don't have time to waste taking 10 years to get to where I should be, where I want to be. That means, taking into account all the advice that I've read, agreed with and nodded sagely at but for some reason, just didn't apply it to me.
So, step one, make a decision, check. Step two, act on it in as many ways possible as often as possible. This will take discipline and I will be forced to change years of habit but that's the goal. Communication is key in learning and certainly in learning at an accelerated rate. Hence, taking the advice of Jeff Atwood, this blog. It doesn't matter that it sucks and no one will read it, or even worse that they read it and blow me off as some sort of self-help slob. It matters that I do it. I've recently finished an online class at Coursera presented by Martin Odersky on functional programming principles using Scala. The course was fantastic. I signed up for 6 more courses a couple of days ago it got me so excited and I recommend that you run, not walk, to check it out for yourself.
It also forced me to interact with other students, even if it was just through the class forum and participating in the Q&A session on assignments. I have started reading more and more blogs. I've been using StackOverflow since it was created 5 years ago but never participated. Now I've created an account and will start giving back as best I can. I have a ton of ideas that I have planned or have already begun to implement. And this entire turn around was inspired by one, single, thing. Other people passionate about code. Same room, like or don't like them as a person, as long as you participate in the conversation about code with someone else that is passionate about it.
This isn't about my career or my job, it's about me enjoying my life again and not being trapped in a rut feeling like a gerbil on a wheel. So, please, share your thoughts, your ideas, whatever it is you're passionate about, with me. I am looking for good feedback to help me grow personally as well as professionally and if I fail, well, shit happens. On the plus side, if I'm going full throttle at least the impact will be sudden, swift and painless!
So let's hear it for Full Throttle Passion! Damn the torpedo's! Safety is NOT guaranteed.