HackerNews Readings
40,000 HackerNews book recommendations identified using NLP and deep learning

Scroll down for comments...

Hacking: The Art of Exploitation, 2nd Edition

Jon Erickson

4.7 on Amazon

19 HN comments

Bitcoin: Hard Money You Can't F*ck With: Why Bitcoin Will Be the Next Global Reserve Currency

Jason A. Williams and Jessica Walker

4.8 on Amazon

19 HN comments

Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People

Aditya Bhargava

4.6 on Amazon

18 HN comments

The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact

Edmond Lau and Bret Taylor

4.5 on Amazon

18 HN comments

About Face: The Essentials of Interaction Design

Alan Cooper , Robert Reimann , et al.

4.5 on Amazon

18 HN comments

The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws

Dafydd Stuttard and Marcus Pinto

4.6 on Amazon

17 HN comments

The Art of Game Design: A Book of Lenses, Third Edition

Jesse Schell

4.7 on Amazon

17 HN comments

Think Bayes: Bayesian Statistics in Python

Allen B. Downey

? on Amazon

15 HN comments

Mastering Bitcoin: Programming the Open Blockchain

Andreas M. Antonopoulos

4.7 on Amazon

15 HN comments

Working in Public: The Making and Maintenance of Open Source Software

Nadia Eghbal

4.6 on Amazon

15 HN comments

Rocket Surgery Made Easy: The Do-It-Yourself Guide to Finding and Fixing Usability Problems

Steve Krug

4.5 on Amazon

14 HN comments

Software Engineering

Ian Sommerville

4.3 on Amazon

14 HN comments

The Making of Prince of Persia: Journals 1985-1993--Illustrated Edition

Jordan Mechner

4.8 on Amazon

13 HN comments

Python Machine Learning: Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow 2, 3rd Edition

Sebastian Raschka and Vahid Mirjalili

4.5 on Amazon

12 HN comments

Life 3.0: Being Human in the Age of Artificial Intelligence

Max Tegmark, Rob Shapiro, et al.

4.5 on Amazon

12 HN comments

Prev Page 5/16 Next
Sorted by relevance

squiguy7onJune 9, 2015

Software Engineering Radio is an enjoyable one. [1] However they don't publish as frequently as the others might.

[1]: http://www.se-radio.net/

dd82onNov 20, 2020

Signed up for the notification when the book is published. I really liked your article about the product minded engineer, and follow your blog. Given the timeline you refer here, I wonder if the project O'Reilly was referring to was Software Engineering at Google[1]. Given the book contents summary on your site, the contents do seem to overlap in some areas, except I don't expect that you're making numerous references to Google in your text :-D

[1] https://www.amazon.com/Software-Engineering-Google-Lessons-P...

breckonAug 29, 2019

If you liked this, years ago Fred Brooks recommended these books to me:

- DeMarco & Lister Peopleware

- 2007. Software engineering: Barry Boehm's lifetime contributions to software development, management and research. Ed. by Richard Selby.

- Hoffman, Daniel M.; Weiss David M. (Eds.): Software Fundamentals – Collected Papers by David L. Parnas, 2001, Addison-Wesley, ISBN 0-201-70369-6.

- And his: The Design of Design. Start with Part II.

asdfdfgdhsdonDec 23, 2019

Making Software: What Really Works, and Why We Believe It by Andy Oram & Greg Wilson

Working Effectively with Legacy Code by Michael Feathers

Our standard text for SE was Software Engineering by Ian Sommerville.

mattybonJuly 7, 2009

I have a soft spot for books that I can read on my BlackBerry. SICP, The Art of Unix Programming, Software Engineering for Internet Applications, SQL for Web Nerds, Practical Common Lisp, Dive Into Python, now Simply Scheme.

If only the Handbook of Applied Cryptography had their chapters in HTML.

vereloonSep 21, 2016

I agree with both the parent and this comment; this is why when i read "Software Engineer" i don't consider it to fit in the same bucket as any other "Engineer" in general.

As a "guy who writes code" - call me whatever you want, i could probably give myself a fancy title and get away with it, but I am one of the very successful (When compared to the 99%) people who didn't finish school but managed to get by in the tech industry very comfortably. Life is already great, perhaps I just don't deserve to get everything my way.

clumsysmurfonJuly 19, 2021

Two books about to be published in this genre which I am excited about:

(1) Software Development Pearls: Lessons from Fifty Years of Software Experience (Karl Weigers). I enjoyed his books on Requirements and Software Engineering Culture

This zinger really applies to my work place "Lesson #7. The cost of recording knowledge is small compared to the cost of acquiring knowledge"

(2) Code That Fits in Your Head: Heuristics for Software Engineering (Mark Seemann). His previous book on Dependency Injection was good

dwheeleronJuly 22, 2021

Yes. That first paper is Boehm, Barry W., "Software Engineering", IEEE Transactions on Computers, December 1976, pp. 1226-1241, vol. 25
DOI Bookmark: 10.1109/TC.1976.1674590, https://www.computer.org/csdl/journal/tc/1976/12/01674590/13... At the time Barry W. Boehm was at the TRW Systems and Energy Group.

The Boehm paper says "Fig. 3 shows a summary of current experience at IBM[4], GTE[5], and TRW on the relative cost of correcting software errors as a function of the phase in which they are corrected." and indeed figure 3 (page 1228) shows exponential growth. It only shows averages or ranges for each data source, and that's a legitimate critique. That said, it does show them for multiple companies, and then presents a trend line that plausibly follows from the data provided. Boehm has a good reputation, I expect that this really was a reasonable observation from real data.

It's legitimate to question whether or not that is still true. Computer "science" is notorious for having almost no science - experiments are almost non-existent. I would love to see this & many other experiments conducted to see what's true today.

fdsvnsmvasonSep 10, 2018

Thanks everyone, the comments are much appreciated. Here's a list of books and other media resources recommended so far in the thread:

Robert C. Martin, Clean code: https://www.amazon.com/Clean-Code-Handbook-Software-Craftsma...

Vaughn Vernon, various: https://vaughnvernon.co/?page_id=168

Steve McConnell, Code Complete: https://www.amazon.com/Code-Complete-Practical-Handbook-Cons... 2

Clean coder: https://cleancoders.com/ videos

Hunt and Thomas, The Pragmatic Programmer: https://www.amazon.com/Pragmatic-Programmer-Journeyman-Maste...

Hitchhiker's Guide to Python: https://docs.python-guide.org/

Dustin Boswell The Art of Readable Code: https://www.amazon.com/Art-Readable-Code-Practical-Technique...

John Ousterhout, A Philosophy of Software Design: https://www.amazon.com/Philosophy-Software-Design-John-Ouste... This one looks particularly interesting, thanks AlexCoventry!

Kent Beck, Test Driven Development: https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/...

Dan Bader, Python Tricks: The Book: https://dbader.org/

Ian Sommerville, Software Engineering: https://www.amazon.com/Software-Engineering-10th-Ian-Sommerv...

Svilen Dobrev, various: http://www.svilendobrev.com/rabota/

SwizeconJuly 19, 2021

Or read the first and second paragraph?

> When I first picked up Software Engineering at Google I thought it was another one of those FAANG books full of lessons that make no sense at human scale. I was surprised, the lessons apply to teams as small as 5.

> This is a "good shit stays" recap. The lessons that stick with you a few weeks after reading.

truth_be_toldonSep 10, 2018

"Software Engineering" is merely a collection of principles, techniques, heuristics, structure and practice all validated by trial and error. As such you have to read a variety of books to get the overall picture. Specifically books with sizable code for various problems. You may find the following helpful to get started (many of these can be bought used and cheap);

* Fundamentals of Software Engineering by Ghezzi, Jazayeri and Mandrioli

* The Practice of Programming by Kernighan & Pike.

* Code Complete by Steve Mcconnell.

* The Unix Programming Environment by Kernighan & Pike

* Advanced Unix Programming by Marc Rochkind.

* C Interfaces and Implementation by David Hanson.

* Large Scale C++ design by John Lakos

* Unix Network Programming by Richard Stevens.

The key is that while reading the above you need to "get" how the code is "structured" rather than the details. For example, how does the code for a TCP server and client "look like"? It is a kind of spatial knowledge which you can then consider as one "module" of functionality and reproduce as needed. Large Systems consist of a bunch of layered and well partitioned modules exposing simple and clean interfaces. There will also be modules which cross-cut all the functional modules like "Error-Handling", "Logging" etc. This is the core of "Software Engineering", everything else is details.

Finally, you would also need to read a book/source where you can see all of the above principles put into practice while building a non-trivial (initially not overly complex) system.

bootloadonSep 25, 2007

"... Are there books you suggest i read, or tutorials to start with? ..."

I'd suggest trying to change your "mindset" as well, building and reading supporting information at the same time. One such way is to read "SEIA" (Software Engineering for Internet Applications, Andersson, Greenspun & Grumet) which is online or in print and follow the book through ~ http://philip.greenspun.com/seia/

The book/course is easy to read and most important devoid of advocacy. The good thing is you can start now at no real cost. But it will take time and effort though.

ruraljuroronApr 19, 2021

> If you see those things as "the boring bits" that you don't want to do then you're not a developer. You're a hacker.

This point parallels the distinction made in the Software Engineering at Google flamingo book between programming and engineering. Engineering comprises the tools and processes to maintain software over time (this is a rough paraphrase), of which docs, for example, is essential.

So to use their language with your point: this sounds purely like programming and perhaps not engineering.

teejonSep 6, 2017

Dear HN reader - if you're not quite ready to buy the book, take a listen to this episode of Software Engineering Daily (https://softwareengineeringdaily.com/2017/05/02/data-intensi...). It will give you a sense of what Martin Kleppmann is all about and how he thinks about problems. I ordered my copy of "Designing Data-Intensive Applications" after listening to this episode.
Built withby tracyhenry

.

Follow me on