Faculty Recruiting Support CICS

Advanced Tech Interview Prep

Master the tech interview

Looking for ways to up your game now that you have the basic tech interviewing skills? Here is a curated list of tips from our Career Developers on how you can further advance your tech interview skills.

Master the programming language

Knowing all language-specific data structures and libraries is useful during an interview. Create "cheat-sheets" of top non-trivial data structures/library functions that you can quickly review while practicing. Next, try to look at the internal implementations for all the data structures available out-of-the-box in your language. Knowing how they are implemented and the complexity/cost of different operations in the implementation can help you impress the interviewer.

Must Knows:

  • Standard library
  • Read custom separator input
  • Read files
  • Implementations and complexity
  • Object oriented support and best practices

Master advanced concepts

Create a generic template for these concepts which you can modify and apply to any new problem. Topcoder tutorials is one of the best sources to learn such advanced data structures and algorithms.

Concept checklist (non-exhaustive):

  • Optimizing recursive problems with Dynamic Programming: caching/memoization and bottom-up (iterative)
  • Trees: Traversal (Level-Order, Diagonal, Vertical-Order, ZigZag, etc), Recursion, N-ary
  • Backtracking
  • Graphs: BFS, DFS, Topological sort, Union-Find, Spanning Tree, Distance, Search, Cycle-detection, and Connectivity, Graph Coloring, A* Search, Bidirectional search
  • Sliding window problems
  • Tries 
  • Union-Find
  • String search algorithms
  • Line-sweep algorithms
  • Bit manipulation
  • Streaming algorithms (e.g. finding Average or median in a stream of integers)
  • Advanced sorting algorithms (e.g. Radix, Bucket Sort, Pancake Sorting)
  • NP-Complete (e.g. traveling salesman, the knapsack problem, vertex cover problem)
  • Combinatorics and Probability
  • Processes, threads, and concurrency in Operating Systems

Mock interview

Test your coding and communication skills in an interview-like situation. Websites such as Pramp allow you to do mock interviews anytime by matching you to online practice partners. You can always make an appointment with our CICS Careers team for a 45 minute in-person mock interview session.

Conduct mock interviews for your friends to improve your interviewing skills. By putting yourself in the shoes of the interviewer, you notice things about a candidate that stand out and can improve your own performance.

Teach / Write / Compete

Start teaching the complex algorithms/data structures to others by helping your friends prepare in 1:1 coaching sessions, or blog about challenging concepts and share your unique approaches to those topics.

CICS Careers organizes ATCI (Ace the Coding Interview) practice sessions every other week during the semester for students to work in pairs to solve a preselected problem. Participate or even lead a discussion if you are up for it.

Seek out opportunities to compete as a hacker. The International Collegiate Programming Contest (ICPC) is one of the most popular and our UMass ACM chapter actively participates.