simontatham,
@simontatham@hachyderm.io avatar

Why learning about computers is like a Metroidvania videogame:

Early on, you encounter huge walls of text – source code, documentation, log files, whatever – which you don't understand most of. You pick out the one part you need right now.

Later, you gain new skills and knowledge that would have let you understand more of it.

So, just like in a Metroidvania, it's worth going back over earlier levels, using your new skills to get more benefit from the places you've already been!

simontatham,
@simontatham@hachyderm.io avatar

I had another 'why SW dev is like a videogame' analogy, but I think the era for it might have passed.

You save the game before and after a hard bit like a boss fight. Before, so if you mess it up, you can retry easily. After, so once you've done it, it doesn't become undone.

The same policy applies to 'git commit'! Commit before trying a tricky code change, and after you get it to work. Local git commits are your saved-game slots.

But now too many games auto-save, so this doesn't land well.

QuotidianEnnui,
@QuotidianEnnui@hachyderm.io avatar

@simontatham savegame analogy still applies in the context of most current RPGs (PC)

You save just before you make a 'big decision' in an RPG, only I would say git branch + commit is the analogy you're using.

(not quicksave, a save where you explicit name it a-la "decide to be evil")

gray17,
@gray17@mastodon.social avatar

@simontatham I have a cron job that automatically git commits every 10m on personal repositories (where I don't have to make legible pull requests). I might extend it someday to all repositories, since I usually end up doing "rebase -i" for pull requests anyway

simontatham,
@simontatham@hachyderm.io avatar

@gray17 that sounds terrifying, just imagining it going off at the wrong moment, like in mid-rebase, or while you were in the middle of typing a command referring to HEAD!

gray17,
@gray17@mastodon.social avatar

@simontatham right, that's why right now it's opt-in for personal repos where I don't do anything complicated with git. Extending it will require adding some more paranoia about leaving it alone during various procedures

gray17,
@gray17@mastodon.social avatar

@simontatham the reason I do it at all is that I've discovered it makes me much less reluctant to do deletions and refactoring, because I know I can always find the previous state if I really need it. It was a really noticeable change in my velocity

denisbloodnok,

@simontatham I hope this does not mean when working on a roguelike I am not permitted to use version control.

RogerBW,
@RogerBW@emacs.ch avatar

@denisbloodnok @simontatham Programming for Real Men? (Also there is a cat playing with the extension strip that the computer's plugged into.)

Sh41,
@Sh41@androiddev.social avatar

@simontatham I should write a piece on how I see software engineering more as a Zelda or Monkeys Island type of game 😂

simontatham,
@simontatham@hachyderm.io avatar

@Sh41 Hey! Listen!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • DreamBathrooms
  • mdbf
  • ethstaker
  • magazineikmin
  • GTA5RPClips
  • rosin
  • thenastyranch
  • Youngstown
  • osvaldo12
  • slotface
  • khanakhh
  • kavyap
  • InstantRegret
  • Durango
  • provamag3
  • everett
  • cisconetworking
  • Leos
  • normalnudes
  • cubers
  • modclub
  • ngwrru68w68
  • tacticalgear
  • megavids
  • anitta
  • tester
  • JUstTest
  • lostlight
  • All magazines