Round 3: Carlos Anderson

Sep 26, 2012 • Carlos Anderson
  1. How do I make my code more readable (not spaghetti code)?
    1. Novice: Comment code, better variable names
    2. Intermediate: Split up code into modular functions
    3. Expert: Refactor code into decoupled modules, perhaps create a library
  2. How do I minimize bugs in my code?
    1. Novice: Use print statements to check program
    2. Intermediate: Check for boundary conditions in code, use assert statements
    3. Expert: Unit testing, debugger, code tracing
  3. How do I collaborate (computer code) with others?
    1. Novice: Coordinate when each person can edit code, e-mail updated code back and forth
    2. Intermediate: Use a version control system in a basic way
    3. Expert: Use more advanced features of a VCS, like branching, merging, and tagging; use issue tracking
  4. How do I organize my data files?
    1. Novice: Dump all files into one directory
    2. Intermediate: Organize files into directory structures manually
    3. Expert: Use the shell to automatically organize files into directories
  5. How do I modify my raw data into a different format?
    1. Novice: Use Excel or a text editor to manually re-format data
    2. Intermediate: Use some command-line tools, like cut and paste
    3. Expert: Use awk, sed, or a programming language to automate conversion
  6. How do I search through my data?
    1. Novice: Use a program’s find tool
    2. Intermediate: Simple use of grep
    3. Expert: Use regular expressions