When I look back at those 4 long years I spent at university I always feel a wide range of conflicting emotions. Initially it was one of bewilderment as I was amongst some of the smartest people I’d ever met and they were all passionate about what they were studying. During my second year it turned to one of pride as I began to find my university legs and excelled at my chosen specialities. However the last 2 years of university saw me turn on the career I had once been so enamoured with, questioning why I should bother to languish in lecture halls when all of what I learnt would be irrelevant upon completion. Still 4 years on from that glorious day when I walked out of parliament house with my degree in one hand I still value my time there and I couldn’t be sure if I had the chance again would I do it any differently.
Unfortunately for me my predictions of most of the knowledge being irrelevant outside of university did ring true. Whilst many of the skills and concepts I learnt still stick with me today many of the hours spent deep in things like electronic circuits and various mathematical concepts haven’t found their way into my everyday work life. I wholly lay the blame for this at myself however as straight out of university the most lucrative career I could land was in IT support, not computer engineering. This is probably due to the engineering industry in Canberra being none too hot thanks to the low population and high public service employment rate but even those who’ve managed to find jobs in the industry quickly learned that their theoretical university experiences were nothing compared to the real world.
What university did grant me was the ability to work well from a fundamental base of knowledge in order to branch out into other areas. Every year without fail I found myself trying to build some kind of system or program that would see me dive back into my engineering roots to look for a solution. Most recently it has been with Lobaco as I’d barely touched any kind of web programming and had only limited experience in working with real 3 tiered systems. Still my base training at university allowed me to ask the right questions and find the right sources of information to be able to become proficient in a very short space of time.
Flush with success from coding and deploying a working system on the wider Internet my sights turned to something I had only a cursory experience with before: mobile handsets. A long time ago I had tried to code up a simple application on Windows Mobile only to have the program crash the simulator repeatedly and fail to work in anything meaningful way. Still being an iPhone user and having downloaded some applications of questionable quality I thought it couldn’t be too hard to pick up the basics and give it the old college try. Those of you following me on Twitter would have noticed how there was only one tweet on iPhone applications before I mentioned HTML5 as the potential direction for the mobile client, signalling that I might have bitten off more than I could chew.
Indeed this was what happened. Attempting to stumble my way through the other world that is Objective-C and Xcode was met with frustration on a scale I hadn’t felt in quite a while. Whilst the code shares a base in a language I know and understand many things are different in ways I just hadn’t fathomed and the resources online just weren’t the same as what I was used to. I managed to get a few things working but doing simple things like say incorporating the pull to refresh code into my own application proved to be next to impossible and still elude me. After a while though I began to think that I was missing the fundamentals that I had had when developing for other platforms and dreaded the idea of having to drudge through one of the millions of iPhone programming books.
Right in the depth of my plight I came across this Slashdot article on someone asking which mobile platform they should develop for. Amongst the various responses was this little gem that pointed me to something I had heard of but never looked at, iTunesU. I had known for a while that various universities had been offering up their lecture material online for free but I hadn’t known that Apple had integrated it into their iTunes catalogue. Searching for the lecture series in question I was then presented with 20 lectures and accompanying slides totalling several hours of online content. With the price being right (free) I thought nothing of downloading the first lecture to see if there was anything to gain from this, and boy was there ever.
Whilst the first 30 minutes or so were general housekeeping for the course itself the last 20 minutes proved to be quite insightful. Instantly I knew that the way I was approaching the problem wouldn’t work in Apple’s world and I needed to develop a fundamental base of knowledge before I could make any meaningful progress. These lectures have proved to be an invaluable source of knowledge and proved to be instantly valuable, helping me develop a base application that resembles what I hope to one day release to the world.
It’s this kind of knowledge dissemination that will disrupt the traditional education frameworks. The amount of information available to anyone with an Internet connection is unfathomable and those with a desire to learn about a particular subject are able to do so without any limitations. Back when I started at university anyone wanting to attend the lectures had no choice but to be physically present at each lecture. Sure you could probably grab the lecture notes but they’re a poor substitution for actually being there, especially when the classes are as useful as the ones provided by Stanford. They won’t make you an iPhone programming genius on their own but if you’ve done any sort of programming before you’ll quickly find yourself becoming vastly more proficient than you would bumbling around blindly in the Xcode IDE as I did.
In the end I realised there’s really no substitute for starting with the fundamentals and working your way from there. I had assumed that based on my extensive past programming experience that learning an new language and IDE would be a walk in the park. It took me several days of frustration to realise that I was using my Microsoft hammer to bash in Apple nails and that wasn’t getting me anywhere fast. Just an hour spent watching a very basic lecture proved to be more insightful than the hundreds of Google searches I had done previously. It’s still early days for me as an iPhone programmer but I’ve got a feeling that the next few weeks spent coding will be much easier than the week that has led up to it.