Makers Academy05 Nov 2014 | Reading time: 14 min
tl;dr: Makers was amazing, and springboarded me into a career as a software engineer. Most of the coaches who taught me have since moved on, but it seems like the course still graduates consistently employable developers.
Not all tech startups are into ping-pong and meditating on beanbags, you know.
This one totally is, though. I wouldn’t have it any other way.
Two-and-a-bit years in pharmaceutical PR had left me jaded.
The day-to-day work that could be done by a shell script (or, more likely, just not done at all), endless meetings, useless project management, incompetent clients, Kafkaesque performance reviews, bullying, railroading. Having to use the same piece-of-shit computer every goddamn day. I wanted things to be done better; no-one wanted to hear it, because doing things better would mean less tedious administrative work, and without that, how are you supposed to get your junior employees to ‘pay their dues’?
Going for Makers Academy was a stab in the dark. Was it worth the money? Would I enjoy being a developer? Hobbies often don’t translate well into jobs. Just because I’ve dicked around with the command line in my script kiddie days doesn’t mean I’ll enjoy being a professional dev.
Some of the work was done for me. 80,000 Hours, a spin-off of the Oxford Future of Humanity Institute that tries to get people to take careers that will do the most good in the world, very kindly offered me a career consultation. We walked through the things I cared about and the options I was considering, did some research, and found that Makers looked like a near-perfect option: it leads to an interesting career that I’d likely stick with, with high earning potential as a software engineer (virtually uncapped if you include tech entrepreneurship), plus possible direct altruism through working on social enterprise. I described the course to my father. He’s unconvinced that tech is the right endgame – business would be more suited to me, he says. But he called Makers a “must do”; a no-brainer. Shortly after my entry interview, I signed off the single largest payment I have ever made. And as is often the case with the big life decisions you deliberate over for months, you suddenly wonder: “why did I wait so long?”
Makers Academy makes big promises. “Learn to code in 12 weeks”, shouts their site’s strapline. Eccentric and brilliant lecturer Enrique quickly pours cold water on our hopes. “Just to check, how many of you think you’re going to be awesome developers after twelve weeks?” No hands go up. “Good! I’m glad you’re all so realistic.”
The course is intense, but the level of effort is normalised by everyone else’s resolve, and by the energy of the place. Students and teachers routinely arrive before nine in the morning and leave after seven at night. No-one’s commitment is in doubt. Everyone is routinely out of their comfort zone. Everyone is here to work hard, and master a new skill. We are told, repeatedly, to expect to feel stupid, every day, for twelve weeks.
That social hack alone – that you get more shit done in a place where you’re shoved together with other smart, determined people than teaching yourself from a book or at a distance – makes the course fee worth it. Add to that the structured learning environment, learning from and teach other students, pair programming and one-on-one support and feedback from seasoned developers, and you have a formula for mass-producing junior devs ready to start their apprenticeships in tech.
Think of it as like getting your driving licence. You’re not nearly done learning to drive when you pass your test – you’re just beginning. But you have the basic skillset, the confidence, and the clout to be able to strike out on your own and guide your own development from then on.
Of course, feeling ‘stupid’ isn’t quite the right description. It’s more like the feeling you get when you start something as a complete beginner. You lose the heaviness and comfort of the thing you know you’re good at, only to have it replaced with the lightness of starting something new, of not knowing what to expect, of the standard that will be expected of you by your teachers and your peers. The cohort is more diverse than I expected for a tech bootcamp. Ages range from 19 to 40, averaging 27 at a guess. A quarter of the group are women – far higher than the tech average. Backgrounds include business consulting, project management, PR of various sorts, marketing, sales, academia, design, with a handful coming straight from university or high school. A few are looking to start businesses straight after graduating, but most, like me, have quit unfulfilling jobs to pursue a better life.
One of the students comments to me that it seems almost unfair that you could be paid money to do something this fun. I’m inclined to agree.
Enrique once told me that learning to code is like learning to cook if you’ve never eaten food before. It’s totally abstract, and without any frame of reference that tells you when you’re on the right lines, when you’ve made something that works. So don’t be too hard on yourself if you’re struggling. Sometimes we all need to hear that. Roi, now a coach at Makers, tells me that when he took the course, he felt stupid every day for twelve weeks. Constantly feeling dumb is hard, and it’s easy to let pride stop you from reaching out for help.
K spoke to Enrique, Head of Education, about the course. He’s worried he’s falling behind, and wanted to know if there were any ways to learn more efficiently. “Forget ‘working smarter’,” Enrique told him. “Just work harder. Put the hours in.” I think it’s advice many of us need to hear – that there’s no secret to getting good at this stuff, and nothing magical separating the top of the class from the bottom. You sit down at your computer and make the clackity noise until you get good. Skill acquisition is more democratic than you think. Sometimes I want to remind people of that.
Just as a cook needs to know about the chemistry of baking to turn ingredients into a meal, a coder needs to know how to turn problems into something a computer can understand. Jordan, the endlessly charismatic Director of Marketing, introduced this by comparing object-oriented programming to Platonic forms. Classes are a mould, in whose image objects can be created. These objects inherit properties from their parent class – this tells them who they are, what they know and what they can do – but these objects can themselves be extended and built upon. Understanding this, and how objects relate to each other in a program, was one of the biggest headfucks our cohort came across. But bending your problem like this, organising it into interdependent classes which do things to each other, is the first step in building sotware.
At school and university, I always thought Chemistry was one of the more testing subjects. It involved real understanding – wrapping your brain around totally foreign ideas. There was a distinct sense of seeing ‘in your peripheral vision’, in a sense; not quite visible head-on, but understandable on some primal level. The moment when those concepts shift into focus is like feeling your brain rewiring itself. I haven’t had one of those moments for a long time. Much of my degree was memorisation, and the world of work that followed proved to be mostly intellectually uninspiring, a couple of interesting stints excepted. But working on a code problem and, after hours of rumination, having the answer seemingly present itself to you is truly sublime. And as a beginner, there are few better languages in which to see this happen than Ruby. Powerful, elegant, and expressive – I can see why people fall in love with it.
Makers Academy staggers each intake of students by six weeks, which means every cohort gets a chance to interact with range of would-be software devs at different skill levels. Today is graduation day for the cohort above us. They present their final projects, and Enrique gave a short speech:
“At the end of the day, this is a bunch of people who come here and learn to code in twelve weeks. Which, in itself, is insane. When I first came here, I thought, ‘there’s no way you can learn to code in ten weeks.’ (it was ten weeks back then.) … But I saw people slowly learning to make machines do their bidding. And I think I speak for the whole team when I say that’s what keeps us alive – seeing you all do this incredible thing.”
Programming is a really weird industry, and one that doesn’t seem to have any near neighbours. It’s very democratic – there are no formal qualifications needed. There are plenty of excellent devs who’ve gone on to do great things with software but who never went to university. Courses like the one I’m taking are testament to this: provided you have some code under your belt and can show off your technical chops to employers, you’re hireable.
It’s also very undemocratic for the same reasons. There’s no clear path to becoming a developer. Courses like Makers rely on connections with alumni and local companies to get placements – connections that someone trying to teach themselves to code, the average career changer, couldn’t possibly expect to have. Without a structured route into the industry, plenty of good people are locked out of it. Makers is doing well to capitalise on this, connecting wannabe devs with talent-starved companies. But for a growth industry with huge and rising demand for coders, it’s surprising there isn’t yet a more established way in, given that there are far fewer Computer Science graduates than there are junior dev positions to fill. Jim Suchy, a developer at 8th Light, talked about this in a talk he gave at Pivotal Labs.
One of the big problems software has is that few people stay in it for thirty years: they either get bored and move on to something else, or get moved to a middle management role and never use their coding skills again. The solution, in part, is emphasising craftsmanship – ensuring your skills improve year after year, mentoring others and learning from mentors, keeping you on the path to mastery.
This course takes grit. Persistence and confidence under uncertainty are vital qualities, particularly as Makers likes to change the curriciulum regularly. You need to be self-directed, and have done the required pre-course material (and more). This is probably a good thing: as a real developer, you’ll frequently encounter things you don’t know or understand and will have to teach yourself, or ask someone for help. At the same time, there’s a limit to how self-directed you can be.
Ultimately, the course is geared towards quickly producing a certain kind of developer, and that’s a good thing. It’s run from custom online material that includes walkthroughs, mini-tutorials and screencasts. Some weeks are better than others in how thorough they are; there were lots of complaints in weeks five and six where the written material seemed half-finished (Makers has since said it will rewrite those sections of the course). All this goes to show that Makers is as much a social hack as anything else – being on a team with twenty other people all hungry to learn is incredibly motivating just by itself. It’s been a fantastic experience so far.
These students have what it takes to be developers. It’s not about knowing a language, it’s about knowing how to solve a problem; how to bring simplicity into the world.
Makers has been a lot of fun. Twelve weeks of intensive work, learning a new skill, totally retraining, having only moments earlier thrown away a half-decent career. Other people have come from similar backgrounds to do the course: one worked in strategic consulting, and had a similar gradual realisation to me that his field was slowly sucking the life out of him.
I think everyone, with a single exception, got a lot out of the course. Not everyone is at the same place – those who had done more preparation when they started are further ahead than those who did less. But I think in terms of what’s been achieved and learnt in twelve weeks, everyone is amazed at their own progress.
(I should note that Makers recently updated their website to describe the course as being sixteen weeks: twelve weeks taught plus four weeks of full-time self-study beforehand. I suspect this is partly to get much of the boring material out of the way before students join, and partly to ensure everyone’s at the same level when they start.)
Our final project was an internet-connected thermal printer that could read an RFID card (like an Oyster card), identify you from a database and print out a custom chit – with, say, your calendar events for the day, your current GitHub stats, or (if it’s getting late) any Tube delays and the weather for the next hour. The plan is that the device stays at Makers and using becomes part of the daily routine there. It’s based on Spark Core, so we call it Spark Printer.
It’s pretty neat. Engineering it was the biggest challenge I’ve faced so far. Specifically, working my way through the Spark documentation and figuring out how we were going to make this work – what functionality the Texas Instruments chip on the Core has, how it talks to their cloud server, the limits in size and number of API requests, using
Spark.publish to listen to events from the Spark – all the technical stuff that makes the internet hard and is usually abstracted away for you.
Most final projects are pretty bog-standard Rails web applications. It was incredibly rewarding to go against the grain and build something different. We made a real product that lives in the physical world, and learnt a bunch of new technologies in the process.
While we were building this, the excellent Chris Waclawek from Estimote came in to talk about iBeacons and the Estimote product line. The audience was wowed – the more he spoke, the more use cases people dreamed up for these magical little devices that give your phone context and tell it what’s nearby. It was the kind of magic that the early iPhone had: none of the components were particularly innovative, but they were put together in such a way that opened up millions of possibilities that Apple had never thought of and that developers were free to implement.
Whether working in tech will be the dream we hoped for has yet to be seen, but the signs are there. It has a vibrant community, it’s full of smart and engaged people, there’s a tremendous focus on continuous learning and understanding new technologies. It’s a huge world – some people work for giant corporates, some for small web shops, some for themselves, others remotely in far-flung countries. It’s meritocratic in a way that I don’t think exists elsewhere any more. Now, we polish our GitHub profiles, ensure our code repos are well-documented, and wait to be placed. I’m excited to get started.