So much of practical CS is abiding by standards created by solo programmers in the past.
My university frowned on any industry-related classes (i.e. teaching software engineering tools vs. theoretical CS), but I was fortunate enough to know a passionate grad student who created a 1-credit seminar course on this exact topic.
This course covered CLIs/git/Unix/shell/IDEs/vim/emacs/regex/etc. and, although I had experience with Linux/git already, was invaluable to my early education (and adoption of Vim!).
It makes sense that this isn't a core topic, as a CS education should be as pure as possible, but when you're learning/building, you're forced to live within an operating system and architecture that are built on decades of trade-offs and technical debt.
If you've made it that far in life without learning how to use a screwdriver, engineering would be a bad choice of major. And paying insane amounts of money for someone to explain how to use one would be an even poorer choice.
> So much of practical CS is abiding by standards created by solo programmers in the past.
I wonder if this shows up in other disciplines? Do surgeons do this? I'm thinking in particular of the bit in Richard Heller's book M * A * S * H (you're probably more familiar with the TV series) where one of the old hands is reviewing the Young And Enthusiastic Newbie's work, and says something like "Your work is absolutely perfect and it's the neatest job I've ever seen, but you're going to kill a patient doing that because it took you two hours and some of these kids don't have two hours".
> This course covered CLIs/git/Unix/shell/IDEs/vim/emacs/regex/etc.
Fwiw I just graduated grad school and our lower division courses taught most of this stuff, though not as the main subject. Most upper division classes required you to submit your git repo. Most of this was fairly rudimentary but it existed. Though we didn't cover vim/emacs and I'd argue shell and bash were very lacking.
That said, several of us grad students and a few professors lived in the terminal. The students that wanted to learn this stuff frequented our offices, even outside office hours. I can certainly say every single one of those students was consistently at the top of the class (but not the only ones). The students who lived in the terminal but didn't frequent office hours tended to do well in class but honestly I think several were bored do didn't get straight A's but I could generally tell they knew more than most. Though I'm biased. I think more people should live in the shell
I use TLPI as an optional text for my CS Operating Systems course! It's honestly the best resource for a comprehensive look at the innards of Linux. I actually even snip select pages for lectures.
This is one of the books I recommend to my coworkers who are interested in operating systems - it teaches a surprising amount of things by telling you what an OS will do for you and therefore why you need it, instead of telling you how it works inside.
It also remains being very pleasant to read in spite of its very large size( I read the whole book cover to cover ). Obviously you can also read the classics ( minix book, tanenbaum, Bach , and probably modern references ) but this one somehow gives the operating system a purpose which I find absent in the others I’ve read .
One of the greatest texts ever written. Ok maybe just one of my favorites. I wouldn't mind a 2nd edition though... surely the system call interface has changed a bit since 2010.
My favorite book about systems programming on UNIX systems is the book by the late Stevens, but this book more detailed, Linux-specific and if updated (after 16 years, in which Linux did not stand still), could steal the crown from Stevens.
I guess it is more appealing to current university students, than reading about UNIX Lion's commentary, Minix, BSD design, and other academix books with UNIX like implementations.
What a horrible selection for a university textbook! It doesn't get trivially updated every year to prevent reuse and reselling, so how is this supposed to generate more profit for the booksellers? /s
Seriously though, this book is fantastic, and far better than typical course textbooks. I'm honestly a little surprised that universities would select it.
[+] [-] jumploops|10 days ago|reply
My university frowned on any industry-related classes (i.e. teaching software engineering tools vs. theoretical CS), but I was fortunate enough to know a passionate grad student who created a 1-credit seminar course on this exact topic.
This course covered CLIs/git/Unix/shell/IDEs/vim/emacs/regex/etc. and, although I had experience with Linux/git already, was invaluable to my early education (and adoption of Vim!).
It makes sense that this isn't a core topic, as a CS education should be as pure as possible, but when you're learning/building, you're forced to live within an operating system and architecture that are built on decades of trade-offs and technical debt.
[+] [-] kgwxd|10 days ago|reply
[+] [-] kace91|10 days ago|reply
Industry demands specifically university degrees to gatekeep positions.
And then we leave teenagers to figure out the puzzle by themselves. I think it's a disservice to the youth.
[+] [-] loughnane|10 days ago|reply
[+] [-] ErroneousBosh|10 days ago|reply
I wonder if this shows up in other disciplines? Do surgeons do this? I'm thinking in particular of the bit in Richard Heller's book M * A * S * H (you're probably more familiar with the TV series) where one of the old hands is reviewing the Young And Enthusiastic Newbie's work, and says something like "Your work is absolutely perfect and it's the neatest job I've ever seen, but you're going to kill a patient doing that because it took you two hours and some of these kids don't have two hours".
[+] [-] godelski|9 days ago|reply
That said, several of us grad students and a few professors lived in the terminal. The students that wanted to learn this stuff frequented our offices, even outside office hours. I can certainly say every single one of those students was consistently at the top of the class (but not the only ones). The students who lived in the terminal but didn't frequent office hours tended to do well in class but honestly I think several were bored do didn't get straight A's but I could generally tell they knew more than most. Though I'm biased. I think more people should live in the shell
[+] [-] eru|10 days ago|reply
I don't think that's a good goal. Otherwise, why let you near a computer at all, and not restrict you to chalk and blackboards?
[+] [-] agiacalone|10 days ago|reply
[+] [-] le-mark|10 days ago|reply
[+] [-] Agingcoder|9 days ago|reply
It also remains being very pleasant to read in spite of its very large size( I read the whole book cover to cover ). Obviously you can also read the classics ( minix book, tanenbaum, Bach , and probably modern references ) but this one somehow gives the operating system a purpose which I find absent in the others I’ve read .
[+] [-] phanarch|10 days ago|reply
The syscall ABI itself is remarkably stable, backward compact is practically Linux's religion, but the conceptual model has shifted substantially.
Namespaces and cgroups went from obscure subsystems to the foundational abstraction containers run on.
io_uring rewrote the async I/O model.
eBPF changed how you think about observability and policy enforcement.
[+] [-] catfood|10 days ago|reply
[+] [-] pikachu0625|10 days ago|reply
[+] [-] markus_zhang|10 days ago|reply
[+] [-] evanjrowley|10 days ago|reply
[+] [-] jll29|10 days ago|reply
[+] [-] pjmlp|10 days ago|reply
[+] [-] looopTools|10 days ago|reply
[+] [-] 2OEH8eoCRo0|10 days ago|reply
[+] [-] wang_pp8|9 days ago|reply
[deleted]
[+] [-] shiroiuma|10 days ago|reply
Seriously though, this book is fantastic, and far better than typical course textbooks. I'm honestly a little surprised that universities would select it.