4 ms·
Our field is so varied that there is no good answer to this question unless you specify what you want to focus on. Some people are inevitably going to recommen
by wilsonnb 8y ago
Our field is so varied that there is no good answer to this question unless you specify what you want to focus on.
Some people are inevitably going to recommend The Art of Computer Programming, which hardly anyone has read and isn't that relevant to the work that 99% of us are doing.
Someone will probably recommend The C Programming Language, also called K&R after the authors, but again it's not very useful unless you're going to be using a lot of C and even then I personally don't think it provides anything you can't get from guides on the internet. (I have actually read this one, but it's been a while)
There are other classic textbooks that will probably be mentioned that are only useful to those in that domain. Many of us can get by without a deep understanding of algorithms and data structures, most people don't need to read a compiler book, etc, etc.
However, there are some generalized books that people often recommend like The Pragmatic Programmer and Code Complete. These are, in my opinion, good recommendations if you're looking for something to read but I wouldn't say that someone starting a career in software engineering should read them. Software engineering isn't really a field with seminal texts that should be read by everyone.
For example, every political scientist should have probably read The Republic by Plato and Politics by Aristotle among many other texts. I don't think software engineering has that equivalent, partially due to the relative newness of the field and partially because the primary output of our field is not written texts.
Another interesting question would be "What codebases should someone starting their career in software engineering look at?". Are there things that the average joe programmer can learn by poking around the Linux kernel or Firefox? Maybe. I don't know. I've never done it. I'd be interested in hearing from those who have, though. Maybe I'll do my own ask HN.
edit: I feel I should clarify that this is written from the perspective of a software engineer, not an academic in computer science. For all I know there could be seminal texts that those on the academic side should all have read.
- commandlinefan 8y ago> recommend The Art of Computer Programming And, if you do decide to dive in and read them, plan to spend a few years on them.
- greymeister 8y agoI sort of wish my CS grad school had just been studying those books versus some of the stuff I did cover.
- papaf 8y agoIt works as a reference, just today I found out that the devops darling of anomoly detection [1] is in volume two [2]. [1] https://www.slideshare.net/tboubez/5-things-i-learned-toufic-boubez-metafor-lisa2014 https://www.slideshare.net/tboubez/5-things-i-learned-toufic... [2] https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_tes...
- bluGill 8y ago"The C Programming Language" is a good read if you intend to write a book. It is well written so you should read it for inspiration on how to make your book good. If you want to learn C - there are plenty of resources that work just as well. The good ones cover things that didn't exist back then. (I've only read the original K&R from before ANSI, not one of the latter edition(s) so I can't comment on how up to date the latest version is)