Importance of a Personal Development Plan

August 20th, 2008

I first need to mention, this post is intended to be and interactive one as I will be posting a question to all the readers at the end, looking for some good feedback to help me with my training plan at work.

I am always amazed at the lack of personal responsibility many (the large majority) developers display.  Obviously skills that are learned act like building blocks and will carry you a long way.  The problem is that our industry is one of the most dynamic and rapid changing of any out there.  If you do not keep up with the ongoing industry innovations you can quickly find yourself being left behind and unmarketable.  It is nice when you work for a company that is training minded and helps develop their employees but that is not the norm, and even then you still need to make a personal effort to progress your development skills.  The only person that is going to truly look after your well being and future marketability is yourself. 

It has been interesting to observe over the past year or so how many open mid to senior level software engineer/developer positions are available.  Many of these positions have been open for quite some time too.  I have spoken to a few of these employers to ask how their recruiting efforts are going.  I consistently hear the same echo, we have plenty of applicants just not finding people with the skill set we are looking for. Sure enough, the skills they are looking for are technologies and methodologies that are relatively new to our industry.     

Some good news for the readers of this blog.  By the sole fact that you are reading this post means you are among the top 10% to 15% of developers who are actively engaged in developing your craft.  One of the departments I worked for had 68 software engineers.  Of that group I only knew of 9 (13%) that were active BLOG readers, attend user groups or local geek events,  frequently reviewed or read software books/journals/magazines,  earnestly downloaded and experiment with beta software just because they wanted to, not because you were required to, or was part of some open source project giving time to make something cool to better our industry.              

You can probably tell by now I am a strong advocate of employing people who are self motivated and will personally take charge of developing their skills.  I hire people for what they know not what I can teach them (entry level positions excluded from that). Unfortunately I still have to work with and manage the other 85% to 90% who need to be told what to do.        

NOW TO MY PLAN:

I changed companies several months back.  My new employer is training minded and very supportive, the unfortunate part is they have no formal training direction or requirements for the members of the IT department.  As one of the companies Solution Architects I am seeing huge discrepancies and lack of standards throughout our department.  One of the first things I want to implement is a mandatory book reading list.  There will be three (sounds like a good number) books that every engineer will be required to read and signed off on.  There will be an accompanying class/lab that goes along with each book to give some hands on reinforcement.

First Book:

Needs to target programming style and software construction.  I have already chosen this one, I could not think of anything better then  “Code Complete 2” by Steven McConnell, I am currently working on the class lab material for this book now.   I am hoping this book and accompanying lab material will help get the developers on the same page regarding software construction standards.                 

Second Book:

Will be on Design Patterns.  I have not solidified my choice here yet only the category.  There are lots of good titles to choice from here. Obviously there is the original design pattern book “Gang of Four” and newer pattern books like ”Head First Design Patterns”.  What are your thoughts here?

Third Book:

I have nothing slated here yet.

The question for you all is, if you were going to have three books with accompanying lab/presentation material which was going to be mandatory for all developers to read what would they be?  Like many corporations we are multi platform so the books do not necessarily need to target a particular language but we are striving to standardized most our systems/applications on the Microsoft development stack so .Net is going to be a big part of our future.       

Thanks

Scott Nichols

Scott Nichols Esoterica

  1. August 20th, 2008 at 05:23 | #1

    1) The first and most important book any .NET developer should own and have read through is CLR Via C#, by Jeffrey Richter. Its for version 2.0 of the CLR, so it doesn’t have any of the new frameworks included in it. But it does cover the absolute minimum you must know in order to develop .NET. Noobs should skip the initial couple of chapters; save ‘em for later.

    2) A book on LINQ. Not sure which one, as I haven’t read one yet. Data access is one of the three pillars of business software (UI, business logic, and data). Linq is the future of data access in .NET. Also, learning Linq is a good way to learn and understand lambdas, which the more you use the more you come to love and adore.

    3) Pro WPF in C# by Matt McDonald. Not only is WPF lightyears ahead of Windows Forms in terms of flexibility, ease of use and sheer awesomeness, but it is the birthplace of, what I believe, will be one of the most important parts of the .NET platform: XAML. Born in WPF, xaml is showing up in other frameworks. For example, Workflow Foundation uses xaml to serialize workflows (i.e., POCObject graphs) for editing and storage. You’ll begin to see more and more products using xaml to serialize objects for storage and design time, as people come to realize that xaml serialization for object graphs is much better than plain old xml and binary serialization.

  2. Andy
    August 20th, 2008 at 06:43 | #2

    If you require a design pattern book, you should (imho, of course) definitely take the “head first” one and not the “original” gof. It’s much more readable and gives better examples so your colleagues will get a much better impression of how to use each pattern and the patterns will stick much longer in their heads. In my opinion the original is quite academic and too abstract.

  3. August 20th, 2008 at 07:26 | #3

    Even though Code Complete and the GoF patterns book are pretty much the standards, depending on the skill level of these guys you may want to start them out with some a little lighter.

    The Head First book is a good book for getting started with patterns, and the interactive feeling of the book would make it great for labs or a classroom setting.

    CodeComplete should definitely be read at some point, but I would start them out with Pragmatic Programmer. They don’t really address the same topics, but the Prag Pro will 1) open their eyes to everything they’re missing and 2) put a lot of things that McConnell talks about in Code Complete in more perspective.

    Something else you may want to try: on my team we keep a page on our wiki where people can post articles, links, podcasts etc that may be of general interest to the whole team. It lets everyone feel like they can contribute plus you can easily subscribe to an RSS feed to get updates on new posts from your teammates.

  4. August 20th, 2008 at 08:40 | #4

    I would recommend Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin (http://www.amazon.com/Software-Development-Principles-Patterns-Practices/dp/0135974445/) or the newer C# version (http://www.amazon.com/Principles-Patterns-Practices-Robert-Martin/dp/0131857258)

    When it comes to practices that I can apply regularly in my work I think I have learned more from that book than I have from the more established classics like Fowler’s Refactoring or the GoF’s Design Pattern’s. I know some people may be turned off or think it might not apply to them because it’s presented as an “Agile” book but I believe it has an awful lot to offer no matter what your engineering process is.

  5. Jorge Diaz Tambley
    August 20th, 2008 at 09:09 | #5

    I read the Head First book on patterns before the GOF one and it was a great idea.

    Other mandatory books (IMHO) are:

    The mythical man month
    Peopleware
    The secrets of Consulting

    Regards

  6. August 20th, 2008 at 09:43 | #6

    Great idea, Scott. Few companies and even fewer senior technical people are taking the responsibility to mentor and grow their teams. As you note, a continuously improving team makes your job easier, and if you can sell the team that building their knowledge will make their jobs easier as well, people should jump on board.

    The labs are probably the most important; programming is really only learned by doing. If you could break it up into bite-sized junks, it would make a great just-in-time learning library. Frequently, people just want to learn enough to solve their current issue and return as needed. As Jeremy said, a wiki is also a good tool for capturing these small bits of knowledge.

  7. Steve Sheldon
    August 20th, 2008 at 10:31 | #7

    1 for Head First design patterns book

    If your company is doing a lot of web development, I’d recommend some focus on HTML and/or CSS.

  8. Rowan
    August 21st, 2008 at 02:36 | #8

    “Code Complete” is also my vote for #1. I particularly like Steve’s reasoned approach to any recommendations that he makes.

    The Heads First book on patterns also gets my vote. I find it more than just a good book on patterns: it is also an excellent book for learning the basics of ‘good’ object-oriented programming!

    I would start by workshopping these books as a start, then identifying weaknesses to be addressed by further books and/or training.

    Also, since it is your intention to address the company’s wide variances in standards, consider including programming tools in your overall brief. Tools such as FxCop & StyleCop – some continuous integration wouldn’t go amiss – tend to produce a major wake-up call … 8)

  9. Neil
    August 21st, 2008 at 06:09 | #9

    I liked Practices of an Agile Developer, (and basically anything published by Pragmatic Programmers).

    Also, the free eBook, Foundations of Programming, is a great little read too.

  10. August 23rd, 2008 at 15:55 | #10

    Scott, I agree that we need to develop a personal development plan. But I think you missed the first set, which is defining what type of developer you want to develop into. Having a target drives your list and your training. You can see my full response to the “Nichols Personal Development Plan” here…http://www.andrewhanson.net/archive/2008/08/23/response-to-quotthe-nichols-personal-development-planquot.aspx

Comment pages
Comments are closed.