Today Dawn will be grading a seemingly endless succession of veterinary students on how well they wash their hands. (It’s part of the vet school’s Objective Structured Clinical Examination on clinical skills. Pre-surgery hand-washing is pretty elaborate. I remember something about ten strokes on each of four sides of each finger. Also, you fail if you let your washed hands fall below your waist.)

The glamorous life of a college professor in the medical sciences.

https://www.qpercom.com/what-is-an-osce-exam/

What is an OSCE exam? - Qpercom

An OSCE exam is a typical type of examination that is often used in health sciences (e.g. medicine, physical therapy, nursing, pharmacy, dentistry) to test clinical skill(s).

Qpercom
Computer science departments could do OSCE exams on things like TDD. Students would rotate through a series of stations, each devoted to one subtask. A station for writing a first simple test, a station for making it pass, a station for refactoring, a station for committing and pushing to the CI server, a station for responding to picky, non-substantive PR comments, etc.

A gazillion years ago, Alistair Cockburn reported on observational research he’d done at IBM. He’d concluded that the best programmers were characterized by high skill at a large number of what he called “microtechniques” – the equivalent of medicine’s handwashing, suturing, and so on.

This is well known in medicine, and their training takes it into account.

@marick I’ve long said that there should be a freshman-level CS class that covers basic IDE usage, bash, git, and unit testing.

I dropped out of school senior year, got a job which taught me these things, and then went back a year later. It was like I had developed superpowers compared to all of my classmates and I was able to get my assignments done at more than twice the speed. I taught some of them to a friend and he also sped up considerably.

I’m not a person who thinks that CS degrees should be job prep, but IMO learning basic practical skills early on could make the rest of the degree more effective. I spent so much of my first three years wasting time on repeatedly breaking and debugging fragile code which could have instead be spent focusing on more course material.

@jnkrtech @clementd @marick my first (long, hard) weeks of (French) engineering school in cs was devoted to learning using linux, shell commands and scripting, CVS (yes, I'm old), and all that with automated testing for evaluation. Then ocaml for algo and datastructures, and vhdl, assembler and C for understanding systems. The first trimester was a great intro to "this is a computer. The dangerous side is there (waving everywhere), understand it to master it a day. Here are great tools to help."
@fanf42 @jnkrtech @clementd That sounds great.
@marick @jnkrtech @clementd it was, and following 2,5y were as good, going from low level system theory & practice (like "code your baby OS" and "this is pi calculus/esterel and hard rt, now make these train miniatures in that 5m circuit don't collide and respect signals") to high level lang theory ("you built a baby compiler, saw operational semantic, now this is coq. Let's prove some programs") with the expected maths and php/sql/css/js/Java to see "real life".
I appreciate it even more now.
@fanf42 @jnkrtech @clementd Sounds good. When /Structure and Interpretation of Computer Programs/ came out, I wrangled a copy of the instructor guide and did a lunch and learn type thing with it at the company I was employed it.