Don't forget to...


Friday, September 28, 2012

My experience with Udacity

Last week I finished a free online course from (google it if you're unfamiliar - it's frickin' bomb!)  So I thought I'd write a post about my experience.

SO good.  I learned python, google app engine and how to create my own website....though this time I'll retain it a little longer.  The lectures are given in video format, and they are so well edited that if you really like software, you won't even realize you're taking a course - it'll feel like entertainment!  Until you get to the assignments of course - that's where the real learning comes.  They start off riDICulously easy, at least for anyone who's written code before, and they slowly get a bit harder, though the only issues with completing them you'll have are with debugging weird nuances of don't even need to know python to start, because everything you need is usually the first link in a google search result page.

The best part is that it's all FREE!  And these courses are no joke - they really are quality.  Not only that, they're taught by big-time names in the industry, and even decorated professors from around the world.  The one I took (CS259) was taught by the creator of Reddit, and it really does feel like he's teaching you.

IMHO the online course format offered by Udacity is WAY better than university - FOR THESE TYPES of courses, that is.  You see, the marking is done by automated tests, and in a course like this, where the answer is either right or wrong with no grey area, that's easy to do.

At times it felt like a way to get more people to develop with a google framework (Udacity is founded by a Google Fellow), and even to advertise Steve Huffman's new project, Hipmunk...but honestly, it's a high-quality (like, google-high-quality) university course offered for free, in a format that will allow you to enjoy it too.

So yeah, if you like software go take a course on the site.  I'm trying the debugging one next.  I'll need some extra debugging skills for work.

I did the bonus on my 'final exam' (it's not really a final exam, there's no time limit...but it was fun though), and though it's pretty bare bones, I'm proud of the job I did in a short time.  Here it is:  Maybe one day my cyborg grandkids will want to see it to understand how primitive humans used to share their thoughts.

GAddAMN that's geeky. :D

Sunday, May 20, 2012

Develop With Passion Week Long Course

This past week I attended a course in Austin, TX by a company called Develop With Passion, where I got some much-needed education on design patterns, good OO design and how to apply it to a code base.  This post will be about the course and my thoughts on my journey in software so far.

"The greatest of weaknesses is the fear of appearing weak to others."

First off, I should share where I'm at.  I've just graduated with a BSc. in Computer Science from the University of Calgary.  I landed a sweet job at Amazon in Seattle, and I'm starting there later this year.  I did an internship in oil & gas in Calgary, AB that finished in Dec. 2011, and that combined with my class assignments and small personal projects makes up the entirety of my programming experience...I thought I was ok at coding, I figured I could probably hold my own in design discussions with most professionals, especially after my experience in my internship.  After all, having a degree I'd thought it'd be safe to say I had the right skills.  This course proved me wrong.  Extremely wrong.  Super-Size-Me wrong.

The course took 5 days, M-F, and lasted from 9am to 9pm every day...yeah, not for the weak at heart.  A bit of advice: drink water throughout constantly, your brain needs it.  The instructor, JP Boodhoo, is a well-known and sought after software consultant/developer in Calgary.  He's possibly the best software teacher I've ever had, and by far the most passionate.  The class was pretty small, and that allowed us to get to know each other quite well in the 5 days we spent locked in a conference room.  Pair programming was a must, and I have to admit, that was one of the hardest parts.  We covered everything from design patterns to TDD to domain-specific languages to containers to important .NET core constructs - core concepts to specifics of certain tools.  The course is very hands-on ( almost never get to code with the instructor in university...and that's because most university instructors can't code) and we worked with C#, thought as I understand, JP teaches courses in other languages, ruby included (yee!).

From the first talk on Monday morning, I knew it was going to be something more than just a software skills course.  JP began by talking about the importance of goals - personal and professional.  JP is like no one else I've met - he can code faster than I've ever seen or thought possible, communicate ideas more clearly than any of my professors, and all the while inspire me to do better - professionally and personally.  I was not ready for this course, but I'm glad I took it, and I'm committed to taking JP's software teachings and applying them - not in theory like at university, but in practice.

My fear coming out of the course is that I'll end up shirking on the daily practice I committed to...oh and my goal is to do one 20 minute code kata every day for 1 year...but now it's up here on the web, so hopefully if anyone still reads this thing, I'll get some messages between now and May 18th, 2013 asking if I'm keeping up with my goal...I'd hate to publicly fail a simple 20-minute per day goal.  So if you're reading this, and no one's commented recently, leave a message and give me some fire to keep it up!

Anyway, all-in-all, course rocked, but the real benefits of it won't show up for me until I've studied the material some more and got some more code katas under my belt...hopefully I've got something solid to show in 1 was good timing for me, I was getting a bit too comfortable.  If you're interested in getting fired up about software again and have some experience in developing object-oriented software already, or if you're like me and just out of school and about to start a job in software, I would highly recommend taking it, here's the link to the site: