[HN Gopher] Be sceptical of your own work (2009)
       ___________________________________________________________________
        
       Be sceptical of your own work (2009)
        
       Author : creer
       Score  : 79 points
       Date   : 2023-08-15 18:21 UTC (1 days ago)
        
 (HTM) web link (terrytao.wordpress.com)
 (TXT) w3m dump (terrytao.wordpress.com)
        
       | glonq wrote:
       | My favorite thing is stumbling upon a piece of project
       | documentation, exclaiming _" who the hell wrote this crap?"_,
       | then discovering that it was me.
        
         | LanceH wrote:
         | I've had this happen enough I don't use git blame.
         | 
         | Only once have I looked at something and thought, "cool
         | solution, I would never have thought of that", but apparently I
         | did.
        
       | renewiltord wrote:
       | The classic case is if I write tests, then write code and the
       | tests pass first time I better break the code and make sure the
       | tests definitely fail for a good reason.
        
         | delusional wrote:
         | If you want a structured and rigerous version of this it's
         | called mutation testing. It can be quite slow, but also very
         | informative when evaluation how well tested a piece of code is.
        
       | creer wrote:
       | The counterpoint in software is that it's still useful to
       | temporarily solve a narrow problem - and never need to return to
       | that issue. How do you denote that in your code?
       | 
       | I have used multiple dispatch where a sub-type is deliberately
       | handled, and the rest is left with "Nice try, you would have to
       | implement that first", and tests in library functions with the
       | same rude response. And I have used strictly defined grammars on
       | the input. ... and I still have lots of TODO list items not
       | correctly protected from in the code. What else do you use in
       | non-trivial cases? Much deeper or beyond program argument checks?
        
         | JohnFen wrote:
         | I use a combination of things, depending on the nature of the
         | temporary measure.
         | 
         | I use TODO comments to document that this part of the code
         | needs to be revisited.
         | 
         | I write a warning to the log file whenever the temporary code
         | executes.
         | 
         | If there are things left unimplemented, but there's an
         | interface to them, then I put code in that's guaranteed to fail
         | at runtime. If the language is C or C++, I'll use something
         | like assert(false).
        
         | beebmam wrote:
         | What I do:
         | 
         | 1. Add TODO items when I'm in flow
         | 
         | 2. When I'm not in flow, I search TODO items in code/notes I
         | own
         | 
         | 3. Add a basic task in a project management tool with no
         | estimations for each TODO item
         | 
         | At least then it's in a system to be triaged at some point.
        
           | nomel wrote:
           | For me TODO is more literal, reserved for things that must be
           | done. So, I use SMELL if it's unsane. If it's somewhat
           | broken, I use BUG, and file a low priority issue. For both, I
           | put long explanations, in the code, for the future reader.
        
       | [deleted]
        
       | weinzierl wrote:
       | _" Ninety percent of what I do goes in the trash anyway. But
       | that's part of the job. I'm not going to show that to people,
       | because if I don't like it, how can I expect anyone else to like
       | it?"_
       | 
       |  _" I can understand when I like it and others don't, but if I
       | don't like it myself, I don't want to offer it to others, because
       | that risks that they might actually like it."_
       | 
       |  _" Jean Patou, the designer, the fashion designer, from the 20s
       | once said:"_
       | 
       |  _" Never make an ugly dress, someone might buy it."_
       | 
       | -- Karl Lagerfeld
        
       | arduanika wrote:
       | "The first principle is that you must not fool yourself and you
       | are the easiest person to fool"
       | 
       | - Some guy who showed up as an extra in the Oppenheimer movie,
       | playing the bongo drums
        
         | kurthr wrote:
         | Shirley, you're joking!
        
           | fm2606 wrote:
           | I'm not and don't call me Shirley
        
       | creer wrote:
       | One such direction software people ARE familiar with is
       | refactoring. At some point we do recognize we have a mess on our
       | hands and it's time to rewrite it on more sane foundations.
        
       | dexwiz wrote:
       | Sounds like great advice when working on the bleeding edge, but
       | kinda terrible for general use. If you are constantly undermining
       | your own self confidence in routine tasks be prepared for a
       | depressive episode.
        
         | IggleSniggle wrote:
         | I think that would depend on whether you view your work as
         | producing "argument proof results" or just "results." In other
         | words, producing high volume low-quality "trash" may easily
         | undermine self confidence more than producing low-volume high-
         | quality "diamonds."
         | 
         | In either case, the way you frame it matters much more than the
         | process. But I can agree that _expecting_ either  "high quality
         | high volume" or aiming for "low quality low volume" are both
         | likely paths to a depressive episode.
         | 
         | Personally, I'd rather small flawed diamonds. The fact that
         | they are diamonds nonetheless gives me pride. The fact that I
         | can produce greater quantities of them than flawless gems keeps
         | me employed (which also gives me self-confidence).
         | 
         | Ultimately very subjective, regardless
        
         | tomjakubowski wrote:
         | > If you are constantly undermining your own self confidence in
         | routine tasks be prepared for a depressive episode.
         | 
         | I disagree that self-skepticism implies undermining your own
         | self confidence. With regular practice, it should bolster your
         | confidence in your ability to find mistakes (a valuable skill),
         | and in your ability to produce final outputs with fewer errors.
         | 
         | I guess it's in how you phrase the skepticism: are you
         | skeptical of your ability to do the work, or are you skeptical
         | that your work is free of mistakes? There is a difference.
        
           | aatd86 wrote:
           | Agreed. "The goal is to get to the truth, the goal is not
           | about winning arguments."
           | 
           | Being confident in being able to unravel truths, being able
           | to improve but skeptical of current self because of potential
           | ingrained biases and potential cognitive faillability.
        
           | haswell wrote:
           | To me, skepticism is an _orientation towards_ not believing
           | something. Kind of a posture or position. This, to me, is
           | what seems like a bad way to go about life.
           | 
           | Maybe a better way to frame this is that someone should be
           | honest with themselves. Be aware of their fallibility and use
           | that awareness to inform decision making.
           | 
           | There is definitely a dark side to being overly skeptical by
           | default. It can harm or hinder relationships, unnecessarily
           | reinforce existing patterns/beliefs and deepen blind spots,
           | and I think a failure mode involves obsessive compulsive
           | tendencies + anxiety about the quality of one's work.
           | 
           | I've been on the "clinically unhealthy" side of this mindset,
           | and it's ultimately about balance and framing. The same can
           | be said for optimism, which can become just as dysfunctional
           | if not balanced with a healthy dose of reality.
        
         | hinkley wrote:
         | Critique the work of others as well. A lot of impostor syndrome
         | goes away when you realize that 80% of the people who you thing
         | are better than you are cutting corners you won't, and that
         | takes up time. Someone else is cleaning up after them.
        
         | creer wrote:
         | Even in day to day programming, it's too easy to throw
         | something together and see it work and call it a day. A dose of
         | scepticism toward a "solution" is healthy. It's not like
         | software doesn't come with bugs grossly often. Probably grounds
         | for extra self confidence even.
        
           | JJMcJ wrote:
           | Missing cases, the "Oh, it does fail if the size of the input
           | is divisible by 256" feeling.
           | 
           | Or the O(n*this-exponent-is-way-too-large) algorithms that
           | seem fine with a ten item input but not so nice with 10,000
           | items.
           | 
           | Or the incomprehensible build script that you (meaning me, of
           | course) just kept adding things to with no systematic naming
           | or sections.
           | 
           | Just three that have bitten me in recent memory.
           | 
           | Even the simplest and most routine tasks can get messed up
           | sometimes.
        
       | tiffanyg wrote:
       | If anything is evident from the internet, and HN as an example,
       | the lineage of "Ancient Skeptics"* is as extinct as Jimmy Hoffa.
       | 
       | Anyway, as the great philosopher Rene Descartes said, regarding
       | "skepticism": I think, therefore, I put des cartes before da
       | horse.**
       | 
       | * https://plato.stanford.edu/entries/skepticism-ancient/
       | 
       | ** This comment is bad, and I should feel bad ...
       | https://youtu.be/jG2KMkQLZmI
        
         | [deleted]
        
       | syats wrote:
       | This article contains an excellent description of the work of a
       | mathematician. It should be part of any curriculum in the field.
        
         | creer wrote:
         | The discussion notes are awesome too. Lots of examples raised.
        
       | lacoolj wrote:
       | isn't the word "skeptical"?
        
         | JohnFen wrote:
         | Both spellings are correct.
        
       ___________________________________________________________________
       (page generated 2023-08-16 23:00 UTC)