Hacker News new | ask | show | jobs
by shirakawasuna 1869 days ago
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.

1 comments

In some ways it's easier to teach a good language to someone that has been automating everything they touch with shell scripts/Excel formulas/weird python/VBA/javascript than to light a java programmer on fire with the belief and confidence that all tasks are automatable and all problems boil down to bits on a disk or bits in a packet.