For me, it was Stanford's EE261 course that made Fourier Transform click for me. Here is the link: https://see.stanford.edu/course/ee261
Similarly for deep learning it was fast.ai courses.
For programming it was How to Design Programs at www.htdp.org.
Your topic of choice may be anything, not necessarily CS.
* Philip Roberts's What the heck is the event loop anyway? - https://www.youtube.com/watch?v=8aGhZQkoFbQ
* The Story of Asynchronous JavaScript - https://www.youtube.com/watch?v=rivBfgaEyWQ
* JavaScript Callbacks, Promises, and Async / Await Explained - https://www.youtube.com/watch?v=JRNToFh3hxU
* Async Javascript Tutorial For Beginners (Callbacks, Promises, Async Await). - https://www.youtube.com/watch?v=_8gHHBlbziw
* Jake Archibald: In The Loop - setTimeout, micro tasks, requestAnimationFrame, requestIdleCallback, - https://www.youtube.com/watch?v=cCOL7MC4Pl0
Edit... I've been rewatching these videos, reading the MDN docs, the Eloquent JavaScript book, javascript.info, blogs about the subject, etc. This further proves you shouldn't limit yourself to a single resource, and instead fill up the laguna with water from different sources if you will.
Also, timbuktu manuscripts - showed a history that I had never really heard of. These are written manuscripts of african scholars which are hundreds of years old, and still exist today. Some record the history of great west african civilizations along with other things they studied (e.g. science, religion, math, literature, ect). I was never taught this history even existed but yet was made to learn the various details about asian, european, middle eastern, central/south american history. This, and the attempts to destroy/steal these manuscripts at various points in history, made it click how serious power of controlling information, and ultimately influencing beliefs can be, with respect to giving legitimacy to the various rulers/authorities. Beliefs/perceptions matter quite a lot. This 1hr lecture is quite good: https://m.youtube.com/watch?v=lQiqyyRfL2Y&t=16s
Behavioral biology class from Dr. Sapolsky (Sanford) - explains a lot of why we behave the way we do, from different biological perspectives https://m.youtube.com/playlist?list=PLqeYp3nxIYpF7dW7qK8OvLs...
What it taught me is that effective organizations invest heavily in training newcomers how to do their jobs / processes. I see this everywhere; when I walk into a business and something's "just off," it's almost always because management is dropping the ball on training newcomers how to do their jobs.
In my specific case, I was having trouble getting good bug reports, and my teammates were struggling with poorly written tickets. I had to take the time to explain what the process was for handing off work from QA to developers. Things moved much more smoothly after that. (IE, I had to explain that all tickets needed steps to reproduce, except in very specific circumstances.)
https://www.amazon.com/Myth-Revisited-Small-Businesses-About...
I was a rather humble support guy for COBOL applications, so I had to learn COBOL, which I did.
I was sent by my manager for a one-off, three-day "advanced COBOL" course.
It wasn't about advanced COBOL; it was an advanced course on the seven-pass Burroughs COBOL compiler. Memory was short in those days, hence the seven passes; intermediate results were files on disk. We learned that by nulling the executable for a chosen pass, we could hack the intermediate files, to do things COBOL programs weren't supposed to do, like calling OS functions.
I learned how parsers work, and how parse trees are represented. I learned about intermediate code, optimisers, interpreters, and code generators. I got interested in compilers, and wrote a source-level debugger. It was just a three-day course, but it was incredibly valuable to me. Perhaps life-changing.
Perhaps it's not so much that that course made something click that wasn't clicking for me; rather, it inspired an interest in me that simply wasn't there before.
As I said this was a one-off course. There was about seven of us, and I don't believe anyone else ever received that training.
https://www.udacity.com/course/design-of-computer-programs--...
2. Crafting Interpreters by Robert Nystrom is of similar quality. There are a lot of 'oh that's how that works' moments in this book.
https://craftinginterpreters.com/
3. Doyle Brunson's Super System 2 is of a similar nature, but for poker. It's outdated these days because the nature of the game has changed so much due to the internet and a shift in meta strategy, but it's really insightful in understanding the human aspects of the game. His perspective as a 'gambler' rather than poker player is also unique, because he talks a lot about prop bets and identifying when you have an edge in a bet.
4. Stephen King's "On Writing" is a masterpiece of a memoir of a man and his craft. My own writing improved significantly as a result of this book.
Personal time/task management- The classic, Getting Things Done(https://www.amazon.com/Getting-Things-Done-Stress-Free-Produ...). The power this has on people cannot be understated. Turns out that most of how life is conducted is rife with forgetfulness, decision paralysis, prioritization mistakes, and massive motivation issues. This book gives you specific workflows to cut through these in a magical way.
Personal Knowledge Management- The equally classic, How to Take Smart Notes(https://www.amazon.com/How-Take-Smart-Notes-Technique/dp/398...). Where GTD(above) does this for well-defined tasks/work, this book does it for open-ended work, giving you an amazing workflow for introducing "Thinking by Writing", which is frankly a superpower. This lets you see things your friends/colleagues simply won't, lets you deconstruct your feelings better, learn new/deeper subjects faster, and connect thoughts in a way to produce real insight.
For Product/Business Management, Gojko Adzic's "Impact Mapping"(https://www.amazon.com/Impact-Mapping-software-products-proj...) feels like it could make nearly every software team/business 10x better by just reading this book. I've personally watched as enormous portions of my life were spent on things that barely moved the needle for companies, or merely didn't keep the metric from rising. So many projects taken on faith that if you work on X, X will improve, without ever measuring, or asking if you could have accomplished that with less. The world looks insane afterward.
This was "optional" reading in my Undergrad Calculus class at Brown, I probably was the only student who bothered to read it, and it made most of engineering a breeze for the next 3.5 years, whether electromagnetism, fluid dynamics, etc.
LinAlg was the only maths course I needed in my interdisciplinary study program. I had struggled to grasp maths in high school, but these lectures really made it click for me and I passed my university's class with a B+.
"The Seven Principles for Making Marriage Work" by John Gottman was a book that I read after we'd separated that first started to make sense of the dynamics of my first marriage, and what caused it to spiral out of control. Unfortunately by that point it was basically too late (as the book predicted, actually); but it certainly helped a lot in my second marriage, and has helped make sense of the dynamics of a lot of other relationships as well. Definitely recommended reading.
- The Selfish Gene (Evolution)
- 3blue1brown (Maths)
- Primer (Evolution simulations) [https://www.youtube.com/c/PrimerLearning]
- W2AEW's Back to the Basics electronics tutorials [https://www.youtube.com/playlist?list=PLkd_RnSvfYAjSHPGBvA-K...]
- Jonathan Clayden's Organic Chemistry (I hate orgchem. This is one of the few books I can stand.)
- Many more I can't recall now.
For the uninitiated, wavlet transform is basically Fourier transform on steroids. Not only does it tell you what frequencies are present in a signal, it also tells you when they are present giving you a time vs. frequency plot (similar to short-time Fourier transform). Of course there is a limit to how well you can know both at the same time (just like the Heisenberg uncertainty principle actually!), but it's a very useful tool for studying signals. In my specific case, I was analyzing signals from a pulse oximeter in order to extract the breathing rate from them (https://dl.acm.org/doi/fullHtml/10.1145/3460238.3460254), but it has applications in many other fields such as image processing and compression.
That being said, how many people are citing specific sources, when it was really just additional exposure to a topic that helped something "click"?
https://www.coursera.org/specializations/machine-learning-in...
Statistical rethinking by Richard McElreath also helped me to understand bayesian analysis and simulation -- possibly the best hands on bayesian analysis book for beginners
https://xcelab.net/rm/statistical-rethinking/
edit: added links
Burn - Pontzer - Similar to above, with more historical evidence
Haidt - Righteous Mind - What is wrong with the people on the "other side" - it's not about sides, it's about human nature. This is a difficult topic, don't expect easy or quick answers.
---
Not a book, just a few thoughts from my own life about burnout, anxiety and depression:
Negative emotions are Ok, they are a part of life, they are not bad by themselves. When your negative emotions pick up friends - when you get angry at yourself for being upset; when you have a negative emotion about a negative emotion, and it becomes a cyclical, persistent or recurring feeling, consider getting professional help.
I got a lot of joy out of just trying things and seeing what happened. If it succeeded or failed, I learned something. Somewhere along the way, I lost the joy of discovery. If you have lost the joy of discovery, consider changing something about your situation, and possibly getting professional help.
A lot of the things we say about mentality are descriptions of the human experience, not mechanical or causal elements in the mind. Procrastination is not a cause for delaying tasks, it is just a description of delaying tasks - it is not one thing, the same way plastic or cancer is not one thing. There are many elements and many causes, and you have to address those things, and not the procrastination.
Willpower is similar - people talk about willpower like it is a substance that is used up to motivate decisions. That is a human experience, but any particular decision has it's own motivations. If you have consistent issues with a type of decision, look into your motivations and deeply held beliefs, look into the elements of that motivation; defer judgement about yourself during this process.
These things about mentality can't be conveyed with words, your mind has to come to them on it's own, but hopefully reading this will make the ideas more available to you.
I especially loved the one on mechanical watches: https://ciechanow.ski/mechanical-watch/
I think that sometimes you just need time to properly digest a subject. The pieces are there unbeknown to you but you are somehow saturated and unable to properly connect them.
I had been exposed to many of these physics concepts in school. Some of the topics never really clicked for me. Revisiting these physics topics with demonstrations brought clarity to several foundational concepts. Lots of moments of realization getting to view demonstrations of concepts like Force, Mass, Acceleration, and more. Newton and Bernoulli. While included, the series is not too heavy on the math. Enchanting series to watch through.
https://www.youtube.com/playlist?list=PLjzW1w9hKBnz2i90rRoZD...
The books "Superforecasting" and "Think again" helped me nail down when and why people (myself included) make mistakes and I think it helped me prevent making mistakes or recognize mistakes others are about to make better.
In its first chapter there's the best and only compelling argument I've ever read in favour of spirituality and why people believe in God. Even an ultra-atheist like me finally got why people have faith. There are obvious blind spots in science and logic that can't be explained away with more theorems.
If logic is pointed thought, it's good to recognize there's some things that can only be seen by unfocusing your mind. Some shadows only appear in your peripheral vision.
https://www.youtube.com/watch?v=MFRWDuduuSw&list=PL3B08AE665...
Was the first time programming clicked. It reminded me of most math books I have used, an explanation of the topic and then tons of problems/examples to solidify/learn the concept. Most other programming books I had used had almost no examples or practice problems. https://www.coursera.org/learn/build-a-computer for learning about how a computer worked. Again it clicked for the same reason. Examples and practice problems instead of just descriptions.
"Fundamental university physics Volume 1: Mechanics" by Alonso and Finn. This book seems to be not very well known in the USA, but it is very popular in Spanish and Portuguese speaking countries. It is your classical introductory physics/mechanics course with a very high emphasis on calculus.
"Computational partial differential equations" by Hans Peter Langtagen. A book on numerical methods for solutions of PDEs. It has the right amount of rigour (so you are able to tackle the literature), but it also includes code and plenty of practical advice.
"Nonlinear dynamics and chaos" by Strogatz. I think this book is really well known and I can't add much.
> For programming it was How to Design Programs at www.htdp.org
I already have over 4 years of professional software engineering experience (mostly backend web development). And before that I've been coding as a hobby for like 8 years prior to that. I'm pretty good with C, python, and PHP, though I'm familiar with plenty of other languages. I also know a little bit of Haskell.
For a person like me, is HTDP worth it? I had started with it previously but I found it a little boring. But I know the book is well regarded so I'm wondering if I should take another shot at it.
He explains how the ideas of infinity were developed, and which paradoxes and absurdities forced 19th century mathematicians like Cauchy to put the whole thing on a more rigorous footing.
My summer class was taught by the late professor Wojbor Woyczyński at CWRU and it completely changed my understanding of statistics. Instead of rote memorization, we built the foundations of statistics from the ground up in Mathematica. The subject felt so alive and it clicked in the six short weeks of the summer session.
I suspect the first-principles approach would resonate with the HN crowd. It certainly did for me. Should you be interested, check out the book he co-wrote and used to teach the class: Introductory Statistics and Random Phenomenon. https://catalog.case.edu/record=b2504793
H.L. Royden's Analysis was a book that made real analysis click when I read it on my own time in High School. It's simple enough so an intelligent kid can read it and think that simplicity can allow a solid understanding that some people can miss reading more sophisticated book.
It's also true that being forced to really work at a problem, whether by a class or a job, can also be invaluable way for concepts to click. Facing a problem that doesn't budge with your habitual approach forces you to try backing up and looking from a wider perspective as well as working at the problem with greater exactness and attention.
For me, I wish more history of mathematics was mixed into the mathematics being taught.
Also, this could be a good book to read at any juncture.
It eventually became necessary for me to start passing certification exams. As I was studying for the Windows NT 3.51 exam I bogged down in TCP-IP yet again.
Except this time something clicked. I suddenly _understood_ that the subnet mask simply delineated the addresses that were on the local network vs those that were not. It was the single most distinct feeling of illumination and understanding I had ever experienced.
I consider myself fortunate that I was given the opportunity to learn my craft and trade on the job. I have never had a mentor in IT, I have always had to grind it out myself. Remembering that feeling from that one day at the beginning has gotten me through a lot of the other sort of day we all have from time to time.
When this came out, it made all the difference in understanding things.
2. Linear Algebra from Imperial College course on Coursera. Course name: "Mathematics for Machine Learning: Linear Algebra".
3. Eigenthings from Ella Batty's lectures on Neuromatch Academy.
4. Vector Calculus from Eugene K's YouTube.
5. Much of Physics from Halliday, Resnick, Walker's book.
6. How to actually do knowledge work and grow, and productivity in general from Cal Newport's book "Deep Work".
7. Economics from "The Economics Book" and "How Money Works" from DK Publishers.
8. Meditating from "The Mind Illuminated" and "Meditation in Plain English".
9. Differentiation from MIT Opencourseware course.
10. Buddha's teachings from "What the Buddha Taught" by Walpola Rahula.
I found it the be of no value to me for learning the language. Instead I found King's C Programming: A Modern Approach much more enlightening.
I know K&R is widely well-regarded, so I found it interesting how difficult it was for me to learn from it.
1. This book made all the patchwork ideas I had about the incompleteness theorem fall into place and click while I was doing my bachelors https://www.amazon.in/Godels-Proof-Ernest-Nagel/dp/081475837...
2. This similarly solidified a lot of patchwork ideas I had about money https://www.amazon.com/Money-Unauthorized-Biography-Coinage-...
3. This didn't make the topic click but it shed light on the entire landscape after which anything I read on unicode made sense and filled up my mental map of the whole area https://www.joelonsoftware.com/2003/10/08/the-absolute-minim...
Found the thing. Saw another thing on the prior page that I didn't know about which made my entire life easier. Sat down and binge read the entire book.
Ever since, I always read programming books before getting started with a new language or framework because I learned the hard way that it's much better to have a complete understanding to save yourself a lot of unnecessary pain.
It's really an under-appreciated 800 lb gorilla hiding in the middle of the room of neuroscience that the two hemispheres are massively internally connected, but the corpus callosum does more to divide the hemispheres than to bridge them, in an organ for making connections, a fact large enough to beg for an explanation. Each can sustain consciousness on its own. They construct two different worlds, and you can find echos of the two worlds throughout all of human endeavor.
I tossed out the book a few years ago, and now I can't find a photo of its cover on Google Books or Images. IIRC it was sort of beige and blue, very typical for the time.
One of many examples in the book was the Bhopal disaster, and the way media and politicians responded to it.
https://www.youtube.com/watch?v=kSuXS_zqRec
However, what generally happens is something 'clicks' and you get it for a while, then you realize you only had a low-level understanding, so then you get into higher-level abstractions, and it 'clicks' again, and so on.
I think I finally understand the "Law of large numbers" and "Regression to mean". It also kind of helps me to understand machine learning which relies a lot on statistics.
It is a story about two young men, told through the perspectives of people they met along the way.
Some perspectives have a different enough perception of the protagonists that they could be talking about different people.
It clicked for me that everyone has a different idea of who I am, including myself. Before this, there was just me and my identity right now.
A ground up walk-through for using dependent types for formal proof. What I liked about this book is that it's presented more as mathematics than as computer science: you can work through the whole thing with pen and paper. It doesn't really have any specific prerequisites, just a general degree of mathematical maturity and exposure to proofs.
After reading this book, I felt capable of understanding how dependent-type-based theorem provers (e.g Coq and Lean) might be implemented.
But, the principles laid out in this book almost entirely apply to online marketing.
So when I read this book, everything clicked. The closest I can compare it to is when you first learn multiple programming languages and develop an abstract understanding of the concepts. Once you have that abstraction, you can generally pick up any language pretty quickly. It's mostly just semantics.
Similar to this book's impact on my understanding of digital marketing. With the basic concepts of scientific advertising under my belt, I can pretty confidently hop into any platform and learn the syntax, as it's the same ideas, simply reimplemented with better tech.
Huge fan, can't recommend enough.
And this one made me understand JSX: https://blog.vjeux.com/2013/javascript/react-coffeescript.ht...
In my degree course we used Tanenbaum's Computer Networks book but because computer networking is a complex subject it's very easy to lose the forest for the trees and especially if you have Tanenbaum as the author. Don't get me wrong he's very intelligent and engaging author but probably not for fundamental textbook.
Kurose and Rose have managed to make learning computer networking somehow intuitive and rewarding with its top-down approach and the venerable Internet TCP/IP layers as the case study not the unreliastic OSI layers. I think every textbook should follow this top-down approach for superior pedagogical impact and some of the books on difficult subjects have starting to follow suits [2]. I've used the book from very 1st Edition to the latest 8th Edition, and it keeps getting better in every new editions.
Some of the approaches are very clever for example using the same diagram of "mini network" for every TCP/IP layers being introduced. It also predicted the software-defined networking (SDN) technology by treating forwarding and control planes as separate entities for the netwrok layer as early in the 1st Edition! Now the last two editions have network layer in two separate chapters for forwarding and control planes accordingly.
Ultimately after you have finished the book, you can appreciate the fact that how the Internet has become so successful and how we can create a reliable connectivity out of unreliable connections. It's really like going to the car junkyard and with all the used spare parts, be able build a reliable Toyota Land Cruiser with only a fraction of the cost of a new SUV [3].
[1] Computer Networking: A Top-Down Approach:
https://gaia.cs.umass.edu/kurose_ross/eighth.php
[2]Learning Electrodynamics doesn’t have to be hard and boring:
https://nononsensebooks.com/edyn/
[3]Toyota Land Cruiser:
We covered lambda calculus at university (at HW actually) and I'd played with SML/NJ and OCaml before. But seeing the lambda calculus abstractions being constructed over and over to create numbers (which I'd covered) and types and things, then finally become recognisable as ML was a real "ahaaa" moment for me.
C++ Crash Course: A Fast-Paced Introduction [1]
[0]. https://stackoverflow.com/questions/388242/the-definitive-c-... [1]. https://www.amazon.com/C-Crash-Course-Josh-Lospinoso/dp/1593...
https://archive.org/details/ucberkeley_webcast_itunesu_91921...
I still remember the day I learned the difference between transitive and intransitive verbs in Japanese and had that "ooooHHHHHH" moment in my head where all verbs everywhere finally made sense.
There were many "Aha!" moments in my journey. Here is a couple of honest examples:
* Action Script 3.0 - It may sound stupid and unlikely place, but classes and OOP started to make perfect sense only when I could draw shapes in Flash and then manipulate them with Action Script. Suddenly the idiotic examples of cars, vehicles and bicycles or animals, cats and dogs were unloaded from my mind and OOP really sinked in.
* Java for Dummies - Also unlikely place to look for answers, but TTD and OOP made sense when I read the book many years ago. Somehow when they said "everything is a class in Java, there are no real primitive types" I really started to translate the world into objects. I am not a Java programmer, but it helped a lot.
* Tutorialpoint - YES, I will say it. It is an excellent resource, even if it teaches bad style and is outdated (as some people rightly point). They reduce the number of things to learn. You can refresh your memory on the spot, you can learn (if you have experience) an entire language over one weekend or maximum one week. Afterwards you can go to references and more complicated publications, but they are an excellent starting point.
* Derek Banas on YouTube, especially Design Patterns. The examples could be more real-life based, but he makes sense much better than the original GoF book.
* Code, Tech, and Tutorials on YouTube, especially about CMake.
What makes it great? You are given a development environment in the browser. You pause the lecture to play with the code shown by the speaker in real time. He encourages a lot of deliberate practice.
It defines the base blocks of probability very, very slow. And never hand-waves anything. But it’s the “bayesian” view of probability; but it’s honestly the easier one to understand.
https://www.amazon.com/Probability-Theory-Science-T-Jaynes/d...
http://abuddhistlibrary.com/Buddhism/C%20-%20Zen/Ancestors/T...
What conceptually helped me out was the idea that behavior trees (BTs) are hierarchical finite state machines (HFSMs). I read that and thought "woah!"
I've been fascinated by behavior trees ever since I learned that they were a big thing in Halo. It's charming to me to think that video games are able to help out in robotics, as the book pontificates on briefly.
The book CODE helped me really imagine and internalize the inner workings of computers, building up from the most basic electrical relay. The part where memory is explained and how the first bits were stored was truly mind blowing and cemented Clarke's third law for me.
The Story of a Soul by Thérèse of Lisieux - "unless you become like little children" never really clicked with me until I read it and became her friend.
Till date I have not found anyone who can explain a topic that crisply and clearly.
Maybe Jeffrey Way is a close second.
Third year math phys and its accompanying book (McQuarrie). It blew my mind when I learned McQuarrie is a chemist.
Engineering's role in society:
Schumacher's "Small is beautiful" and "Guide for the perplexed" was the straw finally broke me free of the technocrat worldview. (Although Illich's argument that a car's average speed is 3mph made me question my love for cars)
Data Science https://www.goodreads.com/book/show/17912916-data-science-fo...
https://www.goodreads.com/book/show/148009.The_Elements_of_S...
German language https://smartergerman.com/
Job Interview Prep https://www.goodreads.com/book/show/24263660-why-you
A better sense of world funny read https://www.goodreads.com/book/show/944652.Poor_Charlie_s_Al...
Searching a Mentor: find here https://www.goodreads.com/book/show/36200111-tribe-of-mentor...
Writing (Academic and other types) https://www.goodreads.com/book/show/39874447-how-to-write-a-...
Better finance mindset https://www.goodreads.com/book/show/78427.The_Total_Money_Ma...
really helped me conceptualize some portions of simpler math i struggled with. if someone had shown me this at a younger age i'm confident i would have had a very different relationship with math.
My first exam in Art History of the 2nd semester, I received another C. However in the review of the exam, it finally clicked. I drew a mental connection between the questions we were going over and how the previous lectures went. Then, I abstracted it out to all classes, all teachers. I saw how it's pretty obvious what's going to be on the tests by what the teachers focus on in class, and how the focus on certain things. I just needed to focus on that stuff. Everything else is fluff, and was a waste of my studying time.
Tests pretty much clicked instantly after that, and I was a near 4.0 student for the rest of high school.
I don't know if the code is still executable with current Processing, but this book enabled me to finally start my own self-learning coding journey. It's basically a visual introduction to programming.
10 years ago I was figuring out what to do with my life, knew that I liked the idea of coding, but had found the Comp Sci curriculum at my college a bad fit at the time, and disheartening.
I finally took this book on my own, and spent a bit of time every morning.
The emphasis on design set it apart from so much of the other material I was coming across in trying to get started.
By background is non-technical and tried to learn web programming by reading books and watching YouTube videos. However, I failed multiple times because these sources lacked in depth or breadth or explained poorly.
In early 2022 I enrolled in CS50W through Edx. The course contained the right mix of depth and breadth, and the topics were very well explained: Brian is an amazing teacher. The course also included interesting projects that I had to implement. For example, building a Wiki, a small scoped Twitter clone, and finally a project of my own. I had so much fun learning! Since taking the course I built two web apps from spec to launch on my own.
- https://course.ccs.neu.edu/cs4410sp21
- https://ucsd-cse131-f19.github.io
These two articles for garbage collection:
- http://www.more-magic.net/posts/internals-gc.html
- http://journal.stuffwithstuff.com/2013/12/08/babys-first-gar...
ISBN-13: 978-0691152707, ISBN-10: 0691152705
I've worked in optimization for over a decade but this book gave me an intuitive sense of many concepts that I had only been applying mechanically before.
https://www.oreilly.com/library/view/framework-design-guidel...
When I started picking up functional programming later in my career, it was all so much easier for me to grok, largely because it was stuff I’d wanted to do earlier in other languages but didn’t have the capability in the languages I was using to support it.
Structured Computer Organization by Tanenbaum. This book is the one that made every layers clear to me, from transistors to assembly code. Code no longer feels like magic for me once I've seen the greasy parts that move under the hood.
For being professional, it was So Good They Can't Ignore You, Getting Things Done, and Clean Coder. They helped with different aspects of my life that I was struggling with, as I never worked in an office (started freelancing online), so no real mentor.
https://en.m.wikipedia.org/wiki/Fanny_Hill
It’s kinda dumb in retrospect but these two books brought significance to the past. They’re both kinda fake, sort of like 18th century reality tv. They’re salacious, they’re not wholesome, they made me love the past because they made me see that not much has changed, we’re still selfish and Horny and awful.
How to prove it - I like the reduction of proofs to mechanical symbol pushing. Good exercise difficulty for self study, good notation.
I also liked some parts of the traditional calculus book. I read a lot of it. It’s pretty good considering literally everyone takes the class with the book. I would never use this for self study, but I enjoyed it during class.
Mathematics for physicists books provide a good overview of math topics. Haven’t really done any exercises though.
It might have only been a few paragraphs, but he explained that "Survival of the fittest" is not really quite how evolution works.
"Survival of the fittest" implies that species that are stronger or "better" in some way are the ones to survive and reproduce and thus "succeed" in evolutionary terms.
Stephen Jay Gould suggested that a better way of thinking about it is "Survival of the survivors", which is to say that in many cases its simply chance that allows once species to survive and thrive and breed successive generations.
By the time I took that course, I was already reading tutorials, books, practising. But still felt like I was mostly copy/pasting things instead of understanding.
I purchased the course, by far one of my biggest investments, and it finally clicked. And not only Ruby on Rails, but the general structure of web-based applications.
Once I took that course, I quickly spun up dozens of small little apps in the following weeks.
To this day, I wish I would find other courses in other subjects that would be game changers in my understanding as quickly and dramatically as that one was.
https://fabiensanglard.net/floating_point_visually_explained...
An amazing book
It was honestly just finally throwing up my hands and asking the professor directly, "what is the motivation for all these partial differential equations".
They said, "because it lets us calculate values we want to know from things we can easily measure."
Literally the entire field clicked at that point. Third time taking the course. Sure, I got fine grades the first two times, but since they were all split thermo and stat mech I think I made up a lot of it with stat mech since that came more naturally than PDEs.
Many linear algebra courses struggle to bring the abstract concepts into an intuitive mental model, which is sad because I think linear algebra fundamentally represents fairly visually-oriented concepts. I never was able to put the pieces together before seeing the visualizations and animations of the numbers.
It made me realize how deeply emotional humans are. I always saw humans as mostly rational beings which sometimes loose control. However, after listening to that book I saw that the opposite is the case: We are 80% emotional beings and sometimes we manage to act somewhat rational.
[1]: https://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influen...
But I remember really struggling to get my head around Obj-C syntax - I was trying to learn iOS development, but I hadn't been exposed to atypical syntax before, so it was completely tripping me up.
I left it a couple of years and eventually came back to it. At some point, I came across this page, and it finally made sense: http://cocoadevcentral.com/d/learn_objectivec/
* Richard Hammack's The Book of Proof [1]
* Mathematical Proofs by Chartrand, Polimeni, and Zhang
Early in my career Rails really felt a little too magical. It did what I wanted but I didn't understand it at the fundamentals.
Then I broke down how ActiveRecord worked. I listed all of its functions and capabilities and wrote my own version of ActiveRecord to do the same things. Immediately the whole thing clicked.
Nowadays I would probably be able to get away with reading the code, but back then it was tremendously helpful.
Each trading strategy spread type comes with a legend icons that tell you their purpose, like a tropical island emoji tells you its for unlimited capital gains, and an arrow emoji tells you what market direction it is about, and you also get a feel for its risk before hand, and you could flip through many strategies and narrow down on something that meets your objectives even though you never heard of it before, and learn more deeply about it. Then you could see how other strategies were just variations and tweaks to the prior one.
But the real difference was that when I was trying to learn about options, most literature was telling me about what happened at the end of the trade, at "expiration", but practically nothing about options trading involves exercising an option, its so tone deaf. Options trading is about trading the price differences as they fluctuate through their life span. This book was good for acknowledging that.
EDIT: I remember the name of the book now: "A Smarter Way to Learn Python: Learn it faster. Remember it longer." By Mark Myers.
Transistor Transistor Logic followed by Z-80 Microcomputer Handbook, both published by Howard Sams and if I recall correctly, sold at Radio Shack. These books were clear enough that a teenager could grasp the concepts. Learning a relatively simple processor was a valuable foundation for learning microcontrollers and digital interfacing.
Turbo Pascal Manual, for versions 1 through 5. Those manuals were so clear and complete. They are probably the last manuals that I ever read cover to cover. That was kind of at the point where systems got too complex for any mere mortal to learn one completely.
Rudin's "Principles of Mathematical Analysis" is a brilliantly lucid introduction to the topic that takes a completely unconventional approach.
Also Code Complete - after reading I finally understood what good code should look like.
It’s as if I had seen the world with only 1 dimension instead of 3 for all that time.
Unfortunately, they never finished it.
https://www.udemy.com/course/linux-heap-exploitation-part-1/
Really helped me out when studying for interviews at first. As a visual learner, this was just great. The examples are very basic but pretty foundational and give you a good base to expand on in further preparation.
I work at the rainforest company. I credit that book majorly for helping me pass the algorithm rounds.
https://medium.com/programming-essentials/functional-program...
Objects with map and flat map functions. Done.
https://www.youtube.com/watch?v=mkGsMWi_j4Q # Discrete Fourier Transform - Simple Step by Step - Simon Xu
Dialectic of Enlightenment convinced me that philosophy itself is actually useful and constructive, rather than just a pointless navel gazing activity.
I had thought of Forth as a general purpose programming language, when it's actually an application UI paradigm.
Before I participated I struggled to see how it was possible to know there were people willing to pay for something before building it.
It's been so long that I can't remember the class names anymore.
I love pretty much everything on his channel with crystal clear explanations and deadpan delivery!
Made things like adiabatic processes, entropy and the Carnot cycle much more comprehensible as part of a general formalism. The 'classical' in the title means not statistical so we are talking heat engines and such.
[1] https://www.cambridge.org/gb/academic/subjects/physics/gener...
Building and deploying a state of the anrt image classifier in lesson 1, less than an hour was incredibly motivating.
[0] https://www.amazon.com/Rootkit-Arsenal-Escape-Evasion-Corner...
This video from Casey Muratori helped me point to some reasons:
The standard textbook in the field, but well organized, well presented, complete enough to feel that the material is covered but not so deep in the weeds as to be intimidating.
At university we had to take one chemistry course and suddenly it all made total sense. Everything was explaned logically from the ground up. I got a perfect score and really, really enjoyed the course. Now my son has chemistry in school (he is much better than I was) and I regret not having kept the manuscript for the course to give it to him.
"TObject is ancestor of all objects and components", it all made sense just with that.
Teaching the history and story of the scientists who made different genetic discoveries, and along the timeline they made those discoveries, made everything make sense.
Also the original perceptron stuff for why NNs work, but I don't think that has general utility. The tools work irrespective of knowing why they work so I wouldn't recommend that for a SWE.
A magazine article (remember those things?) described it using post office analogies, including a postal train. It just clicked.
I have no idea what magazine or writer, or why that set of analogies worked when there are far simpler explanations for classes and objects, but I owe my career to that article (and my lack of friends in high school .. but it's all good!)
https://conduit9sr.tripod.com/
It was written like 20 years ago, quite nice.
- Absolute FreeBSD - have everything needed to learn and understand FreeBSD.
- ANSI C by Kernighan/Ritchie - the C language.
- Forever Fat Loss - why we get fat and what to do about it.
- Why We Sleep - everything you wanted to know about sleep.
Regards.
It lifts a veil from your eyes. Concepts like “multiculturalism”, that before reading this book seemed benevolent, reveal their malignancy.
If you are from the West, the US or Europe, you will see your political culture in a new light, as a web of lies and hypocrisy on all sides.
If you are aligned with the Left, it forces you to confront the reality that, sometimes, the Right takes a stand against oppression while your side refuses even to acknowledge that it exists.
https://spectrumcomputing.co.uk/entry/2000076/Book/The_Compl...
Made me realise that no part of a computer is magic! Masses of function squashed into its small memory, and a good reference for implementing rough math functions. One of a handful of books I still have.
Don't Panic with Mechanics!: Fun and success in the "loser discipline" of engineering studies!
https://www.amazon.com/-/de/dp/B00KTP7UPE
Although I can only reallyvouch for the original German version (Keine Panik vor Mechanik!)
The addition of audio is surprisingly useful. It's like having a private tutor ready to help you continue learning at a moment's notice.
"A Tutorial on Linear and Differential Cryptanalysis", Howard M. Heys.
They have to be worked through, not just read.
If you want to stop smoking check it and good luck. It was life-changing to me.
I'm not a marketer but it certainly made a lot of seemingly incomprehensible status quos click.
I say this as a native English speaker.
20 years later, a dev I worked with: "Oh, pointers are just a reference to a memory address".
GAH.
Prolog is almost like magic the first time one is exposed to it.
The Hidden Language of Computer Hardware and Software - all of IT. I could only get through half of it, but it's THE book that made me understand "everything" about how computers work.
It's now ~5 years old and people still recommend it. So I prop. did something right. Like leaving out all the things about SEO that change over time.
Amazon https://www.amazon.com/Understanding-SEO-Systematic-Approach...
Free for hackernews on gumroad https://news.ycombinator.com/item?id=24773941
Print https://www.fullstackoptimization.com/a/understanding-seo
This book sparked my interest in tech.
It showed me how to really use C++ effectively back in the 1990's. It was at the time in a class by itself. (Pun intended).
This course made if so much easier and fun to learn https://www.dominochinese.com/
My 5 "ahas" were expressions and assignment in BASIC. Arrays, and how they work. Dynamic memory, i.e. the first time I got a linked list to work in Pascal. Networking as a streaming service combined with "how Unix works", which was mind blowing. And, finally, lambda.
The first was my science teacher introducing me to the computer. He did this and that, and left me to flail helplessly for several hours before I gave up and went home. The next day he showed me BASIC expressions, again, "aha", and it stuck.
Next, was arrays. Did not grok arrays at all. And all of the example were something about "balancing a check book" (I'm 14, like I care a wit about balancing check books). But eventually, after typing in enough "101 BASIC GAMES", arrays clicked. I can't recall, which game, but I credit one of those BASIC game books for that aha.
I don't consider my dynamic memory aha to be book based. I'm sure I got it from some data structures book in theory, but pulling it off in Pascal was just a combination of raw effort and figuring it out with friends. It's an aha moment because visualizing the linked list, or tree exploding in your mind from the very few lines of code necessary to pull it off was, well, aha indeed.
Network streaming and Unix came in one hit. I'd been doing Unix application development for some time, but our machines and client machines were all standalone. But I was at another office and I saw a guy do, essentially, `cpio -xyz folder | rsh cat > /dev/tape` (yes, rsh -- does that date it?) And that really blew my mind. The idea of piping across the network to a streamable device. Wow. Very, very aha.
Finally, lambda. Always fascinated and interested in Lisps and what not, but I seem to be genetically coded against groking anything Greek outside of a Gyro sandwich. I've always hated reading texts that use the Greek alphabet for, well, anything. Because whenever I see a Greek letter, I assume that it must be conveying something beyond a simple unknown variable. People choose those letters for a reason, I just don't know what it is. So, θ is used not just to represent a variable, but to represent an angle (always seems in trig, they use θ). So, if you see θ, perhaps it also means that it's an angle of somekind.
Anyway, right or wrong, I assume that's whats happening and I simply don't know the "meta" of why, when, or how a Greek letter is chosen. And this hold true for Lambda.
Lambda was chosen because of its inspiration from lambda calculus (which I also don't know). So, if you know lambda calculus, you "know" what lambda means. I don't, so I'd be bouncing along in some Scheme or Lisp test and they start dropping those on my head and, well, my pooh brain doesn't grok it and I'd abandon it.
Then, I stumbled upon the book "Simply Scheme". What does "Simply Scheme" do? First thing they do, is they rename everything. Like "first" instead of "car". They just started with their own vocabulary and presented Scheme that way. Well, heck, I knew what all those words mean, maybe not the specific semantics in Scheme, but the general definition, and so the first few chapters were very successful in communicating the underlying themes of Scheme. Including things like anonymous functions (for which they used the word, I think, of all things, "function").
Later they conflate "lambda" and "function". Basically, "lambda" mean "anonymous function".
"Oh!" "Aha!", and the clouds parted, the seas calmed, the sun came out and like getting a few select Tetris pieces, the board cleared and a LOT of things made much more sense right away.
Aha indeed.
I read this book called The Drunkard's Walk: How Randomness Rules Our Lives by Leonard Mlodinow, and it opened my eyes about probability. I decided to get my MSc in Statistics and I reworked basically my whole midgame-endgame strategy for my life.
I look back so thankful for that book and for being in a position to just be at home during that time to read and ponder things. In particular, I remember some walks I went on with my wife and some conversations that I had anticipated being difficult about leaving or staying in DC, but it just all came together.
Recovering from the crash took time, but the purpose I found in pushing myself to get the degree done and to fight for my space here in govland was absolutely, positively instrumental.
It made data, functions, web applications, and REST API finally click for me.
I took two stats courses-- a simple one at a community college where we dabbled with a stats analysis app. And a more complex one, where we wrote scripts in the language "R" and uses rStudio.
I began to realize things I should have realized long before that:
- Functions typically intake data, and output data. What made it click was inputs into a statistical model, such as multivariate linear regression.
- A program runs on data-- data is basically the "currency" (i.e. monetary currency) of an application.
- Data comes in various shapes and sizes, and collections. Programs have to be compatible with those shapes, sizes, and depths within collections.
Once I realized this, I began reflecting more on the typical 3-tier web application model, and HTTP, and REST API, including looking at diagrams on google images. It became so much clearer once I had a solid understanding of data & functions.