Code Reading, Learning In Public, CS Teacher Slack Group
Plus an update on Holberton and Lambda - (2/14/20 newsletter)
This week, we’ve got: learning through code reading and how it affects the way teachers sequence lessons, an update on regulatory actions on Holberton and news coverage of Lambda School, and links to some awesome people learning in public.
Before all that, three things for you to do:
If you are a code teacher of any stripe, or you know any code teachers, let me know - we’ve got a new slack group where we’re talking about CS teaching, and I’d love to send you the link!
I’m working with Whitney of weworkwell.io on a write-up about the emotional journey of learning to code - if you’ve got thoughts about that, know someone who’s willing to be interviewed, or are willing to be interviewed yourself, please reach out!
If you’re enjoying these (or have constructive feedback), let me know by email or in the Substack comments
Intimidating Roadmaps and Learning in Public
Last week, I talked about roadmaps for the code-learning journey. I saw another one this week, this time a Map of Web Development Skills from LearnCode Academy. I think these are cool, in the sense that they make the relationships between different tools and concepts visual and accessible. They’re also overwhelming! Here’s a screenshot of a small corner of this big diagram:
[Screenshot of intimidating list of programming tools]
It’s helpful to be able to visualize how those tools fit into the larger landscape of tools.
It’s also intimidating. There’s no disclaimer to a beginner saying “You Don’t Need to Know These”, much less “And Many Experts You Respect Don’t Know Any Of These”. Instead of putting those concepts into a box marked ‘later’, students might put them on the list of “Things to learn before I can feel like a real/valid programmer”, and doom themselves to a ton of self-doubt.
To balance out this kind of roadmap, which tells us about many possible avenues for learning to code, let’s look at a specific person’s journey. Tania Rascia’s post on how she made a career change into web development walks through her multi-year learning journey. She didn’t learn everything all at once - it took a long time! She also didn’t wait until she knew everything about everything before she started working in tech. Instead, she kept chipping away at learning more and more - and advancing in her career in parallel.
An amazingly powerful device for both her own learning and for helping pave the trail for others who are learning, Tania Learns in Public and shares how she learned what she knows. For those who are just starting out, and might feel overwhelmed by the super-long list of hundreds of technologies out there to learn, it might be helpful to remember that it takes years to learn this stuff.
Maybe the most direct way of giving new coders permission not to know things is to publish a list of things you don’t know - here’s Tania’s list, inspired by a similar list by Dan Abramov. When you see experts being vulnerable, it makes it okay for you to be vulnerable too. That permission is critical for students - fear, self-doubt, anxiety, and depression really hurt, and they limit learning.
CORS. I dread these errors! I know I need to set up some headers to fix them but I’ve wasted hours here in the past.
When Dan Abramov (creator of Redux, niche-famous in the JavaScript community) puts things like this on his list of things he doesn’t know, it can help students feel less alone, and more okay with where they are in their learning.
If you live-code, don’t forget to make mistakes in front of your students (see CS Educators Stack Exchange on this idea). You’re modeling how to code, which inevitably involves digging out of errors - typos, mistakes, and bugs. Don’t leave that part out!
Cheers to Tania and Dan for kicking butt and writing about it.
Code Reading, Prediction, and Active Exploration
Last June, I published a summary of a paper about sequencing introductory coding instruction.
That paper described a potential sequence of instruction like:
Reading Semantics (tracing code, predicting the effect of syntax on behavior)
Writing Semantics (writing syntactically correct code for unambiguous problems) 3. Reading Templates (reading and explaining abstractions used to decompose and solve problems)
Writing Templates (breaking down ambiguous problem statements into pieces and using abstract patterns to implement solutions)
This seemed plausible on the surface. Since then, I’ve been thinking and reading more about where reading code fits into the picture of learning to code, and what good ‘code reading’ actually looks like.
This week, I read Peter Siebel’s post on code reading in groups, Stephen Malina’s description of active exploration (‘hacking’) as an alternative to reading, James Koppel’s post on a technique for making your reading active (by trying to rewrite snippets that you read, without looking at the source), and Jeff Olson’s guide on teaching students to predict what code samples do, instead of just reading them.
To try to sum up:
A lot of people venerate Code Reading, analogizing it to reading literature for aspiring authors
It’s not like reading books, because code isn’t written for reading
Instead, you have to actively work with the code - running it, modifying it, and rewriting it, in order to actually ‘get it’
As a learner, you need to be active - reading snippets on blogs is way less effective than running and modifying and rewriting those snippets
As a teacher, you can help your students by involving them as participants in the learning
There’s lots of techniques that seem relevant for authors, teachers, and folks learning to code (and, probably, learning anything else). Predicting what code does and what would happen if you changed it seems like an obvious one. Tools like Glitch, Repl.it, CodePen, and the like let you share remixable examples - that means that people can explore examples actively.
Building mental models involves predicting and getting feedback about your predictions. One reason code is amazing to teach and learn because it can make that feedback loop super tight, leading to super fast and satisfying progression.
If you’re interested in more on this set of ideas, you might also like:
Andy Matuschak on Why Books Don’t Work
Michael Nielsen’s Augmenting Long Term Memory
Andy Matuschak and Michael Nielsen’s How can we develop transformative tools for thought? (a follow up to their awesome Quantum Computing for the very curious)
Updates on regulatory actions
Lambda School in The Verge
Last week, I wrote about the history of bootcamp regulation in California. This week, the Verge published a pair of articles about Lambda School - one critical of the student experience and a follow up about how they finances their ISAs.
The first article has a couple of paragraphs about the situation with the regulator, including this to me, highly surprising quote:
But the lack of accreditation did matter. Without it, the bureau couldn’t intervene on students’ behalf if something went wrong with the program. “Any complaints students may wish to file with the Bureau will fall outside the Bureau’s jurisdiction because Lambda School was not approved at the time of their enrollment,” the BPPE wrote.
I would have thought that BPPE would still investigate student complaints on non-approved schools, since they seem to have done that for plenty of schools in the past. In fact, many of their previous actions against non-approved schools appear to have been driven by student complaints. From last week’s look at the record, Origin Code School and Coding House both had BPPE actions taken against them following (and perhaps driven by) student complaints, leading both schools to close. Maybe I’m misunderstanding what the paragraph means, but it wouldn’t make sense to me that BPPE wouldn’t respond to California student complaints against Lambda just because the school hasn’t gotten their approval yet.
The second article gets deeper into how ISAs and financing work for Lambda School.
A quick ISA refresher: Income Share Agreements are like a loan, but they aren’t a loan - students sign a contract to pay back a percentage of their future income. The idea is to protect students who don’t end up with the outcome the school promised (i.e. you don’t pay if you don’t get a job in the field), which in turn should put pressure on the school to actually deliver the program as promised. There’s a wide range of ISAs on the market, of different quality - as I mentioned last week, protecting students from dangerous ISAs will mean putting statutes in place to stop predatory ISAs (caps on total repayment and repayment as a percentage of income, floor on income before students start paying, time limit for the ISA, protection from discrimination in issuing ISAs).
Schools need money in the bank to run - paying teachers, developing curriculum, keeping the website up, and marketing to new students. Before they start collecting on the ISAs, they don’t actually have the money in the bank. So, schools like Lambda borrow money from lenders like Vemo, Edly, or Avenify, backed by the ISAs. That helps them cover the costs until students actually graduate and get jobs, helping solve a chicken and egg problem for the schools.
It’s not all that different from Climb Credit or Skills Fund, which are more traditional loan providers for coding bootcamps. The financier maintains a relationship with the school, and pays the school based on the students’ outcomes. (Career Karma’s Breaking into Startups podcast has a couple great interviews with Rick O’Donnell of Skills Fund and Tonio DeSorrento of Vemo Education). This ‘financialization’ happens in a lot of industries - it’s how people buy cars and houses, how companies start and grow - and it’s somewhat out-of-view for most people whose jobs aren’t in finance, investing, or raising money. There’s also a lot of fear about bundling and reselling of debt, since that was at the heart of the financial market crash of 2008.
The Verge article suggests that reselling the ISAs compromises Lambda’s marketing, which focuses on ‘fully aligned incentives’.
It’s a business model that allows Lambda to brag about investing in students — which, in many ways, it still does. The school provides living stipends and even housing to some students who need it. But reselling ISAs muddies the narrative a bit since Lambda can make money long before students find jobs.
To me, financing the ISAs to paying teachers and run the school doesn’t change the overall incentives. Having the money sooner won’t save the school if they aren’t successful in educating and placing students.
Holberton School and the BPPE Emergency Decision Appeal
The California Department of Consumer Affairs issued a modified and affirmed decision on Holberton School. It opens up some of the interactions between the regulator and the school, and is worth reading in full if you are interested.
TL;DR: Holberton can still enroll students, collect tuition, and teach, but not in the ‘unapproved’ program that has 9 months of foundation followed by 6 months of employment. There’ll be follow up investigation to sort everything out.
Holberton had approval for a program that was for 9 months of foundational training, 6 months of internship, and another 9 months of specialized training. There was also a contested exchange between the school and the regulator about whether they were allowed to issue ISAs. Holberton removed from their catalog at the request of the regulator in order to get approved, but kept issuing ISAs and collecting on them. The email exchange between the regulator and the school do look like they were each able to interpret the exchange how they liked - BPPE as though Holberton had agreed to not issue ISAs, Holberton as if BPPE had given tacit permission to continue issuing them, so long as they weren’t mentioned in the catalog.
The crux of the issue seem like it’s the modification to the program to cut the 9 month specialization that followed the foundations and internship. Holberton modified their program to be 9 months of foundation followed by 6 months of employment, after which they’d go ahead and give the student their certificate. They also kept charging students on the ISA model, which wasn’t in the regulator-approved version of the program, and which BPPE didn’t like. Students told BPPE they felt it was unfair they were getting charged the full $85,000 tuition for a version of the program that didn’t have the last 9 months of program.
For those who are interested in how ISAs are regulated, there’s some interesting language from April 2018’s original non-approval decision that sheds some light on why ISAs are difficult to issue under the CA regulatory regime:
(1) enrollment agreements must disclose the total program charges;
(2) Holberton would need to provide a pro rata refund if a student withdrew from the program, but such amounts could not be calculated under a deferred tuition agreement based on future income;
(3) the Bureau would not be able to determine the amount of student loss under such agreements for purposes of calculating amounts owed to students from the Student Tuition Recovery Fund (STRF); and,
(4) Holberton could not identify the total charges for the program for reporting purposes.
(I’m not sure if the relevant bits of the statute have changed since this was issued in April 2018, but I assume no).
Holberton seemed to get around this by calling the max under the ISA ($85000) as the tuition, and then removing the ISA language from their catalog. I don’t know how other schools that offer ISAs in CA have gotten around this, but maybe they use a similar strategy - if you know, I’d love to hear from you! From a brief search, Rithm School offers an ISA, App Academy has a ‘Placement based plan’, General Assembly offers it’s ‘Catalyst’ financing to US-based students, and all of those programs are, as far as I can tell, approved to operate by the BPPE. (Approvals: GA, Rithm, App Academy)
So, it looks like Holberton will stay running for now, we’ll get more administrative investigation, and they’ll probably have to teach the 9-month specialization portion that’s described in their catalog and on their website.
I’ll reiterate my prediction that Lambda, Holberton, and tradecraft will end up like 10 of the other schools who have had BPPE actions against them - paying a fine, coming to an agreement, and continuing to operate.
More Reading on the Bootcamp Business model and ISAs
I’ve mentioned the Career Karma market report and the Course Report market size study in past newsletters. If you’re trying to collect the complete boxed set of industry reports, next on the list should be the Class Central report on ISAs and the Switchup Industry and Outcomes Report. All of the reports reach different numbers, and they all (inevitably) report on past data, since it takes a while after each year for the bootcamps to count up their students and report on their outcomes. In general, reports are all about a year old at a minimum - most students who start this year (2020) will not be reported until 2022.
The Class Central report has an interesting section with a back of the envelope estimate of the bootcamp business model. I think it’s worth diving into in more depth - I’ve got a draft of an interactive model, which I’ll try to clean up into a shareable state for next week’s newsletter.
The Switchup report is based on their survey of more than 1500 bootcamp grads, and gets into breakdowns of bootcamp outcomes by different demographics. It’s self-reported data, so it’s best viewed in combination with the LinkedIn data from Career Karma and the school-reported data from Course Report.
Wrapping up
Calls to action, again:
Reach out for the link to the code teacher slack group
Reach out about the emotional journey of learning to code
Reach out if you’re enjoying these (or have constructive feedback)
Mash that reply button, @robcobbable on twitter, or rob@cs-ed.com
Until next week!
Very cool map! Have you looked into ways of producing this kind of knowledge map automatically? And how do you think this would "compile" into a curriculum?