Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What are the best textbooks in your field of expertise?
850 points by lainon on Sept 30, 2018 | hide | past | favorite | 272 comments

In functional programming:

[0] The Structure and Interpretation of Computer Programs

[1] The_Little_Schemer

[2] Programming in Haskell - Graham Hutton

[3] Types and Programming Languages-Benjamin C. Pierce

--- PDFS





I am not an expert, but maybe because of that I believe that I can offer valuable advice to those who are totally new to functional programming (or feel that they are missing something), and want to get the core basics down cold without getting drowned in accidental complexity, do yourself a favor and start with edx's free moocs "How To Code" [1] [2], which are based on "How To Design Programs" [3]. After that, you will cruise through the recommended classics above.

If interested in why if you are an FP newbie said material is superior to SICP , read the pdf paper "The Structure and Interpretation of the Computer Science Curriculum" [4]

[1] https://www.edx.org/course/how-code-simple-data-ubcx-htc1x

[2] https://www.edx.org/course/how-code-complex-data-ubcx-htc2x

[3] https://htdp.org/

[4] https://www2.ccs.neu.edu/racket/pubs/jfp2004-fffk.pdf

Thank you so much, that sounds like exactly what I need to make a (successful this time) deep dive into FP. Cheers!

I would add Concepts, Techniques, and Models of Computer Programming. It's about programming paradigms in general, and helps in contextualizing functional programming in a broader context


This book is indeed mind blowing, and after reading it I find all those FP vs OO arguments sterile. As you say, this book makes you understand that it's all a trade-off.

In fact what this book does is advocate multiparadigm languages (actually the author dislikes the term paradigm, multiple programming models would be more acurate), and explains in great detail how to decide which to use when, and how to mix different paradigms (ehem, models) with the very powerful technique of impedance matching.

Thanks for this. I do not see enough context in school.

I just finished re-reading SICP. If you're going to read it on a screen, I recommend this version: http://sarabander.github.io/sicp/

I'm 1/3 of the way through The Little Schemer. So far, it's not taught me anything I didn't already grok from SICP. I hope it picks up!

I cruised through most of it. But the last three chapters really twisted my brain (continuations, the Y combinator, and the metacircular interpreter). I was familiar with the concepts, but figuring out the programs by myself was a tough exercise (I haven't read SICP though).

> If you're going to read it on a screen, I recommend this version: http://sarabander.github.io/sicp/

Thank you very much for the link! :)

Opening it on my phone, this paragraph on the available ebook formats very much made my day:

> A 386 can, in theory, run Linux, Emacs, and a Scheme interpreter simultaneously, but most 386s probably can’t also run both Netscape and the necessary X Window System without prematurely introducing budding young underfunded hackers to the concept of thrashing.

Trust me, it will :) The last few chapters on CPS and the Y combinator are roughly a vertical segment on an otherwise nearly horizontal learning curve.

From someone interested in learning more functional programming, could you provide a bit more detail about what each book provides?

I would also add "ML for the working programmer", which is, perhaps surprisingly, more about functional programming than the particularities of ML. In any case, it is a great book.

It is one of the only accessible texts on Standard ML, I'll give it that... But it goes neither deep nor wide in content. I did not find it very useful.

Some other texts w/SML:

The Little MLer: http://www.ccs.neu.edu/home/matthias/BTML/ which you can read with the revised Programming in SML http://www.cs.cmu.edu/~rwh/isml/book.pdf

Discrete Math & Functional Programming: https://cs.wheaton.edu/~tvandrun/dmfp/

Parallel & Sequential Algorithms uses SPARC which is similar to SML for examples in the book http://www.parallel-algorithms-book.com/

On top Scala programming books see: http://www.aioptify.com/top-scala-books.php

On Erlang programming books see the following list: http://www.aioptify.com/top-erlang-programming-books.php

Putting my mostly-retired audio engineer hat back on for a minute...

The Yamaha Sound Reinforcement Handbook


This is basically the soundman's bible. Sold for an aspiring live sound engineer, has much more than just advice for live sound guys - covering everything from microphones to acoustics to basic electronics to handy rules of thumb to MIDI, all written to be relentlessly pragmatic. It even has a handy appendix covering logarithms.

This isn't the book to give you the final "20%" of knowledge on anything it covers - but it will help you on your way to the first 80% a lot more quickly than most other writing on anything related to semi/pro audio, and pretty much every expert in the field is at least familiar with it, if they don't own a copy.

There seem to be plenty of people interested in music and audio around here, so hopefully someone finds the unusual reference useful.

Does it touch on mixing / mastering at all? I have a suspicion that some of my friends will be looking to me to put together some demos in the near future, so I'd be very interested in some beginner/intermediate knowledge around that.

I read an enormous amount on mixing/mastering and was still rubbish. It's hard to write about perception of sound.

I would recommend instead finding a well reputed mixing/mastering engineer who offers lessons and pay for some. Bring them your best mix (in the DAW on your laptop) ask them where it is wrong and how to improve it. Shouldn't take more than a couple of hours. In my case this cost around £100 (http://oood.net/mastering/about-stooodio-mastering) and helped enormously. My friends now think I'm great at "mastering" by which they mean mixing, I have nothing even approaching mastering engineer ears & I suspect Colin still wouldn't think much of my mixes either but that's why I'll happily pay him to master them if I ever have time for music again :)

I know there are online practical courses these days, in theory these could be better than a book as they would have audio/interactive examples. No idea if they actually are any good though.

Basically forget learning to master though. For your friend's demo, learn to do a reasonable mix then slap a limiter on the main output and boost the loudness as much as you can without losing quality.

Check out the Mixing Engineer's Handbook by Bobby Owsinski. This has been my de-facto go to for everything from acoustics, studio construction, mixing, mastering and more. Great read, and a wonderful reference to have at your desk.

Mixing Secrets for the Small Studio by Mike Senior is what you are looking for.

Alex Tumay has several great video lectures on Youtube on mixing/mastering.

Does this book tell me how to compute e.g. when a physical object hits another physical object, what the resulting sound will be like?

Or if object X (e.g. speaker cone) moves through air with velocity v(t), what will the sound be like at position P?

I've never read OP's book, but Andy Farnell's Designing Sound has a pretty comprehensive look into physics and sound if that's what you're looking for.

Sounds like you're interested in computational aeroacouatics.

"How to have a number one the easy way" by the KLF is the best book imo. Tells you how, and then why you probably shouldn't bother

That was such a fun read!

If you want to know about how to build a simple computer, computer architecture, assembly language, assemblers, linkers, compilers, java, c, c++, how compilers are built, how compilers generate assembly language, how machine code are executed by the processor, how to implement a grep with regular expressions and much more. If you want to learn them fast, look for the books of this author[0]. I'm not affiliated with him. I learned many stuffs from his text books so I just like to share and recommend.

[0] - http://www.cs.newpaltz.edu/~dosreist/

> Writing Interpreters and Compilers for the Raspberry Pi Using Python, CreateSpace Independent Publishing Platform, 2018

> If you want to learn how to write interpreters and compilers, and at the same time learn how Python, Python bytecode, assembly language, and dynamic typing work, this is the book for you. The only prerequisites are some experience with any programming language and a computer on which you can install Python 3 (or Python 2 if you prefer). A Raspberry Pi is not required. Included in the software package for the book is an interpreter that allows you to run ARM/Raspberry Pi assembly language programs on your Windows, Linux, or Mac OS X systems.

> If you have not yet learned Python or assembly language, so much the better. You will get the added bonus of learning Python and assembly language while you learn all about interpreters and compilers.

That sounds like a pretty sweet mix of skills to learn all at once, actually!

Which one of his books covers how to build a computer, and is nand2tetris better?

Assembly Language and Computer Architecture Using C++ and Java , Course Technology, 2004

I can't say which is better. Nand2tetris has different approach.

Thanks. I might have to check it out after I finally finish Petzold's CODE.

Not exhaustive, or in any particular order:

_Animator's Survival Kit_, by Richard Williams.

_Illusion of Life_, by Frank Thomas and Ollie Johnston.

_Animation from Script to Screen_, by Shamus Culhane.

_Natural Way to Draw_, by Kimon Nicolaïdes.

_Creative Illustration_, by Andrew Loomis.

_Timing for Animation_, by Harold Whitaker and John Halas.

_Drawn to Life_, vols. 1 & 2, by Walt Stanchfield.

_Character Animation Crash Course!_, by Eric Goldberg.

_Simplified Drawing for Planning Animation, by Wayne Gilbert.

_The Noble Approach: Maurice Noble and the Zen of Animation Design_, by Tod Polson.

_Elemental Magic: The Art of Effects Animation_, vols. 1 & 2, by Joseph Gilland.

_Story Boarding Essentials_, byDavid Harland Rousseau.

_Directing the Story_, by Francis Glebas.

_Animated Storytelling_, by Liz Blazer.

Options, Futures and Other Derivatives is basically a Bible. https://www.amazon.com/gp/aw/d/013447208X/ref=dp_ob_neva_mob...

Related, Trading and Exchanges: Market Microstructure for Practitioners by Larry Harris is also excellent.


These aren't really textbooks, but regardless, the Market Wizards series by Jack Schwagger is highly recommended:




I second Trading and Exchanges, a phenomenal overview for folks who want to learn how brokerages and market making work.

Are you a trader?

Funny, this book was considered not mathematically rigorous enough in my program but I agree, it is a bad idea to not be familiar with this book because the lingo the book uses (for example, sticky delta) is widely used in trading desks and one cannot afford to be unaware. For my program, Shreve's Stochastic Calculus for Finance (I & II) are the old & new testaments

Having used both Hull and Shreve in two different courses I'd say they're aimed at very different audiences. The course I took using Shreve didn't actually teach much about real world "options, futures, and other derivatives", but treated them more like abstract mathematical ideas and focused more on the mathematical theory used to model such contracts. While the course using Hull focused more on those contacts, not as abstract mathematical concepts, but as real things that actually exist and are actually traded by real people in the real world with all the messiness and uncertainty that can entail. Admittedly a large part of this was no doubt due to the Shreve based course being taught by the math department and the Hull based course being taught be economics department

While I on many levels preferred the Shreve based course, if I had to pick one for practitioners working day to day with this stuff (which I don't actually do, despite my degree), I'd definitely pick Hull.

What would one need to fully understand before tackling these books? What field would these books help them understand and apply this knowledge in?

Ha, at first I thought it's about functional programming. :-)

Optional types and futures are both important and useful examples of monads—in the “container” and “action” interpretations, respectively; and derivatives are the method of constructing zippers, which are an accessible example of comonads, as well as a useful method of constructing other things like parsers, so these are actually pretty solid concepts for a functional programmer—whether in Haskell or otherwise. I would totally buy that book. :)

It is true that it is, but I always thought it was underserved. It’s not particularly clear or insightful and it is very academic.

On interest rates and yield curves, a book I would recommend is Sadr’s Interest Rates Swaps and their Derivatives [1]. Unfortunately it is a bit dated and a lot happened since it was written. But it is a very good book to understand interest rate models, which focuses more on the intuition and practical aspects and which I think is a lot more useful to a professional.

[1] https://www.amazon.com/Interest-Rate-Swaps-Their-Derivatives...

What did you study? How did you apply the knowledge in the book?

I studied engineering, applied maths and finance. I structured interest rate derivatives for a while. That’s the book I recommend to new joiners, even those without a stem background.

I'm seeing the 10th edition for £230 and the eight edition for cheaper. Would you be able to tell whether investing in the newer edition is worth?

Are you talking about the Sadr book? I am not aware that there are multiple editions. The kindle version is $70/£55 on amazon.

Sorry, wrong reply! I was referring to Options, Futures and Other Derivatives.

What did you study? How did you apply the knowledge in the book?

What about 'Options as a Strategic Investment'?

can you give me a recommendation on bonds? in particular us treasury bonds.

Algorithm Design Manual by Steven Skeina. CLRS has all the nitty-gritty but I didn't jive with it at all. Skeina won't tell you line-for-line how to balance a red-black tree, but it gets the idea across with clarity.

Also, the war stories are both interesting and useful. Not the book for everyone; most important is to pick one you enjoy reading.

I think Skiena + CLRS is a particularly fine combination. CLRS is dry and intimidating for all but the most theoretically inclined. Skiena is sloppy and handwavy. Put 'em together and you have something really excellent.

I found CLRS to be far too verbose for my liking. Skiena was as you said. My favourite is Sedgewick. More terse than CLRS; doesn't drone on and on and on.

i.e. CLRS = Introduction to Algorithms by Thomas Cormen, Charles Leiserson, Ronald Rivest and Clifford Stein.

Kotler's "Marketing Management" remains the most definitive text on the practice of marketing.

Many people - including some on HN - mistakenly equate marketing with only advertising or, more broadly, marketing communications. In truth that's only a small portion of the discipline.


I’m curious to know why you think it’s so good. I’ve studied marketing in the early 2000’s and Kotler’s Marketing Management was pretty much the only book we’ve read, but after college I didn’t feel I could apply much of its lessons to the companies I’ve built myself or the companies I’ve worked for. Most of Kotler’s material is based on how big traditional brands have done marketing, but that wasn’t helpful to me when I was working on early-stage tech startups.

Granted, I wasn’t the most dedicated student at the time, so maybe I just should read it again, but it would be helpful to know what you got out of it.

His framework for how to think about bringing a product to market is what I found most valuable.

What's the competitive environment? Who is the customer (in the most specific sense)? How will the product compete against other offerings? How is it priced relative to the competition? How do you talk about the product - i.e. communicate its value? How does one think about growing the market for the product?

These are questions any product or brand need to answer, regardless of size.

I'd argue that these fundamental questions are elaborated upon in most contemporary textbooks. In practice, however, young entrepreneurs creating business models around apps need to deal with a whole range of both general and specific issues that need to be addressed and Kotler is of limited use here.

This book lays the foundation - and I've worked with FMCGs, tech, media, pharma and I've yet to find an industry where Kotler's principles do not apply.

That's why a good marketer should be able to work within any industry - it's pretty much: product, price, promotion and placement. This has been reinvented, rebranded, and expanded - but in reality this is the ultimate reduction you can get your marketing to.

That would also be my criticism of Kotler and Keller. It's good to learn about the marketing lingo, but it doesn't teach you how to do something concrete at a professional level (create a marketing strategy, write persuasive copy, etc.).

Well it gives you the tools and frameworks to build your own strategy, that's why it's so great.

If you went to university to study marketing, like some of us did, strategy would be put to practice in classes dedicated to it, and all at to be supported - either by theory (like Kotler's) or by research.

Copyrighting is one tool of one of the marketing mix "P"'s - Promotion.

If you want to learn about copyrighting read Ogilvy - he was very good with communication and copy.

This is it.

And you're completly right - self proclaimed marketers reduce marketing to tools of one of the areas of marketing like you said : Promotion/Communication .

SEO, PPC, Content Marketing, Influencer Marketing, Social Media Marketing... the list goes on... are just tools. They serve part of 1/4 of what marketing is broadly speaking.

Now I'm not saying those shouldn't be areas of expertise - they should! But a marketing manager should build/maintain a strategy taking into account everything - not just a specific part.

Let's not forget a keen ability to subtly lie and confuse people. Very important in marketing.

I believe that's bound to the people not to the practice.

If there's a need for a brand to lie then there's something wrong or missing - and that's not sustainable in the long run.

Plus, you shouldn't expose your brands to liability - for example that's why all big brands have their advertising communication evaluated by legal departments. It will not go live if legal doesn't approve it.

Do read How Brands Grow by Byron Sharp as a somewhat dissenting, at least opiniated read on branding and marketing.

For you budding industrial designers;

The Design of Everyday Things - Don Norman

Ways of Seeing - Jon Berger

Principles of Form and Design - Wucius Wong

Design Thinking: Understanding How Designers Think and Work - Nigel Cross

I'm currently reading Don Norman's book and I'd like to add that to me it seems to be a very worthwhile read for everyone who designs things that are used by humans. And by that, I explicitly also mean GUIs, APIs, IDEs, programming languages & DSLs...

The book is very focused on what makes good design good, and only provides examples as illustrations. It's really more about applied psychology than design per se (in fact, Norman states in the preface that the original title was "The psychology of everyday things").

Edit: As an example in Software Engineering: His formalization of how humans interact with things (form a plan to reach a goal -> interact with the thing to advance toward said goal -> evaluate the outcome, rinse repeat) and the potential error sources on the way (distractions, unclear consequences, unclear affordances...) make it obvious why in many functional languages, the REPL is such a great tool.

I couldn't agree more re: Norman's book. I wish it had been recommended to me as a linguistics undergrad. He provides such a clear explanation as to how design is a way of solving communication problems over making things look good.

I also run into "Norman doors" at least once a week and always smile when I remember the term.

It's one of the principles that has stuck with me throughout my professional life; design is solving problems, not solving aesthetics.

Get you a man who can do both. Architects in particular seem rather high-falutin' until you read the understanding of their work. Aesthetics often means making something so beautiful that it harmonizes with the rest of how you live. Ugly things stand out and cause greater disunion in our lives.

But don't be completely in denial of aesthetics. Looking good often helps function a lot.

Elements of Design by Gail Greet Hannah is also superlative, but much less procedural than Wong. Like other design books it's learned better when applied than read, in particular because Hannah takes after her mentor (Rowena Reed) and emphasizes a grammar for visual relationships. Reed's work on doing things at off-angles and ensuring that there always exists a dominant, subdominant and subordinate relationship in all dimensions of a work, are critical.

Despite the emphasis on terminology, there is no better book for the fundamentals of three-dee form out there, particularly since in the digital age there is a plenitude of resources for two-dee form. If you want to know why elite architects make the decisions they do for the shape of buildings beyond their function, here is a good start.

Here is one compiled list of answers:


One nice thing about this list is that every recommendation must be accompanied by a few books not recommended. I think this request helps prevent well-meaning non-experts pollute the list with books from smaller reading pools.

To be more specific, each recommendation must be accompanied by at least two other books on the subject the contributor has read and reasons why they are recommending one over the others.

In econometrics / empirical social science:

- Mostly Harmless Econometrics by Joshua Angrist and Jorn Steffan Piscke

- Causal Inference for Statistics, Social, and Biomedical Sciences by Guido Imbens and Donald Rubin

- Data Analysis using Regression and Multilevel Models by Andrew Gelman and Jennifer Hill

You will benefit from reading Pearl/Glymour/Jewell: Causal Inference in Statistics. A Primer

(The contrast to Imbens and Rubin is crazy)

Thanks; been meaning to. I've not seen a good exposition of what benefit the DAG way of doing Causal Inference has over the Potential Outcomes Framework. Morgan and Winship (another good textbook) tries, but I didn't really buy it. I guess I have to hear it from the horse's mouth.

Designing Data-Intensive Applications by Martin Kleppmann [0]

[0] https://www.amazon.com/gp/product/1449373321/

I'm about halfway through this book right now and learning a lot. Do you have any recommendations for follow up books or simply ways to put the lessons of the book in to practice?

Couldn't agree more. One of the best distributed data systems book! A must read for anyone dabbling in that part of the stack!

This book is fantastic!

In machine learning, hands down these are some of the best related textbooks:

- [0] Pattern Recognition and Machine Learning (Information Science and Statistics)

and also:

- [1] The Elements of Statistical Learning

- [2] Reinforcement Learning: An Introduction by Barto and Sutton

- [3] The Deep Learning by Aaron Courville, Ian Goodfellow, and Yoshua Bengio

- [4] Neural Network Methods for Natural Language Processing (Synthesis Lectures on Human Language Technologies) by Yoav Goldberg

Then some math tid-bits:

[5] Introduction to Linear Algebra by Strang

----------- links:

- [0] [PDF](http://users.isr.ist.utl.pt/~wurmd/Livros/school/Bishop%20-%...)

- [0][AMZ](https://www.amazon.com/Pattern-Recognition-Learning-Informat...)

- [2] [amz](https://www.amazon.com/Reinforcement-Learning-Introduction-A...)

- [2] [site](https://www.deeplearningbook.org/)

- [3] [amz](https://www.amazon.com/Deep-Learning-Adaptive-Computation-Ma...)

- [3] [pdf](http://incompleteideas.net/book/bookdraft2017nov5.pdf)

- [4] [amz](https://www.amazon.com/Language-Processing-Synthesis-Lecture...)

- [5] [amz](https://www.amazon.com/Introduction-Linear-Algebra-Gilbert-S...)

I have to disagree with The Deep Learning book. I don't find it a good book for anyone. For beginners it's too advanced/theoretical and for experienced ML scientists it's entirely too basic. I very much agree with this review on Amazon [1].

For the former, I would recommend Hands-On Learning with Scikit-Learn and Tensorflow

[1] https://www.amazon.com/gp/customer-reviews/R1XNPL1BX5IVOM/re...

>For beginners it's too advanced/theoretical and for experienced ML scientists it's entirely too basic.

As a scientist coming to deep learning from another field, I found Courville et al to be pitched at the perfect level.

+1 for Elements. I started with Introduction to Statistical Learning and then graduated to Elements as I learned more and grew more confident. Those are fantastic books.

Could you elaborate how you switched to Elements? I am curious if it makes sense for one to go through both books in sequence.

As an engineer who hadn't studied that type of math in quite a while, Elements was pretty tough and I was getting stuck a lot.

ISLR introduces you to many of the same topics in a less rigorous way. Once I was familiar with the topics and had worked through the exercises, Elements became much easier to learn from.

If you reading Elements is difficult then I would recommend Introduction.

I'm not sure if reading Introduction will prepare you for Elements so much as it will just give you some knowledge you can use and see if it makes sense for you and what you want to do to go and (re)learn some of the math tidbits that you need for Elements.

For regression I really like Frank Harrell's Regression Modeling Strategies. http://biostat.mc.vanderbilt.edu/wiki/Main/RmS

Frank Harrell writes a lot of great stuff and his answers on the Cross Validated Stack Exchange site are worth just reading even if you didn't think you wanted to ask the question they reply to.

His blog, http://www.fharrell.com, also contains interesting posts.

I recently read Seber and Lee, Linear Regression Analysis, and highly recommend it.


>[5] Introduction to Linear Algebra by Strang

People seem to love this textbook - and understandably so because it's very approachable. But I really struggled with how informal the tone was, and how friendly it was. Perhaps I'd grown too accustomed to the typical theorem -> proof -> example -> problem set format.

I acquired Pbrt in order to learn the basics of computer graphics rendering in a practical way. However, I struggle even with the most basic things (math mostly).

Do you happen to know of any resource that provides a good mathematical foundation directed at computer graphics?

Any resources you'd recommend for learning about 3D volumetric rendering via voxels (not polygons)?

NVIDIA has some good papers on Sparse Voxel Oct-trees (GPU backed of course). Typically voxel rendering is done via raytracing.


Do you have any opinion of voxel cone tracing vs raytracing?

(The title of the post must be changed to something more neutral because by answering the poster self declares that they are an expert, which not only seems unlikely of most people, but also makes ones such as yours truly withhold from answering due to the connotations, and requires prefaces of this kind to address their apprehensions.)

Software Engineering

About C++: The Design and Evolution of C++ and The C++ Programming Language, both by Bjarne Stroustrup, the creator of C++. The first one is a snapshot of his philosophy during early years of C++ and is useful to understand the motivations etc. It provides insight. The second one, after the necessary introduction to the language, shows how he uses C++, or expects to be used, which is interesting in its own way.

About algorithms: Algorithm Design by Kleinberg and Tardos. This gives the much needed insight instead of maths equations, data structure implementations or a catalog of what to apply where, which are all good, but are useless without insight.

Mechanical Engineering (ME is a large field, and I will limit to these two books.)

Stephen Timoshenko's two volume Strength of Materials is a seminal work, and still relevant, on a topic that is at the core of mechanical and civil engineering.

Shigley's Mechanical Engineering Design deals with designing machine parts, which is in a sense an applied strength of materials topic, and the book addresses that part quite effectively, though not as comprehensively as Timoshenko's. More importantly, the book gives enough motivation and insight for the design process, without which engineers would just be "design monkeys" that use latest CAE packages.

>>Algorithm Design by Kleinberg and Tardos.

Which other Algorithms book would you recommend?

Robert Sedgewick's Algorithms in C++ 3rd Edition.

This is the book that introduced me to the wonderful world of algorithms, and I love it. The introduction chapter was a revelation and nothing like I had read before. I didn't understand everything in the first read but it made me to want to. The book is more accessible and practical than Knuth and CLRS, and more thorough than Skiena and such. Everything about this book is beautiful, not the least of which is the visualization of sort algorithms. There is also abundant tree related topics, which is quite refreshing and useful, in hindsight, because trees, other than balanced binary ones, are generally ignored in most books where graph steals the limelight.

There are two volumes that make this book, first having Parts 1 to 4, dealing with fundamentals, DS, sort and search, and the second, Part 5, dealing exclusively with graphs. I have only the first one and the opinion is based on that. There is a newer Java version, which includes the graph topics, and is about 250 pages longer than the first volume. However, based on the preview, it seems almost first 120 pages are dedicated to the Java language and OOP, unlike the C++ version which starts directly with the subject, so not sure how much of the contents are removed to make room, and how the quality differs.

I recommend getting two.

Introduction to algorithms, Cormen/Leiserson/Rivest/Stein. Rigorous, detailed, thorough. Dry, technical, intimidating.

The algorithm design manual, Skiena. Friendly, informal, heuristic, insightful. Sloppy, handwavy, gappily incomplete.

They fill one another's gaps very nicely.

[EDITED to add:] I haven't read Kleinberg & Tardos, recommended above; it sounds like it may fill much the same niche as Skiena.

> The algorithm design manual, Friendly, informal, heuristic, insightful. Sloppy, handwavy, gappily incomplete.

Kleinberg and Tardos is also friendly, informal, insightful, and even heuristic to an extent, but opposite of the others, so IMO its much better and very different than Skiena's, though it isn't a quick read before an exam or an interview sort of a book, which is what Skiena's can be described as. Browse K&T to see what I mean.

Image Processing: "Digital Image Processing", Gonzalez and Woods. Comprehensive coverage of principles, well written, practical w/ useful examples yet well grounded in signal processing and engineering principles. Complemented nicely by a version of the book rich in examples solved in MATLAB (co-author Steve Eddins).

I can only second this. Gonzalez & Woods presents a very good overview of the material in a highly practical and understandable way. Each section contains tons of references into the more specific literature that you can follow as soon as you reached the books limits. Finally, it is a pleasure to read if you are interested in image processing and it keeps you hooked.

If you want a smaller and cheaper book on computer vision, I recommend Concise Computer Vision (Klette, Springer).

It's remarkably complete for its size. The level of detail is just enough that you can refresh or understand a topic, without drowning you in equations. The referencing could be better, but the main papers are called out.

By chance, do you know a good book for audio signal processing?

For signals (as opposed to images), you should have a look at "Understanding Digital Signal Processing" by Richard G. Lyons (ISBN-13: 978-0131089891). I enjoyed this very much and if you grasped the contents from it, you should be able to understand audio-specific books easily.

I second Lyons. In addition, "Digital Signal Processing: A Practical Guide" by Steven Smith is also quite approachable -- immersion in calculus not required.

"A Digital Signal Processing Primer" by Ken Steiglitz is a nice but rigorous intro to the subject. Written by an EE academic, it's more mathematically rigorous than Smith or Lyons.

Allen Downey's "Think DSP" is also worth a look, though its focus is more conceptual than practical, IMO.

DAFX by Zölzer covers all the fundamental audio DSP building blocks. The book is eponymous with the annual international audio DSP conference.

Yes, I should have included this in my post, it's another perfect example of bringing the theoretical to the real world view.

In cultural anthropology: Small Places, Large Issues by Thomas Eriksen. It’s impressive how comprehensive, to the point and organized it is.

CA is a tough discipline to understand in my experience; the endless nuance and relativism is hard to hold in your mind and not get lost in ‘vagueness’. This is a great read to understand the field a lot better. It’s used in introductory classes at least all over Europe.

Marveled to stumble upon a fellow cultural anthropologist over here :) HN is an amazing platform... Just wondering how an anthropologist end up in the AI field...?

Send me a message on Keybase for a chat!

If you want to learn basics of Integrated electronics devices and circuits - I personally recommend 'Electronic Devices and circuits / Integrated Electronics by J. Millman and C. Halkias (This is actually a textbook)

In case you want to learn Engineering Electromagnetics, great textbook by William Hayt and John Buck

Haven't yet read any other awesome basic textbook on 'Computer Networks' like the one by Andrew S. Tanenbaum

'Digital Signal Processing' by Oppenheim and Schafer

Although these are not textbooks but among other good reads are 'Crossing the Chasm' by Geoffrey Moore, 'The Innovators Dilema' by C. M. Christensen, give amazing insights.

I disagree about Millman and Halkias. The content in that book is from 1970s. Better books to learn about Semiconductor devices are 1. Device Electronics for integrated circuits by Muller and Kamins 2. Solid State Devices by Ben. G Streetman and Sanjay Banerjee

Millman Halkias is a staple in Indian universities but its high time it is replaced.

Agree with 'Solid State Devices' by Ben. G Streetman and Sanjay Banerjee

That's interesting. We used Horowitz and Hill as an undergrad and although I didn't continue on the EE track I was under the impression it was the "standard" textbook for introductory electronics. It may be more elementary than the ones you mention. Any thoughts on that text?


The Art of Electronics. My field is experimental physics so this introductory textbook is often the starting point for our designs for photodetectors, power supplies, amplifiers and the like. I'm excitedly waiting for the X Chapters follow-up to the third edition.

I am also waiting for the X Chapters. I emailed Horowitz a couple months ago and he said the x chapters were coming "soon". But they also said the third edition was coming soon for 20 years before it was published so who knows.

As an sysadmin I can highly recommend Google's «Site Reliability Engineering», available for free online <https://landing.google.com/sre/book.html>.

There's a reasonably large list here: https://g.sicp.me/books/listing.html

Reasonably large indeed. Nice link.

As a chemical engineer (many of these go beyond the undergraduate level):

1) The principles of chemical equilibrium, by Kenneth George Denbigh 2) Mass Transfer by Sherwood 3) Process Dynamics, Modeling, and Control by Babatunde Ogunnaike and W. Harmon Ray 4) Chemical Process Industries by Shreeves 5) An Introduction to Numerical Methods and Analysis by James F. Epperson 6) Optimization: Theory and Practice by Gordon S.G. Beveridge and Robert S. Schechter 7) Unit Operations by Maccabe and Smith 8) Advanced transport phenomena by John Charles Slattery

Admittedly these are not the best known of books (eg. Sherwoods Mass Transfer is almost out of print, in favor of Treybal) but I these are my favorites.

And if you are into fluid phase equilibria, "Thermodynamic Models: Fundamentals & Computational Aspects", by Michelsen and Mollerup.

I thought Perry's[0] was considered the Bible by all Chemical Engineers :)

[0] (https://en.m.wikipedia.org/wiki/Perry's_Chemical_Engineers'_...)

Perry's is a good reference book, but certainly not appropriate for research work or conceptual understanding. It is invaluable for people int the chemical industry though, and it serves as a great introduction to the many subjects which chemical engineers deal with. I used to browse it in my UG days..

I am looking for a good, interesting and easy to understand book on Chemistry for beginners. What textbook do you recommend which covers both organic and inorganic?

on the subject, would love a tutorial introduction to total synthesis...

Not really a textbook, but the National Confidential Inquiry into Suicide and Homicide by MH Patients releases an annual report which is very good: https://sites.manchester.ac.uk/ncish/

And the Office for National Statistics releases detailed data on suicide in the UK: https://www.ons.gov.uk/peoplepopulationandcommunity/birthsde...

Synthesis and effects of psychoactive drugs: PiHKAL, TiHKAL

https://en.wikipedia.org/wiki/PiHKAL https://en.wikipedia.org/wiki/TiHKAL

I would also add "The Psychedelic Explorer's Guide: Safe, Therapeutic, and Sacred Journeys" by James Fadiman as an excellent guide for sitters, and a list of protocols for work with psychedelics.


Jean Tirole's "The Theory of Industrial Organization" (1988) was the first cohesive text on game theory, modern industrial organization, and applied microeconomics, and I believe it remains the best advanced-undergraduate-level/early graduate text that I'm aware of in microeconomic theory.

Along those lines, I'd nominate "The Structure of American Industry" by James Brock (now in its 13th edition) for a seminal text on industrial dynamics that focuses on case studies and analysis.

On Food and Cooking, The Science and Lore of the Kitchen by Harold McGee

Very curious to see a book on food show up here. What did you like about the book and did it change the way you think about food or life?

I'd also recommend The science of good cooking by Guy Crosby. I found it to be a more enjoyable read than McGee's. Not as technical which was a boon for me since as a home cook there's a lot more information that can be readily skipped.

For learning to cook: The Professional Chef by the Culinary Institute of America is a great book to learn from. All the recipes will need to be scaled down for home usage which is a bit of a nuisance though. For the home cook, Essentials Of Cooking, The Elements Of Cooking, or How To Cook Everything: The Basics, are all excellent too. I couldn't decide which was the best, so I listed them all!

For Flavours: The Flavor Bible gives an easy way to look up an ingredient, and see what else would go well with it. Great for creating your own dishes!

The Flavor Thesaurus gives in-depth information about combinations of ingredients, why they work, and how best to use them. Also recommend the Field guide to herbs and spices which gives more general information about each spice/herb than the Thesaurus. They pair well together.

The Magic Of Spice Blends is a great recipe book of various spice blends, and information about them, along with showing you how to formulate your own concoctions.

Pastries and baking: The Professional Pastry Chef: Fundamentals of Baking and Pastry by Bo Friesberg or Baking And Pastry: Mastering The Art And Craft from The Culinary Institute of America. Either or.

Confections: Chocolates and Confections by Peter Greweling.

Bread: Either Jeffrey Hamelman Bread: A Baker's book of techniques and recipes or Peter Reinhart The Bread Baker's Apprentice.

Reference: Dictionary Of Flavors. Literally a Dictionary of anything culinary related. Useful on those rare occasions.

Chocolate: Frederic Bau's Cooking with Chocolate: Essential Recipes and Techniques


McGee has a very methodical way of discussing food. It is basically like a scientific textbook in that regard, with deeper dives into almost every topic. It is also incredibly information dense, which makes it a truly a 'bible' in my opinion. And for what it is worth, many other of the more methodical chefs on the internet think so too.

>many other of the more methodical chefs

such as? is there a community for this?

Serious Eats Food Lab [1] Egullet [2]

I can also recommend Modernist Cuisine, which is a sort of text book version of On Food and Cooking. Though it has a lot of industrial equipment and ingredients that aren't applicable to home cooks, it has excellent photos and diagrams that illustrate the cooking process from a biological and physical level. (Modernist Cuisine at Home isn't nearly as comprehensive, though it shirks a lot of the weird/expensive equipment and additives.)

Also Modernist Bread for breads is fantastic and comprehensive.

1. https://www.seriouseats.com/the-food-lab

2. https://forums.egullet.org/

Salt Fat Acid Heat is another great cooking theory textbook. Amazing writing and the lessons can apply to any meal you'll ever make.

It very comprehensive, having a section on every category of food (Dairy, eggs, meat, edible plants, fruit, etc.), the chemistry involved in cooking or preparing said foodstuff, tables of information.

There is a lot of lore behind cooking, people don't always know why they do particular steps in a recipe, that's just how they were taught. It's nice to break down the fundamentals and tweak recipes with that better understanding.

For example, understanding what an emulsion is you can have a better understanding on why hollandaise sauce or mayonnaise breaks, also what acids one can replace when you don't have what a recipe calls for.

Cooking is a practice that I do several times a day, knowing the chemistry behind what I'm doing allows me more flexibility in the tools I use and the process I take.

Intriguing question, you never really think about it after you've read the books, do you?

So here you go:

The Innovators Dilema, C. M. Christensen. Just because , not really domain relevant for me but tons of interessting stuff and insights

Introduction to Materials Management, Arnold, Chapman, Clive. Covering the basics of Supply Chain Management. And I have yet to encounter a situation where the basics don't matter.

Designing and Managing the Supply Chain, Simchi-Levi, D., Simchi-Levi E., Kaminsky P.. Not just the basics of supply chain management, in essence what Amazon is doing in that regard. I have an older edition from 2005 that was just as relevant druing my Masters in 2018 as was back then, but maybe a newer edition doesn't hurt.

Logistics Engineering and Management, Blanchard. The book adding a systems engineering perspective to the above mentioned ones. A little bit weak on the actual logistics and supply chain part, which makes it even more powerfull in combination with the ones mentioned earlier. I can only recommend it for everyone working with complex long-life systems, e.g. ships, planes, industrial equipments,...

For speech recognition, a few very foundational textbooks are:

* Foundations of Statistical Natural Language Processing by Manning and Schuetze [0]

* Statistical Methods for Speech Recognition by Jelinek [1]

* Spoken Language Processing: A Guide to Theory, Algorithm, and System Development by Huang, Acero and Hon [2]

In particular, Statistical Methods for Speech Recognition is a book you could expect to see on the shelves of most people in the field.

[0] https://www.amazon.com/Foundations-Statistical-Natural-Langu...

[1] https://www.amazon.com/Statistical-Methods-Recognition-Langu...

[2] https://www.amazon.com/Spoken-Language-Processing-Algorithm-...

Can anyone recommend a book that you would use as the guide for building a new software project from scratch? Like something that would provide good overall structural approach and best practices. The goal would be to end with as least amount of tech debt and codebase flexible enough to stand the test of time?

After probably more than 10 years postponing to find what HTDP (how to design programs) is all about I'm now convinced that everyone should go through that book (or an online course) and apply the newly found knowledge in real life.

See the edx links in one of the threads above. Take the course; Actually DO what Gregor repeatedly says in videos and you'll find what you missed.

THank you!

I do like: Clean Architecture[0], its pretty much language agnostic and has some nice examples on overall structural decision making -- from small to large projects.

>> The goal would be to end with as least amount of tech debt and codebase flexible enough to stand the test of time?

I am not sure if it is possible, to have a comprehensive book with this goal in mind. It very much depends on the project size, the dependencies and your language / framework -- and even if you have that in order, there are your teammates, the process, continuous integration, milestones/deadlines and the general workflow you have to take into consideration.

[0]: https://www.goodreads.com/book/show/18043011-clean-architect...

Depends, what kind of application are you trying to build? What programming language?

I wrote my book Professional PHP [0] as a guide like that, but of course it's heavily skewed towards building a PHP webapp (even though most of it is also applicable to other OOP languages).

But to be honest, I wouldn't try to narrow it down to a single book. Start with the classics like clean code, code complete 2, pragmatic programmer and then work yourself towards effective java, implementing domain driven design etc. I have a list of my recommendations published here [1].

[0] https://patricklouys.com/professional-php/

[1] https://patricklouys.com/resources/

I was more thinking about language agnostic approaches for big enterprise projects.

In my opinion no book will really teach you this, only experience. It requires going through cycles of design, implementation and subsequent evaluation of how well those fared and how to improve upon them. After repeatedly going through this experience in a mindful manner you will develop a gut feel for what's good and what's suspect.

In Robotics / Computer Vision:

- Thrun et. al, Probabilistic Robotics

- Multiple View Geometry, Hartley / Zisserman

- An Invitation to 3D Vision, Ma

- Pattern Recognition and Machine Learning, Bishop

-Convex Optimization, Boyd

We've recently replaced Hartley/Zisserman (which was getting a bit long in the tooth) with:

Photogrammetric Computer Vision: Statistics, Geometry, Orientation and Reconstruction by Wrobel and Förstner.

Thanks for the recommendation, ordered. Hartley is very valuable to know how we got to where we are, from hand tuned features and RANSAC to more modern full photometric optimization and ML. It answers a lot of "why don't we just... " type questions while still providing the foundations.

Wrobel and Förstner is definitely a different style, to some degrees the two books complement each other. But it focuses much more on the stats side and gaining an intuitive understanding, which to me is really important, and if I wanted RANSAC the algorithms in Hartley are out of date anyways.

Link to recent discussion on HN: https://news.ycombinator.com/item?id=17617825

For numerical optimization, a couple good textbooks are:

- "Practical Optimization" by P. E. Gill, W. Murray and M. H. Wright: a little old (1982), but provides a solid foundation

- "Convex Optimization" by S. Boyd and L. Vandenberghe: the standard for learning convex optimization (also available as a free PDF from the author's website)

- "Convex Analysis and Monotone Operator Theory in Hilbert Spaces" by H. H. Bauschke and P. L. Combettes: covers a more specialized area of numerical optimization, but the notation is beautiful (IMO) and it acts as a useful reference for recent research on, e.g., operator splitting methods

What would you recommend for multi-objective non-convex optimization?

Nonconvex optimization doesn't have the same depth of theoretical underpinnings or canonical body of knowledge as convex optimization so I don't imagine there's a textbook on it that would be authoritative. In the universe of optimization, convex optimization is a special case (linear optimization in turn is a special case of convex); non-convex optimization is everything else!

It's kind of like convex optimization is English, and nonconvex optimization is non-English. I'm not sure it's possible to write a text on non-English.

That doesn't non-convex optimization problems are unsolvable, merely that there are many different attacks that aren't necessarily coherently linked. A few common ones include:

a) convex reformulation, where possible.

b) partitioning into convex regions (used in global optimization)

c) heuristic/evolutionary approaches

d) specialized approaches for particular problem structures like integer programs, complementarity problems etc. (there are good textbooks for these)

There are a few good surveys of the landscape however. Most are journal pubs. This text [1] seems to be a good one.

[1] https://www.amazon.com/Nonlinear-Mixed-Integer-Optimization-...

Crystallography: Structure of Materials: An Introduction to Crystallography, Diffraction and Symmetry by Marc DeGraef

Metallurgy: Physical Metallurgy Principles by Robert Reed-Hill

The DeGraef is a great text.

Formal verification:

Principles of model checking (Baier, Katoen)

It covers the basics of modeling and verifying concurrent systems against linear-time and branching-time properties. It also mentions timed automata, but those more interested in verifying real-time systems should probably check out another good introductory textbook:

Reactive Systems (Aceto, Ingólfsdóttir, Larsen, Srba)

In Electron Microscopy, for beginners:

Bozzola and Russell, Electron Microscopy, 2nd Edition, published in 1998.

Although 20 years old in a field undergoing a revolution, the authors' method of connecting the theoretical to the (once physical, now touch screen) knobs on the instrument make it probably the best technical manual I've ever read. It's for biological EM, but the introductory chapters on the instruments are for everyone.

Transmission Electron Microscopy, materials, including high resolution, for more advanced users:

Williams and Carter, their 4 volume set, Transmission Electron Microscopy.


Christopher James, The Book of Alternative Photographic Processes.

Systems Performance by Brendan Gregg. It is an amazing book for every performance engineer.

In Web Security: - The Tangled Web (http://lcamtuf.coredump.cx/tangled/)

You can look at the Web Application Hacker's Handbook or the Browser Hacker's Handbook, if you want. But TTW tops them all.

Tangled and WAHH are very different books. They're not substitutes for each other. Tangled is closer to Browser Hackers.

Would like to hear general information security recommendations as well.

The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities by Mark Dow et al. https://www.amazon.com/dp/0321444426/ (https://www.amazon.com/dp/0321444426/)

This book will give you the fundamentals of application security testing.

A couple I've learned from (I've left out heavily topic-specific books like Cryptography Engineering since I assume you're asking for books about general information security):

Hacking, 2nd Edition - Introduces the foundations of memory and network exploitation

[Security Engineering](https://www.cl.cam.ac.uk/~rja14/book.html) - An overview of a huge array of info sec topics, from "E-policy" to nuclear command security.

Advanced Penetration Testing - Focuses on simulating APT attacks, using the author's penetration testing experiences to illustrate each point.

Thanks for the suggestions, folks!

Graph Theory:

Introduction to Graph Theory by Douglas West. If you're taking a first course in graph theory, this is where you should start. There is more than enough material here for 3 semesters, and, should you finish it all, you will certainly know more than the average grad student. The only disadvantage of this book is that it's getting old. I've asked Doug when there was a new edition coming out and not gotten much of a response, so don't hold your breath. This is a solid intro to the entire field.

Topological graph theory:

Graphs, Groups, and Surfaces by Arthur T. White. Dr. White is one of the leading experts in this subfield. His previous book, Graphs of Groups on Surfaces is also recommended, if a bit pricey. Obscure and OOP mathematical monographs tend to run that way though, so, I suspect if you're interested in this book, that's not much of a problem to you.

This book is the standard textbook in topological graph theory. As I recall, the topology prerequisites are fairly minimal. For algebra, you want some basic familiarity with groups, but I don't recall anything to heavy hitting being used here. One of the main results is an outline of the proof of the Haywood map coloring theorem, which establishes the chromatic number of all orientable and non-orientable surfaces except the sphere/plane.

No love for Bondy & Murty?

* Donald Knuth's "Art of Computer Programming"

* Jon Kleinberg, Eva Tardos's "Algorithm Design".

* Paul Horowitz's "The Art of Electronics"

* Agner Fog's "Microarchitecture of Intel, AMD, and VIA CPUs": https://www.agner.org/optimize/microarchitecture.pdf

Not a big list, and I've got a lot of textbooks. Knuth's writing style is difficult, its the hardest read I've ever had. But Knuth hits you with the hardest examples as soon as possible, making it very "efficient" reading.

Algorithm Design is clear, concise, and practical.

Art of Electronics is one of the few books that realizes that actual chips and actual specifications are important to electronics designs. It has the unfortunate effect of going obsolete as new chips come out, but its one of the few books that digs into specification sheets and tells you what's important and how to read them.

Agner Fog's microarchitecture was more specific, up-to-date, and understandable if you read it from beginning to end. Agner Fog has a little trick: he starts with the Intel Pentium, and then describes how features were added every generation. (Branch Predicction, Pipelines, out of order, etc. etc)

In ultrafast electron microscopy and material science:

- Transmission Electron Microscopy and Diffractometry of materials by Fultz and Howe

Great reference textbook on how electron microscopes are constructed, as well as general diffraction.

- Advanced Computing in Electron Microscopy by Kirkland

A comprehensive explanation of how to simulate electron diffraction patterns and electron microscopy images. Very clear explanation of the Multislice algorithm, which is actually more general than is presented in this book.

Game Engine Architecture by Jason Gregory

It's like a collection of all the game programming stuff they didn't teach me at school, nor at my non-game jobs. Whether you're writing an engine or just using one, I consider this book absolutely vital.

I would also add Real-Time Rendering[2] and Real-Time Collision Detection[3] to the list of absolutely essential game development books.

[1]https://www.amazon.com/Engine-Architecture-Third-Jason-Grego... [2]https://www.amazon.com/Real-Time-Rendering-Fourth-Tomas-Aken... [3]https://www.amazon.com/Real-Time-Collision-Detection-Interac...

It looks like there are several versions of this book. Would you recommend the 3rd edition of this book, or could I get away with an older one and buy it used?

The new content is very good, but if the price is too high for you, there's nothing wrong with getting the older editions.

Best intro control systems: "Modern Control Engineering", by Katsuhiko Ogata. Also available free, "Feedback Systems" by Karl Johan Åström and Richard Murray at http://www.cds.caltech.edu/~murray/books/AM08/pdf/am08-compl...

Software Foundations [1]. Hands down one of the top programming textbooks to date.

[1] https://softwarefoundations.cis.upenn.edu/

A word of caution: This textbook can get pretty bogged down sometimes because it serves double-duty as a Coq tutorial. (It has to, because the book is literally a Coq script, using formal theorems w/ proofs as examples and formal theorems w/o proofs as exercises.) In my opinion, the material doesn't really take off until vol 2.

However, I don't want to disparage the tutorial nature too much, because learning to "think in Coq" has dramatically changed the way I reason about even traditional pencil and paper proofs, for the better.

> However, I don't want to disparage the tutorial nature too much, because learning to "think in Coq" has dramatically changed the way I reason about even traditional pencil and paper proofs, for the better.

That sounds intriguing, but I wonder if being more rigorous also means being much slower in completing proofs and if practicality is lost (?)

Feynman, Leighton, and Sands - The Feynman Lectures: I always look here for a good intuitive explanation.

A. Zee - Quantum Field Theory in a Nutshell: this is so approachable and in the path integral formulation of QFT. Anyone who points you towards Peskin and Schroeder wants you to suffer.

Gattringer and Lang - Quantum Chromodynamics on the Lattice: essential reading for anyone learning lattice QCD.

For advanced Set Theory:

- The Higher Infinite by Kanamori

It's probably more of a monograph than a text book, but it's among the best written monographs I've come across.

For Complex Analysis:

- Visual Complex Analysis by Needham.

It brings a lot of (needed) geometric intuition to a field that is often very easily misunderstood.

In Continuous Delivery and DevOps:

Lean software Development - Mary & Tom Poppendieck

The DevOps Handbook - Gene Kim, Jez Humble, Patrick Debois

Accelerate - Nicole Forsgren, Jez Humble, Gene Kim

Continuous Integration - Paul M. Duvall, Andrew Glover, Steve Matyas

Continuous Delivery - Jez Humble, David Farley

Do you think the DevOps Handbook would be useful for a working programmer in a small startup without any sysadmin? By reading the descriptions I was under the impression that it's very high level and more geared towards big organizations.

Perl cookbook by Nathan Torkington and Tom Christiansen. It taught me everything from Unix tricks to CGI to making my first website.

No fluff, just lots and lots of code useful practical code samples.

When looking for the best Perl book, I liked "Programming Perl" by Larry Wall, Tom Christiansen and Jon Orwant better. Just a fantastic book that is both fun to read and authorative yet still suitable for learning Perl from scratch (for certain readers).

Debugging, by Agans.

It's one of those books that if you read it after 10 years of industry experience it will probably be dull and obvious, but it gives novices a toolbox for solving problems.

Molecular Biology of the Cell by Bruce Alberts, Dennis Bray, James Watson, and Julian Lewis

Physically Based Rendering: From Theory to Implementation


Might as well also link the 1.0 version bible, Veach's thesis: http://graphics.stanford.edu/papers/veach_thesis/

I am looking for a practical guide to actuarial science. how to apply data science to insurance. Would love to learn for recommendations

Some books on Semiconductor Devices. Not in any particular order 1. Physics of semiconductor devices by S. M Sze, Kwok K Ng 2. Modern VLSI Devices by Taur and Ning 3. Device electronics for integrated circuits by Muller and Kamins 4. Solid state Devices by Ben. Streetman 5. Advanced Semiconductor Fundamentals by Robert F Pierret

Robbins & Cotran pathology books. There are three versions of the same text textbook ranging from a massive, detailed tome to pocket reference book. We refer to them as "big-," "medium-," and "little-Robbins." I have all three, but "medium Robbins" is my favorite.

Not sure if these count as textbooks by most peoples measures, but they have been textbooks for me.

[1]Overcoming the Five Dysfunctions of a Team

[2]The Wal-Mart Triumph: Inside the World’s #1 Company

[3]Guerilla Marketing

[4]The Lords of Strategy

[5]Influence: The Psychology of Persuasion

[6] The Four Obsessions of an Extraordinary Executive

[7]The Deming Management Method

[8]Creativity Inc.

[9]The Wisdom of Teams

[10]On Communication

[11]On Managing Yourself

[12]The Art of Facilitation

[13]Death by Meeting

[14]Good Business: Leadership, Flow, and the Making of Meaning

[15]Makers and Takers: The Rise of Finance and the Fall of American Business

1. https://www.amazon.com/Overcoming-Five-Dysfunctions-Team-Fac... 2. https://www.amazon.ca/Wal-Mart-Triumph-Inside-Worlds-Company... 3. https://www.amazon.com/Guerilla-Marketing-Inexpensive-Strate... 4. http://www.amazon.com/gp/product/1591397820?ref_=cm_sw_r_awd... 5. http://www.amazon.com/Influence-Psychology-Persuasion-Revise... 6. https://www.amazon.com/gp/product/B000079XXQ 7. http://www.amazon.com/Deming-Management-Method-Mary-Walton/d... 8. https://www.amazon.com/Creativity-Inc-Overcoming-Unseen-Insp... 9. https://www.amazon.com/The-Wisdom-Teams-High-Performance-Org... 10. https://www.amazon.com/Communication-featured-Necessary-Pers... 11. https://www.amazon.com/Managing-Yourself-Measure-Clayton-Chr... 12. https://www.amazon.com/Art-Facilitation-Essentials-Meetings-... 13. https://www.amazon.com/Death-Meeting-Leadership-Solving-Busi... 14. https://www.amazon.com/Good-Business-Leadership-Making-Meani... 15. https://www.amazon.com/Makers-Takers-Finance-American-Busine...

How have these books changed your life?

How did you even begin to make this list? Out of how many books have you listed these 15? How have you applied the knowledge from these books?

Some of these are not particularly information dense, or technical guides, so why do you consider them bibles for you?

love this list

Economic Geography:

Global Shift by Peter Dicken. ...Mind expanding....

Widely adopted throughout the world, this definitive text comprehensively examines how the global economy works and its effects on people and places. Peter Dicken provides a balanced yet critical analysis of globalization processes and debates.

Linux: Unix and Linux System Aministrator's handbook ('the green book' or 'the purple book')

Networking: 'TCPIP Illustrated' or it's unofficial follow up 'The Illustrated Network'

TLS: 'Bulletproof SSL' ('the Ristic book')

I have the handbook on my desk rn, awesome read, and easy to digest

Partee, Barbara B.H., ter Meulen, A.G., Wall, R. - Mathematical Methods in Linguistics

Could someone suggest a good book on Geometry beyond what is taught in high school? I find co-ordinate geometry to be more algebraic than geometric and miss knowing the interesting properties of curves and shapes and bodies.

'A Vector Space Approach to Geometry' https://www.amazon.com/dp/0486404528/?coliid=I1QSA8WHK9SQJN

'Geometry: An Introduction' https://www.amazon.com/dp/4871877183/?coliid=I56AS7R6YZMW

The first one if you want a bridge to modern geometry from common university math. The second if you want to start from abstract foundations at the early-undergraduate level.

I asked my father (retired math professor) and he responded

"I am not sure what book to suggest. But if your friend wants to get away from the algebra of coordinate geometry maybe a book on geometric constructions.—How to do things with a ruler and compass."

Human Molecular Genetics by Strachan and Read

+1, this is a good one. It was the textbook for one of my grad school classes and I frequently referenced it during my postdoc.

I usually suggest getting older editions of textbooks to save money, but this is one textbook where I bet you want the latest edition, because the field has been changing fast enough that there's probably some incorrect/missing information in a copy that was published even five or ten years ago. [ Edit to note: actually it looks like the latest edition was published in 2010, so it's probably quite out of date by now. :( ]

A curated list to learn CS aimed at self-taught programmers:


gives recommendations for more challenging or more approachable courses.

For undergraduate mathematics (semi-opinionated, not exhaustive):

Calculus: Apostol and Spivak, take your pick

Linear Algebra: Valenza

Abstract Algebra: Artin

Multivariate Calculus:

  - Vector Calculus, Linear Algebra, and Differential Forms by the Hubbards

  - Calculus on Manifolds by Spivak
For other fields and classes I am not recommending a book because either (1) I don't think there is a clear winner, e.g. as in the case of Real Analysis, or (2) I'm not familiar enough with the books in that field.

If you have other recommendations, please add them! These books changed my life in the best of ways.

For Networking in the ISP space, for me the most helpful have been:

- Interdomain Multicast Routing: Practical Juniper Networks and Cisco Systems Solutions

- Inside Cisco IOS Software Architecture

- MPLS-Enabled Applications: Emerging Developments and New Technologies

This one's not a textbook but proved invaluable to me in learning optical networking: - New and Updated - Everything You Always Wanted to Know About Optical Networking - https://www.youtube.com/watch?v=__wn9zXFiy8

Does anyone have books about visual management or data visualisation ?

Can you define your question further? Are you looking for information on communicating via visual means, or the data to visualization toolchain?

The former, I am looking for a read about why we go on visual management, the good practices, the does and don'ts, etc. So it is more a HR approach than a data one.

Can you recommend _one_ good book that covers Primate biology?

My favorite books contain vividly detailed descriptions of primate biology but unfortunately, none of them are safe for work.

I would also like to know if there is a good book that covers primate biology. I had no idea it was possible to write a _good_ book about an entire order of creatures.

Well, let me downgrade a bit... how about a book about great apes, another one about old-world monkeys etc?

Braunwald's Heart Disease. It is the cardiology Bible.

Harrison's Principles of Medicine as well

For intermediate E&M, Griffiths Electrodynamics.

Agreed. His "Introduction to Quantum Mechanics" is also great.

Can anyone make recommendations for Astrophysics ?

An Introduction to Modern Astrophysics by Carroll & Ostlie is the Bible, but it is quite large physically and in scope and better serves as a reference for most people.

For various topics, I would look at:

Introduction to Cosmology by Ryden for cosmology at the undergraduate level.

Cosmology by Weinberg.

The Exoplanet Handbook by Perryman.

An Introduction to Modern Stellar Astrophysics by Carroll & Ostlie.

Particle Astrophysics by Perkins.

Modern Statistical Methods for Astronomy by Feigelson.

Statistics, Data Mining, and Machine Learning in Astronomy by Ivezic.

I can post more in other topics if anyone is interested.

Admittedly more of an Astronomy text book but a great starting point is Universe by Freedman and Kaufmann.


I remember Carroll's Modern Astrophysics being very good. It's quantitative, so it helps to have some physics background.

Threat (cyber or not) intelligence analysis: "Intelligence Analysis: A Target-Centric Approach" by Robert M. Clark - https://www.amazon.com/Intelligence-Analysis-Target-Centric-...

Introduction to Functional Analysis, R. Meise and D. Vogt.

Despite the name, that's nowhere near just an introduction, especially Part III.

Classical and Multilinear Harmonic Analysis, C. Muscalu and W. Schlag.

After reading the two volumes you will have a huge base of knowledge. The books can get quite advanced as well, containing previously unpublished results when being first printed.

Elements of Information Theory - Cover, Thomas

Network Information Theory - El Gamal, Kim

Adaptive Wireless Communications - Bliss, Govindasamy

Wireless Communications - Goldsmith

In neuroscience:

Principles of Neural Science, Fifth Edition (Principles of Neural Science (Kandel)) 5th Edition


Blackburn, de Rijke, Venema: Modal Logic https://www.cambridge.org/core/books/modal-logic/F7CDB0A2650...

Does anyone have any good recommendations for industrial electronics design? Like a PLC digital/analog input/output module, protecting industrial inputs, etc? I've searched quite a bit, but I've never found enough good advice in one blog or book.

Not my field but I bought and liked "Mechatronics" -- Mechatronics: Electronic Control Systems in Mechanical and Electrical Engineering (6th Edition)

For more lists you can refer to this thread https://news.ycombinator.com/item?id=17625795.

For political science, these are not exactly textbooks, but they are by far the most useful I've ever read:

The Art of Political Manipulation by William H. Riker

Get Out the Vote by Donald P. Green and Alan S. Gerber

For programming, "Data structures & programming techniques" -- pdf as lecture notes. But very comprehensive one.

For Linux / Unix things, APUE is standard one, and pretty nice.

Am not an expert though.

For general graduate-level mathematics, from a category-theoretic point of view: _Mathematical Physics_ by Robert Geroch. Tons of hand drawings and informal motivation.

For anyone interested in building analytical instruments for chemistry:

Chemical instrumentation: A systematic Approach by Strobel. It is quite old (1989), but it is still best in class.

Microwave Engineering by David M. Pozar - surely not for beginners, but worth the effort for those interested in high fequency transmissions and EM propagation

Statistical mechanics/Biophysics:

Introduction to Modern Statistical Mechanics - David Chandler

Physical Biology of the Cell - Phillips, Kondev, Theriot, & Garcia

Not exactly a text book: Vegetation of New Zealand

Fundamentals of Photonics by Saleh and Teich

Not really my area of expertise anymore, but it's a great textbook on Photonics (Physics of Light).

For the field of nuclear engineering applied to detecting sources of radiation..

Radiation Detection and Measurement by Knoll is our bible.

Basic algorithms: Algorithms by Sedgewick.

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