About Me

Training

Nothin But .Net Developer Bootcamp

Navigation

Search

Categories

On this page

Book Giveaway Closed
Book Giveaway - Pragmatic Thinking & Learning + Pragmatic Programmer
Develop With Passion™ - Alumni , Connect On Linked In
Nothin But ReSharper - Remote (June 28th, 2010)
No More Potential For A June Course
Screencast – Getting Started With Machine.Specifications
Potential Course Opening For the week of June 14-18
Nothin But .Net (Edmonton 2010) – Retrospective
Nothin But .Net – San Diego,CA (July 26-30, 2010)
NBDN Remote Course – Now $2000 Per Attendee
NBDN Remote - (May 24,2010)
Nothin But .Net – London (August 30,2010)
Nothin But .Net Remote Pilot - Reviews
Awakening Possibilities
Nothin But .Net @ West Edmonton Mall (April 26-30,2010)
Nothin But .Net 2010
NBDN Remote Pilot/Beta - February 8-12
Nothin but .Net London – 2009 Wrap-Up
Show Your Colors
Course Cancellations/Switches
Calgary NBDN Scholarship Recipient Chosen
Free seat in next weeks Calgary class!!
First course change of the year!!
Course Registration Issues
Nothin’ but .NET – Reaching out
Scott Bellware is hosting a course in Austin
Nothin But .Net Course Registration Is Now Live!!
Nothin But .Net 2009 Course Registration Goes Live on February 11th
About the 2009 Course Schedule
So What Do Past Students Really Think About Nothin But .Net?
Nothin But .Net – Done For The 2008 Year!!
When I say bootcamp I mean bootcamp!!
Destinations For Nothin But .Net For 2009
Last Chance To Take A Nothin But .Net Course in 2008!!!
Nothin But .Net Duesseldorf - Recap
Nothin But .Net - Dusseldorf < 1 week away
Nothin But .Net - London 2008 (Recap)
Agile Project Management Training - By Jonathan Rasmusson
Nothin But .Net London - Location Confirmation (again)
Nothin But .Net - Location and Attendee Cap Update
Nothin But .Net - London , Location Update 2
Nothin But .Net - London, England - September 1st - 5th, 2008
Nothin But .Net - Training Preparation
To Students Of Upcoming Courses
How to get started offering your own training courses
Screencasts Coming Soon
Nothin But .Net - Dusseldorf, Germany - September 22nd - 26th, 2008
Las Vegas Course Date Change
Get Your Learning On!!
Nothin But .Net Vancouver - Now Being Held@Empire Landmark Hotel
Nothin But .Net - Vancouver, BC (June 23rd - 27th) @ The Empire Landmark Hotel
Are You Interested In Setting Up Your Own Training Company?
What Do I Get From It?
Nothin But .Net Toronto (May 19th - 23rd) - Last Call
Nothin But .Net Austin - Recap
New Training Registration Site
Austin - Nothin But .Net - 6 Spots Left
Nothin But C# v3.5 - Canceled
Nothin But WPF Class - Cancelled
Nothin But C# v3.5 with the Igloo Coder - Edmonton, AB (March 31st - April 4th)
Nothin But .Net - Austin, TX (April 7th - 11th)
Introducing Nothin But WPF - New York, NY (March 24th - 28th, 2008)
Nothin But * Course Schedule
Nothin But Agile Project Management - March 3rd-6th (Calgary,AB)
Amendment - Nothin But .Net, College Station Texas
Nothin But .Net Fundametals- College Station , TX ( January 7th - 11th, 2008 )
Reflecting on an amazing week (People over process)
Huge Code Drop Coming!!!!!!!
Nothin But .Net (Help The Homeless) - Calgary, Alberta (November 5th - 9th)
Nothin But .Net - London, UK (September 10-14) - Last Call!!
Nothin But * Courses Coming Your Way
Nothin But .Net - New York , NY ( October 22nd - 26th, 2007 )
Nothin But .Net - London, England (September 10th - 14th)
Nothin But .Net (Build A Solid Core) - Wenatchee, WA (August 20th - 24th)
Nothin But .Net - What's The Deal?
DevTeach, what a fantastic event!!
It's comments like this that just make your day!!
Nothin But .Net - The destination is the journey
Nothin But .Net - One Developers Scratchpad
Nothin But .Net (Bootcamp Course) - Regina, SK
Nothin But .Net - Richmond,VA (Reminder)
Nothin But .Net Edmonton - Recap
Nothin But .Net (Bootcamp Course) - Richmond, VA
Nothin But .Net Course (Edmonton) - Full
Nothin But .Net Course (Edmonton) Almost Full
Edmonton Course Date Finalized
Recommended Reading
Time Is Counting Down To Register For Nothin' But .Net 2.0!!

Archive

Blogroll

 Agile Developer Venkat's Blog
 Ayende @ Blog
 B#
 Barry Gervin's Software Architecture Perspectives
 Boy Meets World
 Brad Abrams
 Canadian Developers
 Christopher Steen
 Claritude Software News
 Clemens Vasters: Enterprise Development and Alien Abductions
 Coding Horror
 Coding in an Igloo
 Dare Obasanjo aka Carnage4Life
 Darrell Norton's Blog [MVP]
 David Hayden [MVP C#]
 Don Box's Spoutlet
 Eric Gunnerson's C# Compendium
 EZWeb guy: Jeffrey Palermo [C# MVP]
 Fear and Loathing
 Generalities & Details: Adventures in the High-tech Underbelly
 Greg Young [MVP]
 Greg's Cool [Insert Clever Name] of the Day
 IanG on Tap
 Ingo Rammer's Weblog
 ISerializable - Roy Osherove's Blog
 James Kovacs' Weblog
 Jason Haley
 Jean-Luc David
 Jeremy D. Miller -- The Shade Tree Developer
 JetBrains .NET Tools Blog
 Jimmy Nilsson's weblog
 John Bristowe's Weblog
 John Papa [MVP C#]
 Jon Skeet's Coding Blog
 JonGalloway.ToString()
 Jump the Fence or Walk Around
 Lambda the Ultimate - Programming Languages Weblog
 Larkware News
 Lutz Roeder
 Marquee de Sells: Chris's insight outlet
 Martin Fowler's Bliki
 Mike Nichols - SonOfNun Technology
 MSDN Magazine - .NET Matters
 MSDN Magazine - All Articles
 OdeToCode Blogs
 Onion Blog
 Planet TW
 Raymond Lewallen [MVP]
 Rockford Lhotka
 RodMan's Corner
 Roger Johansson's blog
 Sahil Malik - blah.winsmarts.com
 Sam Gentile's Blog
 Scott Bellware [MVP]
 Scott Hanselman's Computer Zen
 ScottGu's Blog
 secretGeek
 Service Station, by Aaron Skonnard
 Signum sine tinnitu--by Guy Kawasaki
 Stephen Toub
 Steve Eichert's Blog
 Steven Rockarts
 The Blog Ride
 The Coding Hillbilly
 The Daily WTF
 TheServerSide.net: News
 Tim Gifford
 Vance Morrison's Weblog
 you've been HAACKED

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 519
This Year: 28
This Month: 0
This Week: 0
Comments: 1589

 Friday, June 25, 2010
Friday, June 25, 2010 9:22:45 AM (Mountain Standard Time, UTC-07:00) ( Training )
Thanks to everyone who took the time to respond!!


Comments [0] | | # 
Friday, June 25, 2010 8:04:06 AM (Mountain Standard Time, UTC-07:00) ( Programming | Training )
Have you been struggling with learning new concepts at work? Are you feeling overwhelmed by the constant flood of information that keeps coming at you from all angles? Do you constantly find yourself reading new books yet being unable to retain/apply any of the information that you have read. It might just be time to debug your brain!!

Pragmatic Thinking and Learning is one of those books that falls into my category of "Career Catalyst". These are books that when read and applied can have a lasting impact on how you go about executing your career. This book will help you identify your current style of learning, as well as give you techniques and exercises that you can use to identify and fix errors in your own thinking that may be preventing you from reaching your full potential when it comes to continuous
learning.

The Pragmatic Programmer is another one of those books that falls into the "Career Catalyst" category. In my opinion, any student entering a computer science/technology field should be provided this book as one of their first to read. If you can digest and apply the concepts outlined in this book it will provide you with a set of habits that will enable you to be a developer who charts a steady upward course with your career. I have spoken with lots of developers who have read this
book, and yet they have not taken the time to apply the concepts to their own career. If you have not read the book, or you are in the category of people who have read it but not really applied it, then there is no better time to start than today.

One of my goals when I am teaching is to encourage people to start thinking about how they can "chart their own course" and focus on finding a rhythm that enables them to learn new concepts in a JIT fashion, while also not becoming overwhelmed with the continual flood coming at them. I personally feel that the information contained in these two books can become instrumental in helping people figure out what it means for themselves to become more productive programmers.

If you have not read either one of both of these books, here is an opportunity. The first 5 people to email me will receive amazon credit (applicable to amazon.com) with which they can purchase a copy of both of these amazing books (you will have to take care of shipping costs).

Develop With Passion!!!

Comments [1] | | # 
 Friday, June 04, 2010
Friday, June 04, 2010 5:03:47 PM (Mountain Standard Time, UTC-07:00) ( Training )

It has now been 3 years since I made the decision to start offering training courses that I could use a a means to engage, educate, and empower people to take their careers to the next level. I have lost count of the number of students that I have been blessed to be able to train over the years!!


One thing that I have always wanted to do a better job with, but as of yet have been unable to follow up on, is keeping the conversation going between past students. I am not talking about the conversation between myself and them, more importantly the conversation between each other.

To that end, I just recently set up a Develop With Passion™ - Alumni group on linked in. The goal is (for the interim) to have a place where past students can come and share their war stories, talk about challenges, offer encouragement, and all sorts of other hopefully great things.

This is a post to encourage past students who have not yet responded to the invite to head over to the group, sign up, and start contributing. I know there is lots that we can all learn from one another!!

Develop With Passion!!


Comments [0] | | # 
Friday, June 04, 2010 7:44:43 AM (Mountain Standard Time, UTC-07:00) ( Training )
This is an announcement of a brand new 1 day remote course. One of many "micro" courses that are about the be published and added to the Nothin But * line of courses.

Overview

Nothin But ReSharper is a one day deep dive into the R# visual studio plugin, that can accelerate you development in ways that you are probably unaware of if you have not seen it in action. In this session you will learn how to take advantage of R# to enable you to accomplish the following taks inside the ide much faster:
  • Micro Code Generation
  • Refactoring
  • Code Navigation
  • Code Analysis

Prerequisites

The only real prerequisites for this course are the following:

  • Basic knowledge of C#
  • Existing experience with Visual Studio

Hardware/Software Requirements

You will need to make sure that you have a configuration that will allow you to work effectively in a remote training venue. An ideal configuration would be as follows:

  • Dual Monitor Setup
  • HeadSet w/ microphone
  • GoToMeeting Client
  • Windows 7/XP/Vista
  • Visual Studio 2010
  • ReSharper 5.1

With only a day required to participate, and at a cost of $300, it is a great way to get yourself out of a comfort zone for a short period of time, participate from your own location, collaborate/discuss with people from all around the world, and get some awesome learning time in!!

My thought with this, and the other, micro courses is to allow people to get deep dives into specific tools/technologies/approaches, without the battering that usually ensues from a full blown week of 5 12 hour days.

To register for the course go here: http://nbdnresharperremotejune.eventbrite.com/

Develop With Passion!!


Comments [2] | | # 
 Wednesday, May 19, 2010
Wednesday, May 19, 2010 2:00:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

Due to the commencement of a new project, I will not be holding course for the week that was previously available in June.

Thanks to everyone who took the time to submit suggestions for course locations. I will make sure to consider all of the locations for future course locations.

God Bless You and Develop With Passion!!

Comments [1] | | # 
 Tuesday, May 11, 2010
Tuesday, May 11, 2010 2:00:00 PM (Mountain Standard Time, UTC-07:00) ( BDD | ScreenCasts | Training )

In this screencast I walkthrough getting started writing unit tests using the Machine.Specifications testing library (the developwithpassion fork of this project).

Along with introducing the basics of using Machine.Specifications, I also make a point of demonstrating some of the customizations to the library that exist only in the fork which contains all of the functionality that I ported from developwithpassion.bdd.

Some of the things covered in this screencast are as follows:

-Cloning the developwithpassion fork of Machine.Specifications
-Packaging a binary from the source
-Structure of a unit test in Machine.Specifications
-AAA style testing (very brief)
-DevelopWithPassion specific extensions to the Machine.Specifications library

This is another video in the prep series for the Nothin But .Net series of classes; if you are considering taking the class or are a person who has registered for one of the upcoming course, consider this material absolutely essential to know.

As always, any feedback that can be made on the video would be greatly appreciated. In this video I decided to omit the actual camera feed that has accompanied the last couple of videos (if you miss it, please let me know).

Along with good critical feedback on the video, if you could also submit any suggestions for things that you may want to see/hear about in the future, please let me know.

In the meantime, Develop With Passion!!!

Video: Introducing Machine.Specifications

 

+++On a pure technical note, I ported all of the screencasts from Windows Azure storage to a regular Vimeo account (much cheaper and far less issues with respect to publishing from screenflow).

Comments [3] | | # 
 Friday, May 07, 2010
Friday, May 07, 2010 7:58:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

A sudden change is scheduling has opened up another week where I can host a Nothin But .Net course. This post is meant as a way to try to quickly notify people so that requests can be submitted for potential locations.

If you, or anyone you know, has expressed interest in attending one of the courses; please do not hesitate to contact me at jp@jpboodhoo.com and specify the location that you suggest.

At the end of next week I will post an announcement on the locations that have been suggested.

Develop With Passion!!

Comments [0] | | # 
 Saturday, May 01, 2010
Saturday, May 01, 2010 12:48:00 AM (Mountain Standard Time, UTC-07:00) ( Inspiration | Training )

It is now 12:05AM MST and I am sitting in our hotel room writing down this blog post to recap, while it is still fresh in my head, the events of the first official public in-person NBDN course of the year.

The course consisted of 12 people with varying skill levels in .Net. The range was people who were just about to write their first .net application, to people who wanted to ramp up their existing skill set with .Net.

It was a great group of people who were all there to improve their skillset in one way or another. Once again, I was reminded of how much I have to improve with respects to my ability to effectively deliver this course to people who attend.  I love the feedback that people take time to share that ultimately will continue to help make me a better teacher of the material that I want to deliver.

Past students of the course can attest to the fact that although the course is labeled Nothin But .Net, the course is way more than just about how to use C# or .Net. The sample application that we try to build using .Net is used as a delivery mechanism for all of the important aspects of the course; the most important aspects being taught, end up being things that really have nothing to do with .Net whatsoever. Some of these things include:

-The importance of settings goals for yourself and patiently working towards their realization
-Not getting caught up in the "pointless" comparison traps that can prevent people from reaching "their" full potential
-Getting back to coding as a fun exercise, that allows us to grow at a pace that is commensurate with our own experience
-Becoming people who care more about "building and developing people" than people who just build and develop software
-Taking the time to learn/relearn fundamental building blocks of software engineering and computer science that can enable for a better ability to deliver software
-Aquiring and practicing habits that can allow you to maintain the momentum of learning and growth for your career
-Identifying how to not "stay" in comfort zones, and realizing that "comfort zones" can often lead us into places where we become complacent (this is an important concept that applies to way more than just software development).
-Failing hard, embracing failure, and using it as a means to move forward without fear
-The importance of building a "dev" workbench that is customized to the way you work best
-...........

As for the technical aspects of the course , some of the things that we covered were (all in the context of writing code):

-Git as a version control system
-Practical application of fundamental OO Principles
-Design principles and patterns the can aid in the creating of organic, highly changeable, software systems
-Code as a self documenting system
-Problem decomposition
-Leveraging Context/Specification testing to incrementally work through the design of system components
-Logging strategies
-Top Down Development
-Tools for .Net programmers
-Patterns for application startup
-Leveraging brownfield applications as great opportunities to sharpen the refactoring sword
-Code smells
-C# and .Net framework specific topics/techniques

This course was the first "public" course that we leveraged the new 9AM-9PM course day length. A 12 hour day may already seem outrageous to some, but this schedule is less aggressive than past iterations of the course. Although it results in less time than previous years had access to, I think it is a much healthier schedule and I will definitely be maintaining it going forward throughout the rest of the year. A 12 hour course day is still a long day!!

Lunches were a bit of a mess as I decided to have us all eat in the food court. This meant that people paid for their own meals (which I will have to reimburse them for through paypal) and we were not all able to sit together to have discussions. Yesterday and today we ate at restaurants in Bourbon street, which definitely allowed for more people to take part in a bigger shared conversation.

There were lots of amazing conversation, lots of great food (ok, some great food), and lots of code slinging that happened. It was awesome to have people be patient with me as I fumbled around with my keyboard this week. My typing skills were definitely not where they usually are. Thankfully I don't think it detracted too much from the flow of the sessions where I was coding. As always, I loved seeing people pair up with each other to work on problems.

It was particularly awesome to see people who were having problems following along with the class exercises, take the time to sit down and practice coding other things that would give them a grounding in topics they were interested in pursuing at a later date. I constantly reminded people that it was not important to understand it all  now, rather it is important to develop their own new ideas as to how to potentially tackle and solve their business and development challenges!!

I had a blast. Could things have been better. Absoultely. The day things can't get better is the day I stop teaching as it means the course has stopped growing. When I receive the feedback next week it will let me know how the individual feelings varied (I will be posting the reviews). I am confident that everyone in the class is ready to prepare a new learning plan from themselves that is not about "finishing"!!

Every time I finish one of these courses, I thank God for the opportunity to be able to share my failures, trials, strategies, victories, and most importantly what role Jesus has played in helping me to become more of who I want to be daily.  It is truly a blessing, and an honor that I am extremely humbled to be able to take part in.

Thank you Edmonton 2010, you have kicked off the ball for public 2010 year and I am truly honored to have been able to share in all of your lives for the duration of this week. I pray that the Lord will richly bless you and your families as you patiently and steadily "keep moving forward". Please keep in touch with one another and don't hesitate to call me if you have questions, concerns, or just want to chat!! OK, I’m off to bed!!

(the hats in the picture bear the slogan: Develop With Passion)

nbdn_2010_april_edmonton

Develop With Passion!!!

Comments [3] | | # 
 Friday, April 23, 2010
Friday, April 23, 2010 4:00:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

Nothin But .Net is finally making its way around to the west coast of the USA!!

The course is going to be held in the beautiful city of San Diego. Hopefully the relaxed backdrop will give us the energy we need to complete 5 days of heads down coding in an environment that is guaranteed to get you thinking actively about how and why you do what you do!

You will get introduced to techniques and approaches that can allow you to build applications in a very rapid fashion. Your attitudes towards how you handle messy code bases will also be challenged as you are encouraged to think about the opportunities for growth that can arise from dealing and taming such code bases.

The list of reviews for this course is far too many to list. Over the years this course has hosted people from all across the globe involved in an array of different domains.

If you want to take part in an environment that encourages as well as challenges you to your core, step up and take part in what could be a week that "re-energizes" you.

For more information about the course, or to register, go here: http://nbdn2010julysandiego.eventbrite.com/

Develop With Passion!!

Comments [0] | | # 
 Tuesday, April 13, 2010
Tuesday, April 13, 2010 2:00:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

Based on lots of feedback I have decided to drop the course rate for the remote course to that of $2000 per attendee.

Hopefully this will make the remote option more accessible to people who were hoping to participate.

The course is still going to take place at the end of May. You can sign up for the course here: http://nbdnremotemay2010.eventbrite.com/

Develop With Passion!!

Comments [0] | | # 
 Friday, April 02, 2010
Thursday, April 01, 2010 11:00:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

The first official Nothin But .Net remote course will be taking place at the end of May. Having had a very successful pilot. I am confident that people who are unable to make it to a public in-person course; will find the format of the remote course a great opportunity to take part in a great week of training right from their own house!!

Based on feedback from attendees of the pilot course, here are some recommended items that you will want to have to capitalize on the remote course:

-Dual Monitor Setup
-VOIP HeadSet
-DSL/Cable Internet Connection

As with all public courses, the attendee limit for the course is capped at 16.

For more information on the course, or to register, go here: http://nbdnremotemay2010.eventbrite.com/

Develop With Passion!!

Comments [1] | | # 
 Thursday, April 01, 2010
Thursday, April 01, 2010 10:47:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

Once again, Nothin But .Net is making its way back to the UK. This will be the third time that the course has taken place in the UK and each time is always a blast.

If you are not familiar with the course, here are some things that you can expect:

-Awesome programming challenges
-Deep dive into core OO/Design principles
-Deep dive into practical application of design patterns
-Meshing functional programming techniques in OO programs
-Practical application of new features introduced in .Net 4.0
-Leveraging BDD in conjunction with top down design to drive out application functionality
-How to gain confidence with the skills you have, and charting a course for growth for the rest of your career
-Engaging conversations with like minded professionals who are interested in growing their skillset
-Learning how to avoid the "Keeping up with Jones” mentality to software development
-Tools and techniques to achieve and maintain focus
-Possibly being reminded of how fun software development can be
-Joining a network of over 1000 developers who are now "Developing With Passion"!!
-Inspiration!!!!

This is just a small list and it does not really cover in depth the technical aspects of the course.

Regardless of your skill level, it is very difficult to come away from this course without feeling challenged in one of the following areas:

-Technical Programming Ability
-Time management
-Focus
-Work/Life balance
-Goal Planning

The course will be taking place at an "as yet to be announced" location in the heart of London. If you want to find more information about the course, or to register, go here:

http://nbdnlondon2010.eventbrite.com/

Develop With Passion!!

Comments [0] | | # 
 Wednesday, March 31, 2010
Wednesday, March 31, 2010 2:00:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

With the goal of complete transparency, I am in the process of aggregating all of the past reviews of Nothin But .Net so that they can be made available for people to read about the good and bad experiences of past students. For now , I am focused on sharing the thoughts and opinions of the remote pilot course that occurred in February.

Heading into the course I was concerned that there were going to be things lost in the remote transition. Aside from some technical difficulties in the beginning, once things got rolling it was an absolute blast. Any concerns that I initially might have had about how things would work in a remote fashion were completely dispelled.


By the time the end of the week had rolled around it was awesome to hear from people that one of the big things they took away from the week was a renewed sense of direction and motivation for what they do. Of all the things I was worried about missing, this was by far the biggest. It was awesome to hear that aspect of the course was not lost in this format. Enough of my blabbing, onto the reviews (all names have been removed to preserve anonymity):

Review 1

I sat to write this feedback after a week since the class - well, right after the class I got busy with the projects that were delayed, and after jumping right into the developing could realize that the value of the course was even more that seemed at first. But in order.

Preparation.
I think the stricter software requirements should have been specified. Besides VS, really was needed R#, Git, Gallio and TestDriven.NET. Plus, of course, a communication software. Anything else was rather optional. To make Camtasia work, it took me about an hour (darned sound did not want to be recorded) and the output files were so big, that they would fill the remainder of my HD for about 5 hours... Autohotkey started a little fight with Catalyst, but quickly won the battle. Anyway, it appeared to be optional for the class.

The knowledge of Ruby (that I learned specially for class and happy about it) was not really necessary, nor the knowledge of PowerShell commands. Really beneficial would be more studies on delegates before class. Really good were DNR screen casts.

Remote experience.
The experience was grrrreat! I had to do few adjustments: my head started to hurt because of headset after couple of hours - to have them on the whole day it is not like having casual talk on Skype. So I stole from my son an insulating headphones and was happy to the end. Te fact that the course was remote was beneficial from other standpoint: I could find exact moment to run for the bathroom without interrupting anyone. Plus were else could I have a dinner for 15 minutes?

The course itself.
The main thing I got for myself - is a philosophy and principles. Say, Open/Closed principle. Already changed some of my old code + Completely changed design for the new project project just because this principle only. Then, use of delegates. Before I used them only as event handlers. My bad. This is rather new not so new principle. Top-bottom development - that is something. I really saw it working during the class. Now I am thinking in that direction... TDD - still thinking about it. It just does not want to go in the direction I used to develop and think. Scheduled a meeting with other developers in the company - may be we will talk together to some conclusion... But overall, most valuable to me were principles and approaches. How they come to life. How to find own style, efficient and conscientious. I was known for the strife to an elegant solution, not just working solution - and I got greatly re-inspired by the course.

I was lagging on the exercises. Mostly because I used to think in completely different way and need to "feel" the code. Took me couple days to understand how implementation happened on certain concepts (front controller, container).

Overall - great course. Just great. I already recommended it to all the developers I work with. Never took anything like this before, and amazed how efficient class can be. Even a remote class. Especially a remote class.

--------------------------------------------------------------------------------------------------------------------

Review 2

So here is my summary of the week…

You started day 1 asking what our goals for the week were.  I said mine was to better understand how to apply TDD and try and bring that back to my team.  By day 3 I realized I needed a new goal for the week.  I didn’t realize how much I was  going to have to unlearn and relearn.  I was humbled throughout the course of the week by 2 things… 1) the realization that my development skills (OO design in particular) were not nearly as good as I had thought they were and 2) my inability to catchup when there was something I didn’t pick up on right away.  About half way through the week I gave up trying to catchup and recorded everything I could on Cam Studio.   I figured that I was better off paying better attention while people were speaking and not working in my own head to understand everything.  In terms of my OO skills, I was encouraged to go back to basics and really learn and understand fundamentals.  For example, instead of just being able to figure out how to use a delegate to implement some pattern, I now am determined  to understand what a delegate is and what it really enables us to do with our code.    I feel like I was freed from having to learn every new technique and framework that shows up on the horizons.  Instead I am focusing on having solid OO skills and knowledge and  not worrying about learning  new frameworks unless I know exactly why I need it and why I can’t write it on my own.

All-in-all the week was fantastic.  I haven’t been challenged mentally in a very long time like that.  It was really good to  be forced to view development from a different lens than what I have formed over the last several years working.

Feedback------------------

-          This is all specific to the remote format… probably more advise to future attendees.

1)      Use multiple intelligences for the teaching.  (My wife is an educator, so I apologize in advance).   I think especially in the remote format, it would have been nice to have some other means of soaking in some of the concepts besides words and code.  I could see visuals (diagrams & models) being effective of letting certain concepts sink in.

2)      I had a hard time with the timezone differences.  I know there were folks in the course w/ even bigger offsets, but it  made evenings seem even later and timing for meal breaks difficult.  Maybe offer the course in a specific time zone, or more structured schedule so people could work late or early the next morning if they chose.

3)      I would recommend taking the course from home.  I started day 1 at the office and there were too many distractions and it was no fun driving home at 11:30 pm.

4)      Record everything.  I started on Wed.  Freed me from having to worry about grasping every concept right away.

5)      Use some sort of “on air” indicator so people can mute any discussion, but not miss the group teaching time.

6)      I would have liked to have some time to finish implementing some of the refactorings myself instead of pulling down others.  Sometime it was difficult to change my thought process for how other people were implementing certain things.

7)      Overall, good course.  Very challenging, which is why I took it

--------------------------------------------------------------------------------------------------------------------

Review 3

Positive
- I was skeptical of the 12 hour days at first but JP's teaching style, energy, and enthusiasm made it easy for me to stay in an open minded learning mode.
- Very interesting topics that had me completely rethinking the way I code at work.
- I enjoyed the method used of teaching something, doing an exercise, looking at the various student solutions, and then making suggestions about them.

Negative
- As said before, we lost almost a full day to technical issues. So I believe it would have helped to have a ready-to-go setup for the course beforehand. Students should be given all the information they need to setup and test that setup before the day the course even starts.
- Maybe some coverage of ReSharper up front, either at the beginning of the course or through preparation material (perhaps a screencast).
- I felt it was unfortunate that we didn't get to complete our main web exercise from beginning to end. It would have been nice to see everything come together and do a review of the various design patterns and techniques we used to accomplish that throughout the week.
- I think the course could benefit from a more feature complete all-in-one solution to replace the use of VSee, GoToMeeting, and HipChat.

General Comments
- Dual monitor setup is almost a "must"
- I enjoyed the course greatly despite being overwhelmed with new information. I think it has resparked my school days when I was always eager to learn and improve the way I code. At work it is easy to fall into ruts where I just get things done the quick and dirty way instead of turning on my brain and really thinking about what I'm doing and how it can be improved.

--------------------------------------------------------------------------------------------------------------------

Review 4

Here's my feedback. I limited my comments to the remote nature of the
course, rather than the content, which was excellent. Hope it helps.

* The main thing I would say about the course is that I forgot that I
was doing it remotely. The technology makes the remote nature of the
course transparent and I can honestly say that I don’t think there was
any compromise over doing the course in person.
- The technology allows complete two-way interaction between teacher and
student. Both can view and control the other’s screen, and the whole
class is able to participate.
- Source code can be shared seamlessly and immediately with github.

Suggestions
===========
* It would be good to have screencasts on Git and the BDD Framework to
view before the course begins. This would mean less time learning the
tools and enable better focus on the concepts being taught.
* It would be more like the classroom if we could see each other and
pair a bit more.
- Would be a good ice breaker to have our webcams showing us
delivering our initial introductions. A lot of people would be
uncomfortable with this, myself included, but it is no different from
how it would be in the classroom.

--------------------------------------------------------------------------------------------------------------------

Review 5

Thanks again for a great course. Sorry these are so long coming back, it’s amazing how quickly work takes back over.  On a personal note, I was really amazed by the course. It was a great week. If you and your family ever decide to come to the Rock for a vacation, let us know. We’ll show you a good old Newfoundland time.

What Major Concepts Have You Learned And Understood This Week?

-          I find I now have a better appreciation for design patterns. I also discovered that I never really appreciated the power of small, single responsibility objects before. I was amazed at how much functionality could be derived from small classes calling other classes. I look forward to using this to really get a handle on test drive design.

What worked for you about this course?

-          Price & location

What didn’t work for you about this course?

-          It was nice to see Git, but it seemed to be a hindrance for the first few days.

-          Need a more full featured and reliable software for presentations. Should not have to use a separate chat client.

-          Maybe when we are introducing ourselves in the start we could have used web cams. It was hard to build relationships virtually.

How did you hear about the course?

-          Your blog which I started following after I attended one of your presentation at DevTeach.

Would you attend another course hosted by jpboodhoo.com consulting inc?

-          Yes, especially if you continue to offer courses by distance. As much as I love in person training, travelling from St. John’s is cost prohibitive.

Do you mind having your name posted beside your feedback on the course web site?

-          Not at all, do ahead.

Would you be willing to be contacted by potential future students for info about your course experience?

-          Of course.

Could you provide some comments on how I could specify the course prerequisites more clearly?

-          We had issues with the tooling and our environment. Maybe more details on what we will need to do so we can test it out ahead of time.

-          Maybe a list of articles to read or small tasks to try out before hand would give us more idea of

-          Screencasts for some basic housekeeping stuff so we don’t have to spend that time in class. These could include source control or using ReSharper.

Comments

                I was amazed at how well the presentation style worked remotely. I think I’ve said this a few times, but we are really restricted in our training because of our location. Also, since the developer population is so small we don’t have any user groups and it’s hard to get in contact with developers outside our work place. In addition , the government mentality towards software practices makes it difficult to improve or innovate. The more courses that are offered by yourself or other experienced developers would greatly benefit our group. I know we already have at least two more developers who would be ready to do this course again if it was offered. Your teaching style was great. You did a great job at not making me feel stupid even though what I was doing was often far from what you would end up doing.

--------------------------------------------------------------------------------------------------------------------

Review 6

I can say with a lot of confidence there's a "before and after" in my software development career just by being a part of the NBDN remote course; I have advised all of my programmer friends to make an investment and take the course, however, when they asked me what's so good about it, my response has been constant: There's no price to realize there are more elegant ways to do what we do and improve.

Learning is hard, but it's a decision we must make.

It was very interesting seeing software principles being used in "real contexts" and grasp why they exists and how they can enhance our work.

If i could change anything about the course would be reducing the material drastically, or even better, break down the material into more "manageable chunks" for easier assimilation.

--------------------------------------------------------------------------------------------------------------------

Review 7

Communication: Online communication with Trainer and students is good.
Presentation: Good.
Topics covered: Good - Need to cover more on Generics, Delegates and Design Principles and Patterns on first day or before using them to bring all to the same level of knowledge.
Examples: Very good.
Tools used: Good - Very useful.
Overall: Very good.

--------------------------------------------------------------------------------------------------------------------

Review 8

My quick review is below.  Sorry for the length of time it’s taken me to do this.  One thing I took from the course was to minimise distractions and I’m now checking my personal email very infrequently as a result!

Thanks so much for putting this course on.  Since the course I’ve been working each day going through my notes and implementing ideas.  I’ve also made my way through ‘Pragmatic Thinking and Learning’ which was very useful and have begun my MIT Opencourseware curriculum.  Seriously, the course was an inspiration and I was so pleased to be a part of it.

My review is below.  If you want me to go into any further detail apart anything, just let me know.  Feel free to put in on your website etc.

Cheers!

I was one of the lucky ten people to take part in JP’s first remote pilot course and am thankful that I made the decision.  I had planned to wait until JP makes his way around to London so that I could participate in the Nothin. But .Net classroom course.  However, as soon as I saw JP’s blog post about running a remote course over the internet, I decided immediately to take part.  I was intrigued to take part in a course delivered solely live in person over the internet, as well as pleased with the cost saving and the fact that I was too impatient to wait for JP to come to London later in the year!

The course began the week before for me when I got an extra screen delivered at home (really, I would strongly recommend 2 screens or more so you can watch full screen and type at the same time) and went through the course preparation materials.  If you haven’t seen JP’s videos on www.dnrtv.com they’re great viewing and you’ll learn loads.

The course was challenging, fun, eye-opening (it is possible to get that good!) and covered material in depth, rather than just skimming the surface of loads of topics.  The course is hands-on and you get plenty of opportunity to write code to cement the concepts that you’ve just gone through.  It was worth the price of admission just to watch JP code and I was amazed with how easily the course delivered that ‘pair programming’ experience.

I came out of the week with literally 15 to 20 concrete ideas that I have taken away to apply to my current development work right away.  The biggest win for me, however, was the inspiration.  After spending 5 days with JP you can’t help but have some of his passion for the craft rub off on you.  I’ve come out of the course bursting with enthusiasm, a strong resolve and a roadmap plan for managing my own continual learning.  The benefits of this course will be long lasting and the course has been a complete game changer for me.   I can’t recommend this course enough!

--------------------------------------------------------------------------------------------------------------------

Well, there you have it. Those are all of the reviews from the participants of the remote pilot (save 2 who did not provide a review). Doing the run through has helped me to appreciate the things that I need to take care of prior to the next remote course taking place. I am excited by this opportunity as it means that I can have a much larger reach with the course and take it to places that are currently wanting the course, but that I have not yet reached.

The next public remote course of the year is scheduled for the end of May. Register/view more information here.

If you or your team thinks that you may be interested in organizing a remote Nothin But .Net course, please do not hesitate to contact me at jp@jpboodhoo.com and we can look at scheduling and group rates. Of course, there will be publically available remote courses that will be held throughout the course of the year, so keep your eyes peeled. Please don't hesitate to contact me if you have more specific questions about the course itself.

Develop With Passion!!!!

Comments [0] | | # 
 Tuesday, March 30, 2010
Tuesday, March 30, 2010 1:30:00 AM (Mountain Standard Time, UTC-07:00) ( Training )

2 weeks ago I had the honor and privilege of teaching a group of exceptionally smart developers (the majority of which had only recently graduated). It was awesome to see in their eyes the world of possibilities that lay ahead of them with respect to both life and work. We had a great week coding, eating, and talking about all sorts of topics.  This week further solidified in my mind the main reasons that I teach the Nothin But .Net course.

 
One reason is to help people remember why they got into software in the first place. I remind them of how awesome it is that we get to work daily on something that we chose to pursue.  How ,even in an environment where everything is falling in around you, you can still choose to push yourself and remain engaged and excited. How you can choose to pick yourself up even after you have made a huge mistake, realizing that the pain in the lesson is part of something that will prepare you for the next journey that you will be taking.


Most importantly, the course teaches the importance of Dreaming Big for yourself (and your family if you are not single). Once people start to realize that the majority of limitations they will face are self imposed, it frees them up to start thinking about taking leaps they may have once thought impossible. To hear back from people who are now challenging others to start dreaming big for themselves is one of the most rewarding aspects of doing the courses. To be able to see dreams identified, pursued, and fulfilled is an opportunity that I continually praise God for.


At the end of the day, I am just a facilitator, helping to possibly awaken the dreams and goals of other people is something that I always hope to be able to do.

God Bless You and Develop With Passion!!!

Comments [1] | | # 
 Monday, January 25, 2010
Monday, January 25, 2010 3:00:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

It's has officially begun!!

The first public (in person) Nothin But .Net course of 2010 is scheduled for April 26-30. The course is going to be held at the amazing West Edmonton Mall in Edmonton, Alberta, Canada.

Just like last year, the course will be able to accommodate a maximum of 16 people. Last year there was a course held at the same location and it was an absolute blast.

If you have been on the fence about taking the course, I hope this is the year that you decide to step up to the plate!!

If you do happen to sign up, get yourself ready for a week of coding madness. You will most likely leave the week feeling both physically and mentally exhausted. The net result in the aftermath, can be a new outlook on the way you approach your job, skill set, and life in general.

You can register for the course here: http://nbdnedmonton2010.eventbrite.com/

Are you ready to Develop With Passion in 2010!!

Comments [0] | | # 
 Monday, January 18, 2010
Monday, January 18, 2010 7:00:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

This is a quick post to let people know that Nothin But .Net will be making its way around the world once again this year. We are still finalizing the final course schedule which takes a bit of time due to securing venues. Unlike last year, we are going to make sure that once the course schedule is published, that people will know immediately the venue it is going to be hosted at.

For the 2010 year the public courses are going to be in the following countries:

  • Australia
  • Canada
  • England
  • USA (yes, visa issues have been sorted out!!)

We expect to have the finalized schedule out by the end of February, with the first course happening in late April/early May.

One of the major changes that is taking place this year is with respect to the course hours. Past courses have been known for their extremely long days. For the 2010 year the course hours are going to be fixed at 8AM to 9PM. The last course of 2009 was able to closely adhere to this schedule and personally I feel it is much more maintainable than what some previous classes have had to deal with!!

Are you not able to make it out to a public course? Consider the option of bringing me on site to train your team privately. If this is something that may be of interest please contact me directly at jp@jpboodhoo.com.

I look forward to seeing and meeting many new people this year who are looking forward to Develop With Passion!!

Comments [3] | | # 
 Wednesday, January 06, 2010
Wednesday, January 06, 2010 1:00:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

After a lot of thought about what it would be like to run an NBDN course remotely. I thought that I would just give it a try with a small pilot/beta test group and see what the resulting reception is.

To that end. I am planning to run a live meeting based NBDN course in February. This will be a one time only offer of $1000 for people to attend the week long course. If the course proves successful, future iterations will not be held at that price.

The basic requirements are as follows:

- High speed internet connection
- Telephone that can be available for the conference calling session (for the entire day)
- Computer with the necessary software installed (described in the prep material)

With respect to the format of the course, I am hoping that it will feel much like the on-site courses. There will be no difference in the material that is covered, just the delivery mechanism. Plan on having days go from 8AM to 9PM (with appropriate time taken for breaks).

Of course, if there is not enough interest in this type of course then it just won't happen. The maximum number of people that I am allowing into this pilot group is 10.

For more information and to register please see the following: http://nbdnremote.eventbrite.com/

Develop With Passion!!

Comments [6] | | # 
 Saturday, July 25, 2009
Saturday, July 25, 2009 9:31:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

Just got back from another amazing course in London, England. The class was great. As always I think I learned just as much from the students as I was able to impart to them. There were 15 of us in total, and with each successive course I am trying to find a way to get the students engaging in as much practical lab exercises as possible. There came a point where people felt that it may have been too much lab exercise and that they were not getting enough guidance. This feedback allowed me to make some adjustments. On day 4 and 5 the feedback from the auto correcting seemed to register well with people.

I would like to take this time to thank my London class for the honor of being able to share that instance week of training  them. I look forward to seeing what the future holds in store for all of you!!

God Bless You,

JP

Comments [0] | | # 
 Monday, July 06, 2009
Monday, July 06, 2009 2:00:00 PM (Mountain Standard Time, UTC-07:00) ( Inspiration | Training )

The Nothin but .Net course has been running for just over 2 years now. In that time I have had the amazing opportunity to share technical and personal information with over 700 developers.

It is always awesome to hear back from alumni and be informed as to how they are progressing in both their personal and professional lives. To feel like you have had a positive impact and were able to add value to someone's life is an awesome thing. I just received an email from a recent alumni who signed his email with the following:

"Developing With Passion"

This is a slight play on words from my companies tagline: "Develop With Passion". It is also extremely appropriate. If you are an alumni of one of my courses and you feel that the course has been something that allowed you to take awesome positive steps in either your personal or professional life, I am going to challenge you to "show your colors" for the next month by signing you emails: "Developing With Passion". Together, let's remind people why we do what we do:

  • Competing against ourselves daily, not for someone else, but because we want to be better
  • Adding value to our families and communities
  • Adding value to our employer
  • Not being satisfied with mediocre in our personal or professional lives
  • Being a catalyst for change in scenarios that seem change averse
  • Working out with patience and diligence the tasks we are given to complete
  • Making our dreams a reality!!

Develop With Passion!!

Comments [5] | | # 
 Friday, June 26, 2009
Friday, June 26, 2009 10:51:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

Something that has happened more that I would like for this year is the cancellation and switching around of courses due to low interest levels in cities that previously expressed interest.

Due to low interest there are going to be courses that are cancelled completely as well as some that are going to be swapped out with replacements for new cities that have got in contact.

Currently the New York Course (October 12th 2009) is being replaced with a course in Nashville. My apologies go out to the people (ok, person!!) who registered. Also, if the numbers for the Orlando course do not pick up by the middle of July then that course will be completely cancelled.

I apologize to anyone for any inconvenience this may cause.

Develop With Passion

Comments [3] | | # 
 Friday, May 08, 2009
Friday, May 08, 2009 9:27:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

There were a couple of submissions to the scholarship offer for next weeks Calgary course. Thank you very much to all who took the time to submit entries. Everyone who submitted an application for the Calgary course has automatically been entered into the entry list for the Edmonton course that will be happening in 3 weeks.

Develop With Passion!!

Comments [1] | | # 
 Thursday, May 07, 2009
Thursday, May 07, 2009 7:12:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

I’ve been out of the loop for quite a while to say the least. So much so that I forgot to announce that I would be offering up 1 scholarship for the Calgary course that is going to be held next week.

If you live in and around the Calgary area and are thinking you would like to apply for the course scholarship then fire me an email at : jp@jpboodhoo.com with the following information:

  1. How long have you been in the field of software development (not including time in school)?
  2. Why do you think the course would be beneficial to you?
  3. Why should you receive the scholarship?
  4. Contact Information (Phone, Email …)

Obviously, I am not expecting a lot of responses seeing as how it is almost the end of the week, which means that if you respond, you may have a high probability of receiving the scholarship. The entries will be quickly reviewed by the scholarship team and we will announce the recipient tomorrow!!

Develop With Passion!!

Comments [0] | | # 
Thursday, May 07, 2009 4:34:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

There has been a switch around for the Victoria course that was going to occur on the week of June 22nd. The course is now going to be held in Vancouver. The course date will stay the same (22nd – 26th June).

Registration can be made here: http://www.eventbrite.com/event/280346524

Develop With Passion!!

Comments [0] | | # 
 Thursday, March 26, 2009
Thursday, March 26, 2009 7:20:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

There have been several groups of people who have got in contact with me to let me know about problems they have been having with the course registration process. The limitation right now is a PayPal issue. They are unable to allow transactions larger than $4000 USD.

This is not a problem for people who are registering sole attendees. It is, however, a problem if you are trying to register more than one person at a time.

For the interim, if you need to register a group of people I would ask that you kindly register each attendee one at a time. This situation will be remedied in about a month when we will be switching to a custom solution that will not have these limitations. Until that rolls out I kindly ask for your patience and understanding in the matter.

I assure you that steps are being taken to rectify the situation as quickly as possible!!

Develop With Passion!!

Comments [1] | | # 
 Tuesday, March 24, 2009
Tuesday, March 24, 2009 7:40:00 AM (Mountain Standard Time, UTC-07:00) ( C Sharp | Training )

There are some big, big changes coming this year that will revolve around how Nothin' but .Net promotes the cause of education. Registration for courses started a couple of weeks ago and I am excited about the potential that this year brings for people who are going to be registering.

After a couple of tweets in the twittersphere, and a great recommendation by Scott; I realized that there were a couple of things that I could do this year to promote the cause of education and make the training a little more accessible. This post outlines the high level plans that are going to be implemented as soon as possible.

In no particular order the items are:

NBDN Scholarship Program
There are lots of people out there who are desperately wanting to get involved with some form of high quality training. Unfortunately, there are also a lot of people who just do not have the resources/support to undertake the financial weight of the course. To that end, this year for each class there is going to be a scholarship issued to one person who will have their complete course tuition wavered. This does not include airfare and accommodations, just the ticket price for a seat in the class. One of the things we are deciding right now is how to go about deciding the format for how this process should work. How do we pick from a potential pool of people who may want to attend the course. Based on the contest I ran last year, it may not be that difficult as in spite of all of the freebies that were being given out, there were very few actual "submissions". If you have any suggestions on how I should structure the "submission" process it would be greatly appreciated. Right now I am leaning in the direction of having people submit stories that describe why they should be awarded the scholarship.

NBDN Course Primer
In the cities where I can coordinate this (and get the timing right), there is going to be a free 1 day primer course that will be open to the public so that they can come and discuss, code, and get a feel for what the scope of the course will entail. My plan for the primer course is to spend the day working through concepts that I feel are prerequisite knowledge, make developers more productive in general, as well as to dive into some code, patterns, and concepts that people should be familiar with (especially if they want to take the course at a later time). Like the course, there will be limited seating (16-20 max), and people will be expected to come with open minds ready to challenge, learn, and have fun. One bonus (in the cities where there is participation) will be the opportunity to work and share discussions with past students (from the local area) who can speak openly and honestly about their experience with the course. In the primer course day people will get exposure to the following :

  • Build automation with rake/powershell
  • Context/Specification style testing
  • Back to advanced basics with core .Net
  • Fundamental Design Principles

Although it is termed as a primer, the goal of the day is to have people leave with their head stuffed full of new ideas and approaches they may not already be familiar with. The reason for the size of the class is to enable as much rich communication as possible, which is very difficult to do in large class sizes. I expect these primers to generate a lot of questions!!

DNRTv
After a great discussion with Carl, we have decided to set some time aside in May to record 2 full days worth of training material. Again, the goal with these videos is to serve as primers for people to get exposed to many concepts that can be instrumental in making them more productive developers. These videos will be extremely code intensive, and should leave people with a greater awareness of tools and techniques they may not already be familiar with. The scope and material that will be covered in these two days is yet to be determined, though my hope is that these videos will give people a great deep introduction to a host of topics.

As you can see, there are lots of plans that are in store this year and I am excited about what the Lord has in store for myself and all of the people I hope to interact with!!

Develop With Passion!!

Comments [7] | | # 
 Tuesday, February 10, 2009
Tuesday, February 10, 2009 10:38:00 AM (Mountain Standard Time, UTC-07:00) ( Training )

Scott is going to be hosting a course in Austin on TDD,BDD, and a whole host of other topics that will make people more productive. It is a one day course and you can check out more information here:

http://blog.scottbellware.com/2009/02/test-driven-development-and-behavior.html

Much of what I have learned about BDD was ignited by Scott. Before I started pair programming with him I was very much a traditional styled TDD developer. If you have an opportunity to spend a day of learning with him I strongly recommend you jump all over it!!

Develop With Passion!!

Comments [0] | | # 
Tuesday, February 10, 2009 10:13:00 AM (Mountain Standard Time, UTC-07:00) ( Training )

After a bit of a delay the registration for all of the 2009 Nothin But .Net courses is live. This year I have decided to go with EventBrite, it is a really simple to use event management system with huge benefits over the Acteva system I was using last year!!

To register for a course you can go to www.jpboodhoo.com/training.oo and click on the link for any one of the courses on the left hand side of the page. This will take you to a registration page for the course.

At this time, none of the venues have been chosen as we are still in discussions with most of the venues. This year we are also looking at options other than hotels (if you or someone you know has access to a venue that is close to hotels and can accommodate 17 people comfortably, feel free to contact me and we can discuss trading space for discounts!!).

The following link is an rss feed for all training events hosted by jpboodhoo.com: http://www.eventbrite.com/rss/user_list_events/80468363

Almost 600 people across the world have now taken this course!! It is an honour and a privilege for me to be able to share whatever experience and wisdom I have with the people who attend. The events are very casual, informative, professionally and personally challenging. My goal is not just to have you leave with strategies to become a better developer. I want you to leave feeling more empowered to live out your dreams for your life.

I feel that God has imparted a blessing to countless developers who have taken this course, I am just glad to be a vehicle through which that blessing can be delivered.

I look forward to meeting each and every new participant this year!!

God Bless You and Develop With Passion!!

Comments [1] | | # 
 Monday, February 09, 2009
Monday, February 09, 2009 12:51:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

This post is a quick shout out to all of the people who have contacted me about registration for this years courses.

Registration will go live for all of the courses on Wednesday, February 11th. This year I am making use of eventbrite which means that the 2 options you will have for payment processing will be either an existing paypal account, or your credit card.

As a reminder, there is a 16 person attendance limit for each class this year!!

For more information on the class, you can read up about it here: http://www.jpboodhoo.com/training.oo

I look forward to helping you Develop With Passion!!

Comments [0] | | # 
 Thursday, December 18, 2008
Thursday, December 18, 2008 3:18:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

This is just a note to let people know that the schedule for 2009 has been penciled in and not yet posted. My hope was to get to provide my web site with some much needed TLC and that has not happened. Courses will start up again in May 2009 and run until December 2009. So far the countries that are on the list are:

  • Canada
  • USA
  • England
  • Australia
  • Germany
  • India/Cambodia (need to talk with more people before this is finalized)

That is just the high level country list, not the city list. My wife and I are finalizing the schedule and even without posting it to the schedule page, there will be a post that outlines that actual destinations within the next 2 weeks. One of the plans for next year (late next year) is to also launch a new course targeting the development and delivery of smart client applications. Nothin But .Net has typically been delivered targeting web developers, this new course would be focused on strategies for building composable Smart Client applications. The majority of my development career has been in the smart client space, and since I have not shared a lot of information on the techniques I use, it would be the perfect venue to share a lot of techniques and strategies I use. My hope is to beta the course late next year, and have a Q4 2009 first offering, or at the latest a Q1 2010 offering.

At the end of the day this is just a heads up that courses will be continuing for next year and if you are planning on attending, stay tuned.

Develop With Passion!!

Comments [7] | | # 
 Thursday, December 11, 2008
Thursday, December 11, 2008 7:58:00 AM (Mountain Standard Time, UTC-07:00) ( Training )

Now that the course has been running for over 2 years, there have been plenty of unsolicited comments about the course that have been posted to the blogosphere. This post attempts to aggregate a handful of them into one place so you can see for yourself what people really think about the course (good and bad!!).

If you are a past student and have a blog post that is not listed up above, please get in contact with me as I would love to be able to link to it!!

Looking forward to what next years students will say!!

Develop With Passion!!

Comments [4] | | # 
Thursday, December 11, 2008 12:10:00 AM (Mountain Standard Time, UTC-07:00) ( Training )

Phliiy course 012_small

The picture above is of the last class that occurred in Philadelphia. The last 2 courses introduced some new formats to the course. In particular, the length of group exercises has been increased significantly (a little too much for Philly, but a lesson learned for next time!!). This course has been a blessing that cannot be conveyed in words. The last 2 classes of the year were held in Vegas and Philadelphia and they were absolutely amazing. It was a great way to end the training year.

What is the secret to the course? Is it the:

  • Great meals (Philadelphia was treated to some of the best dining of the year. Thanks in large part to so many amazing establishments being so close to the venue).
  • Great technical content.
  • Screencasts of every minute of coding that takes place
  • Tips on how to maintain a great attitude about life and work
  • Laughs (lots of them!!!)

While the above are definitely reasons that people choose to attend the course, they are easily eclipsed by the PEOPLE that attend. The amazing energy, enthusiasm, and spirit that the group displays over the course of the week continually blows me away. How many classes do you know where a group of random strangers can come together and by the end of the week are actually planning on forming lasting friendships!!!

God has truly been in the details and I know that none of this would have been possible without Him. I am thankful for every opportunity to deliver this course and will continue to evolve the material and deliver it as long as I feel called to do so!!

One of the great things that was conveyed by a couple of repeat students is how much the course has changed over the period of a year. They came in thinking that it would be a refresher and they were greeted with completely new content!! My hope is that the course and its material will continue to evolve as I learn new things . I am excited to see what the 2009 year will bring (along with a much needed set of alumni meetings!!!).

To all of the people I have been blessed with the opportunity of sharing with over the past year, I want to send a big “God Bless You” out to all of you. It was an honor, a blessing, and a privilege to help you chart a new course for your development career.  And I am truly honored to be able to say I could help in some small way.

It is my prayer that all of you will continue to not worry about  “Keeping up with the Jones’s”, and will run your own marathon at your own steady, progressive pace!! Compete against yourself daily and you will develop habits that will keep you growing as a person (which in turn will influence your career).

Hopefully I will see some of you again next year (especially at the alumni get-togethers). And I really hope that people who have been thinking about taking the course who have been on the fence will jump on board next year!!

Develop With Passion!!!

Comments [2] | | # 
 Friday, November 07, 2008
Friday, November 07, 2008 3:26:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

I am often surprised by the number of times I hear from students of the bootcamp the phrase:

“I was not prepared for the intensity of the week”!!

My use of the term bootcamp is not a marketing pitch. You WILL:

  • be exhausted at the end of the day
  • spend no less that 14 hours in a course day
  • have your longest days on Thursday and Friday (historically, 20 – 24 hours is not uncommon)

On the plus side you WILL also:

  • get to spend a lot of time pair programming with different groups of people
  • engage in awesome conversation
  • watch hilarious video clips during breaks!!
  • enjoy amazing meals!!

The Philadelphia course is pretty much full, so this is really a note to people who will be taking the course next year!!

Develop With Passion!!

Comments [6] | | # 
 Friday, October 10, 2008
Friday, October 10, 2008 5:20:07 AM (Mountain Standard Time, UTC-07:00) ( Training )

This year has truly been a year where my family and I can say that Nothin But .Net officially went global (having ventured into other parts of Europe as well as the Dominican Republic). We are extremely thankful to God for the amazing opportunities He has opened up for us and the many amazing people that we have been able to meet along the way.

Not content to stop there, Lord willing, next year we are going to step out to take the course into other locations that have been making requests for the course. The plan for next year is to hit the following new countries:

  • Australia
  • Cambodia
  • India

As well as the countries that we have already been and love:

  • Canada
  • US
  • England
  • Germany
  • Dominican Republic

If you live in one of those countries and have suggestions about where demand for the course might be, please feel free to get in contact with me.

If your company is thinking that they would like to get some training done in the new year, we have also hosted several private iterations of the bootcamp. So feel free to contact me if that is something you might be interested in.

Why the drive to hit all these places? It might sound a little cheesy, but I have seen this course change lives (literally) and the emotions around that are something that are very difficult to express in words. I want to take this course to as many places as possible and prayerfully have as much of a positive impact on the lives and careers of many other developers.

Cambodia in particular is going to be exciting because I have been informed that they do not have access to any significant advanced training there, and the cost of the typical courses elsewhere is much too prohibitive. I am working with people there to ensure that the course can be bought to them with a cost that will work within their typical developer budget and allow as many people as possible to participate in what could be a great experience for them.

Hopefully I will see you in 2009!!

Develop With Passion!!

Comments [12] | | # 
 Wednesday, October 08, 2008
Wednesday, October 08, 2008 4:29:19 PM (Mountain Standard Time, UTC-07:00) ( Training )

It is almost November, and God has amazingly blessed the Nothin But .Net Developer Bootcamp. I am going to post in a little while about the amazing opportunities and encounters that have occurred this year as a result of the course.

In the meantime, this is a reminder to those who are thinking about registering to go ahead and register for either of the upcoming courses:

Nothin But .Net - In Las Vegas

Nothin But .Net - In Philadelphia

These two courses are the last courses that I will be running for the 2008 calendar year. As far as the 2009 schedule goes, I am not going to start "public" courses again until Q2 of 2009.

If you are curious as to what people are saying about the course, check out some of the blog posts from some of the most recent attendees:

Simon Brown

Dirk Rodermund

Sebastian Kramer

Bjorn Rochel

Stefan Lieser (german only)

Michel Grootjans



And of course, you can read my recap of the last course here .

It truly has been, and continues to be, a blessing and honor to be able to reach so many developers in this way.
There are only a couple of seats left for the Las Vegas course in 2 weeks, and only about 8 spots left for the Philadelphia course in November.
I look forward to potentially seeing you at a future course!!
Develop With Passion.




Comments [2] | | # 
 Saturday, September 27, 2008
Saturday, September 27, 2008 2:12:07 PM (Mountain Standard Time, UTC-07:00) ( Training )

DSC_2923.JPG

Yesterday, we just finished up another iteration of Nothin But .Net!! The class was an absolute blast!! The information level, was high, the energy higher, and the interaction was even higher still!!!

As you can see from the picture above, my wife was able to spoil us all with T-Shirts on the last day of the course. Unfortunately, some of the shirts were printed with the term "Develope With Passion" instead of "Develop With Passion"!!

The stats for the course are as follows:

  • 3 - 14 hour days
  • 1 - All Nighter
  • Wrapped up at 2:00AM on Saturday!!
  • 338 Revisions to the source tree (this is by far the most active code base of any prior course!!)
  • 1 Amazing Day of Coding Frenzy on the last day (pretty much entirely by the students).
  • 1 amazingly thoughtful gift from the class that made my week!!
  • 14 Great Meals!!!
  • 1 - 86 Hour Total Training Experience!!!!!
  • 1 - Group of students who connected, shared, laughed, and kicked sliced and diced code
  • 1 - Developer who feels incredibly blessed and humbled each time God provides the opportunity to deliver this course!!

The success of this course are the students, and the attendees once again delivered on breaking down walls and mixing up pair programming to make for a truly amazing week!!!

Develop With Passion!!


Comments [4] | | # 
 Tuesday, September 16, 2008
Tuesday, September 16, 2008 3:46:06 PM (Mountain Standard Time, UTC-07:00) ( Training )

Time is running out to register for the course that will take place next week in Dusseldorf!!

It is shaping up to be another awesome event. If you have not heard about the event you can plan for the following (amongst many others):

  • Long days filled with coding frenzies and lots of problem solving
  • Great meals and conversations
  • Great pair programming sessions
  • Potential "motivation injection" (stealing a phrase from my friend Sean)

If you want to register head over here.

Develop With Passion!!


Comments [3] | | # 
 Tuesday, September 09, 2008
Tuesday, September 09, 2008 9:06:24 PM (Mountain Standard Time, UTC-07:00) ( Training )

Last week I had the blessing to be able to share the week teaching and learning with a group of awesome individuals who decided to undertake a week of bootcamp style training in my Nothin But .Net BootCamp!!

The prerequisites were completed to the highest level that I have ever seen in any prior course, and yet we were still able to spent a couple of hours on day 1 drilling into some new areas based around the pre-req exercise.

What followed was a week of great technical sharing, meals, and heartfelt discussions about life, faith, and technology.

All in all the stats for the course were as follows:

  • 3 - 14 Hour Days
  • 2 - 20+ Hour Days (craziness!!)
  • 200+ Revisions to the source tree
  • 14 awesome meals
  • 60+ Hours of screencasts
  • 1 Amazing experience

This course has morphed and changed dramatically since I first started teaching it over a year and a half ago. I thank God for every opportunity that I am given to reach out to people in this fashion. It is a true blessing.

If you have been on the fence and are thinking about giving yourself a challenge you should think about signing up for one of the upcoming courses. You can use it as a way to increase your skills as well as expand your network.

Develop With Passion

Comments [1] | | # 
 Monday, August 18, 2008
Monday, August 18, 2008 7:00:55 AM (Mountain Standard Time, UTC-07:00) ( Training )

My good friend Jonathan Rasmusson is hosting iteration 2 of his great Agile Project Management course in Calgary, AB, Canada during the month of September. Here are the details:

Plan the work. Work the plan.

That has been the maxim taught in project management circles for the better part of 50 years.

If only it were that easy.

Reality has taught us that when we blindly following plans we:

    * miss deadlines
    * exceed budgets
    * and disappoint our customers

There is a better way, and it works!

Agile, Scrum, Extreme Programming, and Lean Software Development.

In this course I will show you how to:

    * setup
    * execute
    * and successfully wrap up your own agile project

We will cover:

    * agile project initiation
    * requirements gathering
    * estimation
    * planning
    * iteration mechanics
    * tracking
    * team building exercises / practices
    * roles and responsibilities
    * dealing with resistance
    * and effective project leadership

If you are looking to:

    * build trust with your customers
    * improve relationships with team members, and
    * gain a competitive advantage in the market place

Register Now

http://rasmusson.wordpress.com/services/agile-project-management-training/

Where

Petro-Canada Centre
150 6 Avenue SW
Calgary, Alberta

When

September 11-12, 2008


Cost
$1195 USD

As a former agile project lead, coach and mentor at ThoughtWorks, Jonathan was spent the greater part of the last ten years collecting, and distilling the best agile project management practices from around the world.

His experiences include leading agile projects at Microsoft, British Petroleum in the UK, AMP Capital in Sydney Australia and many other companies throughout Canada, the US, England, and Australia.

 

Develop With Passion!!

Comments [0] | | # 
 Sunday, August 17, 2008
Saturday, August 16, 2008 11:14:17 PM (Mountain Standard Time, UTC-07:00) ( Training )

I seem to be having some trouble with my blog posting software. Here it goes again!

The venue for the course has been changed to the London Marriott Hotel Regents Park.

The evening rates for people wishing to stay at this hotel are around 118 GBP a night.

You can register for the course here: http://www.acteva.com/booking.cfm?bevaID=164699

Develop With Passion!!

Comments [0] | | # 
 Thursday, August 14, 2008
Thursday, August 14, 2008 6:11:57 PM (Mountain Standard Time, UTC-07:00) ( Training )

After a couple of days of searching for a venue (at such short notice) the St. Bride Foundation has been selected. It is located at the following address:

ST BRIDE FOUNDATION

Bride Lane Fleet Street

London EC4Y 8EQ


If you want to find out more information about the venue check out the following website:


http://www.stbridefoundation.org/termsconditions.html


Because of the size of the venue (and shorter registration timeline) the registration limit for the course is going to be set at only 10 people. This will fall inline with the same class that occurred last year in London (which had about 10 people).


For more information on the course check out the following page: http://www.jpboodhoo.com/training.oo


To register for the course go here: http://www.acteva.com/booking.cfm?bevaID=164699


Develop With Passion!!

Comments [0] | | # 
Thursday, August 14, 2008 4:07:05 PM (Mountain Standard Time, UTC-07:00) ( Training )

As of this morning the venue for the course has been changed to the London Marriott Hotel Regents Park.

The evening rates for people wishing to stay at this hotel are around 118 GBP a night.

You can register for the course here: http://www.acteva.com/booking.cfm?bevaID=164699

Develop With Passion!!

Comments [0] | | # 
 Monday, August 04, 2008
Monday, August 04, 2008 3:42:04 AM (Mountain Standard Time, UTC-07:00) ( Training )

Now that lots of people are aware of the fact that my family and I are going to be in Europe for the months of August and September, there have been lots of questions about whether there would be a course in the UK while I was there. The Germany course is already schedule for the 22nd of September. I did, however realize that it would be a shame not to open up the option in the event that there are people interested.

To that end, there will be a course in London for the first week of September. I just recently completed a private course in the Dominican Republic, that consisted of only 5 people. This experience has made me realize how awesome small class sizes can be. Since we are going to be in the UK, there will be no cancellation of the course even if there are only a handful of people able to attend on such short notice. I want to make sure that the people who have expressed strong interest are able to attend even if the numbers are not there (especially because of the short registration timeline!!

If you want to find out more about the course check out this page : http://jpboodhoo.com/training.oo

Registration for the course can be done here.

Here are some of the comments from the last public course (June 2008, Vancouver):

 

"I would just like to thank you for an excellent course! It’s really gotten me out of a standstill development wise where I felt like I was just treading water and not moving forward. I feel like I have enough material to grow with for a long time."

 

 

"I would just like to thank you for an excellent course! It’s really gotten me out of a standstill development wise where I felt like I was just treading water and not moving forward. I feel like I have enough material to grow with for a long time."

 

"JP, for more, have a look at my blog post. It has been totally refreshing to see how you have pursued your own style of coding regardless of what Microsoft has in mind. It was just as much of an inspiration to see what you have done in the patterns and practices that you are following, as it is to imagine that I am empowered to not only follow that same road but to create a path for myself! It was also amazing to see that so many of the other attendees were in the same boat as I was, and that talking with them would be so interesting. Aside from all of that, I could name more than a dozen of the technologies and techniques from your itinerary that I feel substantially more comfortable with and how they can all work together. Just as you recommend other resources as required training/reading for developers, this course is one of those things every developer should do. I rarely recommend training to colleagues, but this course has been so good on so many levels that I have already recommended it to many. Thank you very much for the time that you put in to the course and the attention and caring that you give it that makes it hands down the best .NET training course available."

 

"It was great. It was intense. It took me two days to recover. I think it won’t fully sink in for some time but I am a changed developer. It reaffirmed my identity as a developer. It has given me a renewed thirst for knowledge. It was amazing to spend so much time learning with others"

 

"I got a lot out of the week. Some of the most valuable things I learnt this week were non-technical in nature. I was most impressed by your professional and positive attitude towards work and life. Your enthusiasm is definitely infectious and it was the first time that I have been to a class where the teacher was so dedicated and passionate about the subject matter. You have definitely had a big impact on everyone. I would recommend this course to others just to see an example of what a consultant should be like.
There are some topics I would have liked to have seem more on:
- techniques for WinForms/WPF development, since rich clients seem to be coming back into favour.
- persistence and unit of work
- more time on domain driven design principals, since I think creating a good domain model is not always easy"

 

 

Develop With Passion!!

Comments [1] | | # 
 Sunday, July 27, 2008
Sunday, July 27, 2008 9:47:16 PM (Mountain Standard Time, UTC-07:00) ( Training )
It has taken the better part of 1 year, but I finally put together the beginnings of a formal training preparation package that registered students use to prepare for the course. I decided that I would make the preparation material available to the general public as it is a source of materials that will be constantly evolving and changing as the my skills continue to evolve, and the course continues to morph. The material can be downloaded from here: http://www.box.net/shared/n74tjz78kw/rss.xml Once you have all of the material downloaded you will need to run the program tscc.exe. This will install the Camtasia playback codec, that can be used to watch the preparation videos. You will also need to install winrar (potentially) if you want to extract the contents of the rar file. The rar file contains a bunch of documents that contain things like recommended reading lists, developer tools etc. The rar file also contains a little collection problem to solve that sets the stage for where we begin on day 1. The exercise is an opportunity for people to get familiar with: -MbUnit -BDD Like Fixtures (We dive into BDD during the week) -Language oriented assertions -Specifications This material will continue to get updated. I already have significant changes to make to the introductory videos. In a month or so I will also be adding a crash course on Rhino Mocks to the prep material. Specifically, Rhino Mocks in conjunction with AAA style testing, as that is how I teach people to write tests during the course of the week. As the prep material is being served out as an RSS feed, you can add it to your reader to get notified of updates!! Develop With Passion!!
Comments [1] | | # 
 Friday, July 25, 2008
Friday, July 25, 2008 9:11:58 PM (Mountain Standard Time, UTC-07:00) ( Training )
This is a quick note out to all of the people who have registered for the upcoming courses in Germany and Las Vegas. I apologize for the lack of communication due to my holiday mode status!! I am going to make sure you all get prep material sent out to you by this coming Sunday. The venues for both the Germany course and the Vegas course are being finalized and will be disclosed by Tuesday of next week. The reason for posting this on the blog is due to the fact that the mailing lists for the courses have not yet been created, so this is a very public way to apologize for my lack of communication!! God Bless You and I look forward to starting the correspondence stream!! JP
Comments [0] | | # 
 Thursday, July 17, 2008
Thursday, July 17, 2008 4:29:50 PM (Mountain Standard Time, UTC-07:00) ( Training )

There are a lot of developers out there who are interested in getting into training offerings. This may be something that they have as an immediate to do item, or something that they are currently planning for and want to know the potential steps to get the ball in motion. This post is my attempt to share exactly what I did to be able to get to market and run my Nothin But .Net course.

A little bit of history

I have only been formally teaching the Nothin But .Net course for a year and a half and I have learned some valuable lessons along the way. Before you can start thinking about heading out and establishing your own training (whether it be an individual course or a full blown training company) there are a couple of things that you may need to be able to do before you can even fill a seat in a course.

I ran my first Nothin But .Net training course in February of 2006. At the time only 4 people attended, and they were all part of a project I was working on. I was a little bit disappointed by the turnout but I came to the conclusion that I should be satisfied with the numbers because of one simple fact:

· Nobody knew who I was, so why would a bunch of people I did not know, show up for a class I was teaching?

I realized at this point that some marketing was necessary!!

Get the marketing machine working for you

I started blogging in December of 2006. It was a simple “hello world” post. I barely had any readers and my primary reason for starting a blog was to be able to share what I knew with the community to ultimately increase awareness about the training that I was going to be offering. At the time, DNRTv was just about to hit the scene. I thought to myself “this is a great opportunity” to leverage the audience that Carl already had in place. I did a couple of series on DNRTv and the emails started coming in. I also made sure to point people in the direction of my blog in the hopes of building up a readership. Along with the DNRTv slots, I made a commitment to write a couple of articles that year. This was as simple as buying a copy of the magazine and looking up the editors email address. You will be amazed at how easy it is to throw a suggestion at a user group leader and have them say “OK”. The worst they are going to say is “no!!”, so go for it!!

With the ball rolling on the marketing front, I stepped up the pace by getting into the presentation circuit and delivered presentations using a completely ad-hoc style where I could demonstrate on-the-fly coding to audiences around the world. There was a strategy to this also:

· Start Local

· Go to surrounding cities/states

· Go global

· Show them what you know!!

During this phase of presentations I made it a point to not wait to be contacted to come and do a presentation. In reality, the only groups I was being contacted by were local and surrounding user groups. “Don’t wait for anyone to give you a handout”, figure out your plan of attack and go for your goal. I started contacting every user group and code camp that I was interested in talking at. This was not based on the typical “where is a nice place to visit strategy!!”, but rather a strategy that would ensure a good breadth of coverage. Since I was very new to the circuit I had to reach out directly to each user group / code camp in question and ask them if I could come and speak. Sometimes the answer was “no”, but 98% of the time the user group was more than happy to say “yes, we would love for you to come and speak. Keep in mind, I was not overly established at this time save a few DNRTv appearances, and 1 or 2 articles. Like I always tell people, don’t buy into our microwave culture’s idea of instant results. Set a goal, work diligently towards it, and have patience.

Figure out your plan for training

Fast forward to February of 2007, exactly a year since I first attempted to run my first course! Remember the point above about patience!! I advertised a course in a city a couple of hours from where I lived (Go to surrounding cities/states) and the course completely filled up. I felt extremely blessed by this and know that it was a result of hard work, determination, and several presentations that I had done to the user group in said city (Edmonton, Alberta). This class proved to be the staging ground for what would ultimately become Nothin But .Net. One of the things I learned in this class is that you have to remain “current” if you want to be able to offer people something that is of value. I realized here that classes with completely open formats can be an awesome venue for allowing people to dig into the topics that they may actually want to see. Looking back on that first course it is amazing to see how the course continues to shape and evolve with each successive iteration. Some have been painful, but each has come with a tremendous amount of learning for me!!

From that course in February 2006 (the only course that year) to the first “true” course in February 2007 I have hosted the course publically more than 15 times and privately 5 times. Each iteration of the course has been very different from the next, because each successive course gets to see new techniques that I have been adopting and using the 3 weeks between the last course.

The above point highlights and important question you have to ask yourself. “Do I want to be a full time trainer or will this be something that supplements other work I am doing”. I never wanted (nor do I want) to be a full time trainer. This is why I consult for 3 weeks of the month and do a course for 1 week. There have been times when I have done 2 courses in 1 month, but that has been on a request basis only.

The Heart of a teacher

This brings me to a very important point and question that you need to ask yourself:

· What do I bring to the table?

Outside of the technical offering that my course provides I get much more comments from people on the level of direction and inspiration people glean about life in general. Strategies to not get lost in the sea of information, and charting their own course for learning. As well as how to realize more satisfaction out of their lives in general. I could not share these points to people if it were not for one important fact:

· You truly need to have a heart for teaching, and need to be willing to bare all your secrets to enable the success of others.

There are a lot of people who will start down the training path because they will see big dollar signs and do not truly have a heart for teaching. In time people will recognize this trait and people will stop attending their courses (plain and simple). People can spot authenticity and compassion quickly. They can also spot the reverse of those traits just as fast!!

· How patient are you with people?

· How willing are you to share the “secrets” that you know to enable another person’s success?

· How much are you willing to think about things that are going to enable success far beyond the course of a one week venture?

· How willing are you to share your faults and mistakes to ensure that people can bypass those snares in their own lives?

· How willingly can you accept criticism and use it to shape and improve your future delivery (this has been something that I am constantly doing, and am thankful to the many students who have let me know the time I have fell down).

· How open are you to learning from your students?

The above are all valid points that you need to ask yourself as someone who would want to be a teacher.

The Logistics of training

So you have taken care of the marketing and there is now demand for what you want to offer. How do you figure out the where and the what? There are lots of different strategies for this. I always speak very openly and honestly with people about what some of my goals in life are. When my wife and I were 18 and first married we listed down a set of goals that seemed completely unattainable at the time (we were 18 and living in a fourplex with both of us earning a combined salary of about 1200 month. We both worked in a family dollar store!!). This was our “dreaming big” exercise and we did not let out current situation at the time dictate to us the size of our dreams. One of the to-do items was to be able to have me get a job where our family would be able to travel the world together. It was also at that time that we made a commitment to always travel as a family. Save a couple of local trips and 1 or 2 remote presentations, we have held fast to that commitment. So in complete truth, when it comes to the courses, my predominant strategy has been: “Where have we not been that we would like to go?”!! I float the idea for a course on the blog and see what the responses are. If the initial response looks good I go ahead and advertise the course.

For course registration I use acteva.com. It is a very simple service that charges you $100 for each course that you want to provide registration for. They also charge a per transaction fee for credit card processing. Outside of that, the administrative side is very simple. Once people register I get an email confirmation about their registration and the correspondence can begin.

For the venue, this is something that has been a constant learning process for me. The current favorite is to host the course in a hotel conference room. This has become a hit with my course as, because of the day length (often stretching into 1:00AM), people can stay in the hotel the course is being booked. Depending on the hotel and location the venue cost has typically been anywhere between $3000 -$10,000 dollars for the week. This is excluding meals.

I decided early that I was going to ensure that people were well fed during the course of the week. Even though people come expecting to receive meals, they are often blown away by then fact that we often do not hold back when it comes to lunch and supper. We will often, during the course of the week eat at very nice restaurants (time permitting of course). The reason for this is simple:

· Exceed people’s expectations.

· It feels awesome to be able to bless people in this way.

One of the other valuable benefits about going out for a meal at lunch and supper is to allow for a change of scenery, which also provides an often inviting atmosphere for people to sit and chat about what they are doing with their lives. There will be many times in a course where people will make a point of ensuring that they sit with a different person for each successive meal, as to ensure that they get an opportunity to chat with as many people as possible.

For people who have been following the course, they will also note that one of the requirements is for people to bring their own laptops. This has served a dual benefit of:

· Not needing to find dedicated labs. These can be a bit more difficult to find and often you are at the mercy of the schedule that they have in place. This can be a problem if your course hours stretch beyond the realm of their operational hours.

· Being able to more clearly demonstrate a build automation process catering to disparate machine setups!! As everyone in the class will typically be coming in with very different machine configurations.

Along with the venue, and meals, it is also beneficial to ensure that you throw in a couple of freebies for attendees so that they can feel like they are walking away with just a little more than the knowledge that you have transferred through the course of the week. Currently in Nothin But .Net, I make sure that people walk away with the following:

· Screencasts of all of the coding that I do during the course of the week. This usually ends up being anywhere from 4GB – 6GB of Camtasia footage!!

· Amazon gift credit (currently $70)

· One of the following choices:

· ReSharper 4.0

· VisualSVN

· Extra amazon credit above the regular allotment.

· T-Shirt/Hat – I survived JP Boodhoo’s Nothin But .Net Developer Bootcamp!!

Beyond actually having good material (which is absolutely necessary), the little extras like nice meals and freebies will ensure that attendees will have positive things to say about the course in general (unless they did not like the course!!).

Finally on the logistics front you will be well served if you get your family involved in the process so that you are not stretched too thin. My wife currently takes care of all venue arrangements for the course so that I can focus on other tasks. Delegation is the key to focusing your energies where they need to be!!

In Summary

I hope this post has demonstrated one thing:

“There is no magic formula to get started doing your own developer training course”

You just have to make the controlled, steady steps toward making it a reality. These are simply:

· Determine your motivation for teaching and whether it is something you should be considering

· Know your strengths – This can help you determine what you are going to be offering

· Build Your Brand – Blog, present, write articles, contribute to open source

· Deal with the logistics – Use services like acteva to handle the registration process for you.

· Start the delivery!!

I am hoping that this post can serve as a catalyst to all of the developers out there who are teetering on the fence as to when and how to get started in this process.

Just make sure you remember to enjoy the journey!!

Develop With Passion!!

Comments [1] | | # 
 Wednesday, July 16, 2008
Wednesday, July 16, 2008 7:59:07 AM (Mountain Standard Time, UTC-07:00) ( ScreenCasts | Training )

This is a quick post to announce that jpboodhoo.com will soon be launching a screencasts tab, where people will be able to download/watch videos of coding sessions that myself and people that I collaborate with are working on. It is going to be a fairly informal place to host material that is much better shared in screencast format.

One of the things that you can expect to see on this tab are screencasts of all of the presentations I will do from this point forward. Even though I said I would be doing my last public presentation in Orlando, one of things that I clarified in a comment was that if invited to speak at a user group, I would definitely consider it. I am just not going to seek out presentation spots anymore, to maintain inline with my current working set of goals.

The presentation that I am doing on Thursday at the Orlando .Net User Group, will be screencasted and made available on my site for people to download and watch at their leisure.

The screencasts tab should launch by the end of next week at the latest!!

Develop With Passion!!

Comments [1] | | # 
 Saturday, July 12, 2008
Saturday, July 12, 2008 4:44:01 PM (Mountain Standard Time, UTC-07:00) ( Training )

In September, I will be in Dusseldorf giving another iteration of my Nothin But .Net bootcamp. I am already anticipating that there will be a fairly good turnout of people. Registration can be done here.

One of the great thing about this class is the high level of interaction that occurs between the students that participate. I encourage (ok, mandate) that most of the exercises in class be done in teams of 2 at a minimum. During the course of the week people are encouraged to mix it up so that they can get the opportunity to learn from other people in the class also.

For more information about the course check out the following resources:

If you plan on attending the course you can expect the following:

  • 5 Intense days of 12 hour coding sessions (minimum day length is 12hours)
  • Lunch and Dinner (usually at really good restaurants, time permitting)
  • $70 Amazon gift credit
  • VisualSVN,ReSharper, or another $70 Amazon gift credit.
  • Lots of practical exposure to many developer practices:
    • Build Automation
    • Behavior Driven Development
    • Interaction Based/State Based Testing
    • Fearless coding using BDD
    • Top Down Development (quickest way to get user sign-off)
    • Design Patterns
    • Iterative, incremental development
    • Aggressive refactoring
    • OO Fundamentals
  • Screencasts of the entire week, so that you can replay it back (potentially at a much slower pace!!)

 

  • As well as the technical side of the course, you can expect to hear me ramble about any of the following!!
    • Tips and tricks on time management, cutting out the noise, re-establishing your focus
    • Tips and tricks for lifestyle design, and leveraging your career to truly start living
    • Where did the fun go in what we are doing?
    • Becoming a keyboard freak!!

If you are thinking about registering, don't hesitate, sign up now for what may be a potentially "career and life altering experience" (paraphrased from many students who have taken the course).

 

Develop With Passion!!

Comments [1] | | # 
 Wednesday, June 11, 2008
Tuesday, June 10, 2008 11:06:10 PM (Mountain Standard Time, UTC-07:00) ( Training )

Thanks to the attentive eye of Phil Haselden I have recently changed the date of the October edition of Nothin But .Net so that it no longer conflicts with Microsoft PDC.

The course will now run the week prior to PDC (20th - 24th).

Develop With Passion!!

Comments [0] | | # 
 Friday, May 30, 2008
Friday, May 30, 2008 6:12:35 AM (Mountain Standard Time, UTC-07:00) ( Training )

In order to post this out there publicly so that more people can potentially benefit from it, this post contains a set of materials that I use to prepare people who come and attend a Nothin But .Net bootcamp. The materials are as follows:

  • developer.tools.list.doc - A list of a lot of good tools that I use on a daily basis.. One of the first things I do in this list is to draw attention to the tool compendium to end them all.
  • developer reading.list.doc - A list of good reading material/exercises that can help get people ramped up with their fundamental developer skillset. Some of the resources that I link to are MIT opencouseware, books, and CodeKata's.
  • public.course.preparation.doc - If you don't ever plan on attending a Nothin But .Net bootcamp, you can skip most of the information in the document. Although, the bottom of the document contains a small OO problem that I use as a way to gauge where peoples OO thinking is at.

Instead of getting overwhelmed in the sea of information that is floating around you, you can choose to get in your boat and chart your own path for continuous, maintainable learning that can fuel you for the duration of your career. I feel that some of the resources in the documents above can give you the tools to potentially help you get started on this journey.

Develop With Passion!!

Comments [4] | | # 
 Tuesday, May 27, 2008
Tuesday, May 27, 2008 2:46:21 PM (Mountain Standard Time, UTC-07:00) ( Training )

A venue change has occurred as the original hotel could not provide us with the room for the whole day on the Thursday!!

The course in Vancouver next month is now going to be held at the Empire Landmark Hotel. I am pretty excited, as the space we are being given is pretty spectacular.

If you are planning on attending, sign up here. If you happen to book a room in the hotel itself (recommended) make sure that you mention that you are attending Nothin But .Net and you will receive a $30 discount on the room.

I apologize for any inconvenience.

Develop With Passion!!

Comments [0] | | # 
 Thursday, May 08, 2008
Thursday, May 08, 2008 1:19:20 PM (Mountain Standard Time, UTC-07:00) ( Training )

With the window for registration for the Toronto course soon coming to a close, it is time to start registration for another iteration of Nothin But .Net to be held in Vancouver. You can register for the course here. Like all of the recent public courses, this course will also be held in the conference room of a hotel, so travelers will be able to stay in the hotel the course is being hosted in. This statement is also known as : prepare for long days!!! We are blessed to be able to have the beautiful Empire Landmark Hotel at our disposal, this will give us some great lunch and dinner options (remember, you don't have to pay for any of the meals) as well as some potentially nice walks near the ocean!!

I am anticipating that this class will fill up fast, so if you are ready to take your skills to the next level, register today!!

Overview

Nothin But .Net is a five day (intense) boot camp style course that will focus on applying .Net development best practices in the context of developing a working N-Tiered application. Registrants will learn about how to practically apply.Net as they apply it to the task of building a complete application from the UI layer all the way down to the mapping layer.

 

WARNING!!!!

If you are expecting to come to this course to learn about how to have VS.Net automatically generate an “application” for you, then this course is NOT for you.

This course is all about taking control of the .Net framework and having it work the way you want. This course will place a heavy emphasis on getting back to the basics and making .Net do things the way you want it to, in a predictable and testable way.

During the course of the week, there will be absolutely no code that gets compiled from within Visual Studio. Studio itself will be relegated to a glorified code editor. I will teach you development techniques and tools 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 vs. the typical databinding/designer magic covered by many typical .Net courses. You will walk away with a deep understanding of fundamental aspects of .Net and how these pieces can be used to develop and deliver enterprise scale applications.

Core Concepts Overview

*        Expand the capabilities of developing with VS.Net - Enter ReSharper (a productivity add-in for Visual Studio .Net)

*        There’s more to development than code generators

*        Automated Builds       

*        Generics ( they’re not just for collections )

*        Object Relational Mapping in .Net

*        Creating layered architectures

*        Driving out functionality and design through testing

*        Taking Control Of Databinding

*        Test Driven Development & Mock Objects

*        Core Design Patterns Applied

 

Detailed Topic Coverage Breakdown

·          Language Enhancements

o    Generics

o    Anonymous Delegates

o    Iterators

o    Linq

·          Collections

o    Taking advantage of the collection interfaces

o    Making use of the IDictionary<T> and IList<T> interfaces.

o    Overcoming the limitations of the IList<T> interface

o    Sorting, searching, and manipulating collections using generic delegates

o    Overcoming limitations of searching with generic delegates

o    Creating custom comparers

·          Events

o    Delegates in depth

o    Creating classes that expose events

o    Safely publishing events

o    Multithreading with delegates

·          ADO .Net

o    Creating a Custom Object Relational mapping layer

o    Effective uses of TransactionScope to test the mapping layer

o    Eliminating the need for stored procedures

o    Effective techniques for querying data

·          ASP.Net

o    Master Pages

o    Passing Data Between Pages

o    Taking Control Of Databinding

o    Validation Techniques

o    Leveraging Front Controller Architecture styles for cleaner separation of concerns.

o    Saying goodbye to WebForms

o    MVC vs MVP vs SC

·          OO Practices & Principles

o    Dependency Inversion

o    Single Responsibility

o    Open Closed

o    Hollywood

o    Tell Don’t Ask

o    Encapsulation

o    Polymorphism

·          Patterns

o    Layered Architecture

o    Data Transfer Object

o    Supervising Controller

o    Passive View

o    Notification

o    Static Gateway

o    Unit Of Work

o    Mapper

o    Gateway

o    Domain Model

o    Null Object

o    Proxy

o    Adapter

o    Abstract Factory

o    Event Aggreagor

o    Service Layer

o    Façade

o    Visitor

o    Decorator

o    Composite

o    Front Controller

o    Notification

·          Testing

o    Using Automated Testing Frameworks

o    Dependency Based/Interaction Based

o    TDD as a design tool

o    Applied Test Driven Development

o    Avoiding over specification problems with Interaction Based Testing

o    Test Partitioning

o    Different types of testing (Integration,Acceptance,Unit)


Recommended Prerequisites

This is an intermediate to expert level course. In order to walk away with the most benefit from the course the following list outlines key prerequisites and the level of knowledge that people would be best served entering the course with:

 

*        Knowledge of the C# syntax (Strong)

*        Knowledge of the .Net event/delegate architecture (Moderate/Strong)

*        OO programming concepts (Moderate/Strong)

*        Domain Driven Design (Cursory)

*        Refactoring (Cursory)

*        Design Patterns (Cursory)

*        Automated Testing Frameworks (Cursory/Moderate)

*        Test Driven Development (Cursory)

*        Utilizing Events and Delegates in .Net (Moderate/Strong)

*        Manipulation of core ADO.Net objects (Moderate/Strong)

*        Build Automation (Cursory)

 

**********Please be aware that the length of course days (based on prior iterations of the course) can fluctuate dramatically based on the level of student interaction. It is best to come ready expecting the course days to be no less than 10 hours.************

 

Intended Outcomes

Upon completion of this course students should be equipped with a practical, applied understanding of the following concepts:

 

*        Interface Based Programming

*        Design By Contract

*        Test Driven Development

*        Layered architecture

*        Object Oriented Programming

*        Design Patterns

*        Unit Testing

*        Interaction vs. State Based Testing

*        Dependency Injection

*        Object Relational Mapping

*        Domain Driven Design

*        Build Automation

People are required to bring their own laptops capable of running:

  • Windows XP w/SP2 & IIS 5.0
  • SQL Server 2005 Developer Edition
  • Visual Studio 2008 Professional Edition
  • TortoiseSVN
  • ReSharper 3.x / 4.0
  • TestDriven .Net

What is Included In The Price For The Course?

  • 5 - 10 + Hour Days Of Coding Madness
  • Breakfast, Lunch, And Supper
  • Screencasts of the entire week of coding, so that you can replay anything that we blast through too quickly
  • All code artifacts generated throughout the course of the week
  • ReShaper 4.0 License
  • $70 Amazon Book E-Gift Card
  • T-Shirt - I survived Jean-Paul Boodhoo's .Net Bootcamp!!

WARNING……………This is a very intense week. Your mind will not have very much in the way of downtime. Days in past courses have gone anywhere from 10 – 20 hours in length!!

One side goal of the course is to leave people feeling a lot more empowered and energized to do their jobs!! Develop with passion is not just my tagline, it is something that I personally believe in!!

If you are interested then sign up here.

Develop With Passion!!

Comments [2] | | # 
Wednesday, May 07, 2008 11:11:43 PM (Mountain Standard Time, UTC-07:00) ( Training )

The title of this post alludes to a topic I thought I would go about sharing with people. Having seen the success of the Nothin But .Net series of courses (Lord willing, that will continue!!) I am firmly in the trenches of believing that grassroots, independent training is a very successful model for delivering top quality training material to people all over the world.

I am not going to spend time crafting this post unless there is significant interest (as you can imagine, I have lots of other stuff to do). If there is interest I thought I would share some of the things that I have learned over the course of the last 1.5 years.

I have definitely learned a lot of lessons, and made a lot of mistakes!! If there are any words of wisdom that I can potentially pass onto other people who are looking at branching out into training, then I will gladly share them!!

Develop With Passion!!

Comments [20] | | # 
 Wednesday, May 07, 2008
Wednesday, May 07, 2008 10:53:29 PM (Mountain Standard Time, UTC-07:00) ( Training )

I just received a question from someone who asked:

"What do I get if I register for a Nothin But .Net course?

This is definitely something that I have not really spent a lot of time discussing, and most often people are made fully aware of the "take away's" upon actually attending. So for the sake of trying to adhere to the DRY principle, I will state it here and hope that people interested will see the value add.

When you register for a Nothin But .Net Course you receive the following:

  • Breakfast, Lunch, And Supper for the entire 5 days of the course (the only meal missed is breakfast on the first day).
    • I have tried catered meals in some courses, but it most usually ends up being lunches where we walk to a nearby restaurant to get a bit of fresh air and engage in some good conversation. Once of the things I try to encourage attendees to do is to spend time each meal chatting with someone they have not met yet. One of the big values of coming to any form of public training course is from learning from more than just the instructor. There is no better way to do this than through conversation that happens in the rare "downtime"!!

 

  • $70 Amazon E-Gift Card
    • This can be redeemed for any book that you wish to purchase. I usually make a point of mentioning several resources during the course of the week, and often point people at my listmania list for ideas around book purchases.

 

  • ReSharper 4.0 Full License
    • Since I personally make extensive use of ReSharper on a day to day basis, I can't have people leave the class without a license. If they happen to have a copy of ReSharper already, they will receive an additional $70 Amazon gift credit for a total of $140 to spend at amazon.

 

  • Screencasts of all the material developed through the week
    • Because of the fast nature of the course and the vast amount of information attempted to be covered, it can sometimes be hard to keep up. The screencasts can be used as a tool to replay back portions of the course at your leisure anytime after the course is complete. I have talked to past students who have watched the screencasts several times over the course of the year following the course. These screencasts are completely unedited (minus a splash logo for my company) and often include the rants, and motivational talks I try to intersperse throughout the week!!

 

  • All Digital Media
    • This pretty much means the entire subversion repository that is created and added to over the course of the week. On the last day I create a subversion dump file of the entire repository. That way you can recreate the repository on your own machine and see diffs all the way back to the version of the code we started with at the beginning of the week.

 

  • Real World Experience
    • As I am first and foremost a developer, the techniques and strategies that I bring to the table in each course are constantly evolving. This is also why no two Nothin But .Net courses are the same. I will never show you how to do something if I would not personally code that way on my own projects.

 

  • Inspiration and Motivation
    • IMHO this is what past students tell me sets this course in a field of its own. I am truly passionate about development, but that passion pales in comparison for my desire to help other people to succeed. This course reflects a lot of my own life lessons with respect to how to pursue a meaningful career as a software developer and how to motivate and inspire the people that you work with to strive for more.

 

I hope this clears this up. And I hope to see you soon at an upcoming Nothin But .Net Course!!

 

Develop With Passion!!

Comments [2] | | # 
 Tuesday, April 29, 2008
Tuesday, April 29, 2008 7:47:40 PM (Mountain Standard Time, UTC-07:00) ( Training )

There are just a little over 2 weeks left to register for the Toronto session of Nothin But .Net. If you have not heard what past attendees have had to say, take a look at a small sample of some of the comments from the the last course in Austin,TX:

  • I absolutely loved everything about this course. It will undoubtedly be one of the most memorable experiences of my life… well worth the money.

 

  • As advertised, this course was a very intense experience that stretched my programming knowledge and gave me may new techniques to apply to my current development. In addition, it offered a new approach, Behavioral Driven Design, to software development that I believe has the potential to increase productivity dramatically.
    Not to take anything away from J.P. as a developer, he is teaching techniques that I believe any programmer can learn to make programming easier. By raising the level of abstraction, he focuses your effort on small parts of the code so that coding seems almost effortless. Also, by letting the specifications drive the development process; his coding style encourages tight implementations without excess baggage.
    I think that the practice of object-oriented programming with some basic design patterns would move the Microsoft any development community a long way towards creating maintainable software that would change overall quality to the point that broken software would no longer be considered normal

 

  • I can’t say enough about the quality of this class. I have never attended a class, whether it was a week long training course, seminar, self study, or a college level class that was more valuable to me as a programmer. This class has been a very good investment into my career that will pay for itself many times over. The cost of this class was a steal! JP is a first class professional and his class mirrored that professionalism. It was obvious that he wasn’t trying to cut corners and milk out the most profit. This class was not just about knowledge transfer, but about being passionate about programming and taking your skills to the next level and how to actually do it.

 

  • This is one of the best trainings available. I think everyone should take this course as this provides very useful pointers towards becoming a better developer. I think this course has made me more focused than before on my dream towards becoming a better developer.

If you want to break out of a rut for a week, come and spend it with other professionals who are seeking for ways to improve themselves both professionally and personally!!

You can register here: http://jpboodhoo.turnstilesystems.com/ProgramDetail.aspx/NothinButNetTorontoOntario

Develop With Passion!!

Comments [0] | | # 
 Monday, April 21, 2008
Monday, April 21, 2008 5:38:59 PM (Mountain Standard Time, UTC-07:00) ( Training )

What can I say. I could not have asked for a more fabulous group of people to have as a class. The week was full of coding madness, resharper jedi magic, VimFu, and most importantly - amazing conversation between a group of people who are passionate about self improvement!!

It was awesome to have the help of Mo as a great as my TA for the week. He saved me countless numbers of hours by taking care of a bunch of administrative tasks as well as ensuring that the flow was not interrupted whenever machine issues would come up.

Finally, it was excellent to have Scott Bellware come in and give a session on Behavior Driven Development. All of the students were introduced to behavior driven development over the course of the week, as that was how I was teaching them to write their tests. It was excellent to have Scott come in to reiterate and reinforce some of the ideas and implementation behind BDD.

Austin is a beautiful city, and I look forward to hosting another course there sometime in the future!!

Develop With Passion.

Comments [1] | | # 
 Thursday, April 03, 2008
Thursday, April 03, 2008 8:16:44 PM (Mountain Standard Time, UTC-07:00) ( Training )

I just recently switched over my course registration to another location. This will not affect any existing registrants.

The new training site is located here:

http://jpboodhoo.turnstilesystems.com/Programs.aspx/dotnet

This site will stay up to date with all of the upcoming courses that can be registered for.

Develop With Passion!!

Comments [0] | | # 
 Wednesday, March 05, 2008
Wednesday, March 05, 2008 6:49:38 PM (Mountain Standard Time, UTC-07:00) ( Agile | C Sharp | Training )

This is just a message to those people who are interested in attending next months Nothin But .Net session in Austin, TX. There are only 6 spots left. Tell your friends, tell your co-workers. This session promises to be an absolute blast. The attendance roster is varied and will provide for lots of interesting conversation and pair programming opportunities.

You can register for the course here:

http://www.acteva.com/booking.cfm?bevaID=150826

Develop With Passion!!

Comments [1] | | # 
 Tuesday, March 04, 2008
Tuesday, March 04, 2008 1:44:58 PM (Mountain Standard Time, UTC-07:00) ( Training )

Unfortunately the class in Edmonton scheduled for the end of the month has to be canceled due to low registration.

Sorry for the inconvenience.

Comments [2] | | # 
 Wednesday, February 13, 2008
Wednesday, February 13, 2008 2:37:28 PM (Mountain Standard Time, UTC-07:00) ( Training )

Unfortunately due to low numbers the WPF class is going to be cancelled. I apologize to anyone who was planning on registering.

Thanks.

Comments [0] | | # 
 Wednesday, January 30, 2008
Wednesday, January 30, 2008 4:31:58 PM (Mountain Standard Time, UTC-07:00) ( C Sharp | Training )

Another awesome course is entering the lineup for the March timeframe also. Unlike Wendy’s kick butt WPF course which is occuring in New York in the month of March, this course will be a Canuck affair, to be held in the winter wonderland of Edmonton!!

Donald Belcham (aka. Igloo Coder) will be the instructor for the course, and he has a crazy week lined up for the people interested in stepping up for the challenge.

You can register for the course here. Sign up quick, as seating is limited. Here is a description of the course:

Overview

Nothin’ But C# v3.5 is a 5 day boot camp styled course that provides in depth training in the new language features in version 3.5 of the .Net Framework.  Attendees will work with the new features in this version of the Framework to gain an understanding of their operation at a very deep level and aid them in the pragmatic implementation of these tools in their daily development.

While learning to use the new features of .Net v3.5, the students will also be introduced to foundational object oriented programming techniques.  They will learn both how to implement these techniques as well as understanding the benefits that they offer.

By the end of the course you will have knowledge of the new features at a very detailed level.  You will understand the concepts behind their existence, the limitations that they have and how you can use them to write better code in real applications.  None of the concepts will be taught using wizards, drag and drop or templates.  Attendees will be learning how to implement these language features combined with OO best practices and using techniques such as TDD.

Attendees should have a good understanding of programming in .Net and OO practices.  This is not an introductory course for learning to program with .Net.

Core Concepts Overview

  • New language features in .Net 3.5
  • Extension Methods – helping to make fluent interfaces
  •  Lambda Expressions – from refreshers on delegates all the way to the lean lambda
  •  Linq – for SQL, XML, Objects, etc.
  • New User Interface Controls
  •  ASP.NET MVC
  • Object Oriented Foundations

Detailed Topic Coverage Breakdown

·          New Language Features

o    Simple Properties

o    Anonymous Constructors

o    Anonymous Types

o    DateTime2

o    TimeZoneInfo

o    HashSet<T>

o    Active Directory Integration

o    Diagnostics

o    Cross Framework compatibility

·          Extension Methods

o    Using with primitive types

o    Using with complex types

o    Using with enumerations

o    Using to build fluent interfaces

o    How they are interpreted by the compiler

o    Dangers and code smells

·          Lambda Expressions

o    Refresher on Delegates

o    Refresher on Anonymous Delegates

o    Refresher on Predicates

o    Learn the syntax

o    Replacing Anonymous Delegates with Lambdas

o    How are they interpreted by the compiler

·          Linq

o    Linq fundamentals

o    How is Linq interpreted by the compiler

o    Linq to SQL

o    Linq to XML

o    Linq to Objects

o    Linq to Dataset

o    Linq and performance

·          UI Components

o    ListView control

o    DataPager control

·          ASP.NET MVC

o    MVC fundamentals

o    Writing Views

o    Routing

o    Plugging in Inversion of Control containers

o    Testability

·          Object Oriented Foundations

o    Single Responsibility Principle

o    Separation of Concerns

o    Design by Contract

o    Dependency Injection and Inversion of Control

o    Design Patterns

 

Target Audience

This is an intermediate level course that will prepare developers to work with the release of the .Net 3.5 framework.  Attendees should have a working knowledge of .Net and knowledge of the following

  •         Core working knowledge of either Visual Basic or C#
  •         Base grasp of Object Oriented Design principles
  •         High level understanding of SQL Server and XML

Intended Outcomes

Once attendees have completed this course they should have a strong, practical understanding of the following:

 

  • New base language features in the .Net 3.5 framework
  • Lambda expressions
  • Linq for SQL, XML and Objects
  • Extension methods
  • ASP.NET MVC
  • Design by contract
  • Practical application of basic patterns
  • Test Driven Development

 

About The Coordinator

Donald Belcham is a software developer with a strong focus on .NET development platforms.  He has been building application with .NET since the release of version 1.1 of the framework.  More recently Donald has become very active in the developer community as the President of the Edmonton .NET User Group.  The combination of that role and a passion for bettering the skills of any software developer, Donald has become a regular speaker at User Groups, Code Camps and conferences across North America.  He advocates and speaks on the creation of a solid set of foundational object oriented skills and understandings that can then be used with any of the many appropriate tools.  These activities and beliefs have garnered Donald a Microsoft MVP award in C#.

Donald can be reached at donald.belcham@igloocoder.com and via phone at 780.974.5860.  He welcomes open and frank conversations on different development techniques at his website www.igloocoder.com

Once again, you can register for the course here. If you have any questions do not hesitate to contact me at jp@jpboodhoo.com

 

Comments [0] | | # 
 Tuesday, January 29, 2008
Tuesday, January 29, 2008 5:40:24 PM (Mountain Standard Time, UTC-07:00) ( Agile | C Sharp | Training )

After lots of requests, Nothin But .Net is finally coming to Austin,Texas!! I am sure that seats are going to sell out fast, so hurry and register here if you want a spot in what will surely be an amazing week of crazy coding!!

Overview

Nothin But .Net is a five day (intense) boot camp style course that will focus on applying .Net development best practices in the context of developing a working N-Tiered application. Registrants will learn about how to practically apply.Net as they apply it to the task of building a complete application from the UI layer all the way down to the mapping layer.

 

WARNING!!!!

If you are expecting to come to this course to learn about how to have VS.Net automatically generate an “application” for you, then this course is NOT for you.

This course is all about taking control of the .Net framework and having it work the way you want. This course will place a heavy emphasis on getting back to the basics and making .Net do things the way you want it to, in a predictable and testable way.

During the course of the week, there will be absolutely no code that gets compiled from within Visual Studio. Studio itself will be relegated to a glorified code editor. I will teach you development techniques and tools 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 vs. the typical databinding/designer magic covered by many typical .Net courses. You will walk away with a deep understanding of fundamental aspects of .Net and how these pieces can be used to develop and deliver enterprise scale applications.

Core Concepts Overview

*        Expand the capabilities of developing with VS.Net - Enter ReSharper (a productivity add-in for Visual Studio .Net)

*        There’s more to development than code generators

*        Automated Builds       

*        Generics ( they’re not just for collections )

*        Object Relational Mapping in .Net

*        Creating layered architectures

*        Driving out functionality and design through testing

*        Taking Control Of Databinding

*        Test Driven Development & Mock Objects

*        Core Design Patterns Applied

 

Detailed Topic Coverage Breakdown

·          Language Enhancements

o    Generics

o    Anonymous Delegates

o    Iterators

o    Linq

·          Collections

o    Taking advantage of the collection interfaces

o    Making use of the IDictionary<T> and IList<T> interfaces.

o    Overcoming the limitations of the IList<T> interface

o    Sorting, searching, and manipulating collections using generic delegates

o    Overcoming limitations of searching with generic delegates

o    Creating custom comparers

·          Events

o    Delegates in depth

o    Creating classes that expose events

o    Safely publishing events

o    Multithreading with delegates

·          ADO .Net

o    Creating a Custom Object Relational mapping layer

o    Effective uses of TransactionScope to test the mapping layer

o    Eliminating the need for stored procedures

o    Effective techniques for querying data

·          ASP.Net

o    Master Pages

o    Passing Data Between Pages

o    Taking Control Of Databinding

o    Validation Techniques

o    Leveraging Front Controller Architecture styles for cleaner separation of concerns.

o    Saying goodbye to WebForms

o    MVC vs MVP vs SC

·          OO Practices & Principles

o    Dependency Inversion

o    Single Responsibility

o    Open Closed

o    Hollywood

o    Tell Don’t Ask

o    Encapsulation

o    Polymorphism

·          Patterns

o    Layered Architecture

o    Data Transfer Object

o    Supervising Controller

o    Passive View

o    Notification

o    Static Gateway

o    Unit Of Work

o    Mapper

o    Gateway

o    Domain Model

o    Null Object

o    Proxy

o    Adapter

o    Abstract Factory

o    Event Aggreagor

o    Service Layer

o    Façade

o    Visitor

o    Decorator

o    Composite

o    Front Controller

o    Notification

·          Testing

o    Using Automated Testing Frameworks

o    Dependency Based/Interaction Based

o    TDD as a design tool

o    Applied Test Driven Development

o    Avoiding over specification problems with Interaction Based Testing

o    Test Partitioning

o    Different types of testing (Integration,Acceptance,Unit)


Recommended Prerequisites

This is an intermediate to expert level course. In order to walk away with the most benefit from the course the following list outlines key prerequisites and the level of knowledge that people would be best served entering the course with:

 

*        Knowledge of the C# syntax (Strong)

*        Knowledge of the .Net event/delegate architecture (Moderate/Strong)

*        OO programming concepts (Moderate/Strong)

*        Domain Driven Design (Cursory)

*        Refactoring (Cursory)

*        Design Patterns (Cursory)

*        Automated Testing Frameworks (Cursory/Moderate)

*        Test Driven Development (Cursory)

*        Utilizing Events and Delegates in .Net (Moderate/Strong)

*        Manipulation of core ADO.Net objects (Moderate/Strong)

*        Build Automation (Cursory)

 

**********Please be aware that the length of course days (based on prior iterations of the course) can fluctuate dramatically based on the level of student interaction. It is best to come ready expecting the course days to be no less than 10 hours.************

 

Intended Outcomes

Upon completion of this course students should be equipped with a practical, applied understanding of the following concepts:

 

*        Interface Based Programming

*        Design By Contract

*        Test Driven Development

*        Layered architecture

*        Object Oriented Programming

*        Design Patterns

*        Unit Testing

*        Interaction vs. State Based Testing

*        Dependency Injection

*        Object Relational Mapping

*        Domain Driven Design

*        Build Automation

People are required to bring their own laptops capable of running:

  • Windows XP w/SP2 & IIS 5.0
  • SQL Server 2005 Developer Edition
  • Visual Studio 2008 Professional Edition
  • TortoiseSVN
  • ReSharper 3.x / 4.0

WARNING……………This is a very intense week. Your mind will not have very much in the way of downtime. Days in past courses have gone anywhere from 10 – 20 hours in length!!

One side goal of the course is to leave people feeling a lot more empowered and energized to do their jobs!! Develop with passion is not just my tagline, it is something that I personally believe in!!

If you are interested then sign up here.

Comments [2] | | # 
 Wednesday, January 16, 2008
Wednesday, January 16, 2008 8:40:37 AM (Mountain Standard Time, UTC-07:00) ( Training )

As promised, 2008 is the year that new courses get brought into the mix. I am happy to announce that Wendy Friedlander has jumped on as a trainer with the Nothin But * line of courses and is going to be offering a new course strictly targeting developers wanting to learn how to pragmatically utilize WPF.

You can register for the course here.

Here is an overview:


Nothin But WPF is a five day boot camp style course that will focus on applying WPF development best practices in the context of developing a working application. Registrants will learn about how to practically apply WPF as they apply it to the task of building a complete application with focus on a WPF user interface and design patterns.

WARNING!!!!

If you are expecting to come to this course to learn about how to have VS.Net automatically generate an “application” for you, then this course is NOT for you.

If you are expecting to come to this course to learn how to make cool widgets or animations, then this course is NOT for you.

This course is all about leveraging and understanding of the .Net WPF framework and having it work the way you want. This course will place a heavy emphasis on creating user interfaces that provide an enriching experience in a predictable, creative and testable way.

There will be no use of any designers and all UI will be hand written xaml. I will teach development techniques and wpf patterns 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 instead of the designer magic covered by many typical .Net courses. You will walk away with a deep understanding of fundamental aspects of WPF and how these pieces can be used to develop and deliver enriching, fun applications.

Core Concepts Overview

*        Expand the capabilities of developing with VS.Net - Enter ReSharper (a productivity add-in for Visual Studio .Net)

*        There’s more to WPF than elaborate interfaces
*        XAML UI Elements     
*        ItemsContainers
*        Custom Controls
*        Styles and Resources
*        DataBinding
*        Commands
*        Deployment

About The TEACHER: WENDY FRIEDLANDER

Wendy Friedlander is a software developer and agile evangelist. Over the past few years she has introduced companies to user stories, iterative planning, test driven development and other agile practices. She has worked on agile teams that embrace XP practices, including pair programming, CI and TDD. Working in these environments has ensured her success as a mentor and deep understanding of team dynamics. In addition to her interest in agile team interaction, Wendy is an expert in test driven development, object oriented design and C#, including Threading, Remoting, WebServices, WinForms and WPF. She offers consulting and agile coaching through her company, Agile Solutions LLC. When she is not developing, writing or speaking about agile, she enjoys spending time with her husband and family.


Seats will fill up fast so hurry here and register while there is time!!

Comments [0] | | # 
 Monday, January 14, 2008
Monday, January 14, 2008 2:37:59 PM (Mountain Standard Time, UTC-07:00) ( Training )

With the requests coming in,  and not having enough dedicated time to get the production training site up and running quickly, I thought I would point people to a location where they will be able to see all of the courses that are upcoming for the 2008 year.

This list will continue to update over the course of the year.

I am personally excited to introduce the following (confirmed) new courses for the 2008 year:

Some other trainers that have committed to delivering courses as early as this year are:

The goal of this training outfit is to deliver practical, hands on training that is delivered by seasoned experts who are active practitioners in the field.

If you are interested in having any of the training offerings delivered on-site at your company, please contact me and we can begin discussions as to how to make it happen.

Keep posted to the schedule (feed coming soon!!)

Develop With Passion!!

Comments [3] | | # 
 Tuesday, January 08, 2008
Tuesday, January 08, 2008 2:05:56 AM (Mountain Standard Time, UTC-07:00) ( Agile | Training )

After lots of months of planning discussions and idea tennis; I am pleased and proud to announce my good friend Jonathan Rasmusson has come on board the Nothin But * Training banner. He comes armed with his own Agile Project Management training course that I am positive is going to take the market by storm.

People who know me are aware of the fact that I am very picky about the people that I choose to work and collaborate with. I need to ensure that the training delivered to people who engage jpboodhoo.com and the Nothin But * brand is of the highest quality, taught by active practitioners in the field. Having worked with Jonathan on projects in the past, I can personally attest to his level of excellence in the arena of Agile Project Management.

If there was ever a time that you though you needed to get an idea for what it truly means to run an agile project, March will be a good time to check out the beauty of Calgary whilst immersing yourself in what will definitely be an amazing week of agile deep diving!!

The course registration link can be found here. The description of the course is as follows:

Overview

As more companies introduce elements of agile delivery practices into their organizations, it is imperative that leaders be knowledgeable and informed on their effective application.

Whether you are new to agile, or just looking to improve, this intensive 4 day course is specifically designed to give you the hands on training required to successfully manage and deliver agile projects within your organization.

Core Concepts Overview

Agile Intro

  • Agile in a nutshell
  • Agile’s roots and history
    • Where did agile come from?
    • What makes agile different?
    • How does agile compare with traditional forms of delivery?
  • Principles behind the practices
    • What are the principles that underpin the practices?

Agile Project Inception

  • How to setup your project for success
    • How to start your first agile project.
    • 10 things to do before starting any project.
    • How to make sure everyone is on the bus.

Agile Project Execution

  • Fundamentals on agile project execution
    • Role and responsibilities
    • Team practices
    • Iteration/Release Planning
  • Building the first plan
    • Story gathering
    • Estimation/Prioritization
  • Iteration mechanics
    • Analysis/Development/Test
    • Communication & Collaboration
  • Tracking
    • How and what to track?
    • Big visible charts
    • Effective status reports
    • Continuous improvements through retrospectives

Agile Project Wrap-up

  • Transitioning to support
  • Documentation
  • Agile myths

Course Pre-Requisites

  • A positive attitude
  • A willingness to share, learn and grow
  • Ability to play games and have fun

About the teacher : Jonathan Rasmusson

As an active participant in the Agile community since 2000, Jonathan has extensive experience as a developer, architect, and project manager on the application and execution of Agile projects.

With experience introducing agile practices at Fortune 500’s (British Petroleum and Microsoft), to startups (Cambrian House), Jonathan is uniquely qualified to help those interested in learning how to successfully setup and execute agile projects.  As a former agile evangelist at ThoughtWorks, Jonathan travelled extensively helping companies introduce and apply agile delivery techniques to their unique situations.

Register Now – Introductory Offer

 

Because this is the first time this course is being offered, sign-up now for the one time low price of $1000 USD (regular price $2500).

 

This includes:

  • all printed media
  • lunches / coffee
  • and 4 days of incredible learning and growth

 

Register now. Spot's are limited and this course will fill quickly at this one time low price.

Course Registration

  • The course registration link can be found here

If you have any questions please don’t hesitate to contact me at jp@jpboodhoo.com.

 

Comments [0] | | # 
 Friday, November 16, 2007
Friday, November 16, 2007 9:35:02 AM (Mountain Standard Time, UTC-07:00) ( Training )

I made an error when I posted about the course I will be holding in College Station yesterday. The course that I am going to be offering in college station is a new course that I am delivering titled Nothin But .Net Fundamentals. This course is radically different than my Nothin But .Net course in that it is specifically targeted at people who are new to .Net development or who consider themselves at beginner level.

One of the consistent pieces of feedback I have received from my courses this last year is the apparent firehose effect that comes from me not clearly specifying the prerequisites. In the case for the fundamentals class, there is only one prerequisite:

  • You need to have some familiarity with the C# syntax!!

That’s right. That is the only requirement. As you can imagine, the class and the content that is covered varies greatly from the Nothin But .Net course, where I drill into topics like :

  • Domain Driven Design
  • Test Driven Development
  • ORM
  • Dependency Injection

The fundamentals course is strictly about getting people comfortable developing using the .Net framework as a tool in their toolkit.

I had to post this, in the event that people might sign up for the course accidentally thinking that it was going to be like the other courses I have delivered this past year, and that is not the case.

Please re-read the post that I made (which has now been updated with the correct information) so that you can better understand how this course differs from the original Nothin But .Net course.

Develop with Passion.

Comments [3] | | # 
 Thursday, November 15, 2007
Thursday, November 15, 2007 6:31:10 PM (Mountain Standard Time, UTC-07:00) ( Training )

Nothin But .Net Fundamentals is coming to College Station, Texas for the week of January 7th–11th 2008.

Overview

Nothin’ But .Net Fundamentals is a five day boot camp that will focus on teaching people a core understanding of how to get started developing with the .Net Framework. This course is intended as an introductory class for people who are getting started in .Net development.

This course is all about learning how to take control of the .Net framework and having it work the way you want. This course will place a heavy emphasis on basic structures in the .Net framework getting back to the basics and making .Net do things the way you want it to, in a predictable and testable way.

This course will focus on a code centric view of application development vs. the typical databinding/designer magic covered by many typical .Net courses. You will walk away with a deep understanding of fundamental aspects of .Net and how these pieces can be used to develop and deliver enterprise scale applications.

Core Concepts Overview

  • Expanding the capabilities of developing with VS.Net - Enter ReSharper (a productivity add-in for Visual Studio .Net)
  • Generics ( they’re not just for collections )
  • Deep Dive into delegates and events
  • Undestranding the role of the main collection interfaces
    • IEnumerable
    • IComparer
    • IEqualityComparer
    • IComparable
    • IEqualityComparer
  • Reflection
  • Attributes
  • Fundamental Threading Constructs 
  • Understanding ADO.Net
  • The .Net type system
  • Value types vs Reference types
  • Designing your own custom types
  • The role of AppDomains
  • The importance of leveraging unit testing tools
  • Pragmatic Productivity Tools For Developers

One of the main goals of the course is to teach people fundamental knowledge that they should be able to use to leverage .Net more effectively as they go forward. There will be a small application that is used throughout the course of the week to drive home and apply the concepts as they are introduced.

Seats are limited. The course costs $2500/US for a full 5 days. The fee covers:

  • 5 (8 - 14 hour days, depending on the audience availability) of bootcamp style instruction
  • Breakfast
  • Coffee Break
  • Hot Lunch
  • Supper
  • $70 Amazon book allowance
  • Software – ReSharper 3.0 License

If you have any questions please don't hesitate to contact me at jp@jpboodhoo.com.

To Register for the course please use the following link:

Comments [0] | | # 
Thursday, November 15, 2007 2:11:13 PM (Mountain Standard Time, UTC-07:00) ( General | Training )

Last week was without question the most amazing iteration of my Nothin But .Net course that I have had the blessing of delivering.

What made last week so different than all the other times that I have taught the course? The level of interaction and knowledge sharing that was happening between all of the people who came to attend.

People truly were able to let go of any facades that they were holding onto and were able to truly help each other through what was (I feel) a turning point for many people with respect to both their outlook on life and their careers.

One of the high points for me was when we had taken a supper break at a local Wendys. I was standing in line getting ready to pay, I looked out into the restaurant and every single person was sitting with someone who they did not work with. Keep in mind, that there were several companies who attended this course (one company had 5 people in attendance). This further solidified in my mind that people were truly there to share their own experiences with trying to get into this “Alt.Net” world. I was just the vessel to allow the communication to start. Once people got talking, I got to bask in the glow of the results of the amazingly high levels of interaction that happened.

One of the other things that I started doing last week was the pairing hotseat. If someone did not want to just watch me type, and they felt that they could “make the test pass”, they were welcome to come up into the pairing hotseat and take a stab at getting the test to pass. If they took too long, they were booted out, and somebody else took their place. Because of the comfort level in the room, with no-one needing to prove that they knew more or less than they did, it made for a very fluid experience.

I know that I said that I would no longer post about this kind of stuff on my blog, but you know what, I have to post about it. For this season in my life, this course and the impact that I have been able to have on both the professional and personal lives of people that I come in contact with is something that I know has been a direct blessing from the Lord.

A quote that I just received from a recent attendee sums it up very nicely:

Reading other’s comments about the course being a career and life changing event may sound ‘mushy’ and exaggerated at the very least, but until someone attends JP’s ‘Nothing but …’ course they will not realize that it may in fact be true”

I wake up each day and thank God for this opportunity and this season. I don’t know if I will be still doing this type of training a year from now, but during this season I am going to deliver 110% of myself when I am engaged in these training sessions so that I can hopefully continue to have a powerful impact on the lives of people that I encounter.

 

Comments [2] | | # 
 Sunday, November 11, 2007
Sunday, November 11, 2007 5:48:00 AM (Mountain Standard Time, UTC-07:00) ( .Net 2.0 | .Net 3.0 | Agile | C Sharp | Programming | Training )

A lot of people will probably say it is about time!! I am taking the source code that just got driven out from this last week of Nothin But .Net and I am going to make it publicly available from my blog. I am hoping to release it by the end of the week. The reason that I can’t release it yet, is that there are lots of concepts that I wanted to cover in class that I did not have time too, so I am going to spend a bit of time fleshing out the code base to include all of the concepts that were missed (by student request)

Keep in mind that Nothin But .Net is a course about fundamental software development practices with a bit of a .Net slant. Here are some of the things you will be able to see in the code base:

  • How Test Driven Development was used to drive out the functionality of screens in the application in a top down fashion
  • The benefit of using Data Transfer objects not as a marshaling tool, but as a tool to let the needs of the UI not influence unecessary changes to the domain model
  • The benefits of leveraging layered architecture
  • Why you don’t need lots of projects in your enterprise solutions if you are using an automated build (take  a look at the following screenshot to get an idea for the solution structure
  • Clean Front Controller implementation so that you can eliminate the need for messy Passive View/Supervising Controller implementations just for testability of the web form world
  • Good practices around mixing both interaction and state based testing
  • Test partitioning (integration, unit, acceptance)
  • My current project build structure
  • How to avoid the overspecification problem with interaction based testing
  • Rhino Mocks and leveraging the automocking container (thanks James for getting me hooked on this thing)
  • Fluent Interfaces
  • Build Automation
    • NAnt compilation as an effective tool for pruning dead code that studio does not show
    • NAnt as a build tool
    • NAnt as your compiler and test runner
    • Build file partitioning
      • Use of filesets
    • Machine agnostic build files through use of local property files
  • Unit Testing
    • Focusing on one thing at a time
    • Incremental testing
    • Breaking reliance on setup methods
  • MBUnit
    • Decorators used effectively
  • Design Patterns
    • Visitor
    • Factory
    • Data Transfer Object
    • Adapter
    • Proxy
    • Mapper
    • Unit Of Work (lots of people have been bugging me about this for a while)
    • Lazy Loading
    • IOC
    • Gateway (and Static Gateway)
    • Service Layer
    • Identity Map
    • Data Mapper
    • Database Gateway
    • Money
    • Null Object
    • Strategy
    • Composite
    • Command
    • Template View
    • Query Object
    • Specification
    • Domain Model
    • Separated Interface
  • Design Principles
    • Single Responsibility
    • Open Closed principle
    • Dependency Inversion Principle
    • Hollywood principle
    • Tell Don’t Ask

I am sure I am missing lots in the description above, but you get the general idea. The important thing to note, is that all of the code (except for the changes I am making this week) was driven out through the course of the one week bootcamp!!

I am going to spend a couple of days ensuring that it contains as much code as possible for an initial drop, with full end to end functionality in place.

Going forward, this code will serve as a good place for me to be able to demonstrate in a public arena, concepts that people email me and ask me questions about. This way, I won’t have to spend as much time blogging, people can send me a question about something they are having problems with, I can implement the solution in the codebase and they can see how I attacked the problem from a test first perspective.

I envision this as being a very organic application. I am going to use it as a public tool to share whatever knowledge I have with as many people as possible.

When I post the code I will make sure I post a little about the application and why I feel that it will serve as a good tool to both teach and practice.

Comments [8] | | # 
 Monday, September 03, 2007
Sunday, September 02, 2007 11:02:08 PM (Mountain Standard Time, UTC-07:00) ( Training )

You are probably looking at the title of this course and wondering ‘What is he talking about’? Many readers of this blog are aware of the fact that I am a born again Christian. To this end one of my core values and beliefs has been a simple phrase : “Blessed to bless”. One of the thoughts that has been running through my head ever since I started teaching the Nothin But .Net courses is a way that I can make a difference not just in the lives of developers that I come in contact with, but also the community in general.

This is where Nothin But .Net – Help The Homeless edition comes into play. Every year in Calgary at winter time; the temperature drops from anywhere between -15 to -40 celcius. This is also a time of year where homeless shelters and drop in centers in and around Calgary get flooded with scores of people who would not be able to survive the night on the streets. As you can imagine, the resources that it takes to coordinate the shelter and food for these people is a big task. There are several shelters in Calgary that try to make this time of year a blessed occasion for those less fortunate, and I want to do my part to help them do their job and spread a little of God’s love and warmth during the Christmas season.

Ok JP, what does this course have to do with any of this? Here it is. All proceeds for this course (100%) will go to a number of the shelters in the Calgary area. I will be working with a friend who works with the homeless in and around Calgary, and he will be making the decision as to which shelters will require the resources most. The reason for the November timing, is so that funds can be made available to the shelters as close to Christmas as possible.

When I say 100% this means that any fees that I incur for hosting the course such as :

  • Venue
  • Books
  • Licenses
  • Meals

Will all be paid for by my company. I am trusting in God to help me take care of what I need to take care of thus allowing all of the proceeds to go to those who really need it. I am also going to be talking with local (and remote) companies to see if they are willing to make pledges based off the total amount of money raised by the course. For example, since Calgary is made up of a lot of oil and gas companies, I am hoping to approach a couple of them and see if they would be interested in some form of money matching. It does not have to be dollar for dollar, but any little bit will help ensure that we can give as much back to the community as possible.

So spread the word about this course, I am hoping that it will help make the lives of many homeless Calgarians this Christmas much brighter. Here are the details for the course:

The course runs for the week of November 5th – 9th, 2007.

Overview

Nothin’ But .Net is a five day boot camp that will focus on pragmatically applying .Net within the context of developing a working N-Tiered application. Registrants will learn about advanced features of .Net (2.0/3.0) as they are applied to the task of building a complete application from the UI layer all the way down to the mapping layer.

WARNING!!!!

If you are expecting to come to this course to learn about how to have VS.Net automatically generate an “application” for you, then this course is NOT for you.

This course is all about taking control of the .Net framework and having it work the way you want. This course will place a heavy emphasis on getting back to the basics and making .Net do things the way you want it to, in a predictable and testable way.

This course will focus on a code centric view of application development vs. the typical databinding/designer magic covered by many typical .Net courses. You will walk away with a deep understanding of fundamental aspects of .Net and how these pieces can be used to develop and deliver enterprise scale applications.

Core Concepts Overview

  • Expanding the capabilities of developing with VS.Net - Enter ReSharper (a productivity add-in for Visual Studio .Net)
  • There’s more to life than generated code
  • Automation for the developer
  • Generics ( they’re not just for collections )
  • Back to basics - Rules Of Good Object Oriented Design
  • Dependency Injection
  • Object Relational Mapping in .Net
  • Applying the dependency inversion principle
  • Domain Driven Design
  • Passive View/Supervising Controller (Model View Presenter)
  • Creating layered architectures
  • Driving out functionality and design through testing
  • Taking Control Of Databinding
  • Behavior (Test) Driven Development
  • Core design patterns applied
  • Pragmatic Productivity Tools For Developers

Although the list may look rather daunting, the majority of the bullet points will be covered during the evolutionary design and construction of the sample project.

One of the main goals of the course is to show how to effectively use behavior (test) driven development, design patterns and a solid toolset to develop a portion of a non-trivial application.

The course will allow students to pragmatically apply BDD practices as well as teach people how to utilize fundamental OO concepts and techniques that will allow for them to have cleaner, more loosely coupled architectures. It will also be an opportunity for students to see what is involved in creating applications that utilize a Rich Domain Model,and the supporting infrastructure that is required to use "Plain Old Objects".

I have successfully delivered this course several times with great success. I anticipate that people who are interested will find that this is a very unique course offering, not typical of what is being delivered in the mainstream.

Seats are limited. The course costs $2500/US for a full 5 days. The fee covers:

  • 5 (8 - 14 hour days, depending on the audience availability) of bootcamp style instruction
  • Breakfast
  • Coffee Break
  • Hot Lunch
  • Supper
  • $70 Amazon book allowance
  • Software – ReSharper 3.0 License

If you have any questions please don't hesitate to contact me at jp@jpboodhoo.com.

Requirements

  • You will be required to bring your own laptop ( VMWare / VPC images will be deployed to your machine on day 1 of the course)

To Register for the course please use the following link:

 

Comments [4] | | # 
 Friday, August 24, 2007
Friday, August 24, 2007 2:13:06 AM (Mountain Standard Time, UTC-07:00) ( Training )

The time for registration is fast coming to a close and there are only 4 spots left!! I was a little worried that there were not going to be enough people when literally overnight the attendance jumped!!. So if you want to immerse yourself in an intense and highly challenging week of coding frenzy; sign up for what could potentially be a career transforming week. I could try and describe the week for you, but the words of Kyle Baley sum it up better than I ever could try (thanks Kyle for such a creative and memorable feedback dialog!!):

I’d heard of the movie, Nothin’ But .NET, from many people and director/writer/star, JP Boodhoo, was known to me peripherally but I had yet to see any of his work. So it was with some anticipation and more than a little apprehension that I found my seat in the theatre.

Any trepidation that the film wouldn’t live up to its hype was quickly quashed in the opening scene where the audience is thrust right into the action in a pace that rarely lets up during the entire running time. After a quick exposition of characters, each with recognizable names, such as Collection, Unit Test, Generics, and the enigmatic Event Aggregator, the viewer is thrown into a plot so deliciously dense, it’s all one can do to make it through a screening with your senses intact. Not since Hitchcock’s Vertigo has this reviewer felt so blissfully dizzy.

The script bombards you with story point after story point, each building logically from the last until a thrilling climax that almost appears as if the director is riffing off the top of his head. Experience movie-goers clearly recognize characters they’ve seen before in other movies. Memorable faces like Visitor, Decorator, and Proxy, that, like Tarantino, Boodhoo paints in a fresh way that makes it seem like you are looking at them for the first time. Indeed, he takes them to places few would have considered but in retrospect, you wonder how they could be used any other way.

In summary, this is a labour of love by a filmmaker at the top of his game. Initially, one wonders how Boodhoo can keep up the frenetic pace he sets in the opening. But with a firm grasp of the characters, a keen eye for improvisation, an energy unsurpassed in the industry, and above all, a passion for what he does, Boodhoo clearly has a winner that rises above the pack.

If you have a team of 4 people who would be interested in attending then feel free to contact me directly for a discounted rate. All attendees will receive:

  • License – ReSharper 3.0 (with plenty of instruction during the week on how to use it)
  • $70 Book allowance to purchase any combination of books from amazon.com
  • Five 8–14 hour days of “BootCamp” style training
  • Real World exposure to cutting edge techniques:
    • Build Automation
    • Behaviour Driven Development
    • Domain Driven Design
    • Object Oriented Programming
    • Interface Based Programming
    • Dependency Injection
  • Breakfast
  • Coffee Break
  • Hot Lunch
  • Supper

You will need to bring your own laptops to the course. A VMWare image will be provided to all students who do not have the necessary software on their machine.

You can register here.

Develop With Passion!!

 

 

 

Comments [1] | | # 
 Monday, July 16, 2007
Monday, July 16, 2007 4:56:36 PM (Mountain Standard Time, UTC-07:00) ( Agile | C Sharp | Training )

This year has been an awesome year for allowing me to venture into the training arena. Although I am not a full time trainer (nor do I ever intend to be), I have greatly enjoyed taking a week out of my schedule once a month this year to deliver top tier Agile development training to students all over the US and Canada. For the remainder of the year I will be blessed with the ability to take the course offerings globally with my first course in England scheduled for September.

My focus this year has been on delivering – Nothin But .Net. An intense 5 day course that stretches people to think outside the box of how they typically program and delve into realms they have potentially not event thought about yet:

  • Behavior Driven Development
  • Applied Object Oriented Programming
  • Incremental Design
  • ……

I have greatly enjoyed delivering this course, but feel that it is time to throw some other course options into the fray. With that in mind, here are “some” of the courses that people will be able to request (on demand) for the 2008 calendar year:

  • Nothin But Agile Project Management***
  • Nothin But Virtual Wizardry***
  • Nothin But Build Automation
  • Nothin But An Introduction To Unit Testing
  • Nothin But Test Driven Development
  • Nothin But Domain Driven Design
  • Nothin But Windows Presentation Foundation
  • Nothin But Windows Communication Foundation
  • Nothin But De-mystifying Design Patterns
  • Nothin But Developing With Open Source Frameworks (NHibernate,Monorail,Windsor ….)

It should be noted that not all of these courses are 5 day bootcamps.

This is just a small sample of the offerings, and if your company is in need of training that is focused around a particular application that you are going to be (or are currently) building, all of the courses are completely dynamic and able to adapt very quickly to the needs of the students. I am about a week away from finishing my full blown web site where information on each of the courses will be explained in detail, and where you will also be able to request course offerings that you would like to see.

I am going to be collaborating with people over the next year to offer up a wide group of trainers who all exhibit the values and skills that I would expect of someone able to teach a Nothin But * course. Know that when you engage in one of these courses that your minds will be pushed to the limit for the entire duration of the course.

Being first and foremost a developer, I am still going to be only committed to teaching a course a month so that I can continue to “sharpen the sword” during the remaining weeks of the month. Leveraging collaborators will allow more people to get exposure to what I feel is pivotal training that can completely change your development career, it will also allow more courses to be offered over the course of the year than what I could offer on my own.

Spread the word, Nothin But * is coming your way!!

 

***I am fairly excited about these courses as there is a huge need for some de-mystifying around these areas.

Comments [7] | | # 
 Monday, June 25, 2007
Monday, June 25, 2007 3:52:19 PM (Mountain Standard Time, UTC-07:00) ( .Net 2.0 | .Net 3.0 | Agile | C Sharp | Patterns | Programming | Training )

That’s right folks. Nothin But .Net is coming to New York.

The course is going to be held at TCCIT Solutions.

 The course runs for the week of October 22nd – 26th, 2007.

Overview

Nothin But .Net is a five day boot camp that will focus on pragmatically applying .Net within the context of developing a working N-Tiered application. Registrants will learn about advanced features of .Net (2.0/3.0) as they are applied to the task of building a complete application from the UI layer all the way down to the mapping layer.

WARNING!!!!

If you are expecting to come to this course to learn about how to have VS.Net automatically generate an “application” for you, then this course is NOT for you.

This course is all about taking control of the .Net framework and having it work the way you want. This course will place a heavy emphasis on getting back to the basics and making .Net do things the way you want it to, in a predictable and testable way.

This course will focus on a code centric view of application development vs. the typical databinding/designer magic covered by many typical .Net courses. You will walk away with a deep understanding of fundamental aspects of .Net and how these pieces can be used to develop and deliver enterprise scale applications.

Core Concepts Overview

  • Expanding the capabilities of developing with VS.Net - Enter ReSharper (a productivity add-in for Visual Studio .Net)
  • There’s more to life than generated code
  • Automation for the developer
  • Generics ( they’re not just for collections )
  • Back to basics - Rules Of Good Object Oriented Design
  • Dependency Injection
  • Object Relational Mapping in .Net
  • Applying the dependency inversion principle
  • Domain Driven Design
  • Passive View/Supervising Controller (Model View Presenter)
  • Creating layered architectures
  • Driving out functionality and design through testing
  • Taking Control Of Databinding
  • Behavior (Test) Driven Development
  • Core design patterns applied
  • Pragmatic Productivity Tools For Developers

Although the list may look rather daunting, the majority of the bullet points will be covered during the evolutionary design and construction of the sample project.

One of the main goals of the course is to show how to effectively use behavior (test) driven development, design patterns and a solid toolset to develop a portion of a non-trivial application.

The course will allow students to pragmatically apply BDD practices as well as teach people how to utilize fundamental OO concepts and techniques that will allow for them to have cleaner, more loosely coupled architectures. It will also be an opportunity for students to see what is involved in creating applications that utilize a Rich Domain Model,and the supporting infrastructure that is required to use "Plain Old Objects".

I have successfully delivered this course several times with great success. I anticipate that people who are interested will find that this is a very unique course offering, not typical of what is being delivered in the mainstream.

Seats are limited. The course costs $3000/US for a full 5 days. The fee covers:

  • 5 (8 - 14 hour days, depending on the audience availability) of bootcamp style instruction
  • Breakfast
  • Hot Lunch
  • Book - Patterns Of Application Architecture
  • Software – ReSharper 3.0 License

If you have any questions please don't hesitate to contact me at jp@jpboodhoo.com.

To Register for the course please use the following link:

Comments [2] | | # 
 Wednesday, June 20, 2007
Wednesday, June 20, 2007 9:58:33 AM (Mountain Standard Time, UTC-07:00) ( Agile | C Sharp | Training )

That’s right folks. Nothin But .Net is coming to England. This is especially sentimental for me as I was born and raised in England, and I have been waiting for an opportunity to go back and show my family the wonders of England.

The course is going to be held at the Hilton London Euston. If you are needing a room for the week, the Hilton has offered up a discounted rate for anyone who books a room before the 10th of August. The room rate is 179GBP a night excluding VAT. This rate includes an English breakfast.

 The course runs for the week of September 10th – 14th, 2007.

Overview

Nothin’ But .Net is a five day boot camp that will focus on pragmatically applying .Net within the context of developing a working N-Tiered application. Registrants will learn about advanced features of .Net (2.0/3.0) as they are applied to the task of building a complete application from the UI layer all the way down to the mapping layer.

WARNING!!!!

If you are expecting to come to this course to learn about how to have VS.Net automatically generate an “application” for you, then this course is NOT for you.

This course is all about taking control of the .Net framework and having it work the way you want. This course will place a heavy emphasis on getting back to the basics and making .Net do things the way you want it to, in a predictable and testable way.

This course will focus on a code centric view of application development vs. the typical databinding/designer magic covered by many typical .Net courses. You will walk away with a deep understanding of fundamental aspects of .Net and how these pieces can be used to develop and deliver enterprise scale applications.

Core Concepts Overview

  • Expanding the capabilities of developing with VS.Net - Enter ReSharper (a productivity add-in for Visual Studio .Net)
  • There’s more to life than generated code
  • Automation for the developer
  • Generics ( they’re not just for collections )
  • Back to basics - Rules Of Good Object Oriented Design
  • Dependency Injection
  • Object Relational Mapping in .Net
  • Applying the dependency inversion principle
  • Domain Driven Design
  • Passive View/Supervising Controller (Model View Presenter)
  • Creating layered architectures
  • Driving out functionality and design through testing
  • Taking Control Of Databinding
  • Behavior (Test) Driven Development
  • Core design patterns applied
  • Pragmatic Productivity Tools For Developers

Although the list may look rather daunting, the majority of the bullet points will be covered during the evolutionary design and construction of the sample project.

One of the main goals of the course is to show how to effectively use behavior (test) driven development, design patterns and a solid toolset to develop a portion of a non-trivial application.

The course will allow students to pragmatically apply BDD practices as well as teach people how to utilize fundamental OO concepts and techniques that will allow for them to have cleaner, more loosely coupled architectures. It will also be an opportunity for students to see what is involved in creating applications that utilize a Rich Domain Model,and the supporting infrastructure that is required to use "Plain Old Objects".

I have successfully delivered this course several times with great success. I anticipate that people who are interested will find that this is a very unique course offering, not typical of what is being delivered in the mainstream.

Seats are limited. The course costs $4000/US for a full 5 days. The fee covers:

  • 5 (8 - 14 hour days, depending on the audience availability) of bootcamp style instruction
  • Breakfast
  • Coffee Break
  • Hot Lunch
  • Supper
  • Book - Patterns Of Application Architecture
  • Software – ReSharper 3.0 License

If you have any questions please don't hesitate to contact me at jp@jpboodhoo.com.

Requirements

  • You will be required to bring your own laptop ( VMWare / VPC images will be deployed to your machine on day 1 of the course)

To Register for the course please use the following link:

Comments [5] | | # 
 Tuesday, June 12, 2007
Tuesday, June 12, 2007 9:01:34 AM (Mountain Standard Time, UTC-07:00) ( Training )
I have now secured a location and date/time for a course to be held in Wenatchee, WA for the dates of August 20th-24th. The following is a description of the course with a registration link at the bottom of the page.

 

Overview

Nothin’ But .Net is a five day boot camp that will focus on pragmatically applying .Net within the context of developing a working N-Tiered application. Registrants will learn about advanced features of .Net (2.0/3.0) as they are applied to the task of building a complete application from the UI layer all the way down to the mapping layer.

WARNING!!!!

If you are expecting to come to this course to learn about how to have VS.Net automatically generate an “application” for you, then this course is NOT for you.

This course is all about taking control of the .Net framework and having it work the way you want. This course will place a heavy emphasis on getting back to the basics and making .Net do things the way you want it to, in a predictable and testable way.

This course will focus on a code centric view of application development vs. the typical databinding/designer magic covered by many typical .Net courses. You will walk away with a deep understanding of fundamental aspects of .Net and how these pieces can be used to develop and deliver enterprise scale applications.

Core Concepts Overview

  • Expanding the capabilities of developing with VS.Net - Enter ReSharper (a productivity add-in for Visual Studio .Net)
  • There’s more to life than generated code
  • Automation for the developer
  • Generics ( they’re not just for collections )
  • Back to basics - Rules Of Good Object Oriented Design
  • Dependency Injection
  • Object Relational Mapping in .Net
  • Applying the dependency inversion principle
  • Domain Driven Design
  • Passive View/Supervising Controller (Model View Presenter)
  • Creating layered architectures
  • Driving out functionality and design through testing
  • Taking Control Of Databinding
  • Behavior (Test) Driven Development
  • Core design patterns applied
  • Pragmatic Productivity Tools For Developers

Although the list may look rather daunting, the majority of the bullet points will be covered during the evolutionary design and construction of the sample project.

One of the main goals of the course is to show how to effectively use behavior (test) driven development, design patterns and a solid toolset to develop a portion of a non-trivial application.

The course will allow students to pragmatically apply BDD practices as well as teach people how to utilize fundamental OO concepts and techniques that will allow for them to have cleaner, more loosely coupled architectures. It will also be an opportunity for students to see what is involved in creating applications that utilize a Rich Domain Model,and the supporting infrastructure that is required to use "Plain Old Objects".

I have successfully delivered this course several times with great success. I anticipate that people who are interested will find that this is a very unique course offering, not typical of what is being delivered in the mainstream.

There are only spots for 8 people to register. The course costs $2500/US for a full 5 days. The fee covers:

  • 5 (8 - 12 hour days, depending on the audience availability) of bootcamp style instruction
  • Book - Patterns Of Application Architecture
  • ReSharper 2.0 License

If you have any questions please don't hesitate to contact me at jp@jpboodhoo.com.

Requirements

  • You will be required to bring your own laptop ( VMWare / VPC images will be deployed to your machine on day 1 of the course)

To Register for the course please use the following link:

Comments [5] | | # 
 Monday, June 04, 2007
Monday, June 04, 2007 10:41:43 AM (Mountain Standard Time, UTC-07:00) ( Training )

Just completed another 5 amazing days of intense coding madness with the wonderful people at the Edmonton Catholic Schoolboard.

There is nothing better than leaving a course and knowing you have had both a professional and personal impact on the people that you have taught!

Someone once asked me, what’s with the name “Nothin But .Net?”. There is a bit of meaning to the name of the course. Aside from the following tools:

  • MBUnit
  • NAnt
  • TortoiseSVN and Subversion

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 NHibernate and tools from the Castle stack 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 introduce any tools to solve the ORM, IOC, or other problems. I love these tools, but I love for people to have the grounding from which to gravitate toward these tools. By the end of the week they are left with a set API’s that can be migrated without any change to client to tools like NHibernate,Castle Windsor, Log4Net etc; but more importantly understanding has been brought to the table.

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 enterprise 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 covered; Day 2  introduces people to the concepts of domain driven design and interface based programming, all within the context of Test Driven Development. Over the remainder of the week we drive out the different layers of the application, with the main pieces being:

  • UI
  • Presentation
  • Thin Service Layer
  • Domain
  • ORM

By the end of the week people leave with a solid understanding an application of the following concepts, patterns, and practices:

  • Test Driven Development
    • State Based
    • Interaction Based
  • Automated Builds
  • Object Oriented Programming
  • Interface Based Programming
  • Dependency Inversion Principle
  • Dependency Injection
  • IOC
  • Logging as a debugging replacement
  • Domain Driven Design
  • Object Relational Mapping
  • 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. Having delivered the course 4–5 times this year so far, it is fun to see how different each of the code bases have been from course to course!! 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? I want to demonstrate to people the practicality of all of these “buzzwords” in the realm of practical software development. Furthermore, I want to make sure that when attendees of my class inevitably start to use tools like NHibernate and the Castle stack, that they are able to use them with intelligence.

In my opinion, there is no value in learning tools without prefixing it with a solid understanding of the fundamentals. Having given this course several times this year, I glean great joy from seeing the lights go on and having people tell me that this course has changed the way they look at development.

That is my goal for heading out on the road with this course once a month, to help you potentially change the way you look and tackle development.

Are you interested in taking your development to the next level? I am typically only delivering the course once a month so I can continue with my regular consulting gig.

Contact me if you want me to help teach you and your team to start Developing With Passion!!

Comments [3] | | # 
 Monday, May 21, 2007
Monday, May 21, 2007 6:16:08 PM (Mountain Standard Time, UTC-07:00) ( Agile | Presentations | Training )

I’ve been to a lot of conferences. Last week I got the opportunity to both speak and attend DevTeach 2007, in Montreal. I spoke on both refactoring and applying patterns of enterprise application architecture.

Along with presenting, I got to attend and watch awesome content presented by other speakers in the Agile track of the conference. I have to applaud JR and Scott for implementing the addition of an agile track to the conference. Every single one of the sessions was packed, an indication that the topics that were presented are obviously relevant and meaningful to lots of the people attending.

As cool as some of the presentations were, it was the networking that made this event absolutely stellar. Getting to hang out with Roy, Oren, Jeremy, Scott, Udi, Wendy, Oksana, RodDonald, Dave, Adam, Greg, Matthew and a whole host of others!! The conversation, arguments, debates, and just mindless chatter was the most fun I have had at a conference, ever!!

There was one evening in particular where the general concensus was that we had all been hit by a bus and were lounging in what must have been programmer heaven (complete with Carl Franklin and company in the background providing the ambient music)!!

Seeing as how the links to the presentation material are not currently working here is the rar file (download WinRar to extract) that contains the material for both of the presentations. I did not get a chance to finish getting through either presentation in both of the sessions, so the code you see is where I left off. I am hoping to screencast both presentations in their entirety so that people can see the end goal for both sessions.

Looking forward to DevTeach Vancouver…that right, its coming!!

 

 

Comments [2] | | # 
 Wednesday, May 09, 2007
Wednesday, May 09, 2007 7:31:05 PM (Mountain Standard Time, UTC-07:00) ( Training )

I have been having a bit of a hectic week. In the midst of the insanity, I just opened up a message in my inbox that was received from a student of a course I just taught in Regina.

As a mentor, there is no greater feeling that when you feel you have truly impacted another person with the knowledge you have shared. Here is what he had to say in the closing comments of the course feedback form:

Nothin But Dot Net was the best rock concert ever. No fancy light shows, dancing girls, pyro or over paid aging rockers. Just gigs of Dot Net agiled in soothing keys of ReSharper.

Too many encores to count! Nothin But Dot Net played longer. And then longer. And then even longer. Guitars were smashed, fans passed out, speakers blew up, the police came and the band even bought the audience pizza.

After sixty hours with only a few spared for sleep, the cover songs started. It was like we were hearing for the very first time what the original artists were trying to say. At times the crowd sang along, other times we stood in humbled awe through blistering solos and soaring ballads. Then the guitar was handed out to each of us and we got to jam with the IAxeMan himself.

Nothin But Dot Net left me fully refactored, wanting more and armed with a clear vision of what to do next. My only disappointment is that I didn't get into this music sooner.

Wade, thanks so much for taking the time to craft a very touching (to me anyway!!) comment about how this course impacted you.

God Bless.

Comments [1] | | # 
 Wednesday, May 02, 2007
Wednesday, May 02, 2007 2:47:03 PM (Mountain Standard Time, UTC-07:00) ( Training )

The title of this post may sound like the catchphrase from a really cheesy movie, but I think it sums up quite nicely the plan that I had in my mind for where I wanted this course offering to go. In a development world where we seem to be caught up in learning tools vs solid practices, Nothin But .Net is about getting back to basics, building a solid core, and having the foundation with which to be able to evaluate and leverage new technologies, toolset, practices very quickly. Helping devs to chart the course for the rest of their dev career, and not feel so overwhelmed at the rate of change that is currently prevalent in the industry.

Let me state clearly that I am first and foremost a developer, honing my craft daily by working on projects using pragmatic agile practices that I have morphed to work best to my development style. I don’t post a public schedule for this class, and have been blessed to have received a lot of interest over the last couple of months that has allowed us (my family and I) to travel once a week each month for the last several months to deliver this targeted training session. My plan is to do 3 weeks of regular consulting, and 1 week of the course, for the next couple of months.

It would better be described as a week of heads down, crazy mentoring. I show up with no powerpoint, the skeleton of a web UI done (which serves as our stories generator) with no code behind. Over the course of the week, I teach people how to apply domain driven design, behaviour driven development, solid OO principles and design patterns to incrementally build up the functionality of the web application.

The reason the class is called Nothin But .Net, is that I feel the need to help people understand at a fundamentally core level, the patterns and practices underpinning a lot of the frameworks that they may choose to utilize in the future. By giving them the knowledge to use these frameworks will intelligence, they are much better prepared to know how to fix/work around the frameworks when they do not work for them. More importantly, they get to see how tdd plays out over the course of the week to build the application under question. They also get to see how building an app in a loosely coupled way allows easy transition if they decide to suddenly move the mapping layer to something like NHibernate, or the dependency container to something like Castle.

Having delivered this course 3 times this year so far, each iteration of the course has been a wildly different experience. And the code that comes out of each iteration is remarkably different from the prior iteration. I have to say that I think I have as much fun , if not more, than the people that attend. The days can be pretty long though, this last iteration consisted of 1 10 hour day followed by 4 14 hour days!!

I had promised my attendees that I would be posting to my website, the comments (good or bad) that I have received from each iteration of the course. I am currently working on revamping my web site to include all of the feedback from each iteration of the course. In the meantime, I thought I would post some of the (good) comments that I have received from attendees so far:

Edmonton,AB - February 2007

  • I really got a lot out of the course.  The course was one of a kind and I would definitely recommend it to anyone who wishes to take his/her architectural/development skills to the next level.  The course was a paradigm shift for me and it exposed all of the bad programming habits that I had picked up over the last few years.  The paradigm shift for me was mainly that I was thinking that I was doing previously was object oriented programming but realized that I was actually only doing precedural programming.  I am definitely leaving with a sence that attending this course was definitely the best thing I have done for my career and I will look back and remember this as a turning point for me.  Thanks JP !!

  • Prerequisites for this course should include experience with .Net 2.0 along with familiarity with Unit testing.  I think some familiarity with design patterns would also benefit the student.

    I realize that I this course was a little beyond my current skill level and so don’t think that I could say anything that would be constructive to help better plan this course in the future.  But I definitely think there is benefit in seeing tdd in action and think that you should keep some element of this in the course (seeing how elegant solutions were composed and how they evolved definitely helped with the comprehension of the material).

  • I enjoyed the course and would recommend it to anyone who has already started down the path of agile development.  This course is not for beginners or the faint of heart.

  • This is most certainly a training course for experienced .NET developers who are looking to expand their skills and knowledge in design and development techniques.  Although intense and draining, the concepts are presented in a fashion that allows for the students to progressively apply the teachings as the course moves forward.

    If you are expecting to hone your basic software development skills, this is not the course for you.  If you’re looking to extend and enhance your current skillset, you will be in for a mental treat.

  • You can tell JP has a lot of real world developing experience, he is constantly referencing it and that is important for less experienced people to understand that this stuff will help you when you get back to your job.  Some teachers loose their touch with real world situations if they spend all their time in a classroom, it is nice to hear real examples.

  • I thought the course was quite good. The course filled in quickly a lot of the things I had heard about but never got a chance to use or did not want to go through the grief of learning them without mentoring. It was great to learn so much from someone in the field that works with this stuff everyday. It was also great that we never used anything pre-canned so that we got to be involved with a ground up build and see how easy things were when doing an application from a TDD perspective.  

    I found that the pace of the course fluctuated too much. The first two days were quite fast paced and a bit overwhelming. The last three days seemed to drag out a bit and it felt like not many new concepts were being introduced. This was due the disparate level of developers in the class though.

    I felt that the course has really put me ahead of the curve.  The course has shown me the tools, methodologies, and practices that I can use right away to make my applications better, more testable, and less complex.

  • The course was a fantastic experience, and a great opportunity to get some in depth exposure to a well thought out and understood development process. The instructor was more than happy to share his knowledge, however, sometimes that was a bit of a drawback just because of how how much he had to share.

    I would definitely recommend this course to anyone who is comfortable working in C# 2.0, and doesn't need Visual Studio to walk them through every step (I wasn't quite there when I started, but am a lot better now).

  • This is the BEST course that I have been on. JP was an excellent instructor, learned a lot in the five days. Design patterns, domain driven design, application layering, etc… Covered it all! If there was another opportunity for me to take this course I would definitely do it again.

  • This is the first computer course in which I’ve learned from a knowledgeable instructor. Showing how to use abstract patterns for solving real problems is refreshing compared to books and articles I’ve read that deal with only the concept or give examples that do not use patterns and is applicable to more than just the DotNet framework. I liked the varied manner in which the class was taught through overview of design principles, talking out problems, personal coding, and review of some potential alternatives and consequences of those alternatives. While one afternoon was painful due to so many concepts being introduced that I was personally not familiar with, I still feel I improved a great deal in at least gaining a basic understanding of those concepts and how they could be applied.

  • Personally I received alot of value from this course.  I have a much better understanding of what I know and more importantly what I don't know.  I've learnt numerous techniques that will help me in my daily job as a software developer.  I expect to be much more proficient and efficient.  I also am really excited about taking what I have learnt and using it to learn more stuff on my own.  I've put in place a plan with my wife to allow me personal time to expand my personal skill level. 

     

    The one negative thing I would point out is that you have a tendency to talk without providing space for people to get a word in.  In fact at one point you asked us all to answer a question but never gave us a chance to answer it. 

  • This course was good because I have been trying to do proper design and testing on a new project at work. I also think that having seen some of your presentations I was able to pick up on the concepts easier because I had tried them on apps at home and at work.

    I liked being able to try the exercises/labs after learning the theory and having to think on my feet. After trying the lab it was very valuable to see ways that code could be further refactored using small steps if it was warranted.

    I think having read some of the book refactoring to patterns I was able to understand concepts like chaining constructors, introducing factories to create objects and decorating new functionality on top of existing objects without modifying them.

Richmond, VA – March 2007

  • I think I probably said everything I had to say under some area or another.  Perhaps on a personal note, JP had to go through a lot of logistical difficulties to make this course happen, and I think a lot of trainers in his position would have either pushed the training further out or just called it quits and given a refund.  He showed a lot of heart even getting the training off the ground, took personal ownership of whatever difficulties there were, and was clearly committed to the students and making the class successful for everyone.

     

    I was an IT trainer for four years, and to be honest with you, I think the fact that JP is not a “professional trainer” contributed a lot to the overall success of the training in general.

  • What an awesome week of hardcore OO, Patterns and .NET madness.  Every MS, data-centric developer should take this course to truly understand better ways of building software. From some of the things I learned this week (technical and non-technical), I see attending this class as the biggest turning point in my career as a software developer/consultant since I got test-infected a few years ago.

  • Perhaps some exercises on some of the “review” topics or OOAD/DP examples to work through before the class to get folks ready for what is to come.  Would also be a way to gauge skill level before someone signs up/shows up.

    Overall this was a GREAT experience for me.  I learned so much and also have a path on where to expand that knowledge.   I am taking pieces of what I’ve learned and trying to implement them on current projects as well as trying to put into place some of the process and principles.

    Had a great time.  Learned tons.  Money well spent (by my employer lol).  Looking forward to future courses and/or presentations.

  • I really learned a lot. I don’t think I have even begun to digest everything I learned. It was even difficult to begin to talk about it when some of my developer friends asked. I am really glad I will have the recording so I can go back and rewind again and again. My learning style is very tasked based (I find out what I need to solve the problem at hand) and I often remember where to look up information more than trying to remember the information itself, so I think having the screen casts of the class will be extremely valuable to me. I already mentioned the concept of a more communal boot camp idea. I think also a more 2-4 hour/week traditional class structure might work well also. On the concept of getting off track, I really liked the idea in day one that we would be working with an online shopping cart. I thought this would allow us to walk through all the layers and see almost a complete cycle, however we were really racing on the last day to get the list of items on the screen.

    It will take a few months I think until I completely “grok” everything so I can sit down with a blank solution and make my next killer app. ;-)

    You mentioned this whole concept of training trainers as part of a long term vision and I would be interested in learning more about that. As a lone developer in my company its hard to keep on top of things and get important outside experience and ideas . A part time training/teaching project might really help me keep my sword sharp!

  •  This course exceeded my expectations in every way. It's given me a good understanding of how I need to improve my skillset so I can become significantly more productive in a reasonable timeframe. JP is totally outrageous and one of the best developers that I've had an opportunity to learn from.

Regina, SK – March 2007

  • JP – you are a phenomenal teacher.  It was awesome to be in a class where things were actually taught, and not in a class that consisted of PowerPoint slides and a droning voice putting everyone to sleep.

  • This was an outstanding course.  Not the traditional classroom style of instruction, but far more effective in my opinion.  I learned so much from watching how JP attacks a problem and works through to the solution using TDD.  One of the most important things I personally gained out of the course was the reminder of how truly important it is to have a solid understanding of OO Analysis and Design techniques before jumping into any of the multitude of frameworks that are out in the market today.

    Although this course was outside of my comfort zone, I believe this is one of the reasons that I learned as much as I did.  Thanks JP – great course!

 

Comments are still coming in from the Regina course (it just finished last week). As soon as my site work is finished; I am going to be posting the comments in their entirety (good and bad) so that anyone who may be interested in contacting me to deliver the course in their area (yes I do travel to run the course) can have a better idea of what to expect.

 

 

 

 

 

 

Comments [2] | | # 
 Tuesday, May 01, 2007
Tuesday, May 01, 2007 12:41:12 PM (Mountain Standard Time, UTC-07:00) ( Training )

Just got back last Friday from another week of “Nothin But .Net”. This proved to be the most intense iteration of the course yet. One of the developers who attended provided me with his “scratchpad” of personal take aways from the course. It is a raw account, but I appreciated him taking the time to share it with me. I am posting it here as a means to give people an idea of what sort of topics are actually covered over the course of the week. It is interesting to see/hear what different ideas he took directly from the course, and others that he formulated over the course of the week:

Day 5

Unit Of Work
-

Aggregate Roots
- good for boundaries, protects the leaf items from rest of domain, that is its responsibility
- some add persistence coordination to aggregate roots, not JP's prefered strategy

Tests document code, should read like a book
- refactoring tests too much can hurt readability, show reader

UI Strategies for security etc
- Realize what the higher level of abstraction.
- Make some ui pieces role aware
- Ask how can I test this without running the app

Threading
- don't use method implementations [MethodImpl(MethodImplOptions.Syncronized)], not good, see clr via c# for more
- proxies around your classes is better for threading 
- delegates

Top down or bottom up
- higher level components should be driving contracts/interfaces for lower level
components, advantageous to flush out a better design
- so go ui to db
- still, other approaches work too, go from db up to ui, domain layer and out etc.
- with traditional state based TDD, it is easier to start at the bottom layer and then work up

Interfaces that Differ only by the types their methods call
- good candidate for generics

Marker Interfaces/ Layer Supertype
- no member definitions
- can encompass the plumbing for persistence

public interface ICartItemMapper : IDomainItemMapper...
- good trick for readability, ICartItemMapper doesn't have any methods defined

AA analogy for how much we all still have to learn
- first step is admiting you have a prob
- then you are on your way to getting better :)

Test Setup/Teardowns
- tempting to create setup bases, favour composition over inheritance, decorate with attributes to get the same effect

Inheritance
- favour comp over inheritance
- avoid starting out using inheritance as the first approach, prefer refactoring towards inheritance & only if it really makes sense

TableDefinitions class for all db types and column names
- as it get's bigger, it could be changed to a namespace quite easily
- shoppingCart.RequiredFields could be one strategy

Insert vs Saves
- Generic Saves that insert/update are a dangerous path to go down, wrong place to put this responsibility

Constructors & Exceptions
- generally bad
- better to push responsibility for throwing to a factory

Event Aggregators
- useful for pushing stuff up to aggregator from separate controls to then re-notify other controls on page


Console2
- tabbed cmd prompt for xp

Day 4

Real World Issues
- work within you're circle of control
- TDD is part of being a professional software developer, its how to design code and specify contracts, not worthy of debate with other devs/mgt so avoid it
- life and careers are too short, do your due diligence before taking on projects and contracts
- don't insult other dev's by saying you'll code to lesser standards to ease complexity etc. not doing anyone favours, help them by pairing and getting them up to speed on better approaches than what they are used to
- ultimate agile goal is to deliver value quickly, never lose sight of that, esp when considering design approaches
- don't let mgr's and other devs label you, provide lots of details and be enthusiastic to describe specifically what you are doing, don't just tell them you're doing it the TDD way etc, this doesn't help anyone
- can't change your job...

Pairing
- takes humility, can be painful to ego but very worthwhile in terms of speed, intensity and learning potential

Ping Ponging
- SR dev writes test, junior writes implementation

Learning strategies
- don't waste time at work, ditch the email, msn etc, deliver number one priority,
use spare time to ramp and add even more value to employer
- set aside dedicated time
- jp's book list,
- follow the order of the books in the lists
- MIT & Waterloo are producing grads that already know this stuff, follow them and invest time going through the MIT Open CourseWare
- study group
- ask lot's o questions
- get fast on the keyboard
- reading books is great and necessary but coding is better
- avoid re-using your older solutions, instead evolve and try
to get better, besides IP can't be ported to new contracts

 

Refactoring
- ESSENTIAL
- can't be done without tests backing it up

Table definitions
- system.codedom  to iterate and build a class per table etc...

Simplest thing that makes sense is very relative to dev skill/experience

Web Stuff
- firebug for js
- watin/water

Exception Handling
- if you can handle it, do so, never just try catch for the sake of it
- tdd helps define better and drive out where they should be handled

Mapper tests
- should be integration tests, if they reference columns etc, they do need to hit the db and fail if columns etc change

Good Way to learn a true OO project is to look at the tests
- collaborations are tough to figure out just by browsing classes and interfaces.
- goood tests show collabs and interactions

How to be a good developer
- lots o info here,
- discipline, focus, time and hard work, nothing untennable

Day 3

NOD32 - nice virus protection


Duplicating Code in TestMethods
- not necessarily a bad thing
- too much refactoring to common methods can lead
to readability issues which should trump the need for removing duplication

State vs Dependency
- black vs white box testing
- dependency based with mocks starts to define the contract with other mocked
objects but it doesn't dictate the external dependent object's behaviour

Teams
- Break up responsibilities by layer
- have them work on it independently of each other
and come together to determine the interface needed


JP's Dev approach
- JP will work on UI first on most projects, get it signed off

MVP - Passive view
- presenter is an observer of UI
- by having it as an observer, it eliminates the coupling between the presenter and UI

Ajax
Prototype
Script.aculo.us

Service Layer
- really a facade
- course grained

DTO's
- dumb ojbects serialization
- little lightweight objects to pass back and forth
- ProductBrowserDisplayDTO - very specific to the UI
- UI, Service, Presentation know about DTO's
- good candidates for code gen
- no tests needed in this layer

Mocking and Order
-surround with using(mocker.Ordered)
{
 - expectations inside here must be met in this order
}


Integration Testing
- stuff that hits files/db etc
- more end to end through silos
- mapping from db should be tested here too because database changes could happen and not
be caught with dependency based testing
- random get people up and type call outs are quite effective at making people pay attention

Why TDD Fails
- get's frustrating that you realize quickly how much you need to learn/re-learn, exposes weak OOA&D skills


Day 2
Check.Condition(numberOne>0) - design by contract
- pre and post conditions
- used to reveal intention
- fail fast as oposed to fail later

Readable code trumps a lot of other design choices
- comments are a smell

Test Coverage
- 80% a decent goal

Method Naming
- LivingIn(Country country) better than LivingInCountry(Country country)

Domain should drive out all yer code, except maybe logging
 - Utility should be only project that most other projects references
 - logging ok too
 - lots of utilities are a smell that you didn't assign resposibilities properly & poor design

Refactor to patterns, don't start with them...

User Stories
- ID stories, identify tasks for each story, estimate on tasks
- Pre Iteration Meeting
 - iteration mgr and biz analysts have time to take docs and extract key stories to focus on for an iteration
 - they try to break down into tasks

- Iteration Meeting
 - Stories with tasks
 - Team identifies tasks that are too big that might be candidates for stories
 - Estimate tasks
 - Dev's sign up for tasks
 - 8 hour workday translates to about 5 hours a day of real work
 - Don't factor pairing etc into plan
 - any task over five hours deserves a separate story
 
- Each day
 - update prj mgr's where you're at
 - get done early, go help other devs finish their work
 
- Availability of SME's is key to success on agile and really any other projects

Typically you only test external public methods
- could have internal public methods in an assembly, these could be tested by using assemblyinfo attribute: InternalVisibleTo="testassemblyname"
- or a post compile for prod could lock them down...

Tracing & Logging
- instrumentation - tracing, affects performance
- aspect type logging, pre/post method execution, aspects on classes, goes further than decorators or proxies, waste of time to write this into your code
- logging get's into the methods internals
- good as a debugging tool
- avoid the slow debugger!
- expand on tests in logging factory
- so that we don't depend on


Domain Classes Candidates
 - an exercise to identify classes.

Primary Keys
- insist on surrogate keys, keys that are meaningless


BDD/TDD
- primarily a difference in naming, bdd is tdd done right

NSpec - bdd for .net

Dependency based testing
       
  // we want to test that Log was called on some class
  // returned by Current
  [Test]
        public void Log_ShouldLogMessage()
        {
            Logger.Current.Log(this, "message");
        }
 
 
         [Test]
        public void Current_ShouldLeverageFactoryToCreateLoggingComponent()
        {
            // How To write a dependency test:
   // start from the bottom (#5) up!
            // 1. Create mocks and fake results
            // 2. Setup expectations for methods to be called on your mocks
            // 3. Prepare mocks object to expect real calls form the object under test
            // 4. Invoke the method under test
            // 5. Make assertions if necessary
        }

First Implemenation once test runs:
- The simplest thing that makes sense, returning a hard coded 1 etc doesn't add much value
- don't waste your time running something you absolutely know will fail

UAMTC for SVN
update add merge test commit

Day 1

- wpf nice, good support for design pats
- MBUnit - leaner meaner more dev than nunit
- createing a shortcut to create a new blank sln in the explorer new dialogue, see "Solution in New dialogue.zip"
- visualsvn good ide svn add-in
- myuninstaller - keyboard driven, ctrl U to uninstall selected program
- keyboard link firefox for mouseless browsing
- snippet compiler

Test naming convention
$TestedMethod$_Should$Name_Conditions$
 - roy osherove
 -
http://weblogs.asp.net/rosherove/archive/2005/04/03/TestNamingStandards.aspx

JP the IAxeMan 
- interfaces for everything except DAO's, ValueObjects
- code classes inside test exactly as how you would use it in real app
- how do you want it to behave, how would you want to use it
- simplest thing possible
- get the red compiler errors before red test fail errors
- doesn't use I for Interface, consumer shouldn't know they are talking to abstractions...
- remove refactor so resharper is only R option in alt clicking - right click on tool bar, customize, re-arrange...
- try to minimize number of assertions to one per test
- mbunit RowTest with Row and params in sig for nTest scenarios
- check out mbunit.org, rollbacks, decorators
 - drill Assert.*
 
- assertions - heavyweight guard clauses, using exceptions instead of debug.assert makes it a biz rule rather than just a debug helper

- TestFixtureSetUp/TearDown - only runs once per test class vs setup and teardown which run once per test method
- SetUp is a good candidate for doing things as you don't want to maintain state between tests, don't want to have some tests affecting behaviour of other tests

Automate anything that needs to be clicked more than once
- VS for building is too slow
- prefer logging to debugging, a good presentation layer test suite, 
- TDD minimizes the sheer horror of click driven development

Partial Classes
- good for tool gen code
- null objects -- see missing person example, an object creates a null object to return in casses where null is needed to be usable by client, Person frees person class from being cluttered up.

Delegate
- type safe function pointer, reference to an event

Constructor Overloading
- the one that takes the most params should do the work, don't have all your constructors doing stuff when they are overloaded
- when you get an object back you should just be able to call stuff on it without any client initialization needed

Decorator
- have to be same type as class they are decorating, implement interface, inherit from base

Events
Creating
        // step 1 - create an EventArgs derivative (if necessary) it inherits from Event Args
        // step 2 - create the delegate sig for the event handlers
        // step 3 - Create the calss that will raise the event (subject)
        // step 4 - Raise the event to notify the subscribers
- you need to test to see that you're object under test does what it is supposed to do to the mocks, you're not testing the mocks though!
- be careful when raising events


StateBaseTestDrivenDevelopment
- setup state and assert

DataDynamics good for reporting


Lose the Mouse...
- alt d - get's you to the address bar in explorer
- alt s c - constant
- alt F W = new folder
- backspace = up folder
- alt F D = new project
 - alt N - edit project name
 - alt P - project Type
- alt P R - add reference
- alt R N - add new file type from template
- alt W L - close all open text editor tabs
- f2 - rename
- ctrl shift enter - fullscreen text editor
- ctrl e - recent files
- f12 - next error
- alt enter - available fixes
- alt ins - gen code
- alt ins, i,  ctrl a, space, enter - gen code, select all, select, to gen interface implementations
- never checks off "remove redundant qualifiers"
- ctrl shift alt f - reformat without dialogue
- .. Enter - in file dialogue, goes up a dir
ctrl shift v - clibboard ring
ctrl shift uparrow - moves method up
ctrl shift downarrow - moves method down
pull members up - ctrl shift r b - brings a member up to the base to define it
alt-delete - will delete it safely and make sure that no one is using it(no other references)
f6, alt f - move a type to another file
alt f12 - next error in soln.
ctrl n - find by type, case sensitive to get the right one
ctrl alt n - inline variable
alt s r - add a reference when inside a web project

 

 

 

Comments [2] | | # 
 Wednesday, March 28, 2007
Wednesday, March 28, 2007 2:12:00 PM (Mountain Standard Time, UTC-07:00) ( Training )

I have now secured a location and date/time for a course to be held in Regina, SK for the dates of April 23-27. The following is a description of the course with a registration link at the bottom of the page.

 

Overview

Nothin’ But .Net is a five day boot camp that will focus on pragmatically applying .Net within the context of developing a working N-Tiered application. Registrants will learn about advanced features of .Net (2.0/3.0) as they are applied to the task of building a complete application from the UI layer all the way down to the mapping layer.

WARNING!!!!

If you are expecting to come to this course to learn about how to have VS.Net automatically generate an “application” for you, then this course is NOT for you.

This course is all about taking control of the .Net framework and having it work the way you want. This course will place a heavy emphasis on getting back to the basics and making .Net do things the way you want it to, in a predictable and testable way.

This course will focus on a code centric view of application development vs. the typical databinding/designer magic covered by many typical .Net courses. You will walk away with a deep understanding of fundamental aspects of .Net and how these pieces can be used to develop and deliver enterprise scale applications.

Core Concepts Overview

  • Expanding the capabilities of developing with VS.Net - Enter ReSharper (a productivity add-in for Visual Studio .Net)
  • There’s more to life than generated code
  • Automation for the developer
  • Generics ( they’re not just for collections )
  • Back to basics - Rules Of Good Object Oriented Design
  • Dependency Injection
  • Object Relational Mapping in .Net
  • Applying the dependency inversion principle
  • Domain Driven Design
  • Passive View/Supervising Controller (Model View Presenter)
  • Creating layered architectures
  • Driving out functionality and design through testing
  • Taking Control Of Databinding
  • Behavior (Test) Driven Development
  • Core design patterns applied
  • Pragmatic Productivity Tools For Developers

Although the list may look rather daunting, the majority of the bullet points will be covered during the evolutionary design and construction of the sample project.

One of the main goals of the course is to show how to effectively use behavior (test) driven development, design patterns and a solid toolset to develop a portion of a non-trivial application.

The course will allow students to pragmatically apply BDD practices as well as teach people how to utilize fundamental OO concepts and techniques that will allow for them to have cleaner, more loosely coupled architectures. It will also be an opportunity for students to see what is involved in creating applications that utilize a Rich Domain Model,and the supporting infrastructure that is required to use "Plain Old Objects".

I have successfully delivered this course several times with great success. I anticipate that people who are interested will find that this is a very unique course offering, not typical of what is being delivered in the mainstream.

There are only spots for 8 people to register. The course costs $2500/US for a full 5 days. The fee covers:

  • 5 (8 - 12 hour days, depending on the audience availability) of bootcamp style instruction
  • Book - Patterns Of Application Architecture
  • ReSharper 2.0 License
  • Breakfast and Lunch

If you have any questions please don't hesitate to contact me at bitwisejp@gmail.com.

Requirements

  • You will be required to bring your own laptop ( VMWare / VPC images will be deployed to your machine on day 1 of the course)

To Register for the course please use the following link:

Comments [1] | | # 
 Thursday, March 01, 2007
Thursday, March 01, 2007 5:08:22 PM (Mountain Standard Time, UTC-07:00) ( Training )

Just a quick note to remind people who are still interested in signing up for the course that you should get over to

https://www.acteva.com/go/jboodhoo

and register. As others who have already taken the course will attest, this is not your standard fare, .Net course. You will leave this course with some crazy new ideas, as well as a new look on the way you approach software development.

If you're still interested, register and I'll see you in Richmond at the end of next month!!

Comments [3] | | # 
 Monday, February 26, 2007
Monday, February 26, 2007 11:41:31 AM (Mountain Standard Time, UTC-07:00) ( Training )

I'm back to my day job after an incredible week last week with a great bunch of students who took part in what I (and they) found to be a phenomenal learning experience.

I definitely learned some valuable lesson from this course that will allow me to fine tune my delivery for future iterations of this course. I also realize that I need to refine (aka - completely rewrite) the prerequisites for this course. This is the fourth time I have led the course, and each time has been a completely different experience.

One of the most important aspects of the course (in my opinion) is seeing how involved it can be to start down the Domain Driven Design style of development. This course shows practical application of DDD, BDD, and OO principles and patterns. Each one of those topics in and of themselves is huge, tackling all three topics in a week is definitely maybe a little too aggressive.

Once again, several people walked away with the realization that what they thought was Object Oriented programming, was nothing more than procedural code using objects. Having an opportunity to create a rich domain model which was then later mapped from a database was a definite paradigm shift from the way that they typically develop.

Along the way people got practical exposure to design patterns, unit testing, behavior driven development, and good, clean object models.

I expect that future iterations of this course will continue to improve as I fine tune the delivery aspects!! I am going to be posting some of the comments so that people who are curious about what this course has to provide (future potential attendees) can read comments straight from the source.

In the meantime here are some recaps from people who attended who also have blog entries that talk about the course:

Donald Belcham

Dave Woods

Shane Courtrille

Jonas Avellana

I will be posting all evaluations (for people who were willing to share) so that people who are interested in future iterations of this course can read about all of the information the attendees had to share (positive and negative).

Thanks again to DevStudios (special thanks to Shane and Christy) for hosting the course and providing the computers. And thanks to all of the attendees for allowing me the opportunity to start you down a new path of development!!

Comments [2] | | # 
 Monday, January 15, 2007
Monday, January 15, 2007 3:41:23 PM (Mountain Standard Time, UTC-07:00) ( Training )

I have now secured a location and date/time for a course to be held in Richmond, VA (the facility is actually located in Midlothian, but its close enough!!) for the dates of March 26-30. The following is a description of the course with a registration link at the bottom of the page.

 

Overview

Nothin’ But .Net is a five day boot camp that will focus on pragmatically applying .Net within the context of developing a working N-Tiered application. Registrants will learn about advanced features of .Net (2.0/3.0) as they are applied to the task of building a complete application from the UI layer all the way down to the mapping layer.

WARNING!!!!

If you are expecting to come to this course to learn about how to have VS.Net automatically generate an “application” for you, then this course is NOT for you.

This course is all about taking control of the .Net framework and having it work the way you want. This course will place a heavy emphasis on getting back to the basics and making .Net do things the way you want it to, in a predictable and testable way.

This course will focus on a code centric view of application development vs. the typical databinding/designer magic covered by many typical .Net courses. You will walk away with a deep understanding of fundamental aspects of .Net and how these pieces can be used to develop and deliver enterprise scale applications.

Core Concepts Overview

  • Expanding the capabilities of developing with VS.Net - Enter ReSharper (a productivity add-in for Visual Studio .Net)
  • There’s more to life than generated code
  • Automation for the developer
  • Generics ( they’re not just for collections )
  • Back to basics - Rules Of Good Object Oriented Design
  • Dependency Injection
  • Object Relational Mapping in .Net
  • Applying the dependency inversion principle
  • Domain Driven Design
  • Passive View/Supervising Controller (Model View Presenter)
  • Creating layered architectures
  • Driving out functionality and design through testing
  • Taking Control Of Databinding
  • Behavior (Test) Driven Development
  • Core design patterns applied
  • Pragmatic Productivity Tools For Developers

Although the list may look rather daunting, the majority of the bullet points will be covered during the evolutionary design and construction of the sample project.

One of the main goals of the course is to show how to effectively use behavior (test) driven development, design patterns and a solid toolset to develop a portion of a non-trivial application.

The course will allow students to pragmatically apply BDD practices as well as teach people how to utilize fundamental OO concepts and techniques that will allow for them to have cleaner, more loosely coupled architectures. It will also be an opportunity for students to see what is involved in creating applications that utilize a Rich Domain Model,and the supporting infrastructure that is required to use "Plain Old Objects".

I have successfully delivered this course several times with great success. I anticipate that people who are interested will find that this is a very unique course offering, not typical of what is being delivered in the mainstream.

There are only spots for 14 people to register. The course costs $2500/US for a full 5 days. The fee covers:

  • 5 (8 - 12 hour days, depending on the audience availability) of bootcamp style instruction
  • Book - Patterns Of Application Architecture
  • ReSharper 2.0 License
  • Breakfast and Lunch

If you have any questions please don't hesitate to contact me at bitwisejp@gmail.com.

To Register for the course please use the following link:

Comments [6] | | # 
 Thursday, December 14, 2006
Thursday, December 14, 2006 10:35:58 AM (Mountain Standard Time, UTC-07:00) ( Training )

It didn't take long!! Because the online payment option is still not functional (merchant account setup is taking longer than I thought) all registrants are working on the honor system!!

As soon as I am able to accept payment I will be sending emails to all the registrants so that they can make payment.

At that time, if there are people who change their mind, their spots will be freed up for other interested parties.

If there are still people who are interested in the Edmonton course please feel free to contact me, as it will help me gauge the interest level for a follow up course in Edmonton in the future.

Comments [6] | | # 
 Tuesday, December 12, 2006
Tuesday, December 12, 2006 3:46:59 PM (Mountain Standard Time, UTC-07:00) ( Training )

If numbers are right (and all people who have reserved spots pay when the registration link goes live!!) then there are 2 spots left for the course in Edmonton.

If you are still interested in attending please contact me by email :bitwisejp@gmail.com, or phone me at (403)560-3590.

Thanks

Comments [1] | | # 
 Friday, December 01, 2006
Friday, December 01, 2006 10:29:09 AM (Mountain Standard Time, UTC-07:00) ( Training )

The actual dates for the course in February are the 19th-23rd.

Comments [2] | | # 
 Monday, March 27, 2006
Monday, March 27, 2006 10:59:37 AM (Mountain Standard Time, UTC-07:00) ( .Net 2.0 | C Sharp | Patterns | Training )

A couple of people have contacted me asking for a list of reading materials that I recommend for people who are looking to dive more into the development of layered enterprise applications. The following list is a small sampling of books that I think everyone will find some point of interest in:

 

  • Head First Design Patterns - This is a great book from O’Reilly. The examples are java based, but that should not be an issue. This book does talk about patterns and their applicability. It does, however, also discuss the dangers of  “patternitis” and how patterns at the end of the day are just another tool in a developers toolbox. More importantly, this book gives developers new to OO development a solid grounding in some basic OO design principles, and shows how the application of these few principles alone can lead to more solid object models.
  • Refactoring – The one stop reference for all you need to know to get started refactoring applications. An awesome book, written by a brilliant author. Show how to practically apply refactoring to improve the design of your code base.
  • Patterns Of Enterprise Application Architecture  – Great book that talks about patterns that developers often can utilize when building enterprise applications.
  • Applied .Net Framework Programming – Want to learn all there is to know about the architecture and inner working of the .Net framework. This is the book.
  • Design Pattern (GOF) – The original work on patterns. This is a great reference book that can give you a good grounding in the usage of design patterns.
  • Domain Driven Design – Want to build true rich domain object models. This is an absolute must read. I love the segment that talks about the much over-used “Smart UI” Anti Pattern.
  • Pragmatic Version Control Using Subversion – Often people forget the importance of a good version control system when building applications. Subversion is currently my favorite version control software, and best of all it is free. Lots of hands on examples of how to set up your repository structure, as well as practical, pragmatic advice on how to actually utilize subversion (and version control) on a day to day basis.
  • Programming .Net Components 2nd Edition – Excellent book covering many of the topics that often go unmentioned (or weakly covered) in many other .Net offerings.

Well, I think that is enough for now. I will post more books at a later time.

 

Comments [3] | | # 
 Friday, January 06, 2006
Friday, January 06, 2006 8:29:11 AM (Mountain Standard Time, UTC-07:00) ( .Net 2.0 | C Sharp | Patterns | Training | VS2005 )
For all who may be interested. On the week of February 6th - 10th I will be holding a .Net 2.0 Bootcamp in Calgary,AB.

The event will be held at CTC TrainCanada in Calgary.

It will be an intense week of getting up to speed on building enterprise level applications with the .Net 2.0 Framework. You can view the course outline here and if you are interested in attending you can register here.

Look forward to seeing you there.
Comments [0] | | #