SERVICES

Mentoring & Learning

At Codebrain we practice and encourage continuous learning from a wide variety of sources:

Podcasts

Below is a list of recommended software development podcasts (with .NET bias):

  • .NET Rocks! - .NET Rocks! is an Internet Audio Talk Show for Microsoft .NET Developers hosted by Carl Franklin & Richard Campbell.
  • 43 Folders - A bunch of tricks, hacks & other cool stuff. A weblog by Merlin Mann.
  • Agile Toolkit Podcast - Conversations about Agile Development and Delivery.
  • Alt.NET Podcast - Discussions about the Alt.NET movement.
  • Stack Overflow Blog - Joel Spolsky & Jeff Atwood discuss stackoverflow.com and wider software development topics.
  • Deep Fried Bytes - Deep Fried Bytes is an audio talk show with a Southern flavor hosted by technologists and developers Keith Elder and Chris Woodruff. The show discusses a wide range of topics including application development, operating systems and technology in general. Anything is fair game if it plugs into the wall or takes a battery.
  • Hanselminutes - Hanselminutes is a weekly audio talk show with noted web developer and technologist Scott Hanselman and hosted by Carl Franklin. Scott discusses utilities and tools, gives practical how-to advice, and discusses ASP.NET or Windows issues and workarounds.
  • Herding Code - The Herding Code Podcast.
  • IT Conversations - IT Conversations is the longest-running podcast on the planet, publishing a new audio program nearly every day, from the most important tech conferences to our unique programs. Not just IT, it's everything tech and beyond.
  • Polymorphic Podcast - Object oriented development, architecture and best practices in .NET
  • PowerScripting Podcast - A Podcast for people learning and using Windows PowerShell.
  • Pragmatic Podcasts - Pragmatic interviews, news, techniques, and more from the Pragmatic Bookshelf.
  • RunAs Radio - RunAs Radio is a weekly Internet Audio Talk Show for IT Professionals working with Microsoft products.
  • Software Engineering Radio - The podcast for professional software engineers.
  • Spaghetti Code Podcasts - Spaghetti Code is a online series consisting of podcast interviews, technical screencasts, and online articles focused on issues and technologies that are of interest to application developers.
  • The ASP.NET Podcast - Wallace B. (Wally) McClure presents interviews and short technical talks on .NET Technologies.
  • The Rissington Podcast - Messrs Oxton and Hicks, broadcasting from the ex-RAF base in Upper Rissington, UK. Think of this as a geek version of Gardeners Question Time. We take your questions, be they concerning semantic HTML, CSS, cheese, cookery or whatever is on your minds. We are your expert panellists, agony aunts and general life-gurus. We will also have regular spots - jokes from an 1940's RAF magazine, typeface of the 'week', and any geek/technology thing we care to talk about.
  • ThoughtWorks - IT Matters Podcast - ThoughtWorks - IT Matters Podcast is a show discussing the business and technology issues facing the IT Industry, and sharing insights on improving the state of how business value is delivered.
  • ThoughtWorks - Talks - ThoughtWorks Talks.
  • TWiT.TV - Home to the world's most fascinating netcasts: this WEEK in TECH, MacBreak Weekly, Windows Weekly, Security Now, net@night, and the Daily GizWiz.

Download the OPML file for your RSS Reader.

Books

We would discourage purchasing any technology-specific books, the chances are you'll find more accurate information online, often with example downloads and tutorial videos. However, there are many great books which transcend any particular technology which we'd highly recommend:

Software Development
Code Complete: A Practical Handbook of Software Construction - Steve McConnell
Code Complete: A Practical Handbook of Software Construction - Steve McConnell
A comprehensive and accessible book written about the craft of writing code. Steve gives an overview of the most important software engineering topics. A great introduction for beginners and resource for veteran programmers.

The Pragmatic Programmer: From Journeyman to Master - Andrew Hunt, David Thomas
The Pragmatic Programmer: From Journeyman to Master - Andrew Hunt, David Thomas
Practical advice 'from the trenches'. Written in a clear and understandable format for working programmers this book provides insight into simple solutions to everyday problems.

Facts and Fallacies of Software Engineering - Robert Glass
Facts and Fallacies of Software Engineering - Robert Glass
A great resource which covers often overlooked topics in the software engineering field. Compiled from a vast amount of experience, reading this book should help you understand some of the 'rules' surrounding your software project.

Agile & Iterative Development
Agile and Iterative Development: A Manager's Guide - Craig Larman
Agile and Iterative Development: A Manager's Guide - Craig Larman
A fantastic overview of agile and iterative development. From its roots in the early 1950's with Lean manufacturing all the way to modern practices such as XP this book explains the history and motivations behind each approach.

Implementing Lean Software Development: From Concept to Cash - Mary & Tom Poppendieck
Implementing Lean Software Development: From Concept to Cash - Mary & Tom Poppendieck
Toyota is known throughout the world as the underdog which grew to become the world's most successful vehicle manufacturer. But how did they do it? This book describes how lean manufacturing and its fundamental principles also make sense for software development.

Continuous Integration: Improving Software Quality and Reducing Risk - Paul Duvall
Continuous Integration: Improving Software Quality and Reducing Risk - Paul Duvall
A must read for any developer wishing to bring more automation to their lives. You'll learn how continuous integration is much more than scheduled code compilation. Learn how time spent on a CI system can lead to much better code, less bugs and happier customers.

Design Patterns
Design Patterns: Elements of Reusable Object-Oriented Software - Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides (The Gang Of Four)
Design Patterns: Elements of Reusable Object-Oriented Software - Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides (The Gang Of Four)
Considered by many to be the seminal work on design patterns. An excellent reference book which can prove handy when seeking clarification on the naming of specific patterns.

Head First Design Patterns - Eric & Elisabeth Freeman
Head First Design Patterns - Eric & Elisabeth Freeman
New to design patterns? This book teaches you the what, why and how's of several different patterns in a novel and compelling format. Excellent use of pictures and humorous illustrations ensures that the information is easily digested and stored in your brain.

Refactoring to Patterns - Joshua Kerievsky
Refactoring to Patterns - Joshua Kerievsky
Stuck with a big ball of mud code base and desperate to introduce some order? This book provides valuable instruction on how to refactor your code using design patterns and some great step-by-step guides on complex refactorings.

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions - Gregor Hohpe, Bobby Woolf
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions - Gregor Hohpe, Bobby Woolf
Bad documentation, poor networks, slow services, incompatible interfaces and whole host of other issues make integration challenging. This book details patterns for overcoming common stumbling blocks. An excellent reference for architects working within the SOA and integration space.

Domain-Driven Design
Domain-Driven Design: Tackling Complexity in the Heart of Software - Eric Evans
Domain-Driven Design: Tackling Complexity in the Heart of Software - Eric Evans
Eric provides a number of techniques you can implement in gathering requirements and translating these into your software design. Learn why having a ubiquitous language between stakeholders is so important.

Applying Domain-Driven Design and Patterns - Jimmy Nilsson
Applying Domain-Driven Design and Patterns - Jimmy Nilsson
A practical guide on implementing domain-driven design, design patterns and test-driven development. While this book contains some theory it's a great hands-on guide on how to create solid software architecture.

Test-Driven Development
Test Driven Development: By Example - Kent Beck
Test Driven Development: By Example - Kent Beck
The creator of Extreme Programming, Kent Beck, guides you through the creation of currency converter project using test-driven development. Also contains a running dialog on the motivations behind TDD.

The Art of Unit Testing: with Examples in .NET - Roy Osherove
The Art of Unit Testing: with Examples in .NET - Roy Osherove
A great book which outlines best-practices and patterns for unit-testing. Learn how to write clean, stable and repeatable tests and how to avoid test-smells.

Management
The Mythical Man Month - Frederick Brooks
The Mythical Man Month - Frederick Brooks
Whilst technology may have evolved in the 30+ years since this book was written, the problems in large-scale software projects still remain unsolved. Think that adding more developers to a late project will bring it back on schedule? think again. A must read for every project manager.

Peopleware: Productive Projects and Teams - Tom DeMarco, Timothy Lister
Peopleware: Productive Projects and Teams - Tom DeMarco, Timothy Lister
Give your developers an appropriate work environment, intellectual responsibility and managers that remove obstacles and you'll create a winning formula. The most successful software companies recognise this and reap the benefits. Considered to be the first book to properly examine the role of people factors in software development.

Adrenaline Junkies & Template Zombies: Understanding Patterns of Project Behavior - Various
Adrenaline Junkies & Template Zombies: Understanding Patterns of Project Behavior - Various
With contributions from the original Peopleware authors this book could be considered Peopleware v2. It provides useful insight into 86 different patterns of project teams. Learn to spot the bad ones before they derail your project.

Death March - Edward Yourdon
Death March - Edward Yourdon
Are you are stuck in a mission-impossible project? or even worse embroiled in what appears to be a suicide-mission? This book is packed full of great advice on how to bring even the worst projects back on the track to success.

C# / .NET Framework

We'd normally not recommend technology-specific books, but every .NET developer should read:

C# in Depth - Jon Skeet
C# in Depth - Jon Skeet
At comprehensive examination of the C# language, its features and the motivations behind developing them. An excellent read for developers wanting to learn more about LINQ, Lambda Calculus, Generics and the new C# 3.0 features. You could argue that Jon Skeet is actually a manifestation of C# in human form!

Professional .NET 2.0 Generics - Tod Golding
Professional .NET 2.0 Generics - Tod Golding
Generics are much more than just type-safe collections. Learn how to master parameterised types in your own projects and improve the flexibility of your code.

Feedback

Through LinkedIn:

"I've had the immense pleasure of knowing and working with Stuart since 2002. He has been my mentor in .Net since v1 and has put me on the right track so many times I've lost count. To coin a phrase 'he has the brain the size of a planet', how he crams all those skills and knowledge into his head, I have no idea. He's an asset to any company that hires him and his experience can help the smallest to the biggest project with ease. Great communication skills and adept and explaining complex ideas to all levels of developers, designers and managers, able to lead or be led with no problem. Great bloke to work with and has that dogged determination and infectious enthusiasm money just can't buy! From experience I know his design skills are fresh and up to date and he has the ability to create clean, W3C compliant pages which are cross browser compatible which is as important in these days of AJAX, UI design and Web2.0 policies as breathing air. A good web developer is just that, but an excellent web developer is one who also understands the medium and can translate those 'code development skills' to a visual front end without losing anything in the translation; Stuart is such a developer. Problem solving and planning are a breeze, his lateral thinking combined with his skills offers you the best commercial value out there. The best developers are those that have hybrid skills, the guru's out there are the ones who are the masters of those skills rather than the Jack's of all trades; Stuart is such a guru and a very rare one indeed! Now, if I could only get him to do a 'brain dump'..."
Jay Hayman - Senior Web Developer