Cracking the Coding Interview: This is the best starting place for interview prep. The book reviews everything from arrays to scalability, as well as provide practice problems with solutions in Java. There is a Facebook group where the author and other students can help you through questions and HackerRank has a CTCI-inspired track to practice the skills that you learn in the book.
Mock Technical Interview: The CXD Office at Bowdoin can connect you to an alum in the tech industry. Practice with a volunteer interviewer in a formal interview simulation.
Big-O and Runtime
Big-O Cheat Sheet: This is a simple website that provides runtime information for every data structure and sorting algorithm you can think of.
Data Structures and Algorithms
CPSC212 from Clemson: This course website has brief lecture notes and sample programs for common data structures.
Intro to Programming from Princeton: This course website from Princeton not only has content for data structures and algorithms, but boolean logic, circuits, system programming, and object-oriented programming as well.
Udacity Technical Interview Course: Udacity offers a free course to give you a quick review of data structures and sorting algorithms. After each lesson, you implement the data structure in Python, so this is a great choice for people who are in or just finished CS1101.
HackerRank: There are some really good questions on this site and the UI is really friendly. Most importantly, companies use HackerRank to do technical screenings and interviews, so it is a really good idea to get comfortable with the platform.
LeetCode: While not as organized as HackerRank, LeetCode has a lot of problems that focus on DS, algorithms, operating systems, system design, and shell scripting.
InterviewBit: InterviewBit is organized by topic and the site lets know you which companies ask certain questions. Don’t be alarmed by the scoring – its based on the time and it can really throw you off if you are just trying to practice.
Shell Tutorial: If you are new to shell scripting or need a quick refresher, this is a robust guide that will take you through basic commands to creating functions.