Friday, May 06, 2005

Spring Semester Redux

Back in January, if you had asked me what a vector was in C++ I would have guessed that it was like the vectors that I use in math and physics. If you had asked me how to prove that a linear transformation is an isomorphism I would have given you a blank stare and asked if isomorphism in linear algebra was similar to isomorphism’s in chemistry. If you had asked me to count in binary, hex, or asked me anything that had to do with hardware at the bit level, I would have stared off into space, unable to give you a reasonable answer. If you had told me that I would study more, and sleep less, than I have ever studied or slept in my college career, I probably would have laughed in your face and told you that I was getting better at school and that things were supposed to get easier, not harder.

Some people don’t like to talk about the Journey, thinking that it is too much of a psychological game because what really matter are the results, right? I am one who likes to talk about the journey, because in addition to the results being important, educationally the process of getting there is also paramount to understanding how to solve a problem. Knowing what works and what doesn’t, and learning from your mistakes is the best way to prepare yourself for problem solving in the big bad world. The journey is an exercise in self-actualization.

This semester I learned that just because you understand object-oriented design, it doesn’t mean that you understand every object oriented language. Once again, the lesson that there is no free lunch in the world was further driven into my brain, as I worked out problems dealing with busses, and memory systems and stack pointers… oh my! (Forgive the Wizard of Oz pun) I learned that organization is critical to the success of any software project, and that in the cruel world it isn’t just how much effort goes into the solution but also that the solution does what it is supposed to do. I learned that after 26 hours without sleep, no amount of caffeine will keep you alert enough to function rationally, and that it is best to plan your time so that you don’t have to work all night the night before a project is due. I learned that while pointers in C++ can really be a pain to learn, and as my professor said, they give the programmer enough rope to hang himself. Pointers are also tool that give the programmer the ability to control how his creation works in memory.

I am sure that there are more lessons that I could mention if I thought about it long enough, but that list seems sufficient for the time being. This summer will be nice. It is the first summer in four years that I haven’t gone to summer school. It will be fun to work, read, and play. I hope that while I am not facing homework assignments for the next 18 weeks or so that I will be able to catch up on my reading, take a look at some technologies that I haven’t played with yet, relax and enjoy the summer months.

Wednesday night, I started reading Joel on Software, what an interesting commentary he has written about software development, and the typical pitfalls that organizations and software engineers can fall into. The book references so many other papers and books, I don’t know how anyone finds the time to do all of that reading. The distilled messages are still relevant and applicable though often general. When I finish the book, I will write a review.

If you made it to the bottom of this thing I’ll call an essay, you are a good soul. Thanks for the support.

No comments: