Trial and error

Like many of you I watched The Queen's Gambit and loved it. The settings of scenery and decors in 1960s were mesmerizing.  

And like many of you, this rekindled the interest for chess in me. Growing up, I didn't play chess much, but my younger brother got into it as a middle school student. He bought books detailing chess games and studied them. He got a city-wide championship and such. I didn't get much into it, because I guess I didn't think of it as a serious enterprise and didn't want to expend too much energy into it. 

I had this Android chess app on my phone, and I started playing with that instead of my downtime Sudoku playing. In this chess app, it is very easy to undo moves, and try other moves. I play against the machine, and yes undoing is cheating, but I use it a lot to explore different scenarios at critical points in the game. I have been very surprised about how much this accelerated my chess learning. I was able to make progress through several hardness levels thanks to the unreasonable effectiveness of easy trial-and-error for learning.

Many things in life, we don't get to have a do over. But, for many things, especially in software profession, we are afforded inexpensive trial-and-error. And it is a force multiplier when you can do inexpensive trial and errors, and when the cost of failure is low.

For this reason, it makes a lot of sense using a version control system like git for most projects and even for writing.


Short git tutorial

This is mostly for my own notes, so I have this handy to look up from my blog when I need. 

To stage & commit 

  • git status
  • git add <files>
  • git commit -m "Commit message"

To update from remote

  • git pull

To branch and merge back

  • git branch <newb>
  • git checkout <newb>
  • git checkout master 
  • git merge <newb> 

To go back to a previous commit/snapshot of project

  • git checkout <commit-hash>


To see all the commits that were made for our project: git log. There is also git rebase.

If you need a hands-on introduction, this is good. The notes are here.



Comments

Popular posts from this blog

Foundational distributed systems papers

Your attitude determines your success

Progress beats perfect

Cores that don't count

Silent data corruptions at scale

Learning about distributed systems: where to start?

Read papers, Not too much, Mostly foundational ones

Sundial: Fault-tolerant Clock Synchronization for Datacenters

Linearizability

Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3 (SOSP21)