[1] https://www.amazon.com/JavaScript-Definitive-Guide-Activate-... [2] https://www.amazon.com/Thinking-Fast-Slow-Daniel-Kahneman/dp... [3]https://www.amazon.com/Introduction-Probability-Models-Tenth... [4] https://www.amazon.com/Hackers-Black-Book-Important-Informat...
I've been meaning to read it, and I think it's really interesting that it provides enough value to be among the others.
If you read this book, you'll learn how absurdly influential Kahneman has been: he did the original research on the endowment effect, anchoring, loss aversion, and tons of other stuff you'll see quoted around here all the time. He's also heavily cited by Taleb.
I wish more academics would write like this. It's a hard book to summarize because it's long and completely free of bullshit. It's more or less 400 pages of "here's the question, here's what we did, here were the results, we were surprised because" 20-30 pages at a time. It's an outstanding book by an outstanding professor.
I'm not sure where you can get it in the states.
https://en.wikipedia.org/wiki/Translations_of_One_Thousand_a...
Honestly, I've yet to find a physical book that has proven to be a useful reference in the long run. Programming languages just change too quickly; it's the web or the code.
As for more meta-programming/business/interpersonal books, the few that I've read are not ones I've ever had any real desire to go back to.
Wow - same with me. Perfect size to match my monitor base! I also keep a 2002(?) copy of "Creating Web Pages for Dummies" to remind me of my roots.
In the old days you might use a compiler for 3-4 years. Nowadays, something you'd buy a book on could change versions in less than a year. Anything I bought in the early days of XCode/iOS was obsolete before I knew it. I bought a JQuery book and it was already a point release behind.
Me either, but how else do you signal to other programmers how knowledgeable and well-rounded you are in the field?
Apart from K&R, there are very few programming books which are worthwhile; up to about 10 years ago the ORA series were worthwhile, but nowadays especially with StackExchange it's just far better to get the one fragment of information you need in a handy searchable pasteable internet format.
(Non-programming book recs: recently The Man Who Stole Portugal (non-fiction, surprisingly relevant to crypto) and The Time Of Gifts (biography, extravagantly written, requires checking wikipedia every 5 dozen words unless you have a really excellent knowledge of European history)
- Garner's Modern American Usage
- The Hardware Hacker (I am a huge fan of bunnie)
- The Art of Electronics (Horowitz and Hill)
I don't really have "reference" books on my desk. Most rotate out quite frequently depending on what I'm researching and writing about. These can range from Raizman's History of Modern Design to Lewis Carroll's Symbolic Logic.
In addition I make plenty use of thesauruses. I have a few old ratty copies but mostly do a quick flit over my keyboard to pull up synonyms. When a word is on the tip of your tongue, looking up another that you know is related to it in a thesaurus is the best way to efficiently jog your memory.
I prefer the updated Garner's Modern English Usage because it caters for the broad church of English not only the USican dialect.
Also, +1 for a thesaurus.
I keep a dead tree Roget's handy – he's buried just down the road – and macOS provides the Oxford gratis. I also have Chambers on iPad/iPhone for pennies – a completely different slant.
Effective, concise communication is a huge part of tech. Get better at it day by day by surrounding yourself with the best tools. It costs next to nothing, and it improves the rest of your life to boot.
Aside: I keep a bookcase next to my desk with ~50 novels in three languages. One chapter rewires my brain to think different and has solved innumerable problems. Your HR dept may not approve. Challenge them.
So far my most proud accomplishment is designing a binary adder in EAGLE and getting the PCB manufactured. I put all the files up on GitHub in the spirit of open hardware, too:
Computer Principles of Modeling and Simulation - T.G. Lewis/B.J. Smith: I received this book as a gift from one of my favorite professors in college. It was published in 1979, but I find the material still relevant when it comes to introductory concepts of computer simulation.
Big Java Late Objects - Cay Horstmann: Another text from my time at college, specifically from my data structures course. I keep it because I like the way it explains fundamental data structures with well-written Java.
Head First Design Patterns - Eric Freeman/Elizabeth Robson: Another college textbook, and one of my least favorite reads of all time, but I'll be damned if it doesn't explain design patterns well enough for me to keep it around. I refer to it now and then but only when I feel like punishing myself.
Learning PHP, MySQL, JavaScript, & CSS - Robin Nixon: A dangerously outdated introductory web development text that I bought when I was in high school. It was the first programming book I ever purchased and I keep it around because I enjoy remembering what it felt like to explore web development for the first time. I've not referred to it in years, for obvious reasons, but it explained full-stack web development very well and gave me a foundation that I've been able to build on to this day. I remember standing in the tiny Computer Science section at Barnes & Noble where I found it, taking it home and cracking it open, and working through it until I had to make myself go to sleep. It's the first programming book that really hooked me.
A few Chinese language books (to help communicate with co-workers)
A few Algorithmic Trading related books as well as a few math books.
And, laugh if you wish, a few Buddhism books to help remind myself patience, no negative energy, etc. If I am feeling frustrated I can read a few quick thoughts.
Could you share your favorite books on algorithmic trading? I've been interested in it for a while.
1. Design Patterns (GoF) - This book is all about design, someday I aim to really understand all the patterns.
2. High Performance Parallelism Pearls Volume 2 (Reinders/Jeffers) - There are couple of other books similar to this one. But, if you want to know how myriad HPC applications make use of parallel programming models such as MPI and OpenMP, this provides a good introduction.
3. The Annotated C++ Reference Manual April 1995 hardbound edition (Ellis/Stroustrup) -- What a fantastic little book, also got it for $4.95 at Powell's bookstore in Portland :) IMO this books provides a gentle introduction to C++, you can flip to any page and just start reading.
4. Numerical Recipes in C (Press, Teukolsky, et al.) - If I need to quickly prototype some scientific computation kernel, this is my go-to book.
5. Effective C++ 3rd edition (Meyers) - I like to approach this book from the back (i.e., indices), pick up a topic, and then read the contents one by one. Repeat.
6. Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers (Gottschling) - I like and dislike certain portions of the book. It definitely contains a lot of code explanations of C++ idioms, which helps a beginner like me.
I actually just made an engine [1] for the Searx [2] meta-search engine to allow it to search through a local library using the Recoll [3] search engine, making life even easier as search over my personal library is now integrated into the same search engine I use for other purposes. With full text search using a query language [4] which resembled the defunct Xesam [5] language it is above and beyond what the likes of Google Scholar offer.
While I'm in many ways something of a traditionalist - living on a 17th century farm in Sweden, cooking on a wood-burning stove, riding sidecar Soviet motorbikes etc - I made the move to a more or less paperless office quite a while ago. The one thing I do not do is rely on third-party services to accomplish this as those have proven to be both unreliable as well as unreasonably inquisitive with regard to any personal details they can filch from their users. I keep my own 'cloud', have my own (meta-)search engine, my own mail/web/etc server, etc.
[1] https://github.com/asciimoo/searx
[2] https://github.com/asciimoo/searx/pull/1257 and https://github.com/koniu/recoll-webui/pull/61
[3] http://www.lesbonscomptes.com/recoll/
[4] http://www.lesbonscomptes.com/recoll/usermanual/webhelp/docs...
What software do you use for this, and how much time does it take for you to keep it running?
Mail: Exim/Dovecot/Spamassassin/greylistd. Roundcube as a stand-alone web mail interface, not used much since Nextcloud gained a usable mail client. About 8 hrs per year of upkeep.
Web: nginx (used to use lighttpd) as frontend to a host of different applications and services running on two ancient Intel SS4200 servers. I'm about to move the whole bunch to a somewhat more upscale server (building a rack now to contain it plus some assorted network bits, disk cabinets and one of those SS4200's, the bottom bit of which will be used as a fruit/herbs drier so that heat won't go to waste...)
X2go to run X11 apps on remote locations
Searx for search, now also local search using Recoll and the mentioned plugin
GOGS for code hosting
I'm still running Trovebox as an image server, currently working on a media server to combine video, image and audio.
Subsonic/Madsonic for remote audio and limited video service, the same library is served by mpd on several machines in the network.
Some long-running experiments with XMPP (using Prosody) to use next to (and eventually replace) Telegram. If Telegram opens their server code this might not be necessary but I'm not holding my breath.
Eventually I'd like to end up with a plug-in replacement 'box' for many 'essential' network services, something which can run on modest hardware and does not take much upkeep so it can be used by as wide a range of people as possible. I'm not the first one, nor the only one to come up with this idea but as I've been doing this for more than 22 years now for personal and family use I do have some experience with the matter.
It's one of the most informative books I've ever read with a really valuable perspective to view information through. I find myself applying it more frequently the more recently I've re-read it.
Hofstadter's 2007 book "I Am A Strange Loop" develops one of GEB's themes in more depth. It's written in a more straightforward style than GEB, so it's less remarkable as a reading experience, but its perspective has stuck with me in a pretty fundamental way, so I would recommend it to anyone who enjoyed GEB and wants to dig further into the puzzle of consciousness.
edit: typo
Mind you, I have that with particular novels & movies I return to, too.
thats really intersting. curious if you have any examples tht come to your mind.
Although it covers a plethora of topics, what really binds it together is the idea of 'strange loops,' and how loops are existent in most everything, how they signal information, how they come in various steps, etc, etc, etc.. I'm sure the author would disagree with that summary actually, but it's the best I can do.
In finance for example, it's prompted me to more actively search for loops in any given analysis, and sometimes at a much more macro level. In politics, I've ended up thinking a lot more deeply about some loops of how civilizations progress and ideologies change.
To summarize: The book does a fantastic job at showing you how all of these loops are present throughout computer science, physics, chemistry, music, art, and practically everything imaginable. Once you realize the existence of these loops that you were previously oblivious to, you start to search for them more actively. You should definitely check it out if this sounds interesting!
Manuel Lima's "Visual Complexity", "The Book of Circles", and "The Book of Trees". These are useful as references and as visualization inspiration.
Jacques Bertin's "Semiology of Graphics". Gorgeous and immensely useful.
Desmond and Nicholas Higham's "MATLAB Guide, 3rd Edition", and Yair Altman's "Accelerating MATLAB Performance". Both are invaluable for serious MATLAB work.
Titus A. Beu's book on Numerical Programming is very good as a reference.
For anyone needing to work on military simulations, "Engineering Principles of Combat Modeling and Distributed Simulation" by Tolk is the best reference I have found on the subject.
And TAOCP and CLRS are here for reference purposes as well.
http://www.commodore.ca/manuals/c64_users_guide/c64-users_gu...
More by nostalgia than by need
- The art of computer programmming
- Hacker's delight
These two are of great help when doing programming challenges. Hacker's delight is about bitwise tricks.
- Open Data Structures
Useful for a quick refresh on data structures.
And actually, it has a few cool links on its homepage to similar books. In particular, there is a link to this gem [2], which, for example, has a chapter [3] on what appears to be a very interesting generalization [4] of the "master theorem" of CLRS. Another good resource that pages links to seems to be [5], which was recently mentioned on HN.
Of course, for an even deeper treatment of asymptotic analysis check out Flajolet and Sedgewick [6]!
[1] http://opendatastructures.org/
[2] http://jeffe.cs.illinois.edu/teaching/algorithms/
[3] http://jeffe.cs.illinois.edu/teaching/algorithms/notes/99-re...
[4] https://en.wikipedia.org/wiki/Akra%E2%80%93Bazzi_method
[5] (PDF warning) http://opendatastructures.org/mcs.pdf
In a nutshell, dynamic programming is recursion without repetition. Dynamic programming algorithms store the solutions of intermediate subproblems, often but not always in some kind of array or table. Many algorithms students make the mistake of focusing on the table (because tables are easy and familiar) instead of the much more important (and difficult) task of finding a correct recurrence. As long as we memoize the correct recurrence, an explicit table isn’t really necessary, but if the recursion is incorrect, nothing works.
Dynamic programming is not about filling in tables. It’s about smart recursion!
http://jeffe.cs.illinois.edu/teaching/algorithms/notes/05-dy...
https://www.amazon.com/How-Read-Book-Classic-Intelligent/dp/...
MOS 6502 series data book.
Moto 6809 Programmers Reference.
I actually had someone take me to the local Motorola office to get the 6809 book. Docs were free for the asking, and a kid asking was quite the event. Aspects of that conversation were important to my life.
I still have occasion to do paid work, and enjoy fun projects with both chips, and or variants seen today. These are few and far between, but very enjoyable. Mostly perspective and nostalgia in these. It's my roots.
The One Minute Manager parable has served me well mentoring and leading.
On Writing by Stephen King. Being able to tell a story with clarity has far more utility than one would expect. Besides, I want to write a novel one day.
The Art of Electronics, second edition. Probably need to update that one.
A Tektronix "How to use an Oscilloscope" book, well matched to my old, analog 400Mhz, 4 channel scope.
ANSI / ASME geometric dimensioning, tolerancing, standards books. 2D technical communication remains significant in my life.
Recent addition: Mold making Handbook.
I need a good primer and a good polymer tech reference. Any suggestions?
"Pirates of the Asteroids", childhood sci-fi. Again, perspective. Was the first one I really read through and got as a kid. Kept it, because asshole reminder. 'Nuff said. It's just a personal totem.
Engineering Handbook from the 60's era. Just glanced at it, and realized I had the title wrong.
Man, there are so many great references in this thread. I've made a short list, and will enjoy my next trip to Powell's books.
Thanks all.
Reference:
- Effective Java (good for learning the mindset of developing backward-compatible APIs in any language)
- Enterprise Integration Patterns (I work on an enterprise APIs team)
- Designing Data-Intensive Applications
- Camel in Action
Good for lending out: - The Phoenix Project
- Making Work Visible
- Effective DevOps
- The Pragmatic Programmer
- REST in PracticeEffective Perl Programming.*
A long time ago, when I was a college kid with tons of free time, I'd sit for hours at Borders* or Barnes & Noble and just read computer books. God bless those employees for never kicking a 20-something poor kid out who lived on free coffee refills, yet never bought books.
At the time, Perl was more significant. Something about its syntax made sense, even though nowadays I cringe at it. Though Python is worse, in a different way...
A decade later, and I still sometimes need to spit out the results of a bunch of commands, iterate through them with some regex, format it, etc. Perl became the internet's 'duct-tape' for a reason.
[1] https://www.amazon.com/Effective-Perl-Programming-Idiomatic-...
[2] https://dealbook.nytimes.com/2011/02/16/borders-files-for-ba...
Where I still find books useful is in learning a new subject from scratch. Reading an entire book from cover to cover gives me a broad mental overview of the whole subject, and that is extremely helpful when trying to put the random bits of knowledge I find online into context.
It answers almost any question you might have pertaining to workshop activities. Speeds, feeds, that kind of thing. I keep it in our break room in case one of us needs to look something up. A lot of the younger technicians are fresh out of school, and we also have apprentices on our shift. Having a resource like this is invaluable for when they have a question, and none of us old-timers are available to answer it because something major has broken and we're scrambling to make it not-broken.
Our company prints its own training materials and we have a veritable library of Standard Maintenance Procedures, as well as manufacturer's manuals for all the different machines in our shop. We keep them indexed in a large filing cabinet.
[1]https://www.amazon.com/Desk-Ref-Thomas-J-Glover/dp/188507160...
Man Against Myth, Barrows Dunham
The Elements Of Style, Strunk & White (4th ed.)
Telling Writing, Macrorie
The Zen Teaching Of Huang Po
The Pocket Pema Chödrön
Why I Write, George Orwell
Others come and go from time to time, but those stay.
"What's my purpose?" "You pass butter." -- Rick Sanchez
- Speech and Language Processing, Jurafsky & Martin
- K&R
- Sedgewick & Wayne, but more for teaching than anything else.
In a previous life:
- The C++ Standard Library, Nicolai Josuttis,
- C++ GUI Programming with Qt 4, Jasmin Blanchette and Mark Summerfield
- The C++ Programming Language, Bjarne Stroustrup
- Effective Java, Joshua Bloch
- Scott Meyers' Effective C++ books.
Apparently newer additions have been released as individual books (not as part of a set), and I’m sure you could snag a free pdf of a dictionary of quotations via libgen for a quick peek.
[0] https://m.ebay.com/itm/The-New-Websters-Library-of-Practical...
Had a bunch of books about electricity/electronics (google for 'best book about ...')
Also bitcoin got me to hear about Statistics:
- http://www-bcf.usc.edu/~gareth/ISL - https://web.stanford.edu/~hastie/Papers/ESLII.pdf
Lastly, Queinnec LiSP is never far from reach
1. The Art of the Metaobject Protocol (https://mitpress.mit.edu/books/art-metaobject-protocol)
2. The Art of Prolog (https://www.amazon.com/Art-Prolog-Second-Programming-Techniq...)
but haven't been able to find any other motivation to buy them. Also I have never printed the Common Lisp Quick Reference(http://clqr.boundp.org/clqr-a4-booklet-all.pdf) because I always imagine it having a really pretty cover, and everything I try just falls short.
I refer to my design books. My favorite of all time, is "The Nature and Art of Workmanship" by David Pye, given to me by a former woodturning mentor.
There are no physical books now on the desk but the table of contents of some of the older books remind me of what to google often enough
Outside of software I have:
- The Intelligent Investor by Benjamin Graham
- Zero to One: Notes on Startups, or How to Build the Future by Peter Thiel
- Screenplay: The Foundations of Screenwriting by Syd Field
- Critique of Pure Reason by Immanuel Kant
One book that I have been meaning to add next to Syd Field's Screenplay is Story: Style, Structure, Substance, and the Principles of Screenwriting by Robert McKee.
Most of my work is boring old enterprise apps in java, c# or c++; the GW-Basic manual is a relic from my first computer that I keep around for sentimental reasons. Numerical Recipes is referred to on occasion, as is the SQL pocket guide, the other two are good for taking a 5 minute break from things.
Scott Adams' [How to fail at Almost every thing and still win big]
Meditations by marcus arelius
It's often a better reference than the POSIX spec is.
[1] I got to read it because it used to be shipped for free with all HP-UX servers for some time, when I was working in an HP joint venture company.
by Donald G. Reinertsen
https://www.amazon.com/Principles-Product-Development-Flow-G...
Brewer, Ebenezer Cobham. Brewer's Dictionary of Phrase and Fable
Euclid, Elements of Geometry
Fuller, Buckminster. Operating Manual for Spaceship Earth
Greene, Robert. The 48 Laws of Power
Kernighan & Ritchie. The C Programming Language
The King James Bible
Polya, George. How to Solve It
For most of my life never really had an interest in working out but learning more about calisthenics and body weight fitness in general has really changed things for me in a positive way, and this book really shows how to progress without access to weights or a gym.
Getting to Yes by Roger Fisher and William Ury
ARRL Handbook for Radio Communications
ARRL Antenna Book
American Heritage Dictionary, 5th Ed.
Bible/Lectionary, Breviary, and Catechism
If fiction counts, I will probably never delete Flatland or the complete Joseph Conrad from my Kindle.
Coincidentally, I have The Undiscovered Self sitting on my desk at this moment.
Someone I know was "walked out" from the UK Ministry of Defence. He wasn't allowed to touch anything after being informed, but he was taken to his desk and asked what was his -- pictures of his children and so on.
(British employment law requires employers to give a notice period, but the employee doesn't have to be at work. This person would have then had three-six months "gardening leave" on full pay.)
Rudin, Real and Complex Analysis
Halmos, Finite Dimensional Vector Spaces
Billingsley, Probability and Measure
Kelley, General Topology
Lang, Undergraduate Algebra
Simmons, Introduction to Topology and Modern Analysis
Parthasarathy, Probability Measures on Metric Spaces
Whinston, Green and Mas-Colell, Microeconomic Theory
I have nothing programming related on my desk; we have Google to thanks for that.
~10 SQL Server/DW/BI books (not just on the desk but scattered everywhere)
https://medium.com/@_NicT_/recommended-further-reading-ae463...
-Sapiens : A brief history of humankind
-Zen pencils
- Book of Life - By J. Krishnamurti
- USB Complete 4th ed (Axelson)
- Electromagnetic Compatibility (Ott)
- Small Signal Audio Design (Self)
- Roget's 21st Century Thesaurus
- Verilog by Example (a.k.a. the Little Blue Book) (Readler)
- Mouser Catalog
But I do have an Ascii table and a DEC/HEX/OCT/BIN chart so that I can just glance up if I'm not feeling particularly quick.
or in some systems, the command 'ascii'
More seriously, I generally don't re-read books. One exception is The Cuckoo's Egg, which I reread every ~5 years.
I do too, others I like to reread "hackers" by Steven Levy and Showstopper by G. Pascal Zachary. I don't know why but I always find these books highly entertaining.
Glad I'm not alone.
The only negative is the biscuit recipe isn't very good.
- The C Programming Language (2nd edition) - Brian Kerningham / Denis Ritchie
- The C++ Programming Language (4th edition which discuss C++11) - Stroustrup
- Design Patterns Elements of Reusable Object-Oriented Software - GoF
- Effective C++, Effective Modern C++ - Scott Meyers
~ Specifications ~
- C99 draft spec, C++11 draft spec (too cheap to buy official copies!)
Nothing related to my day job in JS land, just fun reading material for my free time.
UNIX and Linux System Administration Handbook. I have an old version but it's also great material and excellent writing.
That's a great book. I've read parts of both the Unix and later Linux versions.
Edit: It also reminded me of the O'Reilly book Unix Power Tools - another classic. I had bought it early on and read almost the whole thing. Both it and the Handbook are quite thick, too.
[1] I think this is most likely situation but wasn't sure if more would answer this.
2. The Evolution of Cooperation: Revised Edition
3. The Ego Tunnel: The Science of the Mind and the Myth of the Self
(in backpack until I finish it). The Lucifer Effect: Understanding How Good People Turn Evil
I'm a junior in my first job and I've had these books in my personal library for a while now. Incredible helpful
There's also Clean Architecture, but I haven't read that one yet.
- Martin: Clean Code
- Martin: Clean Architecture
- Fowler: Refactoring
- Feathers: Working Effectively with legacy codeEvery now and then I open these at a random page and read.
It reminds me that life is suppose to be fun and not just about algorithm and technologies!
Domain-Driven Design: Tackling Complexity in the Heart of Software
The study and practice of personal information management.
Tufte's Visual Display of Quantitive Information.
Donald Norman's Design of Everyday Things.
Economics in One Lesson by Henry Hazlitt
Makes my life feel ephemeral and therefore more precious
- Procedural Generation in Game Design
- The Art of Halo 3
- PUBG + Cats
- Get Programming with F#
* The Intelligent Investor
* Malgudi Days
Also Functional Programming in C#.
I'm a bit of a Manning junkie