Interviews

I knew that when I started the job search, I would ultimately end up doing a lot of algorithm development in my interviews, so I made an investment in a good dry-erase whiteboard to practice on. I explained to Susanna that, as a programmer, a whiteboard is just as important as the computer or code itself, as a consequence of Miller’s thoughts on human memory channel capacity. We as programmers simply can’t juggle all the necessary things that we need to know in active memory – we need to write it down, plan it out. If you are a programmer, you need a whiteboard.

So for my interviews, I’ve been studying data structures, time complexity, design patterns, etc.. I spent some time writing a list of things I ought to study up on. Here’s my list, and my progress for studying.

  • Algorithm to reverse a string
  • Linked List from scratch
  • Quick Sort from scratch
  • Insertion Sort from scratch
  • Selection Sort from scratch
  • Bubble Sort from scratch
  • Singleton pattern
  • Factory pattern
  • Composite pattern
  • Greedy algorithm
  • Backtracking algorithm
  • Memoization
  • Hash table from scratch
  • Binary tree class + search from scratch
  • Heap from scratch
  • Preventing integer overflow
  • Web services in: Java, C#
  • Java command line compilation + flags
  • GCC command line flags
  • Ant, Make
  • Eclipse project/build configurations

The ones I haven’t studied up on I still feel confident that I could write if asked in an interview, but I’d still like to study up on them ahead of time. I also took the time to take all of my study/learning java code and organize it into a package hierarchy for easy access, and discovered a pretty easy way in java to pull resources in.

Leave a Reply

You must be logged in to post a comment.