I'm a computer science student at the moment, and while I've had the advantage of having a parent who was in the software industry from the very start, many of the people in my program have not...
I'm a computer science student at the moment, and while I've had the advantage of having a parent who was in the software industry from the very start, many of the people in my program have not had such an advantage.
Our department is small and focuses primarily on the theoretical aspects of computer science, partly because it's technically part of the math department. This is fine until students without a background like mine get to the capstone courses where they're expected to not just write code but actually work together to produce working software!
Most students don't know anything at all about basic ideas like using the command line, the differences between compiled and interpreted languages, and how networking is done on modern operating systems, but the courses rely on them to either know these things or learn them themselves without guidance, which is massively exclusionary!
Inspired by the excellent zines of Julia Evans, I want to produce a set of free-to-download illustrated zines, between 8 and 16 pages or so, which introduce people to these kind of concepts.
So far, the topics I've thought of which are small enough to tackle in something this size and important enough to spend time on writing (and reading!):
- What is computer science?
- Kernels, shells, and the command line (theory of shell/kernel)
- The GNU/Linux command line (bash, coreutils, some other utilities)
- Computer Programming (Python, maybe? variables, control flow)
- Programming Paradigms (imperative vs OO vs functional vs maybe more)
- Basic data structures (e.g. arrays vs linked lists vs hash tables vs ...)
- Big-O notation / algorithmic thinking
I would really appreciate any suggestions and/or resources you know of in a similar vein!