Another excellent piece from Iris Meredith - strongly recommend reading if you want an idea of how to un-fuck software as a field.
The point about a static site generator being an ideal intro project is well-taken. I’m working my way through Practical Common Lisp right now, as it’s recommended as one of the best CL intro books, and its intro project of an MP3 database is only barely relevant to me because I still have a stash of MP3s I started building up around the time of the book’s original publication.
I struggle to imagine what might supplant the HTML generator suggestion in the future. If anything, its desirability is made more apparent by the proliferation of JS monoliths all over the Web. You can show students how quickly it renders compared to a corporate website or heavyweight social-media feed, use that as an introduction to performance considerations and profiling, introduce modularity by bolting on a more dynamic framework piece-by-piece…
I completely agree with this. Good, lucid, concise commentary on CS/SE education and how to improve it. If I had written this article I’d just be telling people to ban python in coding education.
If I had written this article I’d just be telling people to ban python in coding education.
I’d be happy to hear your reasons why.
Not who you asked, but both python and javascript have code smell as a core language feature and we are stuck with them by accident of history, not because anyone in particular thought it would be such a great idea for them to overshoot their original purpose to such a comical degree.
Also there’s a long history of languages meant to be used as an introduction to coding being spun off into ridiculously verbose enterprise equivalents that then everyone had to deal with (see delphi and visual basic) so there’s certainly a case for refusing to cede any more ground to dollar store editions of useful stuff under the guise of education.
Short version is that 10-15 years ago, when I was a student, it had the same “vibe” as vibe coding has today, i.e. the promise of easy implementation, but with the final product being sloppy, unreadable and buggy.
Python code really requires 100% branch coverage tests as an absolute minimim… with statically typed languages the compiler will catch some types of bugs in branches you don’t test, with python chances are it won’t.
edit: basically think of non covered lines the way you think about files you didn’t compile.
What language would you suggest?