During my 20+ years in the software community, I've picked up on a common set of patterns that surround developers who always seemed to excel in their careers. Developers who had the best careers seemed to do a specific set of things that other developers did not. This course lays out the principles, and how to apply them to your software career. No single checklist guarantees success, but following these principles will improve your chances of finding success. There are probably some additional items we could add, and you could argue that some of these are more important than others. But from my experience, these are the core set of things you need to do to have a better career in software.
Doug has spent the last 20+ years in the software industry - gradually evolving from a pure bits and bytes guy to a technical strategist, content/messaging guy, and technology evangelist, with a few years of marketing thrown in for balance. He's currently a program manager for Visual Studio at Microsoft.
Introduction Hi, my name is Doug Turnure and this course is about How to Have a Better Career in Software. Thanks for listening in; I hope you'll find the information useful. This course is the result of about 20 years of experience in the software industry. During that time I've held a variety of roles from software development and management to developer evangelism, developer marketing, customer feedback, and influencer programs. It's been an interesting journey that has allowed me to speak with thousands and thousands of developers from a variety of angles. Along the way I've seen some interesting patterns emerge that distinctly identify successful developers and are clearly missing from less successful developers. It's something I've wanted to formally capture for a long time as I've not seen it pulled together anywhere else. I'm going to share with you five patterns, or principles, that I've seen over and over in more successful developers that I've met with over the years. There may be other principles, and some of these may be more important for you to learn than others. It's not intended to be an exhaustive list, but rather a helpful set of principles you ought to consider if you are a software developer. All of the items on this list are fairly easy to implement and I've included some tangible ways to do each of the principles. I hope that you'll find the information useful and that perhaps something in this course could serve as a catalyst to help you have a more successful career in software.
Technology The first area I want to cover is technology awareness. You may not realize it, but you are an expert in something; you almost can't not be an expert in something. You spend your time during the day in some capacity, and over time you are naturally going to get good at whatever that thing is. It may just be the details of business at your job, it may be a programming language, it could be your infrastructure, but you're good at something. The question is, with apologies for ending in a preposition, what are you actually good at? Generally speaking, there are three ways people tend to hurt their careers when it comes to their expertise. Number one, they attach themselves to a technology without paying attention to its popularity or relevance in the industry. Number two, and it's related to the first item, they hang on to a technology they know, ignoring its age or the way it is trending in the industry. And number three, they move away from technical merit and instead they make emotional decisions as opposed to intellectual decisions around which technology to choose for a given problem. We'll take a deeper look at each of these three areas and how they can help or hurt your career in software.
Framing Now let's turn the page and talk about solving problems in a larger context, specifically, the context of your company. And oh boy, there are so many ways people sabotage their careers when it comes to their company. I have seven of them listed here, but I'm sure there are more. Companies, especially larger ones, are almost always slower moving than individuals, and they become easy targets because of that. People talk in frustrated terms about how companies are slow and clueless, and neither is exactly true. Companies are run by systems, those systems are built and operated by humans, the moving parts are always a bit clunky, some more so than others. Learning how to see this without obsessing over it or going off on it is key to having a better career in software. The seven areas I'll cover around this are, number one, knowing your business context. In other words the real reason why you do what you do. Number two, the danger of focusing on short term only. This is all tactics, no strategy, having your head right against the work. Number three is the danger of focusing on long term only, and that's all strategy, no tactics, and you're not getting anything done. Number four is programming politics, you're going to be working with humans, humans are imperfect, and politics are a part of any organization. Number five is those corporate systems, you'll be working with imperfect systems in addition the imperfect humans. Number six is dwelling on the negatives. You're going to see the things that you look for, whether you're looking for positives or negatives. And number seven, which seems a little bit out on the edge, is taking glamorous stands. The idea here is not to stand out as a contrarian. We'll go into each of these seven areas in this section.
Brand Taking care of your reputation. Okay, I can already feel some of you rolling your eyes, and to some extent I get it. When we start talking about managing your reputation, it brings thoughts of image management, shallow people, phoniness, and such. And while that does happen with some people, consider this, you cannot not have a reputation. Everyone that knows you has an opinion about you. Do you want that opinion to be accurate? You see, it's not so much about creating a false front, it's more about letting people see who you really are and what you really do best. In the same way you want your resume to be honest and positive, your reputation is a living, breathing alternative to the formal, written resume. And much like a great resume, a great reputation is central to having a better career in software. With that stated, let's take a look at four aspects of taking care of your reputation, and we'll dive into each of these areas later in this section of the course. Number one is personal brand. This is about making sure your "subtitle" is accurate. Number two is the relevance of networking. This is making the most of your interactions. Number three I've called it being social. What we really mean there is how social media shapes your reputation. And number four, kind of the converse to that, the poison of politics and religion and how that can affect your success.
Interactions The last principle I've included in this course is probably the softest of the soft skills, getting along with other people. I suspect almost everything I say in this section will be something you already know, but having spent so much time with so many developers, and having seen the same issues over and over, I have to mention this. It is arguably the most known, but least practiced of these five principles. And I've tried to break it into some very tangible tactics that can help you incorporate it into your daily routine. These five areas include, number one, listening before responding. Number two, taking advice or criticism. Number three, working in a silo. Number four, basic hygiene. And number five, doing too much. Let's take a deeper look at each of these areas.