• Oh man… I remember reading this years ago and aspiring to be the Fantastic Programmer.

    This did NOT age well. Seriously consider some of the traits that this article is describing and play the game “Are We Describing a Programmer or a Zuckerburgian Psychopath?”

    • A tendency to suggest wacky and unrealistic solutions in meetings
    • Routinely applies for an extension to file taxes
    • Antagonistic when asked to maintain code for
      backwards-compatability
    • Dropped out of high-school, university, law or medical school because they didn’t see the point anymore
    • Disinterested by the outcome of elections
    • Cashes-in their 401k to fund their next venture
    • Has tried every pick-up line there is and has the slap-marks on his cheeks to prove it
    • Owns swag from Enron
    • They suddenly pause and stare into space in the middle of a conversation, then abandon you to hurry back to their terminal with no explanation
    • A destructive pursuit of perfection
    • Contempt for delivery dates
    • Substantial refactoring on the eve of a deadline
    • Man, I used to really like browsing the stuff at ThinkGeek. Even bought a few things. Now that it’s owned by… I wanna say GameStop?.. it’s ceased to be interesting to me. I liked things like the laundry basket that looked like a radioactive barrel, the shower gel that looks like a blood bag… that kind of light-hearted novelty stuff. But the new owner just gutted all the interesting content, and it’s just all IP collectables now.

      It’s been long enough I forgot bout ThinkGeek. Damn. Wish something like it were still around.

  • This reads very much like a tech bro wrote it

    The writer assumes the reader is a man also. They use he and they to refer to programmers, but never she. The only time she is used in this entire document is referring to a woman delivering your code:

    The outcome you should be thinking of is a lady who’s going to get fired if she doesn’t deliver the output of your program at 4:59pm sharp.

    •  DaSaw   ( @DaSaw@midwest.social ) 
      link
      fedilink
      English
      211 months ago

      Back in 2014, “he” was still considered by many to double up as a gender neutral singular pronoun (which was the standard in English for at least a century). The rehabilitation of “they” as a gender neutral singular is very, very recent. I had to be actively taught not to use it that way back in the late '80s.

      This, of course, was the proscriptivist position. Kids who “don’t know any better” have always used a gender neutral singular “they” until their teachers told them not to.

    • Yeah I don’t agree with “bulldozer code” bit. Splitting a long function into smaller parts doesn’t have to be about reuse. It’s useful to do it for clarity. As a single function grows, the number of local variable often grows as well and eventually you end up juggling tons of variables and the slightest change ripples three hundred lines further down. Break it down into a handful of steps with a number of arguments you can count on your fingers and it suddenly becomes so simple. Same about deep nesting of loops/conditions.

      Rule of thumb is a function needs to fit in my head - so if I stick my face on the screen and the function’s code can still be partly seen, it’s time to break it down.

      • The main thing I encourage here is: If you’re breaking up longer functions into more smaller ones that are really only used in this context, don’t mix them into the same file as functions that are general use. It makes code super confusing to navigate. Speaking from experience on an open source project I contribute to.

      • My problem is I’ve never yet really seen a project through, or contributed to FOSS to experience that, though I really want to. I feel like I’d get overwhelmed, and can’t possibly contribute anything of value, and would just get in the way. I know it’s not true, there are endless projects of varying complexity, and I could certainly learn an existing codebase if I found the confidence to try.

        • Some (larger) projects sometimes have a form of mentoring and “good first issue” to get started.

          Another good way to get involved is to report any issues you face with open source projects you use (obviously search for similar reports first). This way you can help debug bugs or suggest improvements and get some feedback.