[ Part 1 of 3 ]
One day last fall I began to take a look at my job and career and wondered if I was doing all the things I should be to keep moving forward and advancing my career. I was continuously watching Pluralsight and Microsoft Virtual Academy courses, listening to a number of technical podcasts every week and reading books on various programming related topics. But is that all I really need to be doing to stay ahead? Am I studying too broad of a range of topics? Should I be focusing on being more of a specialist than a generalist? If so, what should I be specializing in to give myself skills that will be most valuable in the future? Was I spending too much time learning and not enough time coding? Is having technical skills enough or should I be spending my time honing my social skills as well? Should I be blogging? Should I be networking by attending meet-ups? All these questions and more were swirling around in my head so I set out to find what materials were available to hopefully provide me with some answers.
Over the next several months I came across and studied 3 separate software developer career management courses: “Get Involved” by Scott Hanselman and Rob Conery, “Becoming an Outlier: Reprogramming the Developer Mind” by Cory House and “How to Market Yourself as a Software Developer” by John Sonmez. What I found after taking these courses is that I wasn’t doing nearly enough for where I want to take my career. If you are a developer that aspires to stand out from the crowd or at least be more than a 9 to 5 developer, I suggest you take these courses as well. While there was a little overlap in material between the 3 courses on a few topics, each provided some unique insight into different aspects that effect your career as a software developer.
Course 1: “Get Involved!”
The first course I came across in my search was a collaboration between Scott Hanselman and Rob Conery called, “Get Involved!”. The focus of their course is to show how getting out there and being social with your peers can both advance your career and make it more enjoyable. If you are familiar with Scott and Rob, you already know just how charismatic and entertaining they are (Scott is one of my favorite presenters). “Get Involved!” is a well-produced and highly entertaining video that easily kept my attention throughout the nearly 2 hours’ worth of content. The course covers a broad range of topics including Blogging, Twitter, Social Coding, Stackoverflow and usergroups / conferences.
Scott and Rob started off with a quick discussion on why you should have a blog. Then they went on to cover blogging platforms and what you should look for when deciding what to use for your blog. The rest of their content on blogging was stuff that I found to be absolute gold and some of the best material in the course. Not sure how to compose your first blog post? No problem, the anatomy of a good blog post is covered along with a discussion on the netiquette of blogging. You also get to watch Scott write a blog post live. Obviously they aren’t recording every word in the post as it is being typed, but you see Scott iterating over different options for the post’s title and you hear him discussing his options and why one title may work better than another. Jeff Atwood makes an audio appearance as well to discuss writing and some things to keep in mind to make your blog posts engaging and enjoyable to read. A couple of my big take-aways from this were to learn to tell stories when you write and to try and write as if you were talking to someone. The blogging section finishes up with discussions on what to do when you write a post that gets noticed (and possibly criticized) and tips on how to not get caught up in any drama.
There doesn’t seem like there would be much to cover regarding Twitter, right? But if you are planning on using Twitter as a tool to enhance your career, there are several things that you should keep in mind. Rob and Scott discuss how to use Twitter to mingle with the developer community and decide on who to follow. They give pointers on picking a good handle and avatar when your goal is to use Twitter as a networking tool for your career. They also provide tips for what to put on your Twitter profile. These couple choices (avatar, handle, profile) along with your posts influence how you will be viewed by the Twitterverse which could include a future employer. At the end, Scott and Rob go over setting up an account from scratch and just like in the blog training, they also cover how to handle drama.
I must admit that before I watched this course I didn’t have a Twitter account. I didn’t think being on Twitter would provide any benefit to me career wise. Boy, was I wrong! I’ve found that it helps me keep up with what’s new and happening in the software development world, lets me rub elbows with the industry’s elite, and I even won a year long subscription to Pluralsight! If you are like me and watch alot of online training courses and listen to podcasts, sign-up for Twitter and follow your favorite authors. I think you’ll find that Twitter is a great resource as well.
The course then moves on to the topic of social coding aka contributing to open source projects. They discuss how contributing to open source projects is a sure fire way to get noticed (especially if you can get a contribution accepted to a well known project). It is mentioned that many employers are now turning to Github over conventional resumes and LinkedIn. Rob also talks about how you can use markdown to add your resume right to your Github account. They talk about how every project needs help with documentation and tests. Rob gives a quick overview of Github while talking about a couple project submissions that he made. I found most useful the discussions on things to do and not to do when working on a project. For instance, they mention that a pull request should only contain one change and that you should adhere to the programming style of the project. Finally, Rob gives some tips on how you can find projects to contribute to.
As someone who has yet to contribute to an open source project, I found this section to be both informative and inspiring. I feel like I have a better grasp on what to expect when I do find a project to contribute to. The couple tips on what to do and what not to do that I gleaned from this course have better prepared me to make that first poll request and not look like a complete newbie.
Who better to get tips on using StackOverflow from than Jon Skeet? Jon first walks through writing a question and points out along the way what you should be including to make it a “good” question. Jon then switches over to discussing how to answer questions. He talks about different methods of finding questions to answer as well as a few tips on how to answer questions.
User Groups / Conferences
The last section in the course covers attending user groups and conferences. Rob talks about why you’d want to attend a user group, how to find local user groups, and how to pick which user groups to attend. Then he and Scott head out to a local user group in Portland and show what you could expect to see if you attend a user group meeting near you. They also interview a few user group attendees to see why they attended the meeting. In the last portion of this section, Rob and Scott encourage you to get out and speak. They suggest starting out small where you work, then moving up to speaking at user groups, and then submitting ideas for talks to conferences.
I learned quite a bit from “Get Involved!” and maybe even more importantly it has inspired me to try and get out and be more of a social coder. The course doesn’t give exhaustive coverage on any of the topics, but it gives you enough to get you started and feel comfortable doing so. Look for Part 2 coming soon where I review the other 2 courses that I have taken recently.