Link Search Menu Expand Document

Security Related Coding & algorithms

  • The basics
    • Conditions (if, else).
    • Loops (for loops, while loops).
    • Dictionaries.
    • Slices/lists/arrays.
    • String/array operations (split, contaings, length, regular expressions).
    • Pseudo code (concisely describing your approach to a problem).
  • Data structures
    • Dictionaries / hash tables (array of linked lists, or sometimes a BST).
    • Arrays.
    • Stacks.
    • SQL/tables.
    • Bigtables.
  • Sorting
    • Quicksort, merge sort.
  • Searching
    • Binary vs linear.
  • Big O
    • For space and time.
  • Regular expressions
    • O(n), but O(n!) when matching.
    • It’s useful to be familiar with basic regex syntax, too.
  • Recursion
    • And why it is rarely used.
  • Python
    • List comprehensions and generators [ x for x in range() ].
    • Iterators and generators.
    • Slicing [start:stop:step].
    • Regular expressions.
    • Types (dynamic types), data structures.
    • Pros and cons of Python vs C, Java, etc.
    • Understand common functions very well, be comfortable in the language.

Security themed coding challenges

  • Cyphers / encryption algorithms
    • Be able to implement basic cyphers.
  • Parse arbitrary logs
    • Practice text parsing.
  • Web scrapers
    • Another way to practice text parsing.
  • Port scanners
    • Practice parsing network information.
  • Botnets
    • How would you build ssh botnet.
  • Password bruteforcer
  • Scrape meta data from PDFs
  • Script to recover deleted items
  • A program that looks for malware signatures in binaries / code samples