I remember the first thing I ever ‘programmed”: it was a very, very basic calculator (I think it could only handle addition) aptly written in BBC BASIC on a school computer in the early 90s.
10 LET x = 5
20 LET y = 20
30 PRINT x+y
… and so on and so forth…
The calculator, incidentally, has been something of a recurring motif for my undeveloped programming skills charting flirtations with Java (at university), Visual Basic (first through VBA at my first job automating reporting at an insurance call centzzzzzz…..) and a brief but ill-fated attempt at iOS programming (I was, and still am, convinced Angry Calculator® could be a massive hit).
Being a man of the Internet I have, and have had, countless websites and blogs over the years. But, despite having a mountain of ideas, the best I’ve ever been able to do with them is some light facelifts involving changing colours and adding links using scraps of HTML picked up from a lot of trial and error. I was a flimsy backstreet plastic surgeon, at best.
So, having previously looked at, but never had the will nor inclination to invest time in, some online classes, I enrolled in General Assembly’s Front End Web Development course this January. [Sidenote: at SoundCloud we have benefits for career related learning (another great reason to work at the ‘Cloud) so all I had to do was convince a few people that me coding was a good and not potentially disastrous thing for SoundCloud.]
The first week was a bit of a revelation – all of these basic definitions, syntax elements and developer tools that were previously obstacles now made sense. I mean, who knew the difference between a CLASS and an ID and that to change the colour in an entire website meant a tactical choice between the two. Before long we were even making our own websites (mostly based on an infamous cookie monster template that came back to repeatedly haunt us).
Classes tended to take a usual pattern – some theory interspersed with practical examples. During these examples I’d usually get distracted by some obscure and irrational thing that I wanted to do to change the exercise which usually required skills which at the time seemed far out of reach, yet in hindsight were usually no more than 3-4 classes away. Beginning to see how sites were actually put together and slowly being able to do it was sparking my curiosity.
The toughest thing in this first section was probably complex CSS selectors (I still have very little idea about preceding classes or child elements) whilst the most interesting was probably learning the basics of designing for mobile with responsive or adaptive design. Being introduced to boilerplates and frameworks was a dangerous but seductive shortcut.
Using Twitter’s popular Bootstrap framework, I built my first and biggest project to-date: Rumsfeld, an internal knowledge base for sharing Insight within the company. After multiple iterations I even made it look “on brand”. Here’s a screenshot but, for obvious reasons, I can’t share the whole thing… not least because it’s yet to be deployed internally (something about the codebase being a mess) but I’m holding out hope…
- Super Simple Sets – a bookmarklet (inspired by SoundCloud’s new moving sounds) that strips out all of the noise around a SoundCloud set and leaves you with a simple way to view and enjoy. Drag THIS to your bookmark bar and then apply to any set on SoundCloud, my new HotSpotMusic mixtape, the new Beach Fossils album or Eric’s set of relaxing sounds. (Note: It does not work and will make everything go a bit wrong with anything other than a set).
- Discography – an unfinished project that uses the last.fm API to cleanly list all the albums of any artist you choose. Ignoring some minor aesthetic differences (i.e. mine’s very ugly for now), it’s basically no different to the album view on last.fm but I have big plans for this. Also, it looks nicer on mobile.
This is just a couple of my unfinished, unpolished projects. I have plenty more ideas that I can now work on, not least the next evolution of my music blog.
Many people have said that being able to code is the 21st century literacy standard and I firmly believe this. After doing this course, I’m proud to say that I’m beginning to comprehend and, whilst I still don’t really know what I’m doing, I’m no longer completely ignorant about how to do it. For example, I can actually do something at our next hack day instead of being a self-proclaimed “ideas man”. And much to the amusement of some of my colleagues, I now have a github profile with commits.
Thanks a lot to Daniel, Samuel and Leonard for teaching the class. Needless to say this was a lot of fun and I learned a great deal. Inspired by this, my next challenge will probably be learning Ruby. Let’s see how that goes…
Course details for GA’s Front End Web Development class are here: https://generalassemb.ly/education/front-end-web-development