Contact
Training

Overview of the Develop With Passion® - .NET Software Craftsmanship Bootcamp

The Software Craftmanship Bootcamp is a five day intense boot camp style course that will focus on helping you build a set of skills that can allow you to enjoy a long, satisfying, and meaningful career as a software developer. Registrants will learn about how to practically apply a wide range of software patterns, practices, and algorithms with different sets of challenges set up to stretch your thinking and push you out of your comfort zone.

Warning!!!

If you are expecting to come to this course to learn about the basics of C# syntax, or how to blindly have code automatically generated for you, then this course is NOT for you. This is a course for "coders" who want to sharpen the sword, and are not afraid of being challenged on a daily basis.

command prompt

You will learn development techniques, approaches, habits, and skills that will dramatically increase your day to day productivity as a software developer.

This course will focus on a code centric view of application development versus the typical databinding/designer magic covered by many typical .NET courses. This is not a course about learning frameworks, or tools. It is about building the skills that can allow you to be a producer vs consumer developer.

Core Concepts Overview

  • The importance of setting goals for your life and career
  • Design Principles demystified and applied
  • Core Design Patterns demystified and applied
  • Crafting habits to build a long lasting, and satisfying career as a software developer
  • Taking advantage and growing the best tool you have as a developer
  • Driving out functionality and design through testing

Detailed Topic Coverage Breakdown

Patterns and Principles

  • Coding to contracts vs implementation
  • Encapsulating what varies
  • DRY (it's not just for your code)
  • Single Responsibility Principle
  • Open Closed Principle
  • Dependency Inversion Principle
  • Interface Segregation Principle
  • Favouring composition over inheritance
  • Don't Talk To Strangers
  • Thinking Polymorphically
  • Iterator Pattern
  • Decorator Pattern
  • Adapter Pattern
  • Abstract Factory Pattern
  • Command Pattern
  • Proxy Pattern
  • Visitor Pattern
  • Null Object Pattern
  • Builder Pattern
  • Static Gateway Pattern
  • Fluent Interfaces and DSL's
  • Chain Of Responsibility Pattern
  • Front Controller Pattern
  • Layered Architecture
  • Mapper Pattern
  • Composite Pattern
  • others... (time permitting)

C# Language Features

  • Generics
  • Delegates in depth
  • Extension Methods

Testing and Tests as a Design Surface

  • Using Automated Testing Frameworks
  • State Based and Interaction Based
  • Using tests as an initial design tool
  • Practical applied test driven design

Recommended Prerequisites

This is an course that places a strong emphasis on building/increasing skills that are fully language/platform agnostic. Being that the course uses C# as a delivery vehicle you will want to make sure that you are comfortable with the following aspects of the C# syntax:

  • Know how to define a class
  • Know how to define a method as well as overload methods
  • Know how to define an interface
  • Know how to define an extension method
  • Know how to define a custom delegate and point it at a method, then invoke it

Outside of the C# knowledge, the following areas outline concepts that would be greatly beneficial to giving you a jumpstart with the material

  • Polymorphism
  • Encapsulation
  • Inheritance
  • Refactoring
  • Design Patterns
  • Automated Testing Frameworks
  • Test Driven Development
  • Behaviour Driven Development

Please be aware that the course days are 12 hours on Monday-Thursday, and 8 hours on the last day. Make sure you are rested up prior to showing up on the first day.

Intended Outcomes

Upon completion of this course students should be equipped with a practical vision of how to apply a lot of widely applicable software engineering techniques. More importantly, you will leave with a much clearer vision of both your current abilities as a software engineer, as well as how you want to follow up on your personal "roadmap" that you will be building over the course of the week.

Course Requirements

Upon registration, students will be provided a link to a setup page that includes an overview of machine setup requirements and a detailed walkthrough of how to their machine ready for the course.

What is included with the price of the course?

  • Five days of coding madness (4 - 12 hours days, 1 - 8 hour day)
  • Lunch, and Supper
  • All code artifacts generated throughout the course of the week
  • $140 Paypal credit that can be used for book/license purchases of books/tools mentioned or used throughout the week

Warning!

10 - >12 hours in length

This is a very intense week. Your mind will not have very much in the way of downtime. Come expecting to have your assumptions challenged, and as one person put it: "to receive a holistic kick in the butt".

Aside from being a technical course, one of my important goals is to have people leave feeling more energized and empowered both about their personal and professional lives. To start/recommence dreaming big, and to work on acheiving their goals in small, patient, and manageable steps.

If you feel you might be interested in participating in this exciting week of coding madness, then check out the upcoming course calendar

Are you ready to Develop With Passion®?

© Copyright. Develop With Passion® inc. All rights reserved. Disclaimer / Privacy / xhtml

Creative Commons License
Software Artistry by Develop With Passion® is licensed under a Creative Commons Attribution-Share Alike 2.5 Canada License.
Based on a work at developwithpassion.com.