Beasting and Gettin' Punk'd at Computer Sciencee

by Dennis Yeh and John Morrison

Pay heed to Our Anthem! Take 5, turn the volume up, and listen.

How to Beast Computer Science Maius Opus Moveo!

• Exceed the boundaries. Don't just do what is expected. If you have a question, experiment and explore. Break things and learn why they break.
• If you see something cool, reverse-engineer it, dissect it and recreate it. Own it.
• As you read, try out new things you see right away. Crank your box and write code as you read! Compile and run the sample code and tinker with it. Bend it, stretch it, break it, and understand it.
• Use standard libraries to solve problems. Avoid reinventing wheels. This is why it is vital to learn about your language's documentation. Spend some time learning about some libraries you don't see in class. Use them in your coding.
• Good enough ain't good enough. Do not accept "good enough" in any of its pernicious guises. Why isn't good enough good enough? Just look at the example of a run-of-the-mill public school. Ask your parents about the 1974 automobile model year. Do you spend your hard-earned money on stuff that is just "good enough?"
• It works'' is good enough. Ask yourself: If I were to write this again from scratch, would I again arrive at this (ungainly) solution? Always try to buff and improve your code so it works clearly and cleanly. We repeat: Do not accept "good enough!"
• Heed the eleventh commandment: Thou shalt not maintain duplicate code. If you are doing the same thing over and over again, refactor your code and wrap the repeatedly-used procedure in a function.
• Create strong black boxes that you test mercilessly. Then don't be afraid to rely on them. Keep your test code so if something goes wrong, you understand the vulnerabilities you have tested. This is another reason to use standard libraries. Very smart people make them and they maintain continuing efforts to break then improve them.

Traits of Good Coders

• Good coders are fearless problem solvers.
• Good coders are intellectually inquisitive and acquisitive.
• Good coders try to avoid reinventing wheels.
• Good coders have a strong sense of taste and aesthetics, and are guided by these senses in their work.
• Good coders know how to make good abstractions.
• Good coders are at perpetual war with redundancy.
• Good coders write programs that are extensible.
• Good coders ferret out and aggressively use every knowledge resource they can find.
• Good coders prefer simplicity to complexity.
• Good coders write clear code that is easy for others to understand.

How to Get Punk'd If you wanna get punk'd liberally use these measures.