Wear a helmet. Even when coding.

How To
1Defensive Design: An Experiment
2Understanding Closures in C#
3Understanding Delegates and Higher-Order Functions in C#
4How to Derive a Class and Not Invite Bugs Doing So
5Simple Design by Example: Making Published Content Editable
6How to Write Unit Tests for Generic Classes
7The Case against Throwing ArgumentException and the Like
8How to Write Unit Tests for Temporal Coupling between Method Calls
9How to Organize Repository Interfaces to Support CQRS Architecture
10How to Write a Test to Prove that Collection was Loaded Eagerly?
11How to Avoid the Need to Implement ICloneable Interface and What to Do Instead
12Poor Man’s Polymorphism or What’s so Wrong about If-Then-Else?
13Advances in Applying the Builder Design Pattern
14Best Practices Implementing IEnumerable Interface in C#
15What Makes Design Patterns Fail So Many Times?
16How to Implement Lazy Default-If-Empty Functionality on Collections
17Interface Segregation Principle and Calling Protocols
18Understanding the Option (Maybe) Functional Type
19Why do We Need Guard Clauses?
20How to Use Module Coupling and Instability Metrics to Guide Refactoring
21How to Measure Module Coupling and Instability Using NDepend
22How to Measure Abstractness of Modules Using NDepend and CQLinq
23How to Reduce Cyclomatic Complexity Part 1: Null Object Pattern
24How to Reduce Cyclomatic Complexity Part 2: Special Case Pattern
25How to Reduce Cyclomatic Complexity Part 3: Avoiding Optional Parameters
26How to Reduce Cyclomatic Complexity Part 4: Avoiding Null Parameters
27How to Reduce Cyclomatic Complexity Part 5: Option<T> Functional Type
28How to Reduce Cyclomatic Complexity Part 6: Functional Domain Logic
29How to Reduce Cyclomatic Complexity Part 7: Extension Methods
30How to Reduce Cyclomatic Complexity Part 8: Map-Reduce Queries
31How to Reduce Cyclomatic Complexity Part 9: Switchable Factory Methods
32How to Reduce Cyclomatic Complexity Part 10: Domain Logic in Factories
33How to Reduce Cyclomatic Complexity Part 11: Working With Collections
34How to Reduce Cyclomatic Complexity Part 12: Composite Design Pattern
35How to Reduce Cyclomatic Complexity Part 13: Service Locator Pros and Cons
36How to Reduce Cyclomatic Complexity Part 14: Service Locator Applied
37How to Reduce Cyclomatic Complexity Part 15: Guard Clause
38Design Technique to Reduce Number of Generic Parameters
39How to Write Functional Code in C#: An Example
40How to Avoid Returning Null from a Method
41Cascading Abstract Factories to Eliminate Dependencies
42Object Composition Using Chain of Responsibility Design Pattern
43How to Easily Test Validation Logic in Constructors in C#
44How to Apply Visitor Pattern Without Breaking Encapsulation of Concrete Elements
45How to Ensure Internal Consistency of Mutable and Immutable Objects
46How to Implement Unit Tests for Equals and GetHashCode Methods
47Best Practices Using Enums in .NET
48How to Validate Enumeration Values in Property Setters
49How to Implement IComparable<T> Interface in Base and Derived Classes
50The ICloneable Controversy: Should a Class Implement ICloneable or Not?
51How to Validate String Properties in Business Objects
52How to Override Equals and GetHashCode Methods in Base and Derived Classes
53How to Bulk Insert Complex Objects into SQL Server Database
54How to Implement Collection Property to Contain Unique Objects
55How to Version SQL Server Database Schema
56How to Handle Exceptions from Background Worker Thread in .NET
57How to Display Row Numbers in WPF ListView Control with Static Content
58How to Show Progress and to Cancel Asynchronous Operation Using WPF ObjectDataProvider and XAML
59How to Implement ICloneable Interface in Derivable Classes in .NET
.NET Hints
1LINQ Query for Blacklist-Based Spam Filter
2LINQ Expression to Find All Modes of an Array
3LINQ Expression to Find Mode of an Array
4Regex and LINQ Query to Split Text into Distinct Words
5LINQ Expression to Test If a Number is Prime
6LINQ Expression to Find All Prime Numbers
7How to Get Property Values using LINQ to Objects
8How to Set Property Value using Reflection on a Value Type
9How to Set Property Values using LINQ to Objects and Reflection
1The Reading List
Programming Exercises
1Finding Arithmetic Expression to Construct a Value from Given Numbers
2Sudoku Solver
3Card Shuffling Problem
4Finding Two Smallest Numbers in an Array
5Finding a Value in an Unsorted Array
6Finding Kth Smallest Element in an Unsorted Array
7Finding a Number That Appears Once in Array of Duplicated Numbers
8Finding a Value in a Sorted Array
9Finding a Majority Element in an Array
10Paginating an Unsorted Array
11Simple Arithmetic Expression Evaluator
12Finding Mode of an Array
13Converting Number Bases
14Reversing an Array
15Reducing Fractions
16Maximum Sum Subarray
17Sum of First N Numbers
18Sum of Squares of First N Numbers
19Testing If Two Strings are Anagrams
20Intersection of Two Unsorted Arrays
21Testing if Number is Prime
22Finding All Prime Numbers Smaller Than Specified Value
23Removing Multiple Consecutive Spaces from a String
24Finding Two Numbers That Appear Once in Array of Duplicated Numbers
25Finding a Number which Appears Once in Array where All Other Numbers Appear Three Times
26Prime Factorization
27Finding Numbers Which Appear Once in an Unsorted Array
28Rotating an Array
29Finding Minimum Weight Path Through Matrix
30Moving Zero Values to the End of the Array
31Counting Intersection of Two Unsorted Arrays
Object-Oriented Programming Ground Up
1Lesson 1 - From Structure to Class
2Lesson 2 - Class Inheritance
3Lesson 3 - Encapsulation
4Lesson 4 - Polymorphism
5Lesson 5 - Abstract Methods
6Lesson 6 - Multiple Inheritance