|
i.e. the crap I have to teach (or tell to self-teach) 95% of people who are taking on a programming role. While I understand the value of distinguishing between CS and software engineering, not being comfortable with basic shell commands, installing programming language tools, compiling something using those tools, or source control means that there has been a huge gap between theory and practice in their education, which hurts understanding of both. Particularly when interacting with senior CS students, they'll spend 6 months just getting comfortable doing very basic things like installing and running Python, using ssh with a VM, and using the command line. They try to do productive work, but their unfamiliarity with the basic tools of making software means they actually spend their time learning that. Actually, this also applies to the basics of just writing a functioning library or piece of software, or being familiar with async vs. sync programming, etc etc. It would be better if they could dip their toes into these things while learning about, say, algorithms, because identifying the slow step in its execution context and designing a better algorithm requires knowing this stuff. Or even better, before doing any of that. I've met people with 6+ years of CS or CS-related educational background who don't know how to do basic problem solving / troubleshooting of their work because they've only done toy coding for coursework. |