top | item 11100271

I no longer understand my PhD dissertation

682 points| refrigerator | 10 years ago |medium.com | reply

271 comments

order
[+] csense|10 years ago|reply
TLDR: The author independently re-discovered what you may know as Old Code Syndrome.

I think that's because mathematical papers place too much value on terseness and abstraction over exposition and intuition.

This guy's basically in the position of a fairly new developer who's just been asked to do non-trivial update of his own code for the first time. All those clever one-liners he put into his code made him feel smart and got the job done at the time. But he's now beginning to realize that if he keeps doing that, he's going to be cursed by his future self when he pulls up the code a few months later (never mind five years!) and has zero memory of how it actually works.

I'm not intending to disparage the author; I've been there, and if you've been a software developer for a while you've likely been there too.

Any decent programmer with enough experience will tell you the fix is to add some comments (more expository text than "it is obvious that..." or "the reader will quickly see..."), unit tests (concrete examples of abstract concepts), give variables and procedures descriptive names (The Wave Decomposition Lemma instead of Lemma 4.16), etc.

[+] wfo|10 years ago|reply
It would be really nice if all it took to understand difficult mathematics were some easy programming tricks.

The problem with looking at old code is you forget what is going on or what the purpose of different components are. The problem with looking at old mathematics is that it is genuinely very difficult to understand. You work very hard to be an expert in a field and get to a level where you can read a cutting-edge research paper. Then if you let that knowledge atrophy, you won't be able to understand it without a lot of re-learning when you look at it again.

Unfortunately cute tricks like comments and concrete examples won't save you here (if concrete examples even exist -- oftentimes their constructions are so convoluted the abstract theorem is far easier to understand, and often times they are misleading. The theorem covers all cases, but all of the easily understandable concrete examples are completely trivial and don't require the theorem at all.)

Programming has existed for, say, 50-100 years. We have recorded mathematical history going back thousands, with contributions from most of the most brilliant human beings to ever exist. Do you think perhaps there's a reason why a simple and easy trick like commenting and renaming lemmas has been discovered and solidified as standard practice in programming, but hasn't been adopted in mathematics? Are mathematicians really just SO dumb?

The answer is those tricks just aren't good enough. Mathematicians do exposition. They do plenty of explaining. Any textbook and even many research papers spend a huge amount of time explaining what is going on as clearly as is possible. As it turns out the explanation helps, but the material is just plain hard.

[+] gjulianm|10 years ago|reply
> I think that's because mathematical papers place too much value on terseness and abstraction over exposition and intuition.

If it only happened on mathematical papers... It is all over the place, in books, classes, etc. Few professors tell you what are they doing and why; they just throw formulas, theorems and symbols at you. Intuition is not given its necessary importance, first because it's hard to grasp some concepts, and second because sometimes there's no easy intution behind them unless you have deeper knowledge in the subject.

Regarding "unit tests", or descriptive names... That's very difficult once you get into advanced math. Examples are probably going to be trivial or too contrived to be useful. And if you have to give a name to a theorem or lemma, you'll end up describing its full contents.

[+] skywhopper|10 years ago|reply
I think you missed the point of the article, which was that students, parents, standards-setters, educational theorists, and legislators have a distorted idea about what education is for and why certain subjects are taught. We don't teach history so that children can recite the years in which various battles happened. We don't teach algebra in order that everyone in society knows how to factor a simple polynomial.

The author can no longer understand his dissertation, but that doesn't mean he failed, or that the educational system failed by granting him a PhD for the work. Rather, the dissertation was about proving to the system and himself that he had learned how to tackle a complex problem and generate a solution that would pass muster with his academic mentors. In the process he learned many skills indirectly, became a more effective problem-solver in general, and had fun, all of which are far more valuable and far more important than the topic of his dissertation and whether or not he still understands it.

[+] vinceguidry|10 years ago|reply
I started taking readability very seriously once I started going back to extend old code and finding I couldn't immediately understand what it was doing.

Now, if I have that problem, it's now two problems. The original problem, and the readability problem. The readability problem is solved first, and the original problem can only be solved afterward.

I don't see comments helping me, I could spend the time better by making better method names, better local variable names, extracting methods, ensuring that lines do not run off of the screen.

Maintaining my old code got significantly easier after I started doing this.

[+] bbcbasic|10 years ago|reply
Kind of old code syndrome. I would say it is more like changing from Java to Ruby on Rails full time, and looking at your old Java code which is now a rusty language, with rusty memories of the class libraries and frameworks you used. Even with beautiful code it will be a struggle.
[+] ignoramous|10 years ago|reply
Completely agree.

"Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?" -Brian W. Kernighan

I read a book by Brian Kernighan a few years back, "The Elements of Programming Style" and for me it has so much good advice. The book may not be as relevant in the days of Ruby, C99 and the like, but valuable advice nevertheless.

I wonder if reading the literature (countless books written by the early adopters and renowned engineers) would mould the programmers to do things differently. For instance, reading "JavaScript: The Good Parts" completely changed the perspective with which I look at the language. It made me fall in love with it.

[+] ridgeguy|10 years ago|reply
Not just code.

When you design anything - a rocket engine, an immunoassay product, whatever - it should be part of the work to document the assumptions, calculations, and rationale for the design to a degree that somebody skilled in the art could follow your work when you're gone.

[+] wbl|10 years ago|reply
That doesn't help. Arthur has written a very nice hundred page introduction to the trace formula. You can read that, and it won't tell you why you should care about the trace formula. But if you know Langlands-Tunnels and how it was proven, or how Jacquet-Langlands was proven, you already know to care about the trace formula because you know that it will prove similar results.

The abstraction is necessary: you cannot do algebraic geometry with varieties alone. But while the core of the subject is a multithousand page jewel of abstraction, Vakil is a perfectly readable, example filled introduction to algebraic geometry, covering most of the contents of the glory that is EGA.

Only the rare lemmas are intrinsically interesting. Most often it's the theorems that are worth knowing as steps on the path to understanding something much more. Those lemmas that get used again and again are named, often descriptively.

[+] MicroBerto|10 years ago|reply
My response is that for every 100 of these types of papers, one of them may prove to be pivotal or inspirational in something truly groundbreaking and functionally useful. For this reason, I am all for 100 different people spending their time doing things like this, because eventually one of them will make an impact that is greater than 100x the efforts of 100 normal men.

It's just a different kind of "brick in the wall" - only the diamonds in the rough can turn out to be hugely important for something else in the future.

[+] closure|10 years ago|reply
This does not surprise me in the least.

Math was always extremely easy for me growing up. Up through my first differential equations class I found almost everything trivial to learn (the one exception is that I always found proving things difficult).

I made the mistake of minoring in math and that slowly killed my enjoyment of it. Once I got to differential geometry and advanced matrix theory it all just became too abstract and I just wanted to get away from it.

For several years after college I would routinely pull my advanced calculus text out and do problems "for fun". After a while I stopped doing that. Within a few years of no longer being exposed to math, I found it all incredibly foreign and challenging, to the point where I would say I have a bit of an aversion/phobia to it.

I'm trying to reverse that now by tackling a topic I'm interested in but have previously avoided due to the math-heavy nature of it - type theory.

Hopefully I can find the joy in math again through this.

I think my point is that you can lose competence in math very very quickly through lack of constant exposure.

The same is probably true of programming but I hope to never end up in that position.

[+] eru|10 years ago|reply
> (the one exception is that I always found proving things difficult)

Proofs are at the heart of math. Everything else is something different.

[+] sampo|10 years ago|reply
> Up through my first differential equations class I found almost everything trivial to learn

Mankind hasn't yet figured out a good way to teach the first Differential Equations course.

The first serious Calculus course introduces some level of rigor and formalism, but this alone is not sufficient for Diff Eqs. And the DE courses are typically leaning towards applications, so they tend to succumb to the "fiddle these dx's and dy's around like it's magic, in the end it might work out" approach.

The business is well founded, which you will discover later. But no one has figured out how to massage that into the first course.

[+] tfgg|10 years ago|reply
During my PhD I found I had to occasionally lock myself in a conference room with a bunch of papers and all the whiteboards to do a sort of "deep dive", in order to get everything into my head and push things forward. Things that were a bit rusty quickly came back after a little bit of effort.

At the end I'd emerge with a bunch of photos of whiteboards with clear intermediate steps, and then I'd write it up as a short report in LaTeX. Of course, as the report turned into a paper, I took out all the useful 'trivial' steps - which always feels a bit wrong. I think it's also useful at this stage to drop everything for a month or two and come back and see if you still understand what you wrote.

I think the "deep dive", putting prolonged effort in, and writing it up are all key aspects.

[+] layble|10 years ago|reply
I can totally relate and to this day I describe one of my greatest failures as a manager as analogous to how "easy" math was to me. Until Calc II I really found nothing about math challenging at all. The result of this was that everyone wanted me to tutor them in math. The problem was that I didn't solve math problems like other people did, in fact I had no idea how I did what I did. I just did it. As a result when I tried to teach someone else it was an unmitigated disaster.

Fast forward to the real world, one of my biggest challenges is helping people figure out how to get from A-Z. A is obvious to me. Z is obvious to me (although I'm probably wrong as much as I'm right), but getting someone to understand my reasoning is almost impossible.

[+] mclovinit|10 years ago|reply
I can relate to this. My major was EE and I had similar experiences, but kind of liked diffeq. Fast forward some 25+ years later, I spend all day coding and look to my old math and some new comp sci books for fun. I keep an engineering notepad with different sections in it so I can just open it up and attack problems such as concrete math problems from graham knuth and patashnik or physics problems. Even though I code through business problems on a daily basis using X framework and Y API, I find the rigor involved is not as satisfying as struggling through finding the closed form of some equation. I want to solve a deeper problem, if that makes any sense.

It isn't the answer that I seek in doing this; it's the desire to know why the answer is what it is. I think I have become more interested in learning far after graduating from university.

[+] crackpotbaker|10 years ago|reply
General skill of problem solving seems to stick with you forever.

It's probably because most of your problem solving knowledge is your own invention. Whereas math and programming is your own invention if you solve all the problems by yourself, if you code everything from the start. This gives you the understanding of the problems, and the reasoning/tools to solve it.

I've been dropping in and out of problem solving fields through the years, and I've noticed that my knowledge practically disappears, but my problem solvings skills can adapt to any framework (mathematics, physics, programming) it just takes a little bit of time to re/learn the terminology.

[+] zarkov99|10 years ago|reply
The same is indeed of true of programming, at least in my experience. I took a management/consulting detour that lasted about 18 months and getting back into programming was quite though. I could not focus, could not hold the problem in my head, could not go from design concepts to implementation details. It took me a solid 6 months to get back to my former level.
[+] baby|10 years ago|reply
> I think my point is that you can lose competence in math very very quickly through lack of constant exposure.

This is not that important in my opinion. If you're lacking exposure, it must be because you don't apply math every day, and it won't be a big deal. If you apply math every day? Then you will quickly catch up with whatever field you're using.

If you're in pure math, then none of that matters as well, only proofs do. And lack of exposure will often not harm any of the tricks you learned while constructing/understanding them.

[+] pmarreck|10 years ago|reply
> type theory

Not sure if related to your username, but I have a book on it (that was recommended to me here, in fact) on this topic, which I was curious about due to its implications in the programming field

[+] dingo_bat|10 years ago|reply
>(the one exception is that I always found proving things difficult)

Same here and I have developed a kind of a complex around it. I used to spend hours practicing proofs just so nobody comes to know that I'm terrible at them. I used to find numerical proofs to problems that had simple general proofs.

However, looking at the other replies it seems we both haven't the faintest idea what Math is ;)

[+] datashaman|10 years ago|reply
The same is true of creative writing in general. I've found pieces from my years as a student, which seem to have been written by an alien.
[+] tokenadult|10 years ago|reply
An interesting read. But I think the author should have explicitly written out the point he is really making: you can't be too careful about making your writing clear, even to yourself. I recall reading (I'd point to the book with a link if I could remember in what book I read this) that mathematicians who occasionally write expository articles on mathematics for the general public are often told by their professional colleagues, fellow research mathematicians, "Hey, I really liked your article [name of popular article] and I got a lot out of reading it." The book claimed that if mathematicians made a conscious effort to write understandably to members of the general public, their mathematics research would have more influence on other research mathematicians. That sounds like an important experiment to try for an early-career mathematician.

More generally, in the very excellent book The Sense of Style: The Thinking Person's Guide to Writing in the 21st Century,[1] author and researcher Steven Pinker makes the point that the hardest thing for any writer to do is to avoid the "curse of knowledge," assuming that readers know what you know as they read your writing. It's HARD to write about something you know well without skipping lots of steps in reasoning and details of the topic that are unknown to most of your readers. This is one of the best reasons for any writer to submit manuscripts to an editor (or a set of friends, as Paul Graham does) before publishing.

And, yes, if you think what I wrote above is unclear, as I fear it is, please let me know what's confusing about what I wrote. I'd be glad to hear your suggestions of how to make my main point more clear. I'm trying to say that anyone who writes anything has to put extra effort into making his point clear.

[1] http://www.amazon.com/gp/product/B00INIYG74/

[+] Houshalter|10 years ago|reply
This is a really common experience. See Explainers Shoot High, Aim Low!: http://lesswrong.com/lw/kh/explainers_shoot_high_aim_low/

>We miss the mark by several major grades of expertise. Aiming for outside academics gets you an article that will be popular among specialists in your field. Aiming at grade school (admittedly, naively so) will hit undergraduates. This is not because your audience is more stupid than you think, but because your words are far less helpful than you think. You're way way overshooting the target. Aim several major gradations lower, and you may hit your mark.

This phenomenon has a name, the Illusion of Transparency: http://lesswrong.com/lw/ke/illusion_of_transparency_why_no_o...

Also see some of the other posts there on the issue, it's quite interesting.

[+] tonyedgecombe|10 years ago|reply
It's almost like you want the source code as well as the compiled program.
[+] GreaterFool|10 years ago|reply
I've been working with Haskell* for a couple of years and it is quite often that I work with code that I don't fully understand. I'll come across a terse bit of code, then carefully take it apart to see what it does (by taking bits and pieces out and giving them names instead of passing in using point-free notation and also adding type annotations). Once I see the whole picture, I make my own change and then carefully re-assemble the original terse bit of code. One could ask the question: wasn't the verbose version better? I'm going to lean on the side of no. If I left this verbose and other bits verbose then it would be hard to see the whole picture.

I think doing maths would be better if it was done interactively with software. If equations were code then you could blow it up and look into fine details and then shrink it to a terse form while software keeps track of the transformations to make sure what you write is equivalent. Maybe it's time to add a laptop to that paper pad?

* not arguing anything language specific here except that Haskell makes use of variety of notations that makes the code shorter and more like mahts. More so than most languages.

[+] jholman|10 years ago|reply
All of these arguments are arguments for replacing the mathematics curriculum with video gaming. Games require generalized problem solving (arguably better-generalized than math, and arguably better-transferrable to other domains). Games build character: grit and tenacity, cautious optimism, etc blah blah etc. And games are fun (for many more people than find math fun).

Guess math teachers should start learning to play League of Legends and Pokemon.

Alternatively, I guess we need better reasons than those to teach a subject.

[+] YeGoblynQueenne|10 years ago|reply
Don't laugh it off. Personally, I learned to code by building Magic: the Gathering decks and playing at tournaments at high school. I learned things about resource management, reducing solutions, integrating disparate components into a functional system and so on, and even a bit of probabilities along the way. Not to mention what it did for my ability to concentrate and analyse an adversarial situation.

If you think about it, a lot of education is really a kind of game and games themselves are often educational, usually by accident.

Frex, I think a lot of people would recognise the value of teaching kids to play chess in order to improve their concentration and problem-solving skills. Well, why not more modern board games?

[+] j2kun|10 years ago|reply
Video games are designed for grinding or following a fixed story, and your creativity is completely limited by the possibilities programmed for you. The exceptions to this (minecrafters designing Turing machines, hacking pokemon) are an insignificant fraction that are entirely discovered and engineered by those who understand mathematics and computer science and apply it to the video game.

Why do you think the kinds of problem solving in video games is "better generalized" than math?

[+] pmarreck|10 years ago|reply
Math seems to have a very ephemeral lifetime in the brain. I skipped a year of college once, and when I returned I realized I had to basically abandon any major with a math requirement, because I had seemingly forgotten everything.

I'm currently struggling with an online Machine Learning class (the Coursera one... at the tender age of 43), and I can only take it (so far, at least... just failed my first quiz... fortunately I can review and re-take) because I was rather obsessed with matrices, oh, about 28 years ago. "You mean I can rotate things in an n-dimensional space without using trig?"

[+] baby|10 years ago|reply
> because I had seemingly forgotten everything

graduated in math, let me tell you this is how all my fellow students felt like every semester in every class.

[+] shalmanese|10 years ago|reply
I'm truly shocked by the multiple people in the thread who claim that Math knowledge can be completely erased through as little as a year of non-practice.

For me, Math has always resembled riding a bike more than anything else. Sure, the first few moments, the path is a bit overgrown and all the weeds need to be cleared off but it was always significantly easier revisiting a topic than understanding it for the first time.

For those who forget so quickly, I wonder if you felt like you truly understood it in the first place?

[+] chipsy|10 years ago|reply
It speaks to how finite we are around "knowledge." At the moment we reach understanding, we experience a sophomoric feeling of confidence. But as it fades farther and farther from our working memory, we become less fluent and more hesitant. The emerging pattern becomes one of "I can understand these interesting concepts, but it takes a lot of work and they don't last, so I have to choose to understand practically and situationally." And then in the end our bodies and personalities turn out to control our minds more than we might want to believe, as we turn away from one problem and towards a different one on some whim, never able to view the whole.

As I recognize this more in myself, I am more inclined to become a bit of a librarian and develop better methods of personal note-taking and information retrieval, so that I lose less each time my mind flutters. At the moment that's turned into a fascination with mind maps - every time I need to critically-think through a problem I start mapping it. In the future I might look into ways of searching through those maps.

[+] timroy|10 years ago|reply
You might also check out spaced repetition software. I've started putting anything I want to remember for the long haul into org-drill, an SRS package for Emacs, though Anki and Mnemosyne are more well known. I even schedule articles that I want to return to.
[+] jimbokun|10 years ago|reply
When I was taking machine learning courses and reading machine learning textbooks a few years ago, I have fond recollections of the derivations from Tom Mitchell's textbook.

http://www.cs.cmu.edu/~tom/mlbook.html

Where other textbooks tended to jump two or three steps ahead with a comment about the steps being "obvious" or "trivial", Mitchell would just include each little step.

Yes, you could argue it was my responsibility to remember all of my calculus and linear algebra. But it is kind to the reader to spell out the little steps, for those of us who maybe forgot some of our calculus tricks, or maybe don't even have all of the expected pre-requisites but are trying to press on anyway. Or actually know how to perform the steps but have to stop and puzzle through which particular combination of steps you are describing as "obvious" in this particular instance.

I just remember how nice it was to have those extra steps spelled out, and how much more pleasant it made reading Tom's book.

So thanks, Dr. Mitchell!

[+] ikeboy|10 years ago|reply
> I have attempted to deliver [these lectures] in a spirit that should be recommended to all students embarking on the writing of their PhD theses: imagine that you are explaining your ideas to your former smart, but ignorant, self, at the beginning of your studies!

-Richard Feynman

[+] nanis|10 years ago|reply
First, I am not sure Functional Analysis is as obscure as some other areas. But, second, this just shows, once again, that one ought never to use "clearly," "obviously" etc in proofs.

It is the same principle as writing programs so they are easier for the next programmer to read. That person may be you.

[+] jedberg|10 years ago|reply
> Beyond scarcely stretching the boundaries of obscure mathematical knowledge, what tangible difference has a PhD made to my life?

The same thing a bachelors degree does for everyone else. You've proven that you can start, stick with, and complete a task that takes multiple years and a complicated set of steps.

[+] tluyben2|10 years ago|reply
Which feels like a 'life is suffering' weirdness. I did it and never needed my diplomas for anything. Maybe I benefited somehow but I was a coder and entrepreneur before that; I had a software company before uni. It was over 20 years ago and in hindsight I find it pretty pointless and a waste of time. Maybe I became a better problem solver on some level but unless you are going into research or are not a self starter I would not recommend it.
[+] daniel-levin|10 years ago|reply
It also supplies the degree holder with a social signal which says: I can buy into the establishment. I say this with my newly minted BSc. in hand. In the process of obtaining it I realised that at a minimum, all you have to do to get a degree is satisfy the course requirements. I took some shitty courses that I knew were largely wastes of time [0]. Doing them anyway equips me with proof (degree) that I can submit to a system I disagree with if I have to. This excessively cynical attitude is the product of being a cog in a massive degree making machine whose graduates are on average, I'd say, mediocre [1].

[0] I'm looking at you, three years of 'numerical methods', which reduced to memorising algorithms to perform by hand.

[1] I count myself amongst the absolutely useless 'applied mathematicians' from my class.

[+] Someone|10 years ago|reply
I would hope a significant part of the reason people pursue a bachelors degree and, more so, a Ph.D. is because they enjoy doing it.
[+] admirethemeyer|10 years ago|reply
I had several exceptional Math teachers throughout my education, but the piece of advice that stuck with me the most is:

"If you're not sure what you want to do with your life, study Math. Why? Because Math teaches you how to think."

The skills I learned studying Mathematics have been invaluable, the Math that I currently am able to recall is abysmal.

The author did a great job calling this out succinctly: Mathematics is an excellent proxy for problem-solving

[+] hnarayanan|10 years ago|reply
As a PhD in spplied math, I must say I concur wholeheartedly with the author. The true value of a PhD in a quantitative field is less about specific domain knowledge, and more in the set of general problem solving skills you pick up.
[+] option_greek|10 years ago|reply
Math is the shadow universe of physics. Most theorems may not look like they are useful for anything real world till someone is able to peg all the variables to real world. And then as if by magic we realize we already know how how the real world behaves. Till someone does this pegging, the theorems sit idle waiting for problems to solve. I believe this is actually a good thing. We are letting people find solutions before someone finds problems to use them for.
[+] KKKKkkkk1|10 years ago|reply
If you find yourself saying that you gained nothing from your education other than soft skills, maybe you should have passed over the functional analysis part and put the effort directly into learning said soft skills. I'm in the same boat, and I can see how it can be hard to admit this.
[+] analog31|10 years ago|reply
My PhD is in physics, from 20+ years ago, and I would not be able to explain or defend it today without studying it for a while. I've even forgotten the language (Pascal) that I wrote my experimental control and analysis code in.

My experiment formed the basis of a fairly productive new research program for my thesis advisor, so at least it lived on in somebody's brain, but not in mine. ;-)

[+] sbardle|10 years ago|reply
A PhD isn't so much a test of intelligence as it is of perseverance.
[+] analog31|10 years ago|reply
I think it's hard to generalize about PhDs because of the huge diversity of experiences. A PhD student should have a lot of freedom to define for themselves what they get out of their education. They are responsible adults and if they wanted a "marketable skill," they would have finished with a BS or MS. Predictably, the flexibility of PhD education doesn't always happen, and even when it does, it's both a blessing and a curse.