Another Classy week down at TIY.
After more refactoring practice, we learned how to use classes to group methods with similar attributes together. For homework, we built a program to parse data transactions from a store and write functions to do some basic statistical analyses. It was the first time I had a taste of what it feels like to build a useful piece of software whose functions are organized in such a way that feels intuitive not only to the user, but also to someone else looking at my code.
The other theme of the week was Test Driven Development, a type of software development that involves writing tests for each component of a program BEFORE the code is written. Then you run the test which is doomed to fail, and let the resulting error message guide you toward writing fail-proof code. This seemed like kind of a crazy backwards process to me at first, but in practice I am realizing how powerful a tool it is for crafting a thorough blueprint for a piece of software. It forces the developer to think through exactly what she wants the program to be able to do at a high level before jumping into the code. This will require a lot more practice in writing tests and deciphering error messages, but I’m looking forward to incorporating this more rigorous method into my process.
Looking forward to jumping into some web stuff next week, then putting our skills to the test at Durham’s National Day of Civic Hacking!
Finally, I’ve decided to bite the bullet and start learning Vim, which is powerful text editor that allows you to stay on the keyboard between writing/editing code and navigating the console. I’m already feeling the drag of clicking around in Atom and Sublime Text and want to join the tier of programmers whose workflow flows almost at the speed of thought.