- Review what you learned in this section
Congrats on getting through this section! You've learned some extremely valuable skills in terms of being able to tackle challenging problems and identify what good code looks like. You're well on your way to mastering your first algorithm interview!
To recap, we covered these learning objectives:
- Define what "algorithm" means
- Develop a process for algorithmic problem solving
- Understand the usefulness of Big O notation
- Identify the Big O time and space complexity of a given algorithm
- Recognize common Big O runtimes: constant, logarithmic, linear, and quadratic
We'll revisit algorithms formally once again in Phase 4, where we'll cover another fundamental topic to help prepare for technical interviews: data structures. In the meantime, it's important that you continue practicing what you learned in this section and in particular, continue refining your problem solving process.
From now until we return to algorithms in Phase 4, your main priority should be learning the required material from each upcoming Phase and mastering the practical skills you'll need to become a software engineer. When you're working on labs, keep in mind what you learned in this section!
However, if you're able to make the time, it's also a great idea to dedicate a little time each day (say 30 to 60 minutes) to continuing with your algorithm studies.
Here are some resources to help:
Make sure to check out the Data Structures and Algorithms course on Canvas. Ask your instructor for access if you don't already have it. This course was designed to give students short problems to work on throughout their time at Flatiron. There's also a version of this course you'll get access to upon graduation, so don't worry if you aren't able to complete everything during the program.
Our recommendation is to work on the following sections between now and Phase 4:
- Week 1: Starter Algorithms
- Week 2: Recursion
- Week 3: Additional Practice
- Week 4: Big O Notation
- Week 5: Sorting Algorithms
The material from Week 6 and onward gets into Data Structures, which we'll cover in more depth in Phase 4.
Here are some good practice exercises with walkthrough videos from Flatiron instructors:
- Matched Substrings:
- Two Sum:
- Reverse Integer:
- Valid Palindrome:
- Old-School Text Message Keystroke Counter Algorithm
For additional practice, here are some more resources: