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?
- Novice: Write better code: no two letter variables, useful comments.
- Intermediate: Organize code better: functions, classes.
- Advanced: Make reusable code, organize into pipelines.
How do I improve my efficiency?
- Novice: Make code more readable, lower amount of re-learning needed with each revisit.
- Intermediate: Create libraries of reusable code.
- Advanced: Version control my work.
How do I know that my results are “correct”?
- Novice: Check entire code against known situations.
- Intermediate: Test individual functions as I write them.
- Advanced: Use test suites and testing frameworks to test continuously.
**How do I identify and fix the bugs in my code?
**
- Novice: Print statements
- Intermediate: De-buggers and test suites.
- Advanced: Automated, continuous test suites.
*How can I make my work more trustworthy?
- Novice: Provide code upon request.
- Intermediate: Provide version controlled code, data, upon request.
- Advanced: Keep code, results, public. Publish location along with papers.