The Iron Yard – Week 2

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.

tdd

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.

vim

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s