4 ms·
Many more beyond this but these are my for sures. People / Soft Skills: * How to win friends and Influence People - Dale Carnegie * Secrets of Consulting - G
by belfalas 4y ago
Many more beyond this but these are my for sures.
People / Soft Skills:
* How to win friends and Influence People - Dale Carnegie
* Secrets of Consulting - Gerald Weinberg
* Peopleware - Tom DeMarco & Timothy Lister
* Nurtured by Love - Shinici Suzuki
* Turn the Ship Around! - David Marquet
* Never Split the Difference - Chris Voss
http://dhemery.com/articles/resistance_as_a_resource/ http://dhemery.com/articles/resistance_as_a_resource/
http://dhemery.com/articles/managing_yourself_through_change/ http://dhemery.com/articles/managing_yourself_through_change...
Macro Skills:
* Toyota Production System - Taiichii Ohno
* Workplace Management - Taiichii Ohno
* Thinking in Systems - Donella Meadows
* Fifth Discipline - Peter Senge
Agile:
* Extreme Programming, Explained (2nd ed.) - Kent Beck (the annotated bibliography is a goldmine)
* Chaos: Making a New Science - James Gleick
Programming:
* Implementation Patterns - Kent Beck
* Test-Driven Development, By Example - Kent Beck
* Refactoring (both editions) - Martin Fowler
* Refactoring to Patterns - Joshua Kerievsky
* Practical Object Oriented Design - Sandi Metz
* Functional Programming in Scala - Chiusano & Bjarnason
* Growing Object-Oriented Software, Guided By Tests - Freeman & Pryce ("The Goose Book")
* Modern Java in Action - Raoul-Gabriel Urma
* Java Concurrency in Practice - Brian Goetz
* Grokking Algorithms - Aditya Y. Bhargava
Architecture:
* Righting Software - Juval Lowy
* Release It! - Michael Nygard
* Site Reliability Engineering - Beyer, et al. ("The SRE Book”)
* Domain Driven Design - Eric Evans
* Introduction to Permaculture - Bill Mollison and Mia Slay
* Fun with a Pencil - Andrew Loomis
Design:
* All books by Edward Tufte, especially “The visual display of quantitative information”
* The Elements of Typographic Style - Robert Bringhurst
* Understanding Comics - Scott McCloud
* Design of Everyday Things - Don Norman
* Notes on the Synthesis of Form - Christopher Alexander
* The Timeless Way of Building - Christopher Alexander
- Andys 4y agoSo cool to see Bill Mollison in there. I live on a farm and work remotely in part because of that book.
- belfalas 4y agoThanks! There is a lot the software world could learn from permaculture. I think software in many ways is more akin to gardening than building physical buildings.
- belfalas 4y agoAlso, you should study up on TCP/IP networking. You should be able to telnet to an HTTP server and write out a correct request by hand and have it work.
- twawaaay 4y agoConnecting to FTP server with telnet left as exercise for the reader... :)
- intelVISA 4y agoOh you tease, TCP/IP is more than just \r\n and HTTP/1.1! We need at least 21 libraries for that!
- belfalas 4y agoHaha yes, for sure. I mean that it’s good to understand that HTTP is built on top of other things. I can’t tell you how valuable it’s been at times to understand how packets flow over a network. When ECONNREFUSED first rears its ugly head many developers tremble. Over time you learn it’s just a slog of debugging. Emotional control while programming is invaluable.
- halkony 4y agoI love you
- jgilias 4y agoThank you for putting people skills up there first on that list! It was a small revelation to me when I at some point realized that people skills is just another thing I can just learn how to do. That it’s not necessarily something that comes naturally and then you either have it or don’t. Also, the realization that people skills are actually no less important than tech skills in a tech setting.
- belfalas 4y ago> the realization that people skills are actually no less important than tech skills in a tech setting. Yes, and this is hard to accept: they are more important than technical skills. I have worked with many truly brilliant engineers who didn't see their ideas implemented because they didn't have good social/conversation skills. The most common version of this is the engineer who gets miffed/irritated/pissed off if people don't accept their ideas after 5 minutes of explanation. Meanwhile, the hustler whose code totally sucks gets the win because they know how to schmooze the business folks (or literally just tell the best lie). Hard technical skills are not enough for most people to be successful. There are the outliers with "super programmer skills" (and here I'm thinking Linus Torvalds / John Carmack level status) who are just so indisputably expert that they should be heard. But even then they may not get the win. You have to know how to talk to others.
- jgilias 4y agoI get why many people dislike the idea of working on those skills. The way you put it, some people might go like “I’m not playing ‘games’ like that, and I’m proud of it!” So, the way I think about it instead is that I’m just another type of system that can be maintained, improved, evolved. And my communication with others is simply an interface. And, well, any engineer can grasp the idea that easy to use and well thought out interfaces are valuable and worth working on.
- eric-hu 4y agoIt’s worth pointing out that John Carmack resigned from Meta because, among other reasons, he felt he wasn’t heard enough on issues he was trying to flag as dumb ideas.