Programming languages have a lot in common with human languages. For a start, they all have a very particular vocabulary and syntax. You need to learn the rules to assemble meaning. And both machine and human languages are tools for of turning concepts in our heads into action in the real world.
My love of languages blossomed around the same time as my fascination with computers. I’d tinker around in BASIC on my Commodore VIC-20 as a little kid, getting that early PC to just do things. (I know, that really dates me!) And today, I’m lucky enough to have made a career combining those two strands together as an educational software developer.
Works in progress
That said, it’s a career that never stands still. And, just as with human languages, it’s important to maintain and improve your skills all the time. In the same way that ‘fluency’ is an ill-defined and unhelpful ‘completion’ goal, you never really stop learning in the tech industry. There’s no end-point where you down tools, show your certificate, and say “I know it all now!“.
A fantastic source of development training for me of late has been the peer-tutorial site Udemy. I like the nature of the platform, allowing ordinary folk the chance to share their skills (and earn a bit of money from it, too). I also like the pick-and-choose nature of it, where you pay per course, rather than an all-in subscription. That’s one reason I always felt I wasn’t getting enough usage from the industry training giant, Lynda.com.
In fact the only downside to Udemy is its odd pricing model. Courses are listed under a ‘normal’, inflated price, but are almost always available at a discount. This discount varies, meaning that users end up course-watching until the price is lowered. Then they pounce, usually at a very reasonable rate of around £10 or so. I realise that the commercial psychology behind it is to increase the sense of bargain, but it does seem a little convoluted.
What I’m working on
In any case – there are some gems of courses on there. That goes especially for those who fancy learning some programming for educational applications. For a brief overview, here are some of the fantastic resources I’ve found useful:
Swift 4 and iOS
Apple introduced the Swift language as a successor to the clunky Objective-C language in recent years. It’s much easier to learn, in my opinion, and is more cross-skill compatible with other programming languages. Instructors have embraced the new language on Udemy, and amongst the best courses are the ones from tutorial guru Ray Wenderlich, and London-based developer Angela Yu. I intended to use their courses as refreshers, but have learnt a huge amount from both of them.
Android and Kotlin
Kotlin has a similar story to Swift, as a new language positioned to supersede and older one. That old one is Java, which is arguably a lot more useful and widespread than Objective-C. However, Kotlin is remarkably similar to Swift in syntax and usage. As such, it’s a pretty good choice to add to your collection if you are aiming for both iOS and Android development.
There is an old-school Android developer on Udemy, Tim Buchalka, who really knows his stuff. He’s my go-to for all my Android courses, and his Kotlin course is probably the most accessible and practical out there.
Not all hard work!
It’s not all hard work, of course. I take a couple of courses just out of interest or curiosity. As a programmer, I’ve always felt a little inferior about my design and illustration skills. Not only that, but I’m often a little jealous of how in the zone and mindful digital artists can get when working. To that end, I’ve been following a great course on creating digital art on the iPad with the Procreate app. Because not everything has to be about languages, programming or otherwise!