2008-10-31

The Geek 100 Pt. 4: Development and Cryptography

See the whole series: The Geek 100

This is a list of 100 basic things and skills every geek should have. I've broken this series up into five parts. Let's face it: a list of 100 things would be tedious to wade through. Over the rest of the week, look for twenty more skills to show up daily. The skills assume you have done it in the past and can remember how to do it right now (or, like a good Geek, you've jotted it down in one of your notebooks). Having it in your personal notebook is okay. Scrambling to the Internet means you don't have the skill... yet.

Props to my friend Joshua Kriegshauser for help with the Software Development skills. I'm not a coder. He's the Technical Director of the EverQuest II team at SCEA. That makes him more than qualified to help me out here.

Software Development. Every geek should be able to:

  1. Competently program in a compiled language
  2. Competently program in a script-interpreted language
  3. Create dynamic web pages that are resistant to XSS, CSRF and Injection
  4. Display at least casual knowledge of assembly language
  5. Describe endianness and which endians are used on popular platforms
  6. Have a firm understanding of object oriented programming
  7. Integrate a captcha into a web form
  8. Reverse-engineer and debug software
  9. Use a hex editor
  10. Use a revision-control system

Cryptography. Every geek should be able to:
  1. Analyze a substitution cipher
  2. Encrypt and tunnel arbitrary traffic
  3. Explain both strengths and weaknesses of asymmetric encryption
  4. Explain the significance of hash functions
  5. Explain Enigma (Fun Link)
  6. Implement a quick, secure symmetric cipher algorithm
  7. Implement steganography
  8. Set up full-drive-encryption
  9. Set up SSH with public keys
  10. Use an effective manual encryption scheme

See the whole series: The Geek 100

blog comments powered by Disqus