When I was in Rochester, NY for the ICPC Regional Programming Competition last Fall, one of the coders from Facebook gave the participants a talk discussing the company. Part of their development philosophy is “move fast and break things.” While everyone hates when facebook breaks with the latest update, and innovation should be tempered by caution, I really like the philosophy. It turns out it’s something that comes directly from Mark Zuckerburg; he believes that it fosters innovation. I’m inclined to agree.
When I’m tutoring first-year students in my faculty, a question I’ve received a lot lately has been “is my answer correct?” They want me to check their answers for them - not to ensure they understand something, but to ensure that they get full marks. As a TA who is trying to assist in the learning process, this is really annoying for two reasons: it’s not my job to double-check your homework and if it’s not helping you learn.
If you want to see if your code works, then try to break it.
Breaking things, and then fixing them, is a fundamental exercise in a Computer Science degree. If you can’t fix it, then you don’t understand it, so you’re not getting your tuition’s worth. Students study at university not to get a nice-looking transcript; they come here to learn.
Finally: if you don’t learn to be bold and break things in the comfortable cocoon of school, you’re not going to be able to innovate in the software development industry.