2. The Elements of Style. I always enjoyed writing, but at first school taught me to write in a flowery, longwinded way. This was the book that cracked the code for me to good writing. It dispelled a lot of self-serving and ultimately self-defeating habits and paved the way to clean, helpful English. When I finally got into programming in my late twenties, I found that many of the same principles make good code.
3. The Visual Display of Quantitative Information. This is like the Elements of Style but for graphs. Again, it encouraged me to cut through the hype and deliver the content as clearly and succinctly as possible --- to serve the reader, not stroke my ego.
2) C# in Depth by Jon Skeet: Buying and reading this book is what led me to continue down the deep rabbit hole of .NET development, and following the C# language from version 1 onwards via the book is a great way to appreciate the language, as well as use it. As someone that writes C# daily this is the main book I recommend to existing devs.
3) Introduction to Algorithms by CLRS: This is a bit of a cheat, because I've only glanced at various pages of this book. I have a degree in Computer Science, but my maths knowledge is lacking (to put it kindly), so despite my degree I have only a practical understanding of a lot of the algorithms talked about in the book. It's been my goal for years to build up my knowledge of maths to the point where I can read this book cover-to-cover and actually understand what's going on. I'm still not there, but hopefully one day I'll make it.
With that being said, I've tried to teach myself about the most important data structures and algorithms, but I find that I'm not "really" understanding them, and am purely just remembering the gist of what I need to know.
Perhaps it's imposter syndrome, but despite being a passable developer, there's a part of me that feels that I need to be able to read the CLRS book and actually understand what's going on, because until I can read that book I don't feel that I know the ins-and-outs of these algorithms.
2) Zero to One, by Peter Thiel—Zero to one opened my eyes to several angles of business that I hadn't been thinking about. It made me think much harder about making long-term plans towards a concrete goal, even if changes must be made along the way. It also clarified my thoughts about the nature of competition and non-conformity. Courage is in even shorter supply than genius.
3. The Hero with a Thousand Faces, by Joseph Campbell—While it's not a business book, this book is a deep look at mythology and psychology. I find it helpful both for understanding people and for understanding myself.
2. The Pragmatic Programmer -- a classic. Reminds me that I need to re-read it.
3. Effective Oracle by Design, by Tom Kyte -- Not that I use Oracle any more, thankfully, but really provided a lot of insight about how databases function and how it pays to deeply understand their internals when writing webapps.
For anyone that is ready to stop consuming themselves with all things esoteric and start writing generally good code by default.
If more devs followed the relatively simple patterns and practices in this book the phrase "legacy code" might not be a curse-word.
1) Scott Adams 'How to fail at almost everything' for life strategy.
2) Robert Glover's 'No more Mr Nice Guy' for assertiveness and being your authentic self no matter what.
3) As cliche as it is, 'The Power of Now' is a great source to return to in times of personal and professional woes.
Good luck and Godspeed in your career(s).
I remember years ago complaining to someone that the manager of a project whose code I needed kept refusing to fix the showstopping bugs in it. His answer was "go over his head to his manager. No more Mr Nice Guy."
I thought it over and he was right: I'd tried being reasonable for as long as I could and this guy was preventing me from doing my job properly. I spoke to his manager (who I had a great relationship with BTW) and the problem was fixed literally within minutes.
Since then I've taken that approach to heart: either work with me or get the hell out of my way because I won't be held back.
The author isn't recommending anybody to be a jerk, but his admonitions to being more forthright, up-front, and a bit less scheming will help people find balance. And in consequence actually treating people with respect rather than project a somewhat false "nice-guy" facade.
I tried reading The Power of Now but sometimes I felt it became really mumbo jumbo with all the spirituality. Would you advise me to just power through it?
But for me it first took about two years of study into Zen Buddhism and easing into the 'spiritual' terminology and things like 'meditation'. Tolle can be a bit of a leap if you're not already comfortable with mumbo jumbo (even if it's mostly style and has real substance underneath).
1) Philip and Alex's Guide to Web Publishing (not strictly a book). http://philip.greenspun.com/panda/
2) The "Dragon Book" https://en.wikipedia.org/wiki/Principles_of_Compiler_Design
3) Computer Architecture: A Quantitative Approach
Second part (at hindsight):
1) https://en.wikipedia.org/wiki/Rich_Dad_Poor_Dad (cheesy, but useful)
2) http://toddkashdan.com/upside.php
3) https://www.schranner.com/de/news/2012/04/16/-verhandeln-im-... - German book about negotiations written by an experienced hostage negotiator.
This may sound like an odd one, but years ago, I almost never took the time to read. My girlfriend, who knew that I loved Sherlock Holmes books when I was younger, convinced me to try this book as an audiobook while I did my ~40 minute commute to work. I was skeptical, but within days, I was hooked. It made my work commute much more interesting (a British person was reading me Sherlock Holmes!); then I started listening to audiobooks during all my driving (instead of wasting time, I can learn!); then I got an iPod, put audiobooks on that, and started listening to them during all sorts of odd chores (e.g. cleaning, walking, biking); after that, I was so hooked on books, that I started making time to read them too. This had a profoundly transformative effect on my career.
2. "The Lean Startup" by Eric Ries.
I got a copy of this book when I went to a talk by Eric Ries. Eric seemed like a humble, down-to-earth person and helped dispel the notion that to be a successful entrepreneur, you need to be a prescient, superhero, god-like visionary. Instead, what you need to do is to treat your startup and product ideas as hypotheses and test them, as quickly and cheaply as you can (i.e. lean development, MVPs, etc). This fit very well with what I had seen in the real world and with how I thought about problem solving as a software engineer, and gave me a lot of confidence to try out many of my ideas. Since then, I've used these ideas to start a company (http://www.gruntwork.io/) and written quite a bit on what I learned, including an article on The Macro about MVPs (http://themacro.com/articles/2016/01/minimum-viable-product-...).
3. "On Writing Well" by William Zinsser.
If Conan Doyle taught me about the fun of reading, then William Zinsser taught me about the fun of writing. If you want to learn how to write, what it's like to write, or why you should write ("Writing is not a special language owned by the English teacher. Writing is thinking on paper."), it's hard to find a better guide. This book significantly improved my writing skills and even gave me the confidence to write a book (http://www.hello-startup.net/).
Love that book
1) "How to Win Friends and Influence People"
2) "The War of Art"
3) "The Pragmatic Programmer"I find it strange that it's mentioned in the same context as your #1 and #3, which I think are absolutely essential.
And that makes this exercise impossible for me. The books I would tell the younger version of myself to read wouldn't resonate the same way (or not at all) with that other person I used to be. Picking books that might have appealed to the younger version of myself accurately would mean picking the books I actually read -- e.g. The Fifth Discipline -- and not books that the younger version of myself tried to read but couldn't but that I read and recommend today: e.g. TAoCP.
Part of the complexity is that the world in which I read books today is radically different from that of my younger self. Today I can get a MIX interpreter from the internet [1]...there's even help on StackOverflow. My younger self couldn't because even in the time when there was an internet bandwidth was low and Google didn't exist.
Like I said it's great to pick up a good book and realize it is better than I remember when I remember it being really good, but it's hard to see how it could have been better for my younger self.
1. Neuromancer
2. Blood Meridian
3. A Pattern Language
2. Compiler Construction Using Java, JavaCC, and Yacc, IEEE/Wiley, 2012 by Anthony J. Dos Reis
3. An Introduction to Functional Programming Through Lambda Calculus by Greg Michaelson
I'm lazy now so just look on my previous comment:
The Elements of Style, Strunk & White. On clear writing.
Hitchhiker's Guide to the Galaxy (series), Douglas Adams. So you don't take yourself too seriously.
How I raised myself from failure to success in selling, Frank Bettger
Thinking in Systems: A Primer, Daniela Meadows
Most important thing is to get up and start doing stuff, understand how you personally f$$k things up and reap benifits of compound interest in personal development. I think these three bookshave a lot of information that is usable in any career or path one might choose.
Great primer for folks unfamiliar with systems engineering.
> Tech : C - Kernighan & Ritchie (may be a good python/nodejs book today).
> About tech people : Made in Japan - The Google Speaks - The Everything store - Hatching Twitter - Steve Jobs - Zero to One - Hard things about hard things.
> About non-tech people : Founding fathers - Obama - Einstein - Darwin - Feyman - Teresa - Montessori - Gandhi - Mandela - Che Guevera - Churchill.
> Last but important: Tolstoy - Plato - Enlightenment-Era-Books - Religions(all) - Military fitness.
2. "The art of war" by Sun Tzu
3. "Meditations" by Marcus Aurelius
2. "The Practicing Mind" – Thomas Sterner
3. "Better: A Surgeon's Notes on Performance" – Atul Gawande (I'm not a surgeon; the principles herein are universal)
(honorable mention: "How to Win Friends and Influence People" – Dale Carnegie; various biographies by Caro and Chernow)
2. Pragmatic Programmer - A classic, learned many practical tips for day to day programming job.
3. Founders at Work - Motivated me to work on my side projects and be constantly learning.
Incerto - Nassim Nicholas Taleb (4 volumes, with The Black Swan as my favourite). Learn how not to be a fool, or at least, minimize its impacts.
The Startup Owner's Manual - Steve Blank. Learn how to find your way through the market.
L'etranger Albert Camus, for the same reasons as jjgreen
A Herbert Shilt book on C programming but could have been K&R instead, was part of the process from moving from simple basic coding to software development
"How Buildings Learn: What Happens After They're Built" by Stewart Brand --> http://www.openculture.com/2015/07/watch-stewart-brands-6-pa...
"Programmer's Guide to the 1802" by Tom Swan --> http://www.tomswan.com/store/
2) "how life imitates chess" Garry Kasparov
3) "how life imitates chess" Garry Kasparov
Highly recommended, very good read and smart book. I would call it the modern version of The Art of War.
2. "Creativity Inc." (2014) by Ed Catmull. Fascinating stories and lessons from the man who ran Pixar, the animated film company with 11 straight number 1's at the box office.
3. "Outliers" by Malcolm Gladwell. Along with talent and hard work, being well-positioned is a big part of success. Put in 10,000 hours to be great at anything.
2. "The Bible" - I am not too religious, but I am a spiritual person. I find the new testament to be a good blueprint on how to live a righteous life.
3. "The Pragmatic Programmer: from journeyman to master" - such a timeless classic. Just get it...
Honorable mention: Compiler Design in C
2. Drive, the surprising truth..., Daniel Pink - to understand happiness and motivation
3. Crucial Conversations, to learn how to talk and listen and talk to people without ruining the conversation and the possibilities from it
K&R C (Draft ANSI Edition) - A small book that shows how you should write. Many of the examples are not really good code anymore, but it traveled and inspired.
Perl Little Black Book - I needed to learn Perl and it was packed. Much like many of the ORA pocket references, except with a lot more examples. My copy is in rough shape with flags, notes, and highlights.
I will have to dig it out of a box, but I had a system process and design book from a college class that I used extensively in my first decade of work. I think I internalized it all. I put the book in a crate with my K&R C book waiting for a good shelf to put it on when I get somewhere a little more permanent.
1) K&R C
2) Zen of Graphics Programming
3) C++ Programming Language, 2E
I wouldn't recommend any of these to a young version of myself today.
2. PHP for dummies: My first exposure to the world of programming, since then I've never looked back.
3. Rich Dad, Poor Dad: Changed my thinking about finance, I don't know how I would have handled my finances if I hadn't come across this book as a teenager, I feel so lucky to have read this book. I would have been stuck in society's harmful way of handling finance.
"How I Found Freedom in an Unfree World" - Taught me I don't need to follow the standard path that "everyone else does", and to focus on how I can actively change my world - instead of waiting for someone else to to change it for me.
"Code Complete" - Get it. Read it. Live it.
"The Little Schemer"
"Stories of Cats and the Lives They Touch" by Peggy Schaefer
2. sidebar from /r/theredpill
3. The Millionaire Fastlane: Crack the Code to Wealth and Live Rich for a Lifetime
Book number 3 has probably the most 'click baity' and the most douchey title of all times. It sounds like one of those self help books or one of those get rich fast schemas but in fact, it's an eye opener and it encourages hard work.
It's not a joke, one hasn't to take all for granted in that sub and 90% of those people are pathetic but there is some truth in the sidebar.
What the redpill tries to teach people, is to take control over their lives.
Don't focus on woman but on your dreams, if one can manage to take control over those things, woman will come naturally.
All of your working life is built on relationships, even if you code all day.
As a programmer :
1. The C++ Programming Language by Bjarne Stroustrup.
2. Operating System Concepts by Silberschatz
3. Compilers by Aho
As an agile software developer:
1. eXtreme Programming by Kent Beck
2. Pragmatic Programmer by Hunt and Thomas
3. Continuous Delivery by Jez Humble
As an architect:
1. Domain Driven Design by Evans
2. Pattern-Oriented Software Architecture by Buschmann
3. Envisioning Information by Edward Tufte
As a CEO:
1. Good To Great by Collins
2. Lean Startup by Eric Ries
3. Beyond Budgeting by Pfläging
2. "Insanely Simple" by Ken Segall
3. "How to Measure Anything" by Douglas W. Hubbard
- Computer Architecture - A Quantitative Approach (Hennessy/Patterson)
- Expert C Programming - Deep C Secrets (van der Linden)
I woud call the Pragmatic Programmer though by far the most influential.
I find the books such as Andrew Tanenbaum's "Computer Networks" which are bringing historical perspective as well as a lot of technical information without going into the tiny details the best balance of useful and interesting.
Therefore "Computer Architecture - A Quantitative Approach" is much better for me in that aspect and the C programming should be really interesting too, although I haven't read it.
2.One Up On Wall Street - insiders view of the markets and other lessons
3.Consilence - how to distinguish real things from unreal things
- The Upside of Irrationality by Dan Ariely
- Screw It, Let's Do It: Lessons In Life by Sir Richard Branson
Fooled by Randomness, Taleb
Linchpin, Seth Godin
(That said, I'd admonish anyone your age that if you don't have children, have them now rather than a series of compensating house-pets for the rest of your life)
2) Noble House
3) Excel by Que Publishing