Thursday, January 29, 2015

Week 4 - Working with Partners

This semester is the first time I've had to labs for a programming course. For last semester in CSC108, I always chose to work on assignments alone. My main concern was that I barely understood how I was going to implement my code, so I didn't want to become further confused with someone else's suggestions. Since I've been working with a partner in the labs, however, I've found the process pretty encouraging. When we're both typing out code, we have twice as many eyes to catch the little errors we make like the wrong kind of brackets, forgetting parentheses when creating an instance of a class, etc. Also, I feel more confident with a class' implementation when I can discuss with someone else how that code should work. Sometimes, we're not sure what the implementation should be from the get go. In those cases, we have to combine our knowledge to figure out the problem. We're also more honest when we become stuck. If I'm programming alone and I become stuck on a certain function, I stubbornly struggle with it for a while without making any progress. When there's two people both stuck, I feel like they can quickly admit their stuck and then figure out why faster. All-in-all, these labs have been a positive experience for working with someone.

Thursday, January 22, 2015

Week 3 - Why Geeks Should Write

In this blog post, I'm going to talk about geeks and why they should write. Now when I say "geeks", I'm not referring to videogame geeks, birder geeks, or Magic the Gathering geeks. Specifically, I want to narrow my discussion to computer geeks or software developers (or "devs" for short). So why should devs write? They should write so that they can communicate with other human beings such as other devs they are collaborating with or non-devs they need to talk to. Let's say a team of developers are working on a game, and one of the devs is responsible for debugging someone else's code. If the dev who originally wrote the code didn't leave comments describing how their code works, it will take the dev trying to fix the code a lot longer to find the problem. The next day, one of the designers might ask  the development team something that's completely infeasible for the scope of their project. The development team will have to explain to the designers (possibly in writing) why they can't do what the designers want. If the devs can't articulate why the designers' request is so unreasonable, then they'll have to waste a lot of time and money making something that won't work for their game. Unless the developer is working alone in her basement, she should know how to write in order to communicate with her peers.