Mastery --- Justin Ely

Sep 27, 2012 • Justin Ely

Hmm, only five right now. I’ll add a few others as they come to me.

How can I write code more like a software developer and less like a scientist playing on a computer?

  1. Novice: Write better code: no two letter variables, useful comments.
  2. Intermediate: Organize code better: functions, classes.
  3. Advanced: Make reusable code, organize into pipelines.

How do I improve my efficiency?

  1. Novice: Make code more readable, lower amount of re-learning needed with each revisit.
  2. Intermediate: Create libraries of reusable code.
  3. Advanced: Version control my work.

How do I know that my results are “correct”?

  1. Novice: Check entire code against known situations.
  2. Intermediate: Test individual functions as I write them.
  3. Advanced: Use test suites and testing frameworks to test continuously.

**How do I identify and fix the bugs in my code?
**

  1. Novice: Print statements
  2. Intermediate: De-buggers and test suites.
  3. Advanced: Automated, continuous test suites.

*How can I make my work more trustworthy?

  1. Novice: Provide code upon request.
  2. Intermediate: Provide version controlled code, data, upon request.
  3. Advanced: Keep code, results, public. Publish location along with papers.