March 16, 2016

Anki Deck for Systematic Program Design

I want to know what skills I can work on to write elegant code. In particular, I want to know the secret sauce to making a comprehensive project I can show off to people

Methods: I searched an edX course's materials for some causal intuitions I could reinforce. (Background understandings, like "If I get X right then Y will go a little more smoothly".) I then stuck my insights into an Anki deck to be digested at a later date.

Results: Anki Deck on Google Drive (UPDATE: 4 months later Revised Deck)

Good cards require personalization. Results may vary.

Random sample 4/49 cards
Anki card: Why bother running code that you know doesn't work yet? ... to catch little mistakes before they build upA self-referential type must have at least two cases: a reference and a base case.Anki card: when should I first try to run my program? ... as early as possibleAnki Card: Function stub means... a dummy function that returns the right type value. e.g. def add_numbers(n1, n2): return 0
An aside: taking snapshots with the intent of making them public is a really good way to catch mistakes.

Sanity Checks:
Ask [programmer friend] to look over my cards
Try the following the "recipes" on a practice programming problem
Ask people on my blog for feedback

Followups:
Observe how many cards I've deleted, marked, suspended, or edited in three months.
I hit my comprehension limit partway through, maybe read it again after I've reviewed the deck.

----UPDATE July 11, 2016:
4 months later, I still have 49 cards. I've modified 31 of them. Here is the Revised Deck.

No comments:

Post a Comment

Want to give nice feedback, and don't know what to comment on? Look at the sidebar for some ideas.