Skip to content

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

  • Typically O(n) to match, but backtracking engines can hit exponential O(2^n) worst case (catastrophic backtracking)
  • It's useful to be familiar with basic regex syntax, too

  • Recursion

  • And when to prefer iteration instead (stack depth / performance)

  • 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