As I grow older and older (...and older, and older, annnnnd older), I find that I have obtained a fairly amazing state of laser-like focus on my excessively high falutin annual goal:
To be a slightly less horrible developer this year compared to last.
My normal ticket to ride for this recurring theme revolves around sites like Pluralsight and my newest video training sweetheart, TreeHouse. But I got all excited about a potential opportunity to join a new mobile team and splurged on some great training this year. It's like a luxury vacation, except it's really hard work, and your brain comes out the other side feeling like a bowl of oatmeal that just got shot out of a giant potato gun. It's not pretty, but damn it's fun.
It's tough to choose a training course... They're expensive, and reviews are far and few between. I have occasionally considered attempting at least a temporary career of jetting around to tons of different courses writing up reviews. Wouldn't a site like that be awesome?? As soon as I find my buried treasure, I'm on it. Until then, here's my take on the 7 day course, "iOS Essentials With Swift" offered by the Big Nerd Ranch.
Short version: It's absolutely awesome. Go sign yourself up.
I have now been to The Ranch twice. My first experience was in 2007. The first iPhone had been released, but there was no official SDK yet, and Steve Jobs was telling developers to write web apps. I took the class to learn Objective-C and Xcode, in hopes of writing software for the Mac. I was very new to software development, barely understanding the field at all. Despite my high hopes, the class proved too much for me. My minuscule bits of experience with BASIC, Java and Visual Basic in conjunction with my tiny brain (which resides in a cozy, but overly thick cranium) were not enough to get me over the hurdles of Objective-C and the bits of C one had to dip into on occasion. "Interface Builder" was a nightmarish maze (not to mention a completely separate application from Xcode) compared to the ease of use of the visual designer in Microsoft's Visual Studio IDE. I actually cried. I was terrified that I was simply too stupid to be a developer, and this was a painful wakeup call to let me know that I might be better suited to... pretty much anything.
/* Here it is, the most important part of this post */
Don't be discouraged! The fact is that I had failed to prepare. I tried to take on two new languages, a new code editor and a new UI designer knowing next to nothing, and I expected to be spoon fed at the training. When that spoon turned out to be an over-sized steel shovel, I was caught completely off guard! It's been frighteningly close to a decade since that fateful experience, and I actually did somehow manage to become a software developer... Just not for Mac apps, and not with Objective-C. I've been eyeing iOS development with envy and desire for a number of years now, and when an opportunity arose at my current company to potentially jump on a new mobile dev team, I jumped at it... But not quite like I did back in 2007.
The 2016 version of me decided to start preparing immediately. This is the absolute best advice I can provide, regardless of whether you're planning to hit the Big Nerd Ranch, some other organization's training course, or even just hitting up some local user groups (Meetup.com tends to be a great resource for finding them): You will get infinitely more out of any training, conference or talk with a little prep-work. When you're at the actual event, you'll have peers and experts around to ask questions and play with ideas. Do you want to ask how to declare a string variable, or do you want to ask how to work with strings to internationalize your app? Do you want to ask how to hook up a click handler, or do you want to ask about the underlying command pattern so that you can create a reasonably well architected solution? The amount of legwork you put in up front will pay off in dividends with respect to how much you get out of any training, conference or talk you attend.
The Big Nerd Ranch will send you some pre-reading to do, but it is very elementary, and I would strongly encourage you to spend more time learning the basics and getting familiar with the tools you will be using. Things will come easier and faster to you with that pre-work under your belt, and that can make the whole experience not only more valuable, but also a whole lot more enjoyable!
Once you've got some prep-work out of the way, you're ready for class. Because these classes cost so much, you really want them to be intense. Most of us cannot afford to go to one of these classes more frequently than once every few years. If you are lucky enough to have a company willing to send you to a training like this, grab that opportunity with both hands and milk it for all it's worth! If not, I feel your pain... And it's that much more important to get as much as you can from the whole experience.
There are a few key factors that I feel set the Big Nerd Ranch apart from any other organization I've had the chance to work with and learn from:
So if the time is right for you to level-up, and there's a course that fits what you want to learn at the Big Nerd Ranch, it gets my absolute highest recommendation. As for myself, I definitely feel like I have a significant leg-up on my goal of becoming a less horrible developer this year, so I'm patting myself pretty hard on my nerdy back. Go rock out, and be awesome!
Jon Bachelor: This geek goes all the way to 11.