A while ago Dave Berry tweeted an article on the evolution of the windows operating system
It was an interesting read and it reminded me when I started out as a Java Developer
I stumbled upon a list of great books for developers held on coding horror
Looking at the books, most of them are not focused just on just programming but also focus on the areas and processes around developing (all the bits Developers don’t like!)
His life changing book – Code Complete 2, is a monster at over 800 pages.
The books on the list are classic books, which often appear on people’s lists of Programming books I wish I read at the start of my career.
This reminded me of reading the first mind blowing book I read about programming
Effective Java to me is similar to the author’s introduction to Code Complete 2. When I first purchased the book I was a keen Java developer trying to learn to be a better developer. I remember reading the book and being amazed and the simplicity and genius of the coding advice (to put it into context I was a rubbish developer at the time)
I wrote quite a few articles on developing, for those of you who don’t know I was prolific Java blogger, my blog was called
A Funny Java Flavoured Look at the World
Here are a few of my more interesting Java programming related
The Learning Lifecycle of a Java Programmer
10 tips on writing reusable code
10 presentation tips for developers
My most popular blog post was, which has the solution to a common problem in Java it seems
trouble using | (pipe) with the String.split method
The next book I read was Design patterns and once again it blew my mind that people could write code which was that good.
In some peoples eyes, it’s probably sacrilege to put this book here instead of GOF design pattern – Design patterns : elements of reusable object-oriented software. I started reading that but I found it hard to understand the design patterns, where as Head First Design patterns wrote in a very accessible way, which at that moment I found easier to understand.
The next book I read was
The Pragmatic Programmer: From Journeyman to Master
I loved the pragamatic programmer and many of the pragmatic book series. The advice they give is common sense and is similar to experienced developer guiding you to use the right practices. I found this book very useful when I moved companies because it gave me a good set of programming practices and standards.
Finally in my Programming life changing books I read
by Martin Fowler (Author), Kent Beck (Author), John Brant (Author), William Opdyke (Author), Don Roberts(Author)
Remembering back in the day
Looking at the list of books reminded me of when had the double whammy of learning about design patterns and great coding practices from the effective Java book. I suddenly realized I had a lot to learn. Back then I also amazed when I learnt of the term Refactoring, I just thought of it as tidying and improving.
It’s seem bizarre to think I was writing code without knowing some of these concepts, but this stage of learning comes to everyone. You go from knowing nothing, learning a bit and thinking you are the bee’s knees and then something will happen and you realize you have a lot to learn and it’s going to take you a while to learn it.
This introductory section on coding horror, does a great job of summarizing this
I graduated from college in 1992, and entered the field of professional software development at that point, at least in terms of being paid to do so. I loved it, but I really had no idea what I was doing. I was a young, inexperienced developer working in small business, where there aren’t a lot of other developers to look to as mentors. Nor was the internet a factor; the internet didn’t really hit until ’95 for most people. I was living in Denver at the time, and I frequented the Tattered Cover, a great independent bookstore. Code Complete was originally published in May 1993; I stumbled across it while browsing the computer book section at the Tattered Cover sometime in 1994. I was floored. Here’s this entire book about becoming a professional software developer, written in this surprisingly friendly, humane voice. And it was backed by rational research and real data, not the typical developer “my brain is bigger than yours” chest-thumping.
I had found my muse. Reading Code Complete was a watershed event in my professional life. I read it three times in one week. It immediately became my Joy of Cooking. I didn’t even know it existed, but it showed me that if you loved food enough, it was possible to go from being a mere cook to a real chef.
One of the most striking and memorable things about Code Complete, even to this day, is that Coding Horror illustration in the sidebar. Every time I saw it on the page, I would chuckle. Not because of other people’s code, mind you. Because of my own code. That was the revelation. You’re an amateur developer until you realize that everything you write sucks.
Reading the list of books and remember the positive effects some of the books had on me has made me want to read some of the books on the list I haven’t read.
In fact the author suggests if you haven’t read
The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)
Then shame on you.
So with those words ringing in my ears, I have decided to start The Mythical Man – Month and hopefully get round to the other books.
Thinking about the books on the list also reminded me there is more to development and particularly CRM development than just writing code, customization examples.
There are also the processes, procedures, best practices and all sorts of aspects to CRM development. Thinking about the article I wrote earlier this week
13 signs your CRM project is doomed
The points are relevant to CRM developers and could save them lots pain but there isn’t much of it on coding/customization.
Books on CRM Development
It struck me as I was reading this list of books are there any books/sources which CRM Developers should read, which focus on CRM.
I would certainly recommend CRM Developers read some of the books on the list, many of the books are classics in the developer/programmer world. Most of the books do not focus just on coding, but lots of different aspects of development.
There has really only been one programming book in CRM I can remember
This book focuses on CRM 4, I don’t think it would be of much value for Developers today (unless you work for a company who has CRM 4) but it was very useful at the time.
This book looks like it might be useful, but I haven’t read it and just looked at the contents page.
It’s written by CRM MVP’s and seems to focus more on developing and customizing rather than learning CRM.
CRM in the Field is also a pretty good book, with each chapter written by a different CRM MVP. It’s a bit like a longer version of tip of the day.
Most of the other books are focused towards people starting out using CRM rather than starting out developing for CRM.
If you are starting out as a CRM Developer I would probably advise you to do the two Certifications
MB2-703: – Microsoft Dynamics CRM 2013 Customization & Configuration
If you want some study material for MB2-703, check out the resources here
MB2-701 – Extending Microsoft Dynamics CRM 2013
The customization and config certification will go through all the front end/gui customizations in CRM 2013 and give you a good knowledge of all the functionality. If you are a CRM developer you will have probably used 80 percent of the functionality, so it will be a case of learning the new functionality you haven’t used yet.
The extending CRM 2013 certification will run through the basics of coding in CRM 2013.
The benefits of the certifications is you will get a knowledge of customizations you haven’t used and to pass the exam you will read, learn and repeat the exam criteria that it really sticks in your brain, so you instantly know things like
- Business rules are often referred to as portable business rules because business rules work in the browsers and CRM for tablets/phone applications (e.g. portable and everywhere)
- Custom solutions developed using future versions of Microsoft Dynamics CRM cannot be installed into earlier versions without first being ‘down-leveled’ to match the earlier version
- Only security roles which exist in the root business unit can be added to a solution file
- Access Team templates are enabled on an entity basis and you have to enable Access Teams on the entity in the communications and collaboration section
If you want to learn plugin development, Hosk CRM Dev has a couple of good playlists to help you get started and each video should have a blog post to go with it.
CRM Development Foundation Playlist
CRM 2013 Plugins Playlist – which features the following videos
CRM 2013 – Setting up Developer Toolkit for Microsoft Dynamics CRM
CRM 2013 – Understanding Solutions and how they work in CRM 2013
CRM 2013 – Create a simple plugin in CRM 2013 using the CRM Development Toolkit
CRM 2013 – Simple Plugin – Redeploying, improving and updating
CRM 2013 Plugin – Step by Step guide for a Post Account Create Plugin using the Developer Toolkit
YOUR LIFE CHANGING DEVELOPMENT BOOKS
If you have any classic programming/development books which had a big impact on you, please leave a comment