For the past two days now i’ve been teaching myself ‘Objective C’ – Apple’s programming language of choice which is the stuff behind all their apps…
In the classroom
Although we don’t do much (in fact any!) programming in college these days, i did have to program in vb and asp.net for 2/3 years which are both Microsoft technologies.
In first year i was quite content to build basic applications in vb – i didn’t have a clue how to program in any language so i was happy to learn the basics in what we were told was a relatively nice, easy to learn language which would allow us to adopt easily to other languages.
The problem i had however was that nothing i was doing (in my world online) involved vb, or microsoft. So once asp.net was introduced i became frustrated because i was learning a language and using technology which in my mind i would never use in ‘real life’. And when you’re never going to use something outside of a classroom, you begin to question the value in committing to it and giving it your full undivided time and attention.
Back in 2007 when i started (and still to this day), PHP is the most useful language to learn in my opinion if you’re doing any web stuff. And let’s face it, that’s where everything is these days. Is it the best language to learn? No. But because so many open source CMS’s use php, you can start playing with the language and see what it can do in real life situations… in wordpress, in joomla, in drupal…
When it came to databases we used Oracle exclusively. Again, NOT open source and of no benefit to anyone in ‘real life’. ‘Real life’ to students in 1st or 2nd year learning their trade means building a website for a band or a plumber down the road. That’s more ‘real’ than building a fake shopping cart. How many of us could build a website in asp.net using oracle as a database management tool? Zero. Because we never did that, even in college. We used microsoft access as a database management system for our asp.net projects.
Again, MySQL is the obvious choice here. It’s open source, it’s easy for us to get at and play with. It’s what most CMSs use… so to me not using the right languages & technology kills my interest in certain technology even though in reality i might grow to love certain technology if i could apply it more to real life situations.
I’ve mentioned ‘real life’ a lot there and everyone’s definition of that will change but if somebody is looking for a site built, i won’t use asp.net & oracle to build it despite the fact i’ve studied both for a few years and i’m supposed to have a degree which covers them comprehensively. This is the problem i have with classroom & college learning – you have no control over what you learn and sometimes you really don’t know what you’re going to learn until you’re already learning, so you’re snookered and have to stick it out because it’s too late to back out.
In the virtual classroom
Because an iphone development course i was supposed to be doing this year in college wasn’t approved in time, i had to go with the DIY option. Two days in and i’m glad it worked out this way. I’m learning much more.
I’m learning better and faster than i have done in college because;
- This stuff is interesting because it can be used in the ‘real world’, in my world.
- I can stop & rewind videos (which act as ‘lectures’) or watch videos in one monitor whilst experimenting with code in another.
- I control what i learn and the pace i learn it at.
So because i’m genuinely interested in this stuff, i’m learning more and i’m learning faster than i would typically do in college. So you might ask the question why do i need college at all and the answer would be purely for the piece of paper i get out of it. The formal qualification that says “this guy knows his stuff in x area”.
At this stage in the game, i’d say that if you want to learn something bad enough, stay away from college or any training course because you can’t rewind lectures and because you only have one source of information which is never good, even if the source is trusted.
Real world to me, is ‘my world’. In my world, web apps use php, mysql, html5 & css3. So rather than sign up for some ‘web development’ evening training course, i’d surround myself with ebooks, training videos and demos and teach myself. That way i’m interested in everything i learn, so i learn better.
I suppose in many ways, if you’re sitting in a classroom learning something, you’ve already admitted that you aren’t motivated enough to learn this stuff yourself or you’re just there to pick up the qualification that confirms you can do everything. Either way, there’s always going to be a problem with motivation and concentration and that’s what it all goes back to. Just how badly you want to learn something. The more you can relate something to real life, the easier it becomes to understand and the easier it is to motivate yourself.