
Do what I did and take a summer off.
Actually, I did a co-op (for which I received somewhat useless credit from my university) which sent me to Europe and Africa to do some computer work. They were specifically looking for a single person to do this, and it wasn't a common opportunity in my experience, but I jumped at the chance.
The following summer, I took part of the summer off from my required courses. For some courses, our short summer semester was divided in two, and in the first 6 weeks I took an outstanding gen-ed course, and in the second 6 weeks I went on a study abroad trip to Italy and studied Italian and Renaissance art, neither of which I had studied before or had a prior interest in. We studied at an Italian University from Monday to Friday (sometimes Thursday) and traveled around on the weekends, and then the last week was spent traveling full time.
That was one of the most fulfilling experiences of my life, and the irrelevant-to-my-degree but relevant-to-my-travels courses served as a nice break from my beloved 1's and 0's and greatly enriched the experience.
In short, I highly recommend finding a way to study abroad, even if it delays your graduation briefly.
I have found such tools to be invaluable. I had code like this:
class Lock {/*...*/};
void Foo( Mutex& m )
{
Lock(m);
}
This is valid syntax, but I intended to use that lock instance for the duration of the function, so the first line should have read "Lock lock(m);". Multithreading is tricky enough, and I looked at the real code for a long while, reading right over this bug. PC-Lint found it for me right away (thankfully, it was already tuned, and I should have been using it before running my code).
But even though PC-Lint is pretty good, it ain't perfect. I have found that it has some trouble with advanced C++ templates (e.g., policy-based design). I have submitted bug reports for many of these problems, and they do seem responsive in working them in to the patches.
Finally, here's an article from 2006 discussing the available static analysis available tools for C, C++, and Java and describing how and why to integrate it into your development process.
YouTube also has some video along these lines, one with a flier "skimming six feet above skiers in the Swiss Alps."Modern suit design features tightly woven nylon sewn between the legs and between the arms and torso, creating wings that fill with air and create lift, allowing for forward motion and aerial maneuvers while slowing descent. As the suits, which cost about $1,000, have become more sophisticated, so have the pilots. The best fliers, and there are not many, can trace the horizontal contours of cliffs, ridges and mountainsides.
If I have seen farther than others, it is because I was standing on the shoulders of giants. -- Isaac Newton