Recently, I had the opportunity to do something I’ve always wanted to do, attend a deep dive SharePoint development training course. So, last week I was in a classroom for 9 hours a day for 5 days (well, 6 hours on Friday) learning all the in’s and out’s of SharePoint development.
When people in the SharePoint community heard I was taking the training course, some were confused and perplexed. I was getting asked questions from multiple people that were akin to “Hey, aren’t you one of the guys who’s supposed to know this stuff? Why are YOU taking a deep dive training course”? Then there were the others who were like “It’s about TIME!!!” Thanks guys, love you too.
Anyway, after taking the course I was really struck by what a great benefit it was to me and I became the confused one thinking “Why aren’t MORE seasoned developers taking these deep dive training courses??” and then I thought “hey, isn’t it about time to write another blog post???”
Why yes… yes it is.
So, would you like to know WHY even the most seasoned and hardened SharePoint developers should attend a deep dive training course?? I’m glad you asked…
You don’t know it all
Yes, I realize that I’m seen as an “expert” in certain aspects of SharePoint development by some people.. okay.. a few people… fine… by my mom… Anyway, as a Solutions Architect who’s been speaking, blogging, and writing applications in SharePoint for years I’ve seen it all? right?
Not hardly… and believe me, you haven’t either.
Don’t get me wrong, you may very well be familiar with all the concepts of SharePoint and can have an intelligent conversation about the different aspects. You might even have the ability to deftly identify the best approach to SharePoint development. This does NOT mean that you know the how’s. This does not mean you are aware of all the gotchas along the way.
I place myself solidly in that camp of understanding the concepts and knowing when to use them. I also think I could Bing myself to a blog post to explain the “how’s” when I need it for each of them. BUT! Is it the RIGHT blog post?? Will I be learning the RIGHT way?? Will I be “learning” it at all or just copying and pasting what someone else did?
There was such a benefit to going through an entire course that started from the basics and built momentum to tell the “SharePoint Story”. I was able to build on earlier information in the course and learn things in a better order with better context.
Learn the “why”
Okay, you are stubborn and think you know all the “how’s”, well, do you know the “why’s”?? As a developer, maybe you don’t care about the why’s, right? I mean after all, do you really care WHY one practice is better than another, or WHY we do things a certain way??? I can search for an example online, copy & paste the code, and get on with the rest of my day! right???
Don’t be that guy…
What happens when your client, customer, peer, or even boss ask you why you did something a certain way?? Or what happens when your company brings in that “expert” SharePoint consultant that builds all of their WebPart display logic in the “Render” method.
If you learn the “why’s”, it will help you avoid the bad blog posts (there’s a LOT out there), communicate better with those clients, customers, and peers and maybe even explain to your boss why he/she should pay YOU $200 an hour instead of that “expert” who’s about to cause you a world of hurt that you could have avoided if you knew why…
Goodbye Fire Hose
One of my favorite things about attending this training course with an already well equipped toolkit of SharePoint development skills is that I was able to say goodbye to the fire hose!
No more did I feel crushed by the weight of this massive beast of a platform, gasping for air trying to grasp the basic concepts. I didn’t have to worry about understanding all the “what’s” I got to concentrate on the “how’s” and the “why’s”.
I never got lost, confused, or frustrated, and those that did got one on one attention with the instructor…
Let me tell you a little story. I was introduced to SharePoint when I worked for a small specialty food distributing company called Millbrook. And I HATED it… Talk about overwhelming… Well, I worked through that hatred to a place of acceptance and understanding. In the meantime, Millbrook got purchased by a great company in the Northeast called UNFI. The SharePoint initiative we started at Millbrook was brought over to the UNFI Web Team… and they hated it too. (There’s a reason SharePoint is sold to the business and not to the developers).
Anyway, when I finally left UNFI to join the consulting ranks, many in the dev team were still not comfortable in SharePoint and frankly seemed like they resented having to do it (and me for pushing it some days). Well, when I went to training last week, guess who was there?? A woman from the web team at UNFI that I used to work with. She had grown much more familiar with the concepts and practices of SharePoint and here she was at this training class too.. and this person that used to HATE and LOATHE SharePoint left the classroom every day with a BIG smile on her face… and I asked her what she thought she said “This is great!!” with such enthusiasm. It really was awesome to see.
So, maybe you took a training course when you knew nothing about SharePoint and were totally overwhelmed. Well, maybe now that you’ve got your sea legs you should look into taking the same course again and see just how many light bulbs come on?
My son takes karate, and he complains EVERY time he goes. “We just do the same thing over and over again. It’s so boring”. I have to explain to him, that yes it’s boring and tedious, but it’s building “muscle memory” so when the time comes and he needs those skills he can react without thinking about it. This doesn’t make him look forward to going, but he does reluctantly go.
A similar story can be told about deep dive training for the seasoned developer. Yes, you will know a lot of what’s being taught and you will be tempted to ignore the labs where “I already know how to do that”, but don’t. Seriously. Walk through the labs and do them anyway. Read the words, follow the scripts. Develop your muscle memory so that when you have to use those skills in the future (or have to take certain certification exams) you don’t have to think about it, because you’ve specifically done it.. you’ve typed it in.. you went through the tedious steps of adding references, typing out methods, and using specific assemblies…
Another quick story… I’ve written many sandboxed solutions. It’s a common practice with SharePoint 2010 development. A couple of weeks ago I finally took a certain certification exam, and one of the questions asked “What process do you attach to when debugging Sandboxed solutions”… my reaction? Well.. I can’t write my exact reaction because children may be present, however that’s the stupidest question in the world.. I have “F5”, I don’t HAVE to attach to a process. Microsoft went to great pains to integrate SharePoint into Visual Studio so I wouldn’t HAVE to attach to a stinking process… Well.. anyway… now I know which process to attach to.
There’s no real substitution
“But I go to conferences all the time and learn lots of stuff there, I don’t need to go to training”.
Excellent argument… but, if I agreed with you, then we’d both be wrong. :)
Yes, conferences, user groups, blogs, videos, and books are all wonderful methods for learning and I would not suggest you stop doing any of those. However, those methods are great for learning specific tips and tricks, outlying topics, and other “pieces” of the SharePoint puzzle, but are those pieces going to fit together to make a cohesive picture that makes sense as a whole? Will you be able to connect the dots? Generally, the answer is no.
There’s no real substitution for the classroom setting where a picture has been well defined beforehand and cut into pieces made to go back together. You get a better understanding of the process as a whole. Plus, it’s hard to put into words the ability to raise your hand and say “Ummm… I didn’t quite catch that, can you explain it more??” Sure, you MIGHT be able to do that at a conference, but you’ll likely get the answer “Let’s take that offline.”
Also, there’s a lot to be said about learning with other students in a classroom. At some point, someone is going to ask a question you never even thought of before and it’s going to start a conversation. A conversation that would never have taken place otherwise where you learn some additional tip or trick or maybe even a resolution to a problem that’s been plaguing you for months. A deep dive, week long course affords the opportunities for a lot more interaction and questions than you will get in any other training scenario.
Finally, one of the most obvious advantages to these deep dive marathon courses is the lab time! The benefit of being able to sit at a computer and write an application that does exactly what you just talked about is immeasurable. Add to that, the benefit of being able to call upon the instructor when SharePoint decides to act up and it truly makes it worth the time and expense.
A word or two about THIS specific training course
The point of this blog post was NOT to turn it into an advertisement for the company whose course I attended, but I feel it’s essential to detail some of the huge benefits I got out of this course. Maybe others offer it as well? I have no real frame of reference as this was honestly my first classroom training experience since college (which was more years ago than I’d like to admit).
The course I attended was “The Great SharePoint Adventure 2010” taught by friend, colleague, and all around brilliant guy Andrew Connell of Critical Path Training. Full disclosure here, I’ve known Andrew for years now and consider him a good friend. AC and I spoke briefly about me writing this post and he was all for it. He was also very vocal that I be completely honest even if it meant me being critical. He did not want to (nor did he) influence the content/style of this post whatsoever (Actually, he found a typo. Does that count as content??).
In addition, I gave AC the opportunity to respond to the scathing criticisms below and his comments have been inserted for your reading pleasure.
Overall the course really good. A ton of great (and practical) information. It was delivered in a way that made sense and was easy to follow. The classroom was laid back and I doubt anyone felt intimidated by the environment. The lab computers where up to the task of running the VM’s. Lots of what you would expect from a good training company. So, let me tell you what was great, and what could have been better:
What Could Have Been Better
The coffee was pretty terrible, but was free flowing throughout the day… :)
[[Andrew Connell]] Agreed… not up to par. Here’s what we found out (because usually it’s Starbucks): The catering service is usually done by the café in the building. However the Microsoft office where we taught had shifted a lot of their employees over to the new location & instead we got coffee from Microsoft, not from the café. The new location is in a much better part of town where there’s not only a Starbucks, but also a Dunkin Donuts within walking distance!
So, there wasn’t anything really to complain about. Did the course go completely smoothly? No, of course not. If you are in a classroom for five days you are going to have some glitches. If I had to think about anything that someone could possibly complain about is that we ran short on time… but we ran short on time because there was a lot of great discussion in the class. Would I trade the classroom discussion to get some of the lab time back? Nope… but I figure there will be that one guy out there that would complain about it.
[[Andrew Connell]] We had a great class of students and the vast majority were very engaged in the discussions we had. Unfortunately that slowed us down and we did run behind. So we took up a vote and it was unanimous: cut one lecture presentation for more discussion (students still got the slides, notes and hands-on lab for that one module we skipped).
SharePoint is such a huge beast that’s impossible to go deep into every topic. If we had, we’d be there for a month. What topics were not deep dives?
- Service Applications – They were clearly explained, but this is such an advanced topic I don’t think any deep dive is realistic.
[[Andrew Connell]] But everyone did get a slide deck and presentation on the subject in the student manual… it’s just such an edge case that the vast majority won’t build so we elect to spend more time on the more common topics people need to know.
- Site Definitions – Another large topic. We didn’t walk through any demos or do a lab for Site Definitions but we were guided towards best practices and they where explained in sufficient detail where I feel I could go write one if needed.
[[Andrew Connell]] Fair comment… we did cover it, but not how you would build site def’s the traditional way. We did have a robust discussion on some guidance on who to best approach the challenge which involved effectively building a “living” site definition. No demo, but I think it was effectively covered in other areas of the class.
- BI – We simply ran out of time for this one, although we were provided with a lot of great reference materials and a video
[[Andrew Connell]] This is module all students voted to skip.
- Timer Jobs – We touched on timer jobs but did not deep dive into these. They are simple enough where I can see this not being critical, especially if you grasp the other concepts. However, if I (sitting in my ivory tower) had to choose one thing to add to the course it would probably be Timer Jobs.
[[Andrew Connell]] Just too small & simple of a topic to include in the class (in our opinion)… it did come up and we had a brief discussion, but we didn’t dive into much depth. Fair comment… the hard part: what would you cut in order to fit it in? Seriously… I’m very interested.
Okay, maybe none of the criticism was scathing, but thanks for the responses AC! As far as what to cut out. How about cutting out the BI module? I don’t think it was really missed, and we were given some great resources for follow up if we were interested. Timer Jobs ARE fairly simple, but there are some gotchas. Like creating the job on activation, attaching to the OWSTIMER process for debugging, and stopping/starting the Timer Service after deploys during development. Nothing difficult, but can be frustrating to a developer trying to figure it out. Again, just my two cents.
What was great
There were two huge standouts that Critical Path Training offered that I don’t think could be matched by most training companies. In fact only one company comes to mind that could possibly compete at this level of SharePoint training.
- The Instructor - So, I’m not sucking up to the teacher at all, but it’s really hard to beat an instructor who works directly with the SharePoint product team and has influence on enhancements and changes to the platform and development tools. AC not only understands the what’s, the how’s, and the why’s of the platform, but he also understands the nuances of the environment which produced this platform giving us insights into why the heck certain decisions were made. I don’t remember him getting stumped on any question and he was able to clearly articulate a lot of WHY you should not do things a certain way. If you’ve ever attended any of AC’s sessions you know he’s a great speaker, adds levity where possible, but clearly knows what he’s doing and can explain in such a way that people can grasp it. I mean, he’s not as great as I am.. but no one’s perfect.
- The Course Manual – This thing is massive at over 600 pages. It has all of the course slides with notes and walks you step-by-step through the labs. And when I say “Step by Step”, I mean it. I’d say idiot proof, but idiots have a way of outdoing themselves. The examples are real world scenarios for navigating the SharePoint Object Model, and creating functionality that you could go use today. It’s like they delivered a solution at some point to a client and thought “hey, that would make a great lab example”. It would be possible to walk away with nothing but this lab manual and have an invaluable tool and reference guide.
Don’t get me wrong. I’m NOT saying there is not other good training out there or that you are wrong to use other training companies. I know of other well respected companies and know the trainers at some of these companies. In fact, if they want me to come audit a course, just let me know. ;)
Summing it up
So, what’s the elegant, succinct paragraph that will put a period the end of this blog post?? I think I can sum my training experience as follows:
The SharePoint puzzle pieces in my brain fit together more tightly and missing pieces that I didn’t always know where missing were put in place. I have a fuller, clearer picture of SharePoint development and feel better equipped to conquer my next challenge
Maybe some day I’ll know enough to become an instructor…