Ask HN: Tech books every developer must read
18 comments
http://misko.hevery.com/code-reviewers-guide/
This is the highest value to time spent read that you will ever experience for programming.
If you read through the rest of the guy's justification for these points (by clicking the headings and then if you want more trawling through older blog posts) you will start to see the matrix.
You might have taken a class that said "high coupling in your software is bad," but it's an entirely different experience to see the common patterns that result in high coupling (or the violation of scopes via accessing global state etc) and pragmatic ways to re-write them.
Making programs a recursive 2 steps per object life time (lifetime of server, lifetime of request, etc):
1. Draw the object graph by instantiating objects of the current lifetime and giving them references to eachother
2. Call run(), which executes the object graph
Felt like an epiphany to me.
This is the highest value to time spent read that you will ever experience for programming.
If you read through the rest of the guy's justification for these points (by clicking the headings and then if you want more trawling through older blog posts) you will start to see the matrix.
You might have taken a class that said "high coupling in your software is bad," but it's an entirely different experience to see the common patterns that result in high coupling (or the violation of scopes via accessing global state etc) and pragmatic ways to re-write them.
Making programs a recursive 2 steps per object life time (lifetime of server, lifetime of request, etc):
1. Draw the object graph by instantiating objects of the current lifetime and giving them references to eachother
2. Call run(), which executes the object graph
Felt like an epiphany to me.
Finding other people that are trying to solve the same problem as you always helps. Probably some mentioned here perhaps:
'Programmer': https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
'Developer': https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
'Software Engineer': https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
Feel free to adjust the date range for recency. When I was young, it took me a while to learn that 'newer' did not necessarily mean 'better', but also note that a lot of initially 'great' books didn't age well.
'Programmer': https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
'Developer': https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
'Software Engineer': https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
Feel free to adjust the date range for recency. When I was young, it took me a while to learn that 'newer' did not necessarily mean 'better', but also note that a lot of initially 'great' books didn't age well.
Domain Modeling Made Functional by Scott Wlaschin
Property-Based Testing with PropEr, Erlang, and Elixir by Fred Herbert
Hacker's Delight by Henry Warren
Programming Pearls by Jon Bentley
Property-Based Testing with PropEr, Erlang, and Elixir by Fred Herbert
Hacker's Delight by Henry Warren
Programming Pearls by Jon Bentley
I have a big list on my website at https://www.briansnotes.io/books/ but here are a few:
* The DevOps Handbook - Lots of tactics for improving the productivity and effectiveness of engineering teams
* Extreme Programming Explained - Solid guide to agile ideas
* Staff Engineer and The Manager's Path - Helps you understand your career path and the expectations that come with positions like Tech Lead, Staff Engineer, Engineering Manager, etc.A Github repo which talks exactly about this https://github.com/cs-books/influential-cs-books and related stackoverflow thread : https://stackoverflow.com/questions/1711/what-is-the-single-...
The Mythical Man Month helped me understand how I, as an individual, fit into a larger organization.
Domain-Driven Design by Eric Evans
Good to understand what came before and how computing has evolved. I really recommend “The Innovators” by Walter Isaacson.
- The Pragmatic programmer
Working Effectively with Legacy Code by Michael Feathers
I forgot about this one! I hoghly recommend it for anyone that has inherited a dilapidated codebase.
Learn You a Haskell for Great Good!
http://learnyouahaskell.com/
http://learnyouahaskell.com/
At least the first five chapters of "The Little Schemer" should be read by every developer.
Programming Pearls by Jon Bentley
I am trying to find some books to help me improve.