I create things with words and/or code.

I am a “software developer.” Or, at least, that’s what my official job title says. I suppose I could be considered a web developer just as equally (possibly more accurately). Others who do similar work may self-identify as a programmer, coder, hacker, problem-solver, or a number of other terms.

I recently reflected on my experiences with letting TDD steer the development path. TDD was employed for unit testing, primarily testing validations of fields, associations between models, and the presences of database fields. Acceptance testing is the next layer outward in the outside-in software development methodology.

No, this post isn’t a reference to git. Rather, I’ve been making an effort to step slightly outside of my comfort zone. I’m making an effort to get more involved with the Ruby and software development communities, both locally and remotely/online. I’ve found that engaging with others is a great way to get a unique perspective on what it’s like to enter and work in the industry, especially from someone with more experience than you.

At Launch Academy, we are exposed to and taught best practices for software development. One of those best practices is that of test-driven development, or TDD. As the name implies, it is a method of programming where your tests guide your decisions.

Now that I’m really immersed in Ruby programming, the problems we are trying to solve are becoming more complex. This is exciting, as the programs have increased functionality, and aren’t just “one-trick ponies” that simply accept text and spit it back out to the user. We are writing code and starting to see the real-world applications it could be applied to.

The “breakable toy” at Launch Academy is a project worked on throughout the duration of the course, used as a tool to learn web development across the stack. While we are learning to program, we’re encouraged to try new ideas and techniques, most likely breaking the application during the process (which we can then roll-back to a working state with git, of course).

After finishing up the first week at Launch Academy, I find that I am starting to “think like a programmer”. A lot of this is a result of the various ways that my familiarity and confidence has been built up regarding different aspects of software development.

Growing up, I had always been fascinated by what could be accomplished with programming. I would play around with video game cheat cartridges or WYSIWYG web site builders, poking around the (poorly-generated) code. At the time, I just thought it was cool to try to do things that the software wasn’t necessarily designed to do.