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.
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.
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
- 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
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
- 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.
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.
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
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®?