The Code School-Industrial Complex
While some code schools are intentionally predatory institutions, many more simply recycle the tired tropes and biased practices rampant in startup culture.
Almost two years ago, I decided to attend a code school and become a developer. I had had enough of low paying, exhausting work with no career path and no job security. Though it wasn’t painless, I had the right combination of skills, privilege, and luck to make it through. After graduating, I spent six months working at the school I attended as their associate director, then became a junior software engineer.
Code schools and developer bootcamps have captured the attention of political leaders, the media, and people like me: desperate for a modicuum of hope in a labor industry determined to wring every last drop of value from us. Many people, both inside and outside tech, have sought me out to find out more about code schools, programming, the tech industry, and the employment prospects for junior developers. To find someone who has first-hand experience with both attending and administering a code school is something of a rarity. When it comes to code schools, all most people have to rely on is rumors, questionable online services, and marketing copy.
It’s not hard to see the appeal of these programs. I spent four years attending college, and accumulated enough debt to buy multiple new cars, and in the end that degree hasn’t kept me employed. Even if people who have graduated since the recent recession can afford a college degree, many are questioning whether college is worth the time and money. For even more people, the resources to earn a degree were never within reach at all, and low-wage work was always their only option. In contrast, many of the most recognizable coding schools boast greater than 90% hiring rates and guarantee job placement. Some promise minimum salaries and maximum time periods job hunting, or they will refund a student’s tuition. Attendees complete the programs not in years, but in months. A few schools even offer deferred payment plans, or take a percentage of graduates’ first year salary, making the often exorbitantly priced classes possible for many more people.
Code schools can help students achieve all the things they promise and more. Unfortunately, these results do not materialize for all graduates.
Code schools are a force created by developers and born within the cultural climate of high tech, and many school founders embrace the broken ethos of that culture. These founders value and espouse the ideas of meritocracy, overwork, and entitlement, leading them to believe that their school’s value is self-evident and unquestionable. Their schools become a mouthpiece for broadcasting those mores into the minds of new technologists.
The entitlement of code school founders is often the root of the greatest problems for students. The same beliefs that marginalize people in tech workplaces manifest similarly in code schools. In the workplace, support staff are undervalued and programmers are treated as the only skilled employees; in code schools, teaching skills are undervalued, and this manifests as ‘instructors’ who rarely have formal training in how to teach. Convinced that their personal blend of learning techniques, development tools, and choice of code stack is the only and best way to create, instructors proscribe tools and technologies that may not be suitable for complete beginners. For instance, many Ruby on Rails-based curriculums require their students to do test driven development, especially using RSpec and Factory Girl. While teaching the importance of testing is essential to attract the attention of many employers, forcing students to write tests before code when they don’t yet understand basic programming constructs like loops and data structures will only trigger impostor syndrome. Layering multiple domain-specific languages on top of that is a recipe for struggle. When the devaluing of teaching skills combines with the idea of meritocracy (or biased essentialism based on membership in a marginalized group), it is easy for instructors and administrators to attribute failure to the student, rather than to the instructor.
This same combination of undervaluing any work that is not programming also appears as a lack of formal policies, systems, and safeguards. How well instructors are vetted before they are hired and whether or not their background is checked for abuse is anyone’s guess. Students rarely have a safe way of reporting abuse by school officials, if there is any mechanism for reporting at all. Even if such a mechanism does exist, it’s unlikely that school staff have had any training in responding to these reports. Many students come in with few other prospects if they don’t achieve the school’s promised outcome and a huge amount of money on the line. When they are left in the hands of instructors with absolute power over those outcomes who may or may not have been properly vetted, with no recourse to report or resolve disputes, it creates a perfect atmosphere for abuse. In an industry where peer-to-peer abuse at professional conferences is rampant and a code of conduct can be controversial, it is more a question of if someone will report abuse at a code school, rather than if it has happened.
This aversion to policies and independent accountability also leads school staff to deem state licensing a nuisance or even something to be avoided altogether. Few code schools have, or even seek, required state licensing as a for-profit school. As a result, students are denied crucial state-mandated disclosures about independent grievance arbitration and refunds for students who fall victim to predatory schools. Further, students can rely only on a school’s internal definition and reporting of graduation and job placement rates, rather than uniform state-defined statistics. Because so many schools avoid compliance with these standards, the truth is, we don’t know much about the effectiveness of code schools, long term outcomes for graduates, or even how many schools are out there. And because every code school builds their curriculum from scratch, it’s extremely difficult to make an apples-to-apples comparison as a potential student. Whether or not a code school follows best practices is often impossible to independently verify.
Before students are even accepted, school admission officers often select for easily marketable students, which often translates to students with the most privileged characteristics. Whether through intentionally targeting those traits because it’s easier to ensure graduates will be hired, or because of unconscious bias, is difficult to discern. Because schools’ graduation and employment rates are their main marketing tool, they have a financial stake in only admitting students who are at low risk of long-term unemployment. In addition, many schools take cues from their professional developer founders and run admissions like they hire for their startups. Students may be subjected to long and intensive questionnaires, phone or in-person interviews, or be required to submit a ‘creative’ application, such as a video. These requirements are often onerous for anyone working at a paid job or as a caretaker for others. Rarely do schools proactively provide information on alternative application processes for people of disparate ability. The stereotypical programmer is once again the assumed default.
Photo CC-BY 401(K) 2012, filtered.
Once students are admitted, the next, and arguably biggest, hurdle is how to pay for these programs. Big-name schools can easily cost more than $15,000 for a 10-week program. Even smaller local schools or part-time programs are rare for less than $5,000. Schools not only charge enormous sums of money, but also have few options for paying. Because schools are rarely licensed, let alone accredited, they are not eligible to take federal student loan money. This means students must find a way to access huge sums of cash, often on short notice. Since these programs promise such life-altering outcomes, many students see them as an investment in their future, and may take on more risk than they might otherwise. Some apply for high-interest debt, or turn to fundraising sites. An entire cottage industry of questionable alternative financing and crowdsourced loans has sprung up to fill this need. Even schools with more progressive payment options often don’t help students access essential resources like caregivers for family members, transportation, living expenses, or the computer needed to complete the course.
Code schools can provide a pathway into a heavily gated industry, and even the ability to cross class lines or overcome institutionalized boundaries. However, for this pathway to be effective, school officials must implement robust and transparent policies, unbiased admission standards, and instructor vetting processes. To keep schools accountable for their outcomes, school officials, states, and students must work toward licensed schools that actively seek to overcome institutionalized bias in their organizations and their graduates.
Coding schools must also teach their students much more than how to code. Newly-minted junior developers need a wide array of skills and knowledge unrelated to programming to navigate the tech industry. They need training in the cultural expectations of the tech community. They need mentors. They need emotional support as they make a huge transition. They need to relearn how to apply for jobs. Effective coding schools will provide training and support in all of these areas, offering instructors and mentors who are not only industry experts, but knowledgeable about power dynamics and unconscious bias. Students must be supported emotionally with training about empathy, impostor syndrome, and stereotype threat. They must learn how to adjust common job-seeker cultural expectations – like what to wear and appropriate resume length – to fit a new industry; how to find and apply for jobs; and techniques for interviewing. All of these things change when transitioning into tech, and receiving guidance in these areas is inextricably tied to a code school graduate’s chance of success.
Photo CC-BY waferboard, filtered.
In addition to the teaching they provide, code schools must find more sustainable ways for students to deal with the cost of schooling, or better yet, find a way to distribute the costs of schooling to the tech community at large. Schools must account for living expenses appropriate to the local area their students will be required to inhabit, options for family care, transportation, and necessary technology. Students must also be allowed to make choices with that money. Scholarships are useful, but if a student can’t choose to spend money in the ways that make sense for them, it can never be truly accessible. Although not a code school in the traditional sense, the Ascend Project pilot (brain child of Lukas Blakk and sponsored by Mozilla) is the closest I have seen to a model that is truly accessible—“Ascend provides the laptops, breakfast, lunch, transit & childcare reimbursement, and a daily stipend in order to lift many of the barriers to participation.” Providing all of those things is essential to giving people an equitable chance to learn and grow.
When code schools combine a flexible payment model with effective teaching, access to tech networks, and cultural training, they can provide a way into the cloistered tech community for many marginalized and underrepresented people. Herein lies the greatest potential of the code school phenomenon: People who would never be able to access the time, resources, or networks needed to get a traditional computer science degree or build a portfolio of unpaid work on open source projects can now go from minimum wage work to highly paid knowledge worker in six months or less. Programs that implement all the training I describe could begin to create herd immunity to tech industry bias by increasing the number of marginalized people in the industry, and thereby redistributing the burden of bias. In a few short years, they could fill the pipeline with a critical mass of technologists trained in empathy and institutionalized systems. While it’s not a perfect strategy—this trickle up change only works if someone in power will hire or listen to these graduates—it has the potential to create significant pressure toward a more just and accessible community.
While some code schools are intentionally predatory institutions, many more simply recycle the tired tropes and biased practices that are rampant in high tech startup culture. Unless a school actively pushes back against these broken values and helps students build coping mechanisms, many students will fall out of the pipeline before they ever truly enter it.