Learning to code is hard, but gatekeeping makes it a hell of a lot harder. In this post I’d like to touch on a few of the challenges we face in technology education.
Coding isn’t an experience traditional education tends to prepare people well for. It's characterised by failure–you try something > that doesn’t work > you try something else > repeat until you solve the problem. Most of us were sent the message loud and clear at school that we should avoid making mistakes at all costs. This can make us reluctant to embrace the experimentation that's an essential ingredient in writing code. Without mistakes, we can’t learn or innovate–two things generally regarded as crucial in tech.
A more general problem getting people into coding is that we're still figuring out reliable ways to teach it. It doesn't help that schools are not typically optimised for helping kids discover things they might be good at. The famous Ken Robinson TED talk covers that better than I ever could.
We like to talk about the importance of workplace culture making it “safe to fail”–but the reality is that it’s safer for some than it is for others. If you are the only person on your team from an underrepresented background, it’s probably significantly riskier for you to make mistakes than it is for your colleagues.
Even if management has done its best to make a workplace environment supportive of experimentation, if someone comes from poverty, or is e.g. a single parent with no safety net and bills to pay, they might feel a lot less incentivised to take risks. This isn’t just a problem for equity of opportunity, it’s a massive restriction on the innovation we are capable of generating as an industry. We need a full representation of people being empowered to create and influence direction in technology.
Side rant: A lot of what we describe as innovation essentially boils down to efficiency improvements to business process, because that’s where the funding money is. We’re living through the consequence of “move fast and break things” culture, but real innovation can change societies and address incredibly hard problems.
I work in education and of course consider learning to be of huge importance in creating conditions in which people can empower themselves. But education is not enough. We also need to break down structural inequality–there is no shortage of overqualified Black people who are underemployed or at best underutilised by companies that complain about not being able to find the “talent” they need. If we really want a fairer reality, we'll couple education with efforts to combat systemic injustice.
The uncomfortable truth is that far from breaking barriers, education is often part of the privilege-reinforcing machine. With large companies only hiring from certain “elite” colleges and universities, these institutions could be described as finishing schools for the wealthy. In my work I’ve collaborated with a variety of educators, and to be completely frank, the more vocational courses (e.g. bootcamps) are frequently better preparing students for working in software (take as an example the fact that many trad unis are not even teaching APIs yet). Candidates from marginalised backgrounds also often bring a mindset that is of huge benefit to the teams they join, and yet they remain less employed and promoted than those with a degree from a prestigious university.
I grew up poor but in a time and place where tuition was free and people like me even got grants. Years after my degree (with a string of minimum wage jobs in-between) I retrained for tech with a Masters that was also publicly funded. It still wasn’t easy, I worked full time throughout my undergraduate studies, but if these supports hadn’t been in place it just wouldn’t have been an option. I can’t convey the transformative impact this had on my experience of life, not just because it helped me climb out of poverty, but because I found something I was good at, and that was valued.
Having worked in tech education for some years, I feel we can do a lot more to use learning as a genuine tool for empowerment. Whether we’re creating open source contribution pathways or developing training and certification programs for products, we can be mindful that these might have the power to connect someone to real opportunity, and form our experiences and partnerships accordingly. There’s always scope to leverage our own connections and the power we have access to by virtue of the companies we work for.
When it comes to tooling, I believe the growth of no/low code will continue exerting pressure on the unnecessary barriers we’ve inserted in the making process. There is an increasing expectation that people will be enabled to solve problems with tech without having to rely on external expertise.
An added frustration for me working in devrel has been developer exceptionalism–the idea that developers are a special breed, fundamentally distinct from all other lifeforms. This nonsense has to go away.
Whether you build your tech with a playground type experience in mind making it feel safer to experiment, or create learning pathways designed to support beginners, for me it’s about opening doors–if it sets someone on the road to developing more coding skills that’s great, but if they just manage to get something done without access to engineering resources that’s also a win. If your company is part of a network (most dev products are since they tend to be defined by their integrations) you could also consider whether this gives you scope to form industry connections that benefit your community of users.
The non-exploitative bootcamps (I’m a big fan of the School of Code in the UK) give me hope that we can build a more equitable, representative industry. The companies who profit from the skills acquired should be bankrolling these education programs, either via taxes or by directly funding training instead of relying on people forming communities to support learning. Oh aye and please stop requiring degrees for any and all jobs ffs, many of the most technically accomplished people I’ve worked with don’t have one. 😑