The Developer's Core Concepts 2014

Recently, I’ve been mentoring junior developers, offshore resources, and even answering questions about coding with friends that are just getting started.  It got me thinking - what concepts cover everything one needs to be a well rounded developer? 

This assumes at least some level of experience with programming/computer science and is aimed at those just starting out in industry after earning a CS degree or coming back to development after a period of absence.
Simple Programs
While it’s tempting to start off with web projects, I feel that JavaScript and working with the challenging DOM introduce the wrong type of complexity right from the start.  Beginning with an object oriented language (I’m biased towards Java or C#) helps keep a tight focus.
Web
From browser quirks to understanding the DOM and the rapid pace at which web technology changes, programming for the web is a very challenging endeavor.  It’s also the most rewarding, though.  The capabilities of the web stack open up unlimited possibilities for employment and innovation.
Recommended Books
It’s not hard to find books on software development, methodologies, and best practices.  Knowing which ones are worth the time though is.  Here are my favorites that have contributed significantly to my career:
  • The Pragmatic Programmer: My all-time favorite that I tend to read about once per year. Each chapter focuses on one specific software practice, with a pop-out checklist at the back of the book.
  • The Passionate Programmer: This is focused more on developer soft skills.  The greatest lesson in here is that in order to truly grow and help your company, you must learn at least a bit about the business side of things.  Tons of gems in this one.
  • Code Complete: Over 20 years old but a classic. Focuses on development best practices that, while examples are in C/C++, are truly language agnostic.
  • The Art of Unit Testing: A very succinct look at unit testing: what it is, why you should use it, and full examples. Also included is dependency injection, which I am a huge fan of.
  • Head First Design Patterns: Part of the “Head First” programming series, this covers design patterns in an easy to follow manner with examples in Java.

Am I missing anything? Please let me know in the comments.

comments powered by Disqus