I am not an expert, but maybe because of that I believe that I can offer valuable advice to those who are totally new to functional programming (or feel that they are missing something), and want to get the core basics down cold without getting drowned in accidental complexity, do yourself a favor and start with edx's free moocs "How To Code" [1] [2], which are based on "How To Design Programs" [3]. After that, you will cruise through the recommended classics above.
If interested in why if you are an FP newbie said material is superior to SICP , read the pdf paper "The Structure and Interpretation of the Computer Science Curriculum" [4]
I would add Concepts, Techniques, and Models of Computer Programming. It's about programming paradigms in general, and helps in contextualizing functional programming in a broader context
This book is indeed mind blowing, and after reading it I find all those FP vs OO arguments sterile. As you say, this book makes you understand that it's all a trade-off.
In fact what this book does is advocate multiparadigm languages (actually the author dislikes the term paradigm, multiple programming models would be more acurate), and explains in great detail how to decide which to use when, and how to mix different paradigms (ehem, models) with the very powerful technique of impedance matching.
I cruised through most of it. But the last three chapters really twisted my brain (continuations, the Y combinator, and the metacircular interpreter). I was familiar with the concepts, but figuring out the programs by myself was a tough exercise (I haven't read SICP though).
Opening it on my phone, this paragraph on the available ebook formats very much made my day:
> A 386 can, in theory, run Linux, Emacs, and a Scheme interpreter simultaneously, but most 386s probably can’t also run both Netscape and the necessary X Window System without prematurely introducing budding young underfunded hackers to the concept of thrashing.
Trust me, it will :) The last few chapters on CPS and the Y combinator are roughly a vertical segment on an otherwise nearly horizontal learning curve.
I would also add "ML for the working programmer", which is, perhaps surprisingly, more about functional programming than the particularities of ML. In any case, it is a great book.
It is one of the only accessible texts on Standard ML, I'll give it that... But it goes neither deep nor wide in content. I did not find it very useful.
This is basically the soundman's bible. Sold for an aspiring live sound engineer, has much more than just advice for live sound guys - covering everything from microphones to acoustics to basic electronics to handy rules of thumb to MIDI, all written to be relentlessly pragmatic. It even has a handy appendix covering logarithms.
This isn't the book to give you the final "20%" of knowledge on anything it covers - but it will help you on your way to the first 80% a lot more quickly than most other writing on anything related to semi/pro audio, and pretty much every expert in the field is at least familiar with it, if they don't own a copy.
There seem to be plenty of people interested in music and audio around here, so hopefully someone finds the unusual reference useful.
Does it touch on mixing / mastering at all? I have a suspicion that some of my friends will be looking to me to put together some demos in the near future, so I'd be very interested in some beginner/intermediate knowledge around that.
I read an enormous amount on mixing/mastering and was still rubbish. It's hard to write about perception of sound.
I would recommend instead finding a well reputed mixing/mastering engineer who offers lessons and pay for some. Bring them your best mix (in the DAW on your laptop) ask them where it is wrong and how to improve it. Shouldn't take more than a couple of hours. In my case this cost around £100 (http://oood.net/mastering/about-stooodio-mastering) and helped enormously. My friends now think I'm great at "mastering" by which they mean mixing, I have nothing even approaching mastering engineer ears & I suspect Colin still wouldn't think much of my mixes either but that's why I'll happily pay him to master them if I ever have time for music again :)
I know there are online practical courses these days, in theory these could be better than a book as they would have audio/interactive examples. No idea if they actually are any good though.
Basically forget learning to master though. For your friend's demo, learn to do a reasonable mix then slap a limiter on the main output and boost the loudness as much as you can without losing quality.
Check out the Mixing Engineer's Handbook by Bobby Owsinski. This has been my de-facto go to for everything from acoustics, studio construction, mixing, mastering and more. Great read, and a wonderful reference to have at your desk.
I've never read OP's book, but Andy Farnell's Designing Sound has a pretty comprehensive look into physics and sound if that's what you're looking for.
If you want to know about how to build a simple computer, computer architecture, assembly language, assemblers, linkers, compilers, java, c, c++, how compilers are built, how compilers generate assembly language, how machine code are executed by the processor, how to implement a grep with regular expressions and much more. If you want to learn them fast, look for the books of this author[0]. I'm not affiliated with him. I learned many stuffs from his text books so I just like to share and recommend.
> Writing Interpreters and Compilers for the Raspberry Pi Using Python, CreateSpace Independent Publishing Platform, 2018
> If you want to learn how to write interpreters and compilers, and at the same time learn how Python, Python bytecode, assembly language, and dynamic typing work, this is the book for you. The only prerequisites are some experience with any programming language and a computer on which you can install Python 3 (or Python 2 if you prefer). A Raspberry Pi is not required. Included in the software package for the book is an interpreter that allows you to run ARM/Raspberry Pi assembly language programs on your Windows, Linux, or Mac OS X systems.
> If you have not yet learned Python or assembly language, so much the better. You will get the added bonus of learning Python and assembly language while you learn all about interpreters and compilers.
That sounds like a pretty sweet mix of skills to learn all at once, actually!
Funny, this book was considered not mathematically rigorous enough in my program but I agree, it is a bad idea to not be familiar with this book because the lingo the book uses (for example, sticky delta) is widely used in trading desks and one cannot afford to be unaware. For my program, Shreve's Stochastic Calculus for Finance (I & II) are the old & new testaments
Having used both Hull and Shreve in two different courses I'd say they're aimed at very different audiences. The course I took using Shreve didn't actually teach much about real world "options, futures, and other derivatives", but treated them more like abstract mathematical ideas and focused more on the mathematical theory used to model such contracts. While the course using Hull focused more on those contacts, not as abstract mathematical concepts, but as real things that actually exist and are actually traded by real people in the real world with all the messiness and uncertainty that can entail. Admittedly a large part of this was no doubt due to the Shreve based course being taught by the math department and the Hull based course being taught be economics department
While I on many levels preferred the Shreve based course, if I had to pick one for practitioners working day to day with this stuff (which I don't actually do, despite my degree), I'd definitely pick Hull.
Optional types and futures are both important and useful examples of monads—in the “container” and “action” interpretations, respectively; and derivatives are the method of constructing zippers, which are an accessible example of comonads, as well as a useful method of constructing other things like parsers, so these are actually pretty solid concepts for a functional programmer—whether in Haskell or otherwise. I would totally buy that book. :)
It is true that it is, but I always thought it was underserved. It’s not particularly clear or insightful and it is very academic.
On interest rates and yield curves, a book I would recommend is Sadr’s Interest Rates Swaps and their Derivatives [1]. Unfortunately it is a bit dated and a lot happened since it was written. But it is a very good book to understand interest rate models, which focuses more on the intuition and practical aspects and which I think is a lot more useful to a professional.
I studied engineering, applied maths and finance. I structured interest rate derivatives for a while. That’s the book I recommend to new joiners, even those without a stem background.
Algorithm Design Manual by Steven Skeina. CLRS has all the nitty-gritty but I didn't jive with it at all. Skeina won't tell you line-for-line how to balance a red-black tree, but it gets the idea across with clarity.
Also, the war stories are both interesting and useful. Not the book for everyone; most important is to pick one you enjoy reading.
I think Skiena + CLRS is a particularly fine combination. CLRS is dry and intimidating for all but the most theoretically inclined. Skiena is sloppy and handwavy. Put 'em together and you have something really excellent.
I found CLRS to be far too verbose for my liking. Skiena was as you said. My favourite is Sedgewick. More terse than CLRS; doesn't drone on and on and on.
Kotler's "Marketing Management" remains the most definitive text on the practice of marketing.
Many people - including some on HN - mistakenly equate marketing with only advertising or, more broadly, marketing communications. In truth that's only a small portion of the discipline.
I’m curious to know why you think it’s so good. I’ve studied marketing in the early 2000’s and Kotler’s Marketing Management was pretty much the only book we’ve read, but after college I didn’t feel I could apply much of its lessons to the companies I’ve built myself or the companies I’ve worked for. Most of Kotler’s material is based on how big traditional brands have done marketing, but that wasn’t helpful to me when I was working on early-stage tech startups.
Granted, I wasn’t the most dedicated student at the time, so maybe I just should read it again, but it would be helpful to know what you got out of it.
His framework for how to think about bringing a product to market is what I found most valuable.
What's the competitive environment? Who is the customer (in the most specific sense)? How will the product compete against other offerings? How is it priced relative to the competition? How do you talk about the product - i.e. communicate its value? How does one think about growing the market for the product?
These are questions any product or brand need to answer, regardless of size.
I'd argue that these fundamental questions are elaborated upon in most contemporary textbooks. In practice, however, young entrepreneurs creating business models around apps need to deal with a whole range of both general and specific issues that need to be addressed and Kotler is of limited use here.
This book lays the foundation - and I've worked with FMCGs, tech, media, pharma and I've yet to find an industry where Kotler's principles do not apply.
That's why a good marketer should be able to work within any industry - it's pretty much: product, price, promotion and placement. This has been reinvented, rebranded, and expanded - but in reality this is the ultimate reduction you can get your marketing to.
That would also be my criticism of Kotler and Keller. It's good to learn about the marketing lingo, but it doesn't teach you how to do something concrete at a professional level (create a marketing strategy, write persuasive copy, etc.).
Well it gives you the tools and frameworks to build your own strategy, that's why it's so great.
If you went to university to study marketing, like some of us did, strategy would be put to practice in classes dedicated to it, and all at to be supported - either by theory (like Kotler's) or by research.
Copyrighting is one tool of one of the marketing mix "P"'s - Promotion.
If you want to learn about copyrighting read Ogilvy - he was very good with communication and copy.
And you're completly right - self proclaimed marketers reduce marketing to tools of one of the areas of marketing like you said : Promotion/Communication .
SEO, PPC, Content Marketing, Influencer Marketing, Social Media Marketing... the list goes on... are just tools. They serve part of 1/4 of what marketing is broadly speaking.
Now I'm not saying those shouldn't be areas of expertise - they should! But a marketing manager should build/maintain a strategy taking into account everything - not just a specific part.
I believe that's bound to the people not to the practice.
If there's a need for a brand to lie then there's something wrong or missing - and that's not sustainable in the long run.
Plus, you shouldn't expose your brands to liability - for example that's why all big brands have their advertising communication evaluated by legal departments. It will not go live if legal doesn't approve it.
I'm currently reading Don Norman's book and I'd like to add that to me it seems to be a very worthwhile read for everyone who designs things that are used by humans. And by that, I explicitly also mean GUIs, APIs, IDEs, programming languages & DSLs...
The book is very focused on what makes good design good, and only provides examples as illustrations. It's really more about applied psychology than design per se (in fact, Norman states in the preface that the original title was "The psychology of everyday things").
Edit: As an example in Software Engineering: His formalization of how humans interact with things (form a plan to reach a goal -> interact with the thing to advance toward said goal -> evaluate the outcome, rinse repeat) and the potential error sources on the way (distractions, unclear consequences, unclear affordances...) make it obvious why in many functional languages, the REPL is such a great tool.
I couldn't agree more re: Norman's book. I wish it had been recommended to me as a linguistics undergrad. He provides such a clear explanation as to how design is a way of solving communication problems over making things look good.
I also run into "Norman doors" at least once a week and always smile when I remember the term.
Get you a man who can do both. Architects in particular seem rather high-falutin' until you read the understanding of their work. Aesthetics often means making something so beautiful that it harmonizes with the rest of how you live. Ugly things stand out and cause greater disunion in our lives.
Elements of Design by Gail Greet Hannah is also superlative, but much less procedural than Wong. Like other design books it's learned better when applied than read, in particular because Hannah takes after her mentor (Rowena Reed) and emphasizes a grammar for visual relationships. Reed's work on doing things at off-angles and ensuring that there always exists a dominant, subdominant and subordinate relationship in all dimensions of a work, are critical.
Despite the emphasis on terminology, there is no better book for the fundamentals of three-dee form out there, particularly since in the digital age there is a plenitude of resources for two-dee form. If you want to know why elite architects make the decisions they do for the shape of buildings beyond their function, here is a good start.
One nice thing about this list is that every recommendation must be accompanied by a few books not recommended. I think this request helps prevent well-meaning non-experts pollute the list with books from smaller reading pools.
To be more specific, each recommendation must be accompanied by at least two other books on the subject the contributor has read and reasons why they are recommending one over the others.
Thanks; been meaning to. I've not seen a good exposition of what benefit the DAG way of doing Causal Inference has over the Potential Outcomes Framework. Morgan and Winship (another good textbook) tries, but I didn't really buy it. I guess I have to hear it from the horse's mouth.
I'm about halfway through this book right now and learning a lot. Do you have any recommendations for follow up books or simply ways to put the lessons of the book in to practice?
I have to disagree with The Deep Learning book. I don't find it a good book for anyone. For beginners it's too advanced/theoretical and for experienced ML scientists it's entirely too basic. I very much agree with this review on Amazon [1].
For the former, I would recommend Hands-On Learning with Scikit-Learn and Tensorflow
+1 for Elements. I started with Introduction to Statistical Learning and then graduated to Elements as I learned more and grew more confident. Those are fantastic books.
As an engineer who hadn't studied that type of math in quite a while, Elements was pretty tough and I was getting stuck a lot.
ISLR introduces you to many of the same topics in a less rigorous way. Once I was familiar with the topics and had worked through the exercises, Elements became much easier to learn from.
If you reading Elements is difficult then I would recommend Introduction.
I'm not sure if reading Introduction will prepare you for Elements so much as it will just give you some knowledge you can use and see if it makes sense for you and what you want to do to go and (re)learn some of the math tidbits that you need for Elements.
Frank Harrell writes a lot of great stuff and his answers on the Cross Validated Stack Exchange site are worth just reading even if you didn't think you wanted to ask the question they reply to.
People seem to love this textbook - and understandably so because it's very approachable. But I really struggled with how informal the tone was, and how friendly it was. Perhaps I'd grown too accustomed to the typical theorem -> proof -> example -> problem set format.
I acquired Pbrt in order to learn the basics of computer graphics rendering in a practical way. However, I struggle even with the most basic things (math mostly).
Do you happen to know of any resource that provides a good mathematical foundation directed at computer graphics?
(The title of the post must be changed to something more neutral because by answering the poster self declares that they are an expert, which not only seems unlikely of most people, but also makes ones such as yours truly withhold from answering due to the connotations, and requires prefaces of this kind to address their apprehensions.)
Software Engineering
About C++: The Design and Evolution of C++ and The C++ Programming Language, both by Bjarne Stroustrup, the creator of C++. The first one is a snapshot of his philosophy during early years of C++ and is useful to understand the motivations etc. It provides insight. The second one, after the necessary introduction to the language, shows how he uses C++, or expects to be used, which is interesting in its own way.
About algorithms: Algorithm Design by Kleinberg and Tardos. This gives the much needed insight instead of maths equations, data structure implementations or a catalog of what to apply where, which are all good, but are useless without insight.
Mechanical Engineering (ME is a large field, and I will limit to these two books.)
Stephen Timoshenko's two volume Strength of Materials is a seminal work, and still relevant, on a topic that is at the core of mechanical and civil engineering.
Shigley's Mechanical Engineering Design deals with designing machine parts, which is in a sense an applied strength of materials topic, and the book addresses that part quite effectively, though not as comprehensively as Timoshenko's. More importantly, the book gives enough motivation and insight for the design process, without which engineers would just be "design monkeys" that use latest CAE packages.
This is the book that introduced me to the wonderful world of algorithms, and I love it. The introduction chapter was a revelation and nothing like I had read before. I didn't understand everything in the first read but it made me to want to. The book is more accessible and practical than Knuth and CLRS, and more thorough than Skiena and such. Everything about this book is beautiful, not the least of which is the visualization of sort algorithms. There is also abundant tree related topics, which is quite refreshing and useful, in hindsight, because trees, other than balanced binary ones, are generally ignored in most books where graph steals the limelight.
There are two volumes that make this book, first having Parts 1 to 4, dealing with fundamentals, DS, sort and search, and the second, Part 5, dealing exclusively with graphs. I have only the first one and the opinion is based on that. There is a newer Java version, which includes the graph topics, and is about 250 pages longer than the first volume. However, based on the preview, it seems almost first 120 pages are dedicated to the Java language and OOP, unlike the C++ version which starts directly with the subject, so not sure how much of the contents are removed to make room, and how the quality differs.
Kleinberg and Tardos is also friendly, informal, insightful, and even heuristic to an extent, but opposite of the others, so IMO its much better and very different than Skiena's, though it isn't a quick read before an exam or an interview sort of a book, which is what Skiena's can be described as. Browse K&T to see what I mean.
Image Processing: "Digital Image Processing", Gonzalez and Woods. Comprehensive coverage of principles, well written, practical w/ useful examples yet well grounded in signal processing and engineering principles. Complemented nicely by a version of the book rich in examples solved in MATLAB (co-author Steve Eddins).
I can only second this. Gonzalez & Woods presents a very good overview of the material in a highly practical and understandable way. Each section contains tons of references into the more specific literature that you can follow as soon as you reached the books limits. Finally, it is a pleasure to read if you are interested in image processing and it keeps you hooked.
If you want a smaller and cheaper book on computer vision, I recommend Concise Computer Vision (Klette, Springer).
It's remarkably complete for its size. The level of detail is just enough that you can refresh or understand a topic, without drowning you in equations. The referencing could be better, but the main papers are called out.
For signals (as opposed to images), you should have a look at "Understanding Digital Signal Processing" by Richard G. Lyons (ISBN-13: 978-0131089891). I enjoyed this very much and if you grasped the contents from it, you should be able to understand audio-specific books easily.
I second Lyons. In addition, "Digital Signal Processing: A Practical Guide" by Steven Smith is also quite approachable -- immersion in calculus not required.
"A Digital Signal Processing Primer" by Ken Steiglitz is a nice but rigorous intro to the subject. Written by an EE academic, it's more mathematically rigorous than Smith or Lyons.
Allen Downey's "Think DSP" is also worth a look, though its focus is more conceptual than practical, IMO.
In cultural anthropology: Small Places, Large Issues by Thomas Eriksen. It’s impressive how comprehensive, to the point and organized it is.
CA is a tough discipline to understand in my experience; the endless nuance and relativism is hard to hold in your mind and not get lost in ‘vagueness’. This is a great read to understand the field a lot better. It’s used in introductory classes at least all over Europe.
Marveled to stumble upon a fellow cultural anthropologist over here :)
HN is an amazing platform...
Just wondering how an anthropologist end up in the AI field...?
If you want to learn basics of Integrated electronics devices and circuits - I personally recommend 'Electronic Devices and circuits / Integrated Electronics by J. Millman and C. Halkias (This is actually a textbook)
In case you want to learn Engineering Electromagnetics, great textbook by William Hayt and John Buck
Haven't yet read any other awesome basic textbook on 'Computer Networks' like the one by Andrew S. Tanenbaum
'Digital Signal Processing' by Oppenheim and Schafer
Although these are not textbooks but among other good reads are 'Crossing the Chasm' by Geoffrey Moore, 'The Innovators Dilema' by C. M. Christensen, give amazing insights.
I disagree about Millman and Halkias. The content in that book is from 1970s. Better books to learn about Semiconductor devices are
1. Device Electronics for integrated circuits by Muller and Kamins
2. Solid State Devices by Ben. G Streetman and Sanjay Banerjee
Millman Halkias is a staple in Indian universities but its high time it is replaced.
That's interesting. We used Horowitz and Hill as an undergrad and although I didn't continue on the EE track I was under the impression it was the "standard" textbook for introductory electronics. It may be more elementary than the ones you mention. Any thoughts on that text?
The Art of Electronics. My field is experimental physics so this introductory textbook is often the starting point for our designs for photodetectors, power supplies, amplifiers and the like. I'm excitedly waiting for the X Chapters follow-up to the third edition.
I am also waiting for the X Chapters. I emailed Horowitz a couple months ago and he said the x chapters were coming "soon". But they also said the third edition was coming soon for 20 years before it was published so who knows.
As a chemical engineer (many of these go beyond the undergraduate level):
1) The principles of chemical equilibrium, by Kenneth George Denbigh
2) Mass Transfer by Sherwood
3) Process Dynamics, Modeling, and Control by Babatunde Ogunnaike and W. Harmon Ray
4) Chemical Process Industries by Shreeves
5) An Introduction to Numerical Methods and Analysis by James F. Epperson
6) Optimization: Theory and Practice by Gordon S.G. Beveridge and Robert S. Schechter
7) Unit Operations by Maccabe and Smith
8) Advanced transport phenomena by John Charles Slattery
Admittedly these are not the best known of books (eg. Sherwoods Mass Transfer is almost out of print, in favor of Treybal) but I these are my favorites.
Perry's is a good reference book, but certainly not appropriate for research work or conceptual understanding. It is invaluable for people int the chemical industry though, and it serves as a great introduction to the many subjects which chemical engineers deal with. I used to browse it in my UG days..
I am looking for a good, interesting and easy to understand book on Chemistry for beginners. What textbook do you recommend which covers both organic and inorganic?
Not really a textbook, but the National Confidential Inquiry into Suicide and Homicide by MH Patients releases an annual report which is very good: https://sites.manchester.ac.uk/ncish/
I would also add "The Psychedelic Explorer's Guide: Safe, Therapeutic, and Sacred Journeys" by James Fadiman as an excellent guide for sitters, and a list of protocols for work with psychedelics.
Jean Tirole's "The Theory of Industrial Organization" (1988) was the first cohesive text on game theory, modern industrial organization, and applied microeconomics, and I believe it remains the best advanced-undergraduate-level/early graduate text that I'm aware of in microeconomic theory.
Along those lines, I'd nominate "The Structure of American Industry" by James Brock (now in its 13th edition) for a seminal text on industrial dynamics that focuses on case studies and analysis.
I'd also recommend The science of good cooking by Guy Crosby. I found it to be a more enjoyable read than McGee's. Not as technical which was a boon for me since as a home cook there's a lot more information that can be readily skipped.
For learning to cook: The Professional Chef by the Culinary Institute of America is a great book to learn from. All the recipes will need to be scaled down for home usage which is a bit of a nuisance though.
For the home cook, Essentials Of Cooking, The Elements Of Cooking, or How To Cook Everything: The Basics, are all excellent too. I couldn't decide which was the best, so I listed them all!
For Flavours: The Flavor Bible gives an easy way to look up an ingredient, and see what else would go well with it. Great for creating your own dishes!
The Flavor Thesaurus gives in-depth information about combinations of ingredients, why they work, and how best to use them.
Also recommend the Field guide to herbs and spices which gives more general information about each spice/herb than the Thesaurus. They pair well together.
The Magic Of Spice Blends is a great recipe book of various spice blends, and information about them, along with showing you how to formulate your own concoctions.
Pastries and baking: The Professional Pastry Chef: Fundamentals of Baking and Pastry by Bo Friesberg or Baking And Pastry: Mastering The Art And Craft from The Culinary Institute of America. Either or.
Confections: Chocolates and Confections by Peter Greweling.
Bread: Either Jeffrey Hamelman Bread: A Baker's book of techniques and recipes or Peter Reinhart The Bread Baker's Apprentice.
Reference:
Dictionary Of Flavors. Literally a Dictionary of anything culinary related. Useful on those rare occasions.
McGee has a very methodical way of discussing food. It is basically like a scientific textbook in that regard, with deeper dives into almost every topic. It is also incredibly information dense, which makes it a truly a 'bible' in my opinion. And for what it is worth, many other of the more methodical chefs on the internet think so too.
I can also recommend Modernist Cuisine, which is a sort of text book version of On Food and Cooking. Though it has a lot of industrial equipment and ingredients that aren't applicable to home cooks, it has excellent photos and diagrams that illustrate the cooking process from a biological and physical level. (Modernist Cuisine at Home isn't nearly as comprehensive, though it shirks a lot of the weird/expensive equipment and additives.)
Also Modernist Bread for breads is fantastic and comprehensive.
It very comprehensive, having a section on every category of food (Dairy, eggs, meat, edible plants, fruit, etc.), the chemistry involved in cooking or preparing said foodstuff, tables of information.
There is a lot of lore behind cooking, people don't always know why they do particular steps in a recipe, that's just how they were taught. It's nice to break down the fundamentals and tweak recipes with that better understanding.
For example, understanding what an emulsion is you can have a better understanding on why hollandaise sauce or mayonnaise breaks, also what acids one can replace when you don't have what a recipe calls for.
Cooking is a practice that I do several times a day, knowing the chemistry behind what I'm doing allows me more flexibility in the tools I use and the process I take.
Intriguing question, you never really think about it after you've read the books, do you?
So here you go:
The Innovators Dilema, C. M. Christensen. Just because , not really domain relevant for me but tons of interessting stuff and insights
Introduction to Materials Management, Arnold, Chapman, Clive. Covering the basics of Supply Chain Management. And I have yet to encounter a situation where the basics don't matter.
Designing and Managing the Supply Chain, Simchi-Levi, D., Simchi-Levi E., Kaminsky P.. Not just the basics of supply chain management, in essence what Amazon is doing in that regard. I have an older edition from 2005 that was just as relevant druing my Masters in 2018 as was back then, but maybe a newer edition doesn't hurt.
Logistics Engineering and Management, Blanchard. The book adding a systems engineering perspective to the above mentioned ones. A little bit weak on the actual logistics and supply chain part, which makes it even more powerfull in combination with the ones mentioned earlier. I can only recommend it for everyone working with complex long-life systems, e.g. ships, planes, industrial equipments,...
Can anyone recommend a book that you would use as the guide for building a new software project from scratch? Like something that would provide good overall structural approach and best practices. The goal would be to end with as least amount of tech debt and codebase flexible enough to stand the test of time?
After probably more than 10 years postponing to find what HTDP (how to design programs) is all about I'm now convinced that everyone should go through that book (or an online course) and apply the newly found knowledge in real life.
See the edx links in one of the threads above. Take the course; Actually DO what Gregor repeatedly says in videos and you'll find what you missed.
I do like: Clean Architecture[0], its pretty much language agnostic and has some nice examples on overall structural decision making -- from small to large projects.
>> The goal would be to end with as least amount of tech debt and codebase flexible enough to stand the test of time?
I am not sure if it is possible, to have a comprehensive book with this goal in mind. It very much depends on the project size, the dependencies and your language / framework -- and even if you have that in order, there are your teammates, the process, continuous integration, milestones/deadlines and the general workflow you have to take into consideration.
Depends, what kind of application are you trying to build? What programming language?
I wrote my book Professional PHP [0] as a guide like that, but of course it's heavily skewed towards building a PHP webapp (even though most of it is also applicable to other OOP languages).
But to be honest, I wouldn't try to narrow it down to a single book. Start with the classics like clean code, code complete 2, pragmatic programmer and then work yourself towards effective java, implementing domain driven design etc. I have a list of my recommendations published here [1].
In my opinion no book will really teach you this, only experience. It requires going through cycles of design, implementation and subsequent evaluation of how well those fared and how to improve upon them. After repeatedly going through this experience in a mindful manner you will develop a gut feel for what's good and what's suspect.
Thanks for the recommendation, ordered. Hartley is very valuable to know how we got to where we are, from hand tuned features and RANSAC to more modern full photometric optimization and ML. It answers a lot of "why don't we just... " type questions while still providing the foundations.
Wrobel and Förstner is definitely a different style, to some degrees the two books complement each other. But it focuses much more on the stats side and gaining an intuitive understanding, which to me is really important, and if I wanted RANSAC the algorithms in Hartley are out of date anyways.
For numerical optimization, a couple good textbooks are:
- "Practical Optimization" by P. E. Gill, W. Murray and M. H. Wright: a little old (1982), but provides a solid foundation
- "Convex Optimization" by S. Boyd and L. Vandenberghe: the standard for learning convex optimization (also available as a free PDF from the author's website)
- "Convex Analysis and Monotone Operator Theory in Hilbert Spaces" by H. H. Bauschke and P. L. Combettes: covers a more specialized area of numerical optimization, but the notation is beautiful (IMO) and it acts as a useful reference for recent research on, e.g., operator splitting methods
Nonconvex optimization doesn't have the same depth of theoretical underpinnings or canonical body of knowledge as convex optimization so I don't imagine there's a textbook on it that would be authoritative. In the universe of optimization, convex optimization is a special case (linear optimization in turn is a special case of convex); non-convex optimization is everything else!
It's kind of like convex optimization is English, and nonconvex optimization is non-English. I'm not sure it's possible to write a text on non-English.
That doesn't non-convex optimization problems are unsolvable, merely that there are many different attacks that aren't necessarily coherently linked. A few common ones include:
a) convex reformulation, where possible.
b) partitioning into convex regions (used in global optimization)
c) heuristic/evolutionary approaches
d) specialized approaches for particular problem structures like integer programs, complementarity problems etc. (there are good textbooks for these)
There are a few good surveys of the landscape however. Most are journal pubs. This text [1] seems to be a good one.
It covers the basics of modeling and verifying concurrent systems against linear-time and branching-time properties. It also mentions timed automata, but those more interested in verifying real-time systems should probably check out another good introductory textbook:
Reactive Systems (Aceto, Ingólfsdóttir, Larsen, Srba)
Bozzola and Russell,
Electron Microscopy, 2nd Edition, published in 1998.
Although 20 years old in a field undergoing a revolution, the authors' method of connecting the theoretical to the (once physical, now touch screen) knobs on the instrument make it probably the best technical manual I've ever read. It's for biological EM, but the introductory chapters on the instruments are for everyone.
Transmission Electron Microscopy, materials, including high resolution, for more advanced users:
Williams and Carter, their 4 volume set, Transmission Electron Microscopy.
Photography?
Christopher James, The Book of Alternative Photographic Processes.
A couple I've learned from (I've left out heavily topic-specific books like Cryptography Engineering since I assume you're asking for books about general information security):
Hacking, 2nd Edition - Introduces the foundations of memory and network exploitation
Introduction to Graph Theory by Douglas West. If you're taking a first course in graph theory, this is where you should start. There is more than enough material here for 3 semesters, and, should you finish it all, you will certainly know more than the average grad student. The only disadvantage of this book is that it's getting old. I've asked Doug when there was a new edition coming out and not gotten much of a response, so don't hold your breath. This is a solid intro to the entire field.
Topological graph theory:
Graphs, Groups, and Surfaces by Arthur T. White. Dr. White is one of the leading experts in this subfield. His previous book, Graphs of Groups on Surfaces is also recommended, if a bit pricey. Obscure and OOP mathematical monographs tend to run that way though, so, I suspect if you're interested in this book, that's not much of a problem to you.
This book is the standard textbook in topological graph theory. As I recall, the topology prerequisites are fairly minimal. For algebra, you want some basic familiarity with groups, but I don't recall anything to heavy hitting being used here. One of the main results is an outline of the proof of the Haywood map coloring theorem, which establishes the chromatic number of all orientable and non-orientable surfaces except the sphere/plane.
Not a big list, and I've got a lot of textbooks. Knuth's writing style is difficult, its the hardest read I've ever had. But Knuth hits you with the hardest examples as soon as possible, making it very "efficient" reading.
Algorithm Design is clear, concise, and practical.
Art of Electronics is one of the few books that realizes that actual chips and actual specifications are important to electronics designs. It has the unfortunate effect of going obsolete as new chips come out, but its one of the few books that digs into specification sheets and tells you what's important and how to read them.
Agner Fog's microarchitecture was more specific, up-to-date, and understandable if you read it from beginning to end. Agner Fog has a little trick: he starts with the Intel Pentium, and then describes how features were added every generation. (Branch Predicction, Pipelines, out of order, etc. etc)
In ultrafast electron microscopy and material science:
- Transmission Electron Microscopy and Diffractometry of materials by Fultz and Howe
Great reference textbook on how electron microscopes are constructed, as well as general diffraction.
- Advanced Computing in Electron Microscopy by Kirkland
A comprehensive explanation of how to simulate electron diffraction patterns and electron microscopy images. Very clear explanation of the Multislice algorithm, which is actually more general than is presented in this book.
It's like a collection of all the game programming stuff they didn't teach me at school, nor at my non-game jobs. Whether you're writing an engine or just using one, I consider this book absolutely vital.
It looks like there are several versions of this book. Would you recommend the 3rd edition of this book, or could I get away with an older one and buy it used?
A word of caution: This textbook can get pretty bogged down sometimes because it serves double-duty as a Coq tutorial. (It has to, because the book is literally a Coq script, using formal theorems w/ proofs as examples and formal theorems w/o proofs as exercises.) In my opinion, the material doesn't really take off until vol 2.
However, I don't want to disparage the tutorial nature too much, because learning to "think in Coq" has dramatically changed the way I reason about even traditional pencil and paper proofs, for the better.
> However, I don't want to disparage the tutorial nature too much, because learning to "think in Coq" has dramatically changed the way I reason about even traditional pencil and paper proofs, for the better.
That sounds intriguing, but I wonder if being more rigorous also means being much slower in completing proofs and if practicality is lost (?)
Feynman, Leighton, and Sands - The Feynman Lectures: I always look here for a good intuitive explanation.
A. Zee - Quantum Field Theory in a Nutshell: this is so approachable and in the path integral formulation of QFT. Anyone who points you towards Peskin and Schroeder wants you to suffer.
Gattringer and Lang - Quantum Chromodynamics on the Lattice: essential reading for anyone learning lattice QCD.
Do you think the DevOps Handbook would be useful for a working programmer in a small startup without any sysadmin? By reading the descriptions I was under the impression that it's very high level and more geared towards big organizations.
When looking for the best Perl book, I liked "Programming Perl" by Larry Wall, Tom Christiansen and Jon Orwant better. Just a fantastic book that is both fun to read and authorative yet still suitable for learning Perl from scratch (for certain readers).
It's one of those books that if you read it after 10 years of industry experience it will probably be dull and obvious, but it gives novices a toolbox for solving problems.
Some books on Semiconductor Devices. Not in any particular order
1. Physics of semiconductor devices by S. M Sze, Kwok K Ng
2. Modern VLSI Devices by Taur and Ning
3. Device electronics for integrated circuits by Muller and Kamins
4. Solid state Devices by Ben. Streetman
5. Advanced Semiconductor Fundamentals by Robert F Pierret
Robbins & Cotran pathology books. There are three versions of the same text textbook ranging from a massive, detailed tome to pocket reference book. We refer to them as "big-," "medium-," and "little-Robbins." I have all three, but "medium Robbins" is my favorite.
Global Shift by Peter Dicken.
...Mind expanding....
Widely adopted throughout the world, this definitive text comprehensively examines how the global economy works and its effects on people and places. Peter Dicken provides a balanced yet critical analysis of globalization processes and debates.
Could someone suggest a good book on Geometry beyond what is taught in high school? I find co-ordinate geometry to be more algebraic than geometric and miss knowing the interesting properties of curves and shapes and bodies.
The first one if you want a bridge to modern geometry from common university math. The second if you want to start from abstract foundations at the early-undergraduate level.
I asked my father (retired math professor) and he responded
"I am not sure what book to suggest. But if your friend wants to get away from the algebra of coordinate geometry maybe a book on geometric constructions.—How to do things with a ruler and compass."
+1, this is a good one. It was the textbook for one of my grad school classes and I frequently referenced it during my postdoc.
I usually suggest getting older editions of textbooks to save money, but this is one textbook where I bet you want the latest edition, because the field has been changing fast enough that there's probably some incorrect/missing information in a copy that was published even five or ten years ago. [ Edit to note: actually it looks like the latest edition was published in 2010, so it's probably quite out of date by now. :( ]
For undergraduate mathematics (semi-opinionated, not exhaustive):
Calculus: Apostol and Spivak, take your pick
Linear Algebra: Valenza
Abstract Algebra: Artin
Multivariate Calculus:
- Vector Calculus, Linear Algebra, and Differential Forms by the Hubbards
- Calculus on Manifolds by Spivak
For other fields and classes I am not recommending a book because either (1) I don't think there is a clear winner, e.g. as in the case of Real Analysis, or (2) I'm not familiar enough with the books in that field.
If you have other recommendations, please add them! These books changed my life in the best of ways.
For Networking in the ISP space, for me the most helpful have been:
- Interdomain Multicast Routing: Practical Juniper Networks and Cisco Systems Solutions
- Inside Cisco IOS Software Architecture
- MPLS-Enabled Applications: Emerging Developments and New Technologies
This one's not a textbook but proved invaluable to me in learning optical networking:
- New and Updated - Everything You Always Wanted to Know About Optical Networking - https://www.youtube.com/watch?v=__wn9zXFiy8
The former, I am looking for a read about why we go on visual management, the good practices, the does and don'ts, etc.
So it is more a HR approach than a data one.
My favorite books contain vividly detailed descriptions of primate biology but unfortunately, none of them are safe for work.
I would also like to know if there is a good book that covers primate biology. I had no idea it was possible to write a _good_ book about an entire order of creatures.
An Introduction to Modern Astrophysics by Carroll & Ostlie is the Bible, but it is quite large physically and in scope and better serves as a reference for most people.
For various topics, I would look at:
Introduction to Cosmology by Ryden for cosmology at the undergraduate level.
Cosmology by Weinberg.
The Exoplanet Handbook by Perryman.
An Introduction to Modern Stellar Astrophysics by Carroll & Ostlie.
Particle Astrophysics by Perkins.
Modern Statistical Methods for Astronomy by Feigelson.
Statistics, Data Mining, and Machine Learning in Astronomy by Ivezic.
I can post more in other topics if anyone is interested.
Introduction to Functional Analysis, R. Meise and D. Vogt.
Despite the name, that's nowhere near just an introduction, especially Part III.
Classical and Multilinear Harmonic Analysis, C. Muscalu and W. Schlag.
After reading the two volumes you will have a huge base of knowledge. The books can get quite advanced as well, containing previously unpublished results when being first printed.
Does anyone have any good recommendations for industrial electronics design? Like a PLC digital/analog input/output module, protecting industrial inputs, etc? I've searched quite a bit, but I've never found enough good advice in one blog or book.
For general graduate-level mathematics, from a category-theoretic point of view: _Mathematical Physics_ by Robert Geroch. Tons of hand drawings and informal motivation.
Microwave Engineering by David M. Pozar - surely not for beginners, but worth the effort for those interested in high fequency transmissions and EM propagation
Not just piano, when I was learning finger-style/classical guitar, and teachers I know in Jazz, we look to J.S Bach's Well Tempered Clavier just to learn about music. Some of it can be demanding in technique as you work through, but even the simpler lines are delightful, they teach you some lovely and memorable things about patterns, relationships, and harmonic structures in any kind of music we hear today.
Some of the best textbooks in statistics and machine learning:
Applied
-------
Hosmer et al., Applied Logistic Regression. An exhaustive guide to the perils and pitfalls of logistic regression. Logistic regression is the power tool of interpretable statistical models, but if you don't understand it, it will take your foot off (concretely, your inferences will be wrong and your peers will laugh at you.) This book is essential. Graduate level, or perhaps advanced undergraduate, intended for STEM and social science grad students.
Peter Christen's Data Matching. Record Linkage is a relatively niche concept, so Christen's book has no right to be as good as it is. But it covers every relevant topic in a clear, even-handed way. If you are working on a record linkage system, then there's nothing in this book you can afford not to know. Undergraduate level, but intended for industry practitioners.
Max Kuhn's Applied Predictive Modeling. Even if you don't use R, this is an incredibly good introduction to how predictive modeling is done in practice. Early undergraduate level.
The Elements of Statistical Learning. Probably the single most respected book in machine learning. Exhaustive and essential. Advanced undergraduate level.
Taboga's Lectures on Probability Theory and Mathematical Statistics. Has the distinction of being available for free in web-friendly format at https://www.statlect.com/ . Undergraduate level for math majors.
The Swiss Watch repairer's manual, by Jendritzki (This book is great, but don't pay more than $75. After Fried's book it pulls in all the information nicely.)
Bulova Repair Training Manual
Chicago school of watchmaking (There's no copyright on this course. A guy on EBay has been scaring people for years. He does not own the copyright.)
Bestfit encyclopedia of Watch Parts 1 & 2
The clock and watch makers guide to gear making
George Daniels Watchmaking
I'll be writing my own book in the future. It will be a modern take on the repair of mechanical watches. It will have a lot of pictures. It will be direct, and to the point.
If you are interested in watch repair; I would do it as a hobby. I couldn't imagine making a good living repairing watches.
The bigger watch brands do not want to sell spare parts. That just might change in the future? Right now, it looks dim. Rolex, and the Swatch Group basically want to dictate whom, and where you can elect to get your watch repaired. Most times it the factory, at factory prices.
If you get into watch repair throughly, your appreciation of watches might change. When there's no mystery, there's no magic, I guess?
Hey, it looks like you've been shadowbanned since around september 2016. A skim through shows one or two comments that have been vouched for (as I did with this one), and a lot of 'reasonable' comments that haven't.
I'm not sure what to say, because a fair amount of your comments didn't really seem worthy of a shadowban, so I assume that you cleaned up your behaviour, but alas too late. You might wish to email an appeal to the moderators to sort it out.
[0] The Structure and Interpretation of Computer Programs
[1] The_Little_Schemer
[2] Programming in Haskell - Graham Hutton
[3] Types and Programming Languages-Benjamin C. Pierce
--- PDFS
[0](https://github.com/allenleein/brains/blob/master/Zen-of-Func...)
[1](https://github.com/allenleein/brains/blob/master/Zen-of-Func...)
[2](https://github.com/allenleein/brains/blob/master/Zen-of-Func...)
[3](https://github.com/allenleein/brains/blob/master/Zen-of-Func...)