The Poetry Of Programming
Lumpish Scholar writes "Sun's Richard Gabriel (possibly the only person with both a Ph.D. in computer science and an MFA in poetry) talks about "the connections between creativity, software, and poetry": "People say, 'Well, how come we can't build software the way we build bridges?' The answer is that we've been building bridges for thousands of years, and while we can make incremental improvements to bridges, the fact is that every bridge is like some other bridge that's been built.... But in software ... we're rolling out -- if not the first -- at most the seventh or eighth version. We've only been building software for 50 years, and almost every time we're creating something new.""
sPh
The approach to studying physics is also replicating well-known experiments with shoddy equipment, no experience, and predicted results.
This is not to educate scientist to repeat the same experiments over and over again. It's just that you cannot be expected to understand complex physics and create new experiments for new theories if you haven't seen and tried the building blocks first-hand.
They don't teach you to solve the Towers of Hanoi because it's a "common problem". They teach you to use recursion to solve problems, and to recognize a "recursion problem" by its characteristics, by using Towers of Hanoi as a common example.
Freedom is the freedom to say 2+2=4, everything else follows...
I am guessing that you are an engineer. Bridges are extremely complex. Every bridge presents a new challenge. Watch a special on the building of the Brooklyn Bridge or the Tacoma Narrows. Read about the challenges of the proper Strait of Messina (Sicily) and Gibraltar bridges.
As for telling whether you can tell if a bridge is right or not, The Koror-Babeldaob Bridge stood for 20 years before collapsing.
Self-discipline seems to be a key factor between good and bad developers. Especially when it comes to languages like C++.
I've met people who are amazingly creative and churn out very innovative code... yet are incapable of testing it and making it production quality. Then I've met overly anal people who snuff out creativity in all the people around them, producing code that is late and uninspiring. The best developers are somewhere in between.
I've noticed that many of the best developers were once or still are musicians... perhaps musical discipline is good training for being a software engineer. I also read an article in the National Post recently that published the results of a reasonably sized study: students educated in the arts including music also achieved higher and better results in maths and science.
There's a family guy episode (There's Something About Paulie - Episode #23) in which the Griffins get a new car with a computer. They're messing around with the languages while getting directions, and when they switch to Russian the computer says "In Soviet Russia, car drives YOU." Then, later in the episode, when telling which way to turn at a fork in the road, the computer says "In Soviet Russia, road forks YOU."