The work life balance is something that all developers have to sort out in their own lives, and it’s not easy. There are coders that are content Developing between the hours of 9-5 when they are paid to do so. Of course there is the polar opposite, in which Developers spend time out side of their paid job learning new techniques, technologies, and possibly even new programming languages. I am not saying there is anything wrong with either group, however it all depends on where you want your career to lead you. If you want to step into a world where you work hard, but all of that hard work will pay off, this blog post is for you. If this doesn’t sound like you, leave now.
As it may be quite obvious, I enjoy developing outside of the office, not only to further my skills, but also to make a little bit of extra money. This has it’s trials and tribulations in which your brain is always on, and sometimes you start speaking in code and/or writing code in your sleep. Some times you have to make sacrifices like not playing Halo with your friends [Sorry Kyle & Anna], or missing out on attending certain social gatherings. However, there is a solid reason in which anyone would make these sacrifices and it all boils down to personal growth.
If you’re currently a developer that is doing the 9-5 life, or are currently in school and would like to Refactor your lifestyle into something that will grow your experience, and expertise here are some pieces of advice I have for you.
Just by reading the title above, you’re probably asking yourself “what is this guy going to tell me that I didn’t hear from my high school guidance councilor?” The short answer is, not much, but one thing that I can offer above and beyond your guidance councilor is that I’ve been living the life, and I am focused on the same career in which you are in or working towards.
When you first jump into the “Real World” from College you hit the ground running and are probably making less money then you first expected to make and have less free time than you anticipated you would have to attend some part-time studies. Setting simple educational goals that are easy to achieve are key to keeping on top of new Technology and Trends.
Personally, I have posted a Programmer Competency Matrix on my office wall, this gives me a constant reminder that if I don’t have a specific learning objective, there is something else I can always work toward.
Here are some resources I use in order to keep up with Development trends and new Technology:
A Podcast is normally a short 15-30 minutes of audio clip, sometimes sped up to up to 2x the speed. The short time frame gives you the ability to listen to them practically anywhere, on a run, your commute to work, or even while you’re working on some code.
A Vidcast is practically the same as a Podcast, except for the fact it is in video format. Vidcasts are a little bit harder to keep up with because of the Visual element. However with the Release of Visual Studio 2010 we might be able to play videos within the IDE which will give us the ability to code and watch at the same time.
Here are some Podcast & Vidcast sites I enjoy:
If you found your way here, you are obviously familiar with the concept of Blogs. Blogs are a great source of information and I would have to say one of the biggest learning tools out there, all because of the magical invention of the Search Engine. You are able to find a so many of different opinions all focusing on the same topic and come up with a well informed opinion of the topic.
A lot of publishers are doing their best to keep you buying books on a regular basis, take advantage of this whenever you can. E-books are great as they are often very affordable, and extremely portable. I keep a large number of books in my SkyDrive, this allows me to access them from any computer or internet capable portable devices [like an eReader]. Here are some prime places to Purchase affordable E-Books:
Forums aren’t really somewhere that you’d cruise to learn random facts about development, but they do have their place in the learning process. If you need an answer that isn’t required immediately, head on over to StackOverflow, or ASP.NET Forums to post your question.
Forums are a two way street, someone was nice enough to help you out for free-as-in-beer, pass the good cheer along and help out a follow programmer in need. The first vacation time I had ever had the chance to take, I spent the entire week on ASP.NET Forums helping out fellow developers. It made me feel great as I had the opportunity to both, help people out and learning new things that I would have had to learn eventually anyways. I’m currently a “Contributor” with 4,209 points.
Find a Local User Group
If you’re a .NET Developer check out the INETA, you should be able to find a User Group near you on their site. If you are in the Greater Toronto Area [GTA] here is a list of User Groups near you:
Attend a local Code Camp
Code Camps are typically put on by User Groups but are normally a full day of learning for free. You will find content on Current, and upcoming Technology Trends from Local Speakers that you have the ability to talk to at the after party. If you do end up attending a code camp you may want to read the lessons learned by this first time code camp attendee. If you live in the GTA, definitely check out the Toronto Code Camp which is typically held on May 1st.
Keep an eye out for Development Conferences and Events
Conferences and Events are excellent resources for Networking and High Level learning. Typically Conferences and Events have a Price Tag associated with them but from time to time you can luck out and find some extraordinary content at a reasonable cost and possibly even free. I typically live off of a few resources to keep up to date on some of the conferences that are going on in my area.
Newsletters are also a great source of Great Events sign up for a Newsletter from Microsoft, a Third Party Control Provider, a Book Company, or a Local Consulting Company. If you aren’t a fan of getting a flood of email some providers will allow you to subscribe to an RSS feed of their event/conference announcements instead of having to get the newsletter delivered to your inbox.
If you are able to land a job with a mentor program consider yourself lucky. There is no easier way to gear up your development skills then having someone watch over you when you’re still green. A mentor can also give you valuable life experience advice, and narrow your development vision so you don’t get overwhelmed by trying to learn it all [insert Pokémon joke here].
If you don’t have a mentor program where you work, it would be a valuable investment for the company, so don’t be afraid to ask for one to be implemented.
If you can’t find a mentor at work, there are a few people that you can contact that may be able to help. Microsoft has a group called the Developer & Platform Evangelist [DPE] Team, it’s their job to ensure that you as a Developer have the tools you need to get the job done. If they aren’t able to help you, they will definitely know someone that will be able to give you the advise you are looking for. You can also talk to your local User Group Leader, as they are also normally quite knowledgeable or connected to others that are willing to share their knowledge with you.
Community plays an important role in your Professional Development. What you know can always be expanded, who you know is something that isn’t as easily obtained unless you put yourself out there. You may have noticed that the majority of my points above tie into this theme, they all have to do with the Development Community. Each point made above builds upon the next; Starting with reading articles written by influencers within the Community, listening/watching to their shows, next you attend an event in which they are speaking, then ultimately you get the opportunity to get mentored by that individual, even if the experience is as simple as a quick chat at a technology event after party.
Expanding your network is important, so before you go to a Conference or Event, make sure to set goals as to who you wish to meet (if any), or how many people you wish to meet. Be sure to make a good connection with these people, enough that you’ll be able to recall where you met them if you are to run into them again at future events. Also be sure to be consistent, and reliable, if you make a promise be sure to follow through.
If you have the time to invest, you could become a volunteer for your local user group. Giving a helping hand at User Group meetings gives you the opportunity to continuously meet developers in your area, as well connect you with the speakers that come to present. It also gives you the opportunity to show off your talents, if you so choose to volunteer as a presenter.
Compiling a list of Best Practices
Similar to our coding habits, our lives can always be improved by putting a little bit of effort into understanding how others are implementing their solutions. In the points above I have outlined some of what I have done over the past two years. In posting these snippets of my experiences, I hope to inspire at least one Developer to refactor a part of their lifestyle.
If you have run across this post and were inspired or would like to add to the list of Best Practices, I welcome you to leave a comment below.