Live data from Hacker News

I no longer understand my PhD dissertation

medium.com

221–230 of 281 posts

Re: I no longer understand my PhD dissertation

#221

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.

This raises an interesting question. Is the PhD process the best way to acquire those general problem solving skills? Or is there a better way to learn them?

In general (and in my opinion), this is not the best way to acquire such skills. But it is a wonderful way to spend 5–7 years in a relatively stress-free environment while you can exercise your brain, explore different avenues, and pick up some had skills and stick–to–itiveness along the way.

Re: I no longer understand my PhD dissertation

#223
post #141
post #14

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 sm…

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-e…

While "easy programming tricks" are not all it takes to understand difficult mathematics, writing a math paper like good code makes it drastically easier to understand what's going on.

E.g., encapsulation - given a theorem with a highly technical proof, but ideas from the proof are not super important, hide the proof in an appendix. This is directly analogous to private functions which are only used to power a public one.

Naming lemmas is also helpful, although not sufficient.

Mathematicians aren't dumb. But they do have a set of traditions and a rhetorical style which is often blindly copied. Also, most mathematicians haven't been exposed to good software engineering practices - consider how few use git and instead just email around "paper_v3_chris_edits.tex". Having worked in both the math world and the CS world, math folks can learn quite a bit from software.

(And vice versa - e.g., I just wrote a blog post about how some abstract math solved a real software engineering problem for me: http://engineering.wingify.com/posts/Free-objects/ )

Re: I no longer understand my PhD dissertation

#224

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 b…

I disagree. A mathematical result doesn't have to have direct application to the real world for it to be useful. Drawing analogies between the real world and mathematical concepts is very powerful. I have a good example:

Number theorists (amongst others) are seemingly obsessed with bounding things. There are entire books written about obtaining and then refining bounds - which appear to be nothing more than inequalities. There is great real-world value to be derived from seeing 'inequalities' as tools to leverage. Brian Kernighan once commented that controlling software complexity is the essence of programming [0]. I believe similar thinking applies to other aspects of software engineering, and product and business development. If you can take a hard problem, and bound its complexity, then you can say "the problem is no more complex than this". This is very useful. The chief value proposition of many SaaS businesses is the trivialisation of the upper bounds of complexity of hard problems. For instance, for many developers, Heroku makes the complexity of deployment very low.

[0] http://quotes.cat-v.org/programming/

Re: I no longer understand my PhD dissertation

#225
post #141

Earlier quoted context omitted.

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-e…

It's also the jargon. I remember years ago telling a coworker that I was an ACM member and subscribed to the SIGPLAN proceedings. He looked at me and with all sincerity asked, "You can understand those things??" To which I responded, "About half," but I totally sympathized with his question. Both Math and CS need the reincarnation of Richard Feynman to come and shake things up a bit. There's too much of the 'dazzle t…

> "If you can't explain it simply, you don't understand it well enough." is my new favorite Albert Einstein quote.

It’s also one of his more moronic quotes. Certainly on a very abstract, dumbed-down level everything can be explained simply; sure, if you cannot give your parents a rough idea what you’re doing, you might want to look into more examples. But there are plenty of things which require a very extensive basis to be understood thoroughly.

For example, it is very easy to summarise what a (mathematical) group is and for anyone with a basic understanding of abstract maths, it will be understandable. It’s also very simple to find some examples (integers with addition, ℝ/{0} with multiplication etc.) which might be understandable by laypeople, but you will either confuse the latter or only give examples and not the actually important content.

Further, when you have “simply explained” what a group is, can you go on and equally “simply explain“ what a the fundamental representation is and how irreducible representations come about? You just need a certain level of knowledge (e.g., linear algebra) already and not every paper can include a full introduction into representation theory.

Re: I no longer understand my PhD dissertation

#226
post #3

> 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.

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.

Re: I no longer understand my PhD dissertation

#227
post #210
post #196

Earlier quoted context omitted.

No need to apologize for different opinion. IMHO comments aren't there for newcomers. You are a newcomer for a month or 2. You are a developer for years most often. Besides, how is //Steve in accounting asked me to put this in foobifyTheBaz(bazPtr, foobificationParams); more helpful for newcomers than just foobifyTheBaz(bazPtr, foobificationParams); Comments answering "why" are very important when bugfixing/changing…

So what you actually write is // We foobify the baz in order to ensure that both // sides of the transaction have their grinks froddled. // This was a request from Steve in Accounting; // see issue #4125 for more details. so that (1) if you'd otherwise be wondering "wait, what they hell are they doing that for?", you get an answer (and, importantly, some inkling of what would need to have changed for removing the cod…

Changed formatting isn't a problem IMHO. You can ask git to skip whitespace changes, and you can (and should) enforce consistent formatting anyway to make history cleaner. And even if for some reason you don't want to do either - you can just click "blame previous revision" if you do encounter "changed formatting" revision.

I envountered it a few times and it was never a big problem.

The problem with comments in the code is - they have to be maintained "by hand", and they are often separated from the context after a few independent changes.

When you change a function called inside the foobify function because of another change request you will most probably forget to check all the calling places all the way up the callstack and fix the comments refering to foobify function. And then comments may start to lie.

I encountered lying comments a few times and it usually is a big problem. I started to ignore comments when debugging, and I'm not the only programmer that I know that does that.

I do think there is a place for comments in the code, for example for documentation of some API, but IMHO commit messages are the perfect place for explaining reasons of particular change, and I prefer not to repeat that.

http://cdn.meme.am/instances2/500x/4310914.jpg

Re: I no longer understand my PhD dissertation

#228

Earlier quoted context omitted.

I don't know... I'm taking a theory of computability class right now and I'm sure glad that the pumping lemma for regular languages is called "the pumping lemma for regular languages"

But isn't that an attempt at a "descriptive" name? The intuition for the person who discovered this lemma, clearly envisioned the underlying process as a device pumping out new strings belonging to the language.

I took a brick and mortar automata class a long time ago and a classmate who clearly wasn't reading the text before lecture, insisted the prof called it the "plumping lemma" because it was about growing wider strings. That might have been the only funny thing that ever happened in automata class, unfortunately.

Education by satire / humor is a sadly under-explored field. "A satirical approach to linear algebra"... not sure if I'd kickstart support that, or turn around and start running. In the eternal spirit of "anything that sounds interesting and impossible is a great startup opportunity" I propose that someone ... etc etc, you know.

Re: I no longer understand my PhD dissertation

#229
post #199

Earlier quoted context omitted.

> Programs deal with specific things, types and data that you manipulate and see with your eyes. Maths deal with abstract concepts for which finding examples can be pretty difficult. Have you forgotten the pains that you went through trying to understand the difference between values, pointers and references, lexical and dynamic scoping, static and dynamic typing, and the like? Can you see them with your eyes? Have y…

I'm not saying those concepts are not difficult. But values, pointers and references are something that relate to memory. You can simulate in a paper how is a value or a pointer managed in a program. Same with scopes and static typing. There are specific examples for all of those. Some concepts in mathematics are way above the abstraction level that you mention. For example, the projective plane, or nowhere-different…

True. But still, I think the problem lies more in the fact that mathematicians skip too many steps in their prrofs (see another comment of mine) than the inherent abstractness of mathematics.

Re: I no longer understand my PhD dissertation

#230
post #190
post #141

Earlier quoted context omitted.

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-e…

> 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. Mathematics with a solid logic foundation has also existed only for the past century, and writing programs is actually equivalent to doing a mathematical proof as some have already pointed out. The actual problem is that when progr…

> writing programs is actually equivalent to doing a mathematical proof

Only in the sense that writing in brainfuck is equivalent to writing in Python...

Post reply on HN