If you know anything about the medical school experience in the states, you might well be deeply suspicious of me right now, but stick with me! 😁
The most common advice given to people learning to code is not to spend too long in "course mode" and move quickly into working on projects. This is good advice! We learn best and deepest by doing, especially by making and debugging mistakes. When we only do work carefully curated by a course, we don't get many opportunities to make those precious, essential mistakes. But coming up with an idea for a project that's hard enough to learn from but not too hard to get traction on isn't necessarily easy.
When newbies ask for advice on choosing projects, we ask them what kind of work they're interested in doing—frontend? Backend? Data science? DevOps? DevRel? Infosec? Some folks might have a strong interest in one of those already, and that's a great place to start! But not everyone starts learning to code with a tech "genre" already in mind, and even those who do would benefit from working a bit in each area, because they're all pieces of the same systems.
But what if we had tech rotations? Just as future doctors benefit from doing rotations in all medical fields—even if they're sure they know which field they'll end up choosing—future programmers would benefit from getting exposure to the different fields within tech.
Of course, rotations are built into medical programs and take place at teaching hospitals, and we don't have an analogue for such a program in tech. Even CS programs don't hit this mark since there's no such thing as a "teaching company". There are internship programs, but they're not integrated into the curriculum, and students generally only do one or two internships, often in the same area of tech. Moreover, not all future programmers get CS degrees or do internships, and there are deep systemic inequities threaded throughout tech and society (because tech is a societal endeavour!).
What if we did have teaching companies? What if, after learning some set of basic skills, you could sign up to do a series of rotations at companies keen to help shape the next generations of coders? Maybe you do a boot camp first, or a CS degree, or learn on your own, but then after that, you do your rotations, and you'll have a strong, well-rounded background, plus a network of teachers to recommend you!
But wait, there's more!
If we had a rotation system, we could dispense entirely with skills assessments in interviews. No one asks doctors to whiteboard bits of biology or to do a quick surgery to demonstrate their skills because it's taken as read that a person who's graduated from a medical program has demonstrated their skills many times over. We could do that too. Think of how much time, anxiety, and yes, money, could be saved by not needing to do skills assessments during the hiring process!
There would be a lot to figure out about compensation for labor and ensuring fair access for all because we definitely do not need to replace one unjust system with another. But this model could be a big step toward a more equitable future for tech.