What’s with the name Nothin’ but .NET?
Someone once asked me, what’s with the name "Nothin But .NET?" There is a significant meaning to the name.
All of the code that is developed over the course of the week is done on the Naked CLR. I am a big fan of open source frameworks and tools, as well as tools that I have to purchase to make myself more effective. I regularly use tools like NHibernate, FileHelpers, Castle, Active Reports .Net .... to make myself more productive. The only reason I feel I am effective at using the tools is that I feel that I have an understanding of how the tools work and the problems they are trying to solve. I am a huge proponent of Building a Solid Core. It is the reason that over the course of the week I don’t try to overwhelm people with tool glut so that they can focus on the fundamental software principles and apporaches that transcend languages and tooling. I love these tools, but I love for people to have the grounding from which to gravitate toward these tools. More importantly, the course is first and foremost about doing effective application design using OO, Design Principles, Design Patterns, and Context Specification style testing.
Over the course of the week along with getting a solid understanding of some framework fundamentals, the goal is to deliver a working, small section of an working application. I show up on the first day with a set of completed web pages (without any accompanying code-behind), after the first day of framework fundamentals is covered; Days 2-5 focus on the delivery of a complete vertical slice of application functionality. With the approach being taken from a top down fashion, people will get an opportunity to see BDD applied to create all facets of the application code.
Of course, it would be no fun to just come to a course and watch someone code. To that end, there are lots of awesome programming activities. Many which are required to be completed in groups. I encourage everyone to work and pair with as many other students as possible during the course of the week. This will ensure that there is as much knowledge transfer as possible happening, which ultimately makes the course a much more rewarding experience.
By the end of the week people leave with a solid understanding and application of the following concepts, patterns, and practices:
- Context Specification Style Testing (BDD)
- Automated Builds (ala Rake)
- Object Oriented Programming
- Interface Based Programming
- Dependency Inversion Principle
- Dependency Injection
- Inversion Of Control (IOC)
- Logging as a debugging replacement
- Domain Driven Design
- Object Relational Mapping
- Mapper Pattern
- Factory Pattern
- Proxy Pattern
- Decorator Pattern
- Unit of Work Pattern
- Specification Pattern
- Identity Map Pattern
- Adapter Pattern
- Query Object
- Data Mapper Pattern
- Lazy Load
- Model View Presenter
- Notification Pattern
- ...
The last bullet point there is a placeholder for a bunch of other stuff that is covered. In five 9 - 14hr days, there is a lot of ground that can be covered. Students are also provided with upto 60hrs worth of screencast recordings that are captured over the course of the week. This has been a big hit as people know that they can go over the sessions again from the comfort of their own homes. They also get the complete repository dump from the class so they can rollback to day 1 and see where the code evolved from.
What is the end goal for me delivering this course? First and foremost, my goal is to get developers excited about software development again. To empower them to find their own rhythm in this industry and focus on competing only against themself daily. I want to demonstrate to people the practicality of all of the "buzzwords" they may hear about and show as many of them as practical in the realm of software development. Furthermore, I want to make sure that when attendees of my class inevitably start to use tools that we don't cover during the course of the week, that they are able to use the tool intelligently.
In my opinion, there is no value in learning tools without prefixing it with a solid understanding of the fundamentals. This course has been delivered to over 800 people around the world now, it has been a great blessing to see the lights go on and having people tell me that this course has changed the way they look at development, and in some cases even the way they look at life in general!!
That is my goal for heading out on the road with this course once a month, to help you potentially change the way you both look and tackle development, as well as the way that you manage your life
Are you interested in taking your development to the next level?
Contact me if you want me to help coach you and your team to start Developing With Passion!!
Why build a boot camp for developers?
Getting ready for the course
