Hacker News new | past | comments | ask | show | jobs | submit login

I have a genuine question which might sound dumb but I really do wonder.

How do you actually read math, physics and programming books?

Reading them the same way as you'd read a novel doesn't seem right. I try to go chapter after chapter and make notes but I often get bored because I don't see the usage in my real life coding. Maybe I'm not working on problems that are challenging enough? Also after few chapters it often turns into a "job" of finishing the book. I don't have the pleasure of learning new stuff anymore.

Do you really finish such books? What am I doing wrong?




Here's Alain Connes, Fields medalist, on how a mathematician works and should read a book [0]:

"To understand any subject, above all, a mathematician SHOULD NOT pick up a book and read it.

It is the worst error!

No, a mathematician needs to look in a book, and to read it backwards. Then, he sees the statement of a theorem. And, well, he goes for a walk. And, above all, he does not look at the book.

He says, "How the hell could I prove this?"

He goes for his walk, he takes two hours ... He comes back and he has thought about how he would have proved it. He looks at the book. The proof is 10 pages long. 99% of the proof, pff, doesn't matter.

Tak!, here's the idea!

But this idea, on paper, it looks the same as everything else that is written. But there is a place, where this little thing is written, that will immediately translate in his brain through a complete change of mental image that will make the proof.

So, this is how we operate. Well, at least some of us. Math is not learned in a book, it cannot be read from a book. There is something active about it, tremendously active.

[...]

It's a personal, individual work."

[0] https://www.youtube.com/watch?v=9qlqVEUgdgo


This approach seems very similar to working backwards when trying figure out the behavior of a function that calls other functions or libraries and when trying to a debug an issue and following the stack trace to determine the root cause of the issue. Not a perfect analogy but I find it helpful to think about it that way.


The right way to read such a book really depends on your learning style and personal circumstances.

Personally, I tend to skim; I find most texts to be far too verbose. But then if I find a part that I'm interested in or want to explore at length, then I'd read it more in-depth.

I think classical books suffer from a lack of features like hyperlinks. This is, authors either have to say something or not say it; they can't just say something concisely with links for readers who want to read more (Note below). As a result, textbooks tend to be cluttered.

Skimming helps you to cut through the clutter to get what you need. But since you'll almost certainly miss points while skimming, it'll tend to involve bouncing back-and-forth rather than a straight read-through.

---

Note: Of course, footnotes like this, along with appendices and references, are partial substitutes for active content. They're far more limited (Meta-note below) and have a much higher overhead on both reader and writer, but they're still often better than cramming everything into the body of a text.

---

Meta-note: Because, seriously, who wants to trace recursively nested footnotes? For more discussion on this topic, please see "_References: Why they're inconvenient_", p.156.


"...study actively. Don't just read it: fight it! Ask your own questions, look for your own examples, discover your own proofs. Is the hypothesis necessary? Is the converse true? What happens in the classical special case? What about the degenerate cases? Where does the proof use the hypothesis?...it is not a good idea to open a book on page 1 and read it, working all the problems in order, till you come to the last page. It's a bad idea. The material is arranged in the book so that its linear reading is logically defensible, to be sure, but we readers are human, all different from one another and from the author, and each of us is likely to find something difficult that is easy for someone else. My advice is to read till you come to a definition new to you, and then stop and try to think of examples and non-examples, or till you come to a theorem new to you, and then stop and try to understand it and prove it for yourself --- and, most important, when you come to an obstacle, a mysterious passage, an unsolvable problem, just skip it. Jump ahead, try the next problem, turn the page, go to the next chapter, or even abandon the book and start another one. Books may be linearly ordered, but our minds are not."

(P.R. Halmos)


There's a classical book titled "How to Read a Book" by Mortimer Adler. It's about reading texts for information, arguments, etc., but not pleasure. The heart of it is to not read the book linearly from cover to cover. Ideally you'd do multiple passes, often non-linearly, at different speeds, skipping different parts, concentrating on different parts. You'd start with parts that are known to have most information, like introductions and conclusions, the table of contents. Then introducing and concluding paragraphs, then introducing and concluding sentences. All the meanwhile, you'll be getting a top-down view of the material and you'll be naturally honing in on the parts that are pertaining to you.

Reading mathematics has a whole series of additional challenges. In my limited experience with reading those: nurturing comfort in incomprehension is important; it's often better to skip a part than get stuck on it; look for multiple accounts of the same concept.


Holding my copy of this excellent book, I'm reminded of Mortimer & Van Doren's comment on 'How to Read Science and Mathematics'

249.2 "Until approximately the end of the nineteenth century, the major scientific books were written for a lay audience. Their authors--men like Galileo, and Newton, and Darwin--were not averse to being read by specialists in their fields; indeed, they wanted to reach such readers. But there was as yet no institutionalized specialization in those days, days which Albert Einstein called 'the happy childhood of science'. Intelligent and well-read persons were expected to read scientific books as well as history and philosophy; there were no hard and fast distinctions, no boundaries that could not be crossed. There was also none of the disregard for the general or lay reader that is manifest in contemporary scientific writing. Most modern scientists do not care what lay readers think, and so they do not even try to reach them.

Today, science tends to be written by experts for experts. A serious communication on a scientific subject assumes so much specialized knowledge on the part of the reader that it usually cannot be read at all by anyone not learned in the field. There are obvious advantages to this approach, not least that it serves to advance science more quickly. Experts talking to each other about their expertise can arrive very quickly at the frontiers of it--they can see the problems at once and begin to try to solve them. But the cost is equally obvious. You--the ordinary intelligent reader whom we are addressing in this book--are left quite out of the picture."

The authors apologize for not being able to offer specific advise to guide the reader of technical books, as those texts are on subjects of which they do not possess the necessary expertise. They suggest the reader fall back on 'scientific popularizations'.

I've found this to be a very useful strategy. Beginning with a readable book, well researched book. Then systematically read the book's bibliography, recursively.

The one problem I ran into, specifically in mathematics, was it seems some notations are not universal. Furthermore, some authors take no pains to define their symbols at any point in their texts. (I quite understand a paper would assume a specific audience, but for a published book I think it's just rude.)

For this I needed to rely on communities such as math.stackexchange.com.

Good luck. The journey is part of the reward.


I try and write a tutorial about a subject-chunk - the kind of tutorial that i think would have made sense to me if I'd read it before writing it. you have to suspend the obvious fact that by writing the tutorial you've learnt more and probably wouldn't have understood it at the beginning anyway but let that go for a while.

part of writing the tutorial is exercises - i like a stripped down flash card system. i try and do random-10 as regularly as possible. at the beginning, there's lots of jargon with scripted answers (ie, what is a blah?) but after a while you can move those to the back and you're left with some multi-step questions - over time (because i'm not trying to memorise the answer pattern) i find that i internalise a kind of narrative that uses the concepts/jargon to grope my way to the answer ie, hmmm looks like an aqueous equilibria question, probably need the equilibrium expression (jot that down) and HCl is a strong acid, so i can ignore those two terms and oh look... there's the answer if I just do this and that. Over time, it's the 'groping for an answer' that sticks as a habit of thought and seems to be quite robust. having said all that, i'm craphouse at maths but i'm hoping to get into one day.


I am going to quote Manuel Blum's advice for graduate students [1].

"Books are random access -- a great innovation over scrolls. "

[1] https://www.cs.cmu.edu/~mblum/research/pdf/grad.html


How do you actually read math, physics and programming books?

Reading them the same way as you'd read a novel doesn't seem right.

Your intuition is correct. When people read a novel, they often "forget" that they're reading words and picture the action. The optimal reading speed for that is 200 to 250 WPM. You can't read mathematical papers, where everything has precise definitions, at that speed and expect a high rate of comprehension if everything's new to you. It takes a lot of time.

Do you really finish such books?

Yes, if I'm interested in the subject matter. It takes a lot of time, though.


Unless you are working on a course of study under guidance, you probably won't go chapter by chapter. Indeed, you won't even read it linearly.

Once I finished my coursework, I tend to have a problem and go searching for material that may get me some traction on it. So a lot of keyword searches, a lot of reading prologues (prologues are where the author tends to give his conceptual overview of what the material in the book is for...I've learned a lot from reading random prologues in a math library).

Once I find something that looks interesting, I'm usually down to a few theorems or definitions that I think will give me traction. Then I start poking around the book or any other source I need/can find to figure out what I need to understand those definitions/theorems.

Usually at some point it becomes clear if they're a) irrelevant, or b) partially relevant. If (a), I drop the entire line right there and go back to searching. If (b), I start running counterexamples from the problem I'm working on against them, looking for where it breaks and seeing what I can salvage.

Prologues usually read like a novel, but occasionally stopping to look up words, so more like reading a novel in a foreign language. Once you're into the meat, your rate of progress is typically measured in hours per paragraph or days per page. But you probably only end up using ten or twenty pages out of a two hundred page book in this method.


Depends how they're written. Some are written to be read cover-to-cover, whereas others are references that you dip into as you need.

If you're getting bored because you're reading something that's not relevant to what you're doing, skim over it instead and make a mental note of what the content covers so you'll know what you have available to you should the topic come up later.


Relevant discussion :

Ask HN: How do you read programming books? (https://news.ycombinator.com/item?id=15733745)


I haven't read any math textbooks cover to cover or anything but I did try to speedrun my way through some concepts needed for ML and from what I can tell the most important thing to learn is the insight.

Doing exercises or taking notes is only necessary if you feel the need for it, otherwise try to understand what the thing is and try to find where it is applied. Even though you probably won't ever need it in the future if you do picking it up will be much easier and this way you get the quick endorphins from figuring stuff out without the drudgery of actual work.

just my 2c.


> What am I doing wrong?

I don't think you are doing anything wrong. Depending on how the book is written, some might be really boring and unchallenging, pick another one! If you are looking for brain-wrecking adventure and some good story telling, pick something that starts with number theory. If you are looking for understanding the bread and butter for most recent big discoveries and theory crafting, pick something that focus on Complex Analaysis, High dimensional calculus or partial differential equations. If you are planning to stick in the field of computer science for good, pick something that focus on abstract algebra _and_ probabilty theory.

> I often get bored because I don't see the usage in my real life coding.

Then you don't need mathmatics. Depending what you do in coding, there is really rare type of work that need mathematics. Sciences and Mathematics are so far from practical use they are there purely for the sake of knowledge. This isn't just you, it's the case for everyone. Unless some day you find the interest to battle that boredom, the probability of you finding some usage from mathematics might be very unlikely.


> Reading them the same way as you'd read a novel doesn't seem right.

I think most technical books end up being organised like a reference manual for some reason - not necessarily as dry - but in a way that appears to facilitate some some externally driven learning activity by augmenting it.

> Do you really finish such books? What am I doing wrong?

Not personally, i'm terrible at penetrating any such book until I have a problem at hand that requires it. However I have found a few books that are technical while being enjoyable and engaging at the same time, in much the same way as a novel: "The Feynman Lectures" (Physics), "Michael Abrash's Graphics Programming Black Book", "Thinking Forth" (Programming). These books are well known, I think their popularity is in no small part due to how accessible they are without diminishing the quality of their technical content - I would like to find more books that have this quality.


Prof. Manfred Lehn has some very good advice on his web-site (in German):

http://www.alt.mathematik.uni-mainz.de/Members/lehn/le/semin...

Here is the Google Translate transcript:

"""

How do you read mathematical texts?

If you are ready to give a seminar lecture in your studies, you have already studied one or two semesters and read one or the other book and know what is important: If you read mathematical texts, there are two modes in which You can proceed: From the bird's eye view: What are the rough lines? What is the subject of the present text? What are the central concepts and definitions, what are the central statements and sentences? What are the rough evidence structures? Why do you do it all? From a frog's perspective: how is it done in detail? How does a proof work? Why do you need the prerequisites in the sentence? What happens if you leave them out? You often have to switch between these modes. First, one has to get an overview of where one is actually going, otherwise one bites oneself in the first technical lemma and gets stuck. At the first reading one can skip all the evidence and focus on the statements of the sentences. At some point, however, comes the point where one no longer understands the sentences, because one has developed no feeling for the introduced concepts. Then it's time to take a closer look at the evidence as well. If you have understood more technical details, you should step back a bit and ask yourself again what the overall context is, etc. In an adapted form, this also applies to the way you approach individual sentences or examples. If you are confronted with a new sentence, you may ask questions of the following kind before, after, or even while studying your proof: What are simple examples of the sentence (such as special cases)? What are simple counterexamples where certain conditions are not met? Does the sentence, or the term used or the proof, refer to already known things? Is there a characteristic example of observing all the essential phenomena? Work in circles in the literature to your presentation (and his position in the seminar).

"""

(You have to swap the word "sentence" with (mathematical) "proposition" or "theorem" at some places for this to make more sense. In german those are the same word ("Satz").)


Start a software project that uses advanced math, and learn as you go in order to build the project. Learning on the job is the best way to go since you only learn the fundamentals of what’s necessary to accomplish the goal, you immediately see the utility of what you’re learning and you get a useful product at the end.

I learned substantial amounts of algebraic topology by building an open source topological data analysis library, for example.


I read programming books just like normal books, and take time to examine the example code. I am currently reading a book about Swift design patterns. I dont try to learn how to implement it but instead on how to use a certain design pattern what it does etc. By the time I need it I look it up and implement it for my problem.


For each section, start from the exercises, then work backwards towards the material necessary to understand and solve the exercises.

If there are no exercises, make some up (do the proofs yourself, try to come up with unsolved scenarios and solve them, etc)

For me it helped immensely when I had a fun side project that demanded new knowledge. For example, my chat bot side project was a fun way to learn natural language processing:

* its an "unsolved" problem (for various definitions of "solved"). I didn't expect to "solve" it, but every time I'd try something new there was the excitement that maybe, just maybe, this might be "it" (i.e. an immense improvement)

* the responses it produces can be really funny. If its online, others can have fun with it too.

* you can try lots of strategies and see the immediate effect. Not only do you learn about the math and technique by implementing it, but you get an immediate "feel" about the kind of effects it has.

Trying to over-generalize, it helps to have some "element" that you consider valuable, fun or rewarding to drive the whole process.


I'd add to that, how do you read programming language library documentation? Often I'll be reading along in the documentation for a function in say a python library and not really understand what the documentation is trying to say.

I was just as lost with the K & R C book.


I have heard that they way Einstein read scientific books is by reading until he doesn't understand, stop there, start again from the begining and repeat until you reach the end.


My first computer science course was a life-changing moment for me. I was two years deep into general-ed, I was trying to manage my mother's alcoholism that I had just started to understand, and my girlfriend and best friend wanted me to move away to state University with her. I read that Java book start to finish, every chapter, and eventually realized the potential that computers can bring the world.

Anecdote aside, there's a difference between reading something and understanding something. My friend who is really in tune with the nature of the subject, is also spending an incredible amount of time surrounding it.


> How do you actually read math, physics and programming books? > Reading them the same way as you'd read a novel doesn't seem right.

Indeed it doesn’t.

As the author of the book in this post points out on his blog [1] in math you focus on learning the syntax first, just like in programming.

Off the top of my head I can recommend pre-reading a chapter before reading it: go through theorems, bold/italic text, graphs, tables, conclusions, exercises. Also, try proving theorems yourself before reading proofs in a textbook.

My general advice for you is to check out a book “How to Read a Book” by Mortimer J. Adler and Charles Van Doren. It’s a great manual for reading, which contains both general advice (in the form of 15 rules) applied to any reading material, and specific advices for math, philosophy, history, social science, etc.

> I try to go chapter after chapter and make notes

Notes are good, but only if they “active” notes. If you are able to formulate something in your own words it means you’ve done the work towards understanding, if you’re only able to express a thing in author’s words — you have not, and if you leave it at that the chances are you’ve wasted your time.

In math you also have to do problems. Your ability to solve problems w/o the help of the textbook is the ultimate test of whether you’ve learned what you’ve read.

Interleave: in your practice session work simultaneously on problems from different (usually sequential) chapters. IOW: don’t practice one topic during several study sessions until you’ve exhausted all exercises for that topic in a book — go read the next chapter (or chapters), and include its exerices in your next practice.

Interleaving is harder, but more efficient. The reasons being that (1) our brain is bi-modal processing system, it needs time to process things both consciously and unconsciously, it does the latter while your attention is busy with other things; (2) it also needs time to consolidate memories, grow and strengthen new synaptic connections (which it primarily does in sleep) — so spreading a topic/exercises over time is generally a good idea.

> but I often get bored because I don't see the usage in my real life coding > Also after few chapters it often turns into a "job" of finishing the book. I don't have the pleasure of learning new stuff anymore.

This is about psychology of study.

Don’t turn it into a job, it’s not a competition, there are no bosses, no deadlines. Don’t push too hard, allow yourself time to integrate new knowledge by keeping yourself busy with other things and studying several subjects/books simultaneously — when you are tired of one thing, switch to another. It’s more efficient way of learning (as explained above), despite increase in absolute time for mastering a single subject.

And work on your motivation. You can start by read what Paul Graham has to say on why study math [2]. Remember, math is hard; our brains are not wired for it.

[1] http://jeremykun.com/2013/02/08/why-there-is-no-hitchhikers-...

[2] http://www.paulgraham.com/college.html


While I like most of your points, I've got to stand up for our brains (or mathematics, depending on who you think is getting shorthanded there :)).

I would say the exact opposite of "our brains are not wired for [math]": mathematics is the simplest expression of our ultimate thought ("brain") processes.

It is only hard because it is so abstract and builds on a large corpus of what has already been constructed, but it was "designed" exactly after how our brains operate.

For a layperson, proving even the basic arithmetic might seem like magic, but once you go through the simple exercise of defining everything in terms of "One" and "Successor(One)" and compare that to how we teach our kids numbers, it's clear mathematics matches exactly how human brains operate.

Then again, I concede that not everybody's brain is "wired the same way," but I am sure there are plenty of us for whom mathematics is just natural: the only problem being the fact that majority of people have not been exposed to true mathematics.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: