Hacker News new | past | comments | ask | show | jobs | submit login

"from the bottom up" and the _first_ chapter is called "General Unix and Advanced C"? This book may be useful, but I would look for another name (I wouldn't even mention computer science, but that may be because I agree with Dijkstra that that isn't science or about computers). I also think a generic computer science book shouldn't only use Linux as example OS.

Also, if chapter 1 is about _advanced_C_, why does chapter 2 have to introduce binary and hexadecimal notation? I think the book could be improved here, too; in general, the TOC feels unbalanced to me.




(author here)

This book was created both from my experiences and the experiences of teaching 3rd year operating systems classes.

Students came in to that class having done a 2nd year class (data structures and algorithms I think) that was done with a lot of C. They really learnt "high-level" C, enough syntax to get by in the their course, but most didn't really understand it -- not enough to read the source to any kernel at any rate. I don't imagine it's done like that today; this was a long time ago.

And most didn't really understand binary and hex, and how it relates to code either. You'd be amazed most 3rd year students didn't know how 2^10, 2^20, 2^30 relates to kilo, mega, giga bytes.

The book needs a lot of editing, something I occasionally get to. But apart from the odd times someone posts it to here or reddit and people consider it like a text book, it's really only ever accessed by people googling for a specific topic. But suggestions are welcome and I'll consider it when I get some time.

And on the "it's not computer science". The first commit was 10 years ago and people have been telling me that ever since. It was originally dreamed up as a course I'd teach to high-schoolers over 10 weeks to prepare them better for university -- the "computer science" degree they were planning to take. Yes, the book is really more about what would be called "systems" in the outside world.


> I don't imagine it's done like that today; this was a long time ago.

Sadly, it still is in many (most?) places' CS curricula.

> And most didn't really understand binary and hex, and how it relates to code either. You'd be amazed most 3rd year students didn't know how 2^10, 2^20, 2^30 relates to kilo, mega, giga bytes

I've worked with graduates who didn't know binary, didn't understand signed/unsigned overflow and how integers wrapped around, and perhaps even more disturbingly, had never used a command line or knew how to do a lot of other things that could be called "basic computer literacy for CS students"... because almost all they were taught were mechanised steps on how to open an IDE, write some code, and click the Build/Run buttons. I think your book would be suitable for those students.

> But suggestions are welcome and I'll consider it when I get some time.

I think for the purpose you created the book, the organisation is fine; it appears to be a collection of selected topics instead of one meant to be coherently read from start to end.


It's great work, but the title is still misleading. Computer Science deals with more than just operating systems. I'd have expected at least some more discrete mathematics before it could be called "computer science".

This criticism, by the way, should not be seen as in any detracting from the amazing job you have done there! Thank you for publishing this.


Yeah, I don't really understand that either. At first I thought it was because it was necessary in order to get the background to do programming exercises in later chapters, but there don't seem to be any programming exercises.

I think it would make more sense to put that chapter last.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: