I’ve been working at refreshing my technical skills lately, primarily by experimenting with Google’s Appengine in Java and learning Python through some online courses. This has lead to a number of realizations, but perhaps the most important was the one I had today.
I have been taking online courses through Udacity, a free online university of surprisingly high quality with instructors from around the world. The emphasis is on computing subjects, and the courses cover everything from an introduction to computing to graphics rendering to cryptology. I highly recommend this site if you’re at all interested in software development. I promise you’ll find at least one course that tickles your interest there, and the site makes good use of the interactive format of online instructing, making for an excellent learning experience.
The realization I had today was during a course on testing. The instructor, a professor of Computer Science at the University of Utah, was demonstrating how to tune random testing software. In the process, he made a loop that executed differently depending on whether a variable was odd or even. However, he ended up with an infinite loop because he screwed up the test parameters.
Why is this important to me? Because I make the same sort of mistake all the time, and this often affects my morale so to speak. I start to doubt my abilities as a programmer and get frustrated at my apparent lack of ability. Seeing someone with a PhD make a simple mistake like that reminded me that even the best of us have brain farts. Coding is a very complex mental activity, and making and finding your mistakes is part of the process and should not be demoralizing.