In the steps that lead to the development of clean code you should think of
- How to structure a code in terms of functions (use IDEs or advanced text editors like sublime or atom)
- How to make a module
- How to read input data flexibly from the command line or files
- How to create graphical/web user interfaces
- How to write unit tests
- How to refactor code in terms of classes (instead of functions only)
- How to conduct and automate large-scale numerical experiments
- How to write scientific reports in various formats (LaTeX, HTML, doconce)