We use cookies on this website to make it function correctly and to achieve the purposes illustrated in the cookie policy. By continuing to browse, you agree to the use of cookies. Cookie Policy

Algorithms + Data Structures

Write better code by identifying the correct algorithms and data structures to use for the problems you face.

6 weeks


Live Online




A microlearning format that can easily fit into your schedule and budget. Meet in the evenings with live instructors and a small group of professionals.

Course Overview

Integrate Big-O analysis into the way you approach all programming

Dive deep into solving problems based on relationships and associations

Quickly identify problems that can be solved using advanced techniques like dynamic programming

Prerequisites: You have the ability to proficiently use a third-generation programming language

video poster

How you'll learn

Lecture Icon

Led by Experts

Work in small groups

Monitor Icon

Learn through Practice

code icon

Course Projects

Receive a Certificate


Start your journey toward thinking like an algorist with a set of problems designed to test your algorithmic thinking.

  • Get your mind tuned to algorithms

  • Practice writing pseudocode to express solutions to problems

Energize your brain with complexity analysis and Big-O to determine how well solutions to problems will run given input and output expectations.

  • Identify input types to best solve problems

  • Apply step-by-step analysis to determine algorithmic complexities

Use greedy algorithms to solve problems which are usually easy to understand and maintain. Evolve to using sorting and searching algorithms when greedy algorithms fail due to complexity issues.

  • Identify appropriate sorting algorithms to use to solve problems

  • Apply the correct search for different problem types and data structures

Transcend the simple problems by using graphs as an input type for applicable problems. Apply many different algorithms to measure and discover aspects about graphs to solve interesting problems.

  • Classify problems readily solved with graphs and trees

  • Find shortest paths, find trees, sort, and compare graphs

Where’s Wally is a project to determine the best way to deal with different volumes, velocities, and variability in data sources.

Continue developing a better understanding of specialized graphs to solve problems that don’t necessarily seem like they’re graph-related.

  • Incorporate advanced graph application techniques to problem solving

  • Optimize resources using bipartite matching

  • Determine maximum flow through a network

Sometimes, problems are so “difficult” to solve, that a computer can’t do it in a reasonable amount of time. You can switch to using heuristics to find reasonable answers in reasonable times.

  • Explain how to build a hash table

  • Use probabilistic heuristics to solve problems feasibly unsolvable through other methods

The Producers is a collection of problems that have no good direct way to solve them.

Trading space complexity for time complexity, you can vastly speed up the performance of certain types of problems. Identify those types of problems and use well-crafted caching to provide incredible boosts in speed to your algorithms.

  • Use dynamic programming to reduce algorithmic time complexity

  • Describe intractability and P vs NP problems

Instructor Spotlight

Background Image

Curtis Schlak, VP, Professional Development

Curtis Schlak’s software development career spans more than two decades in software, energy, finance, legal, and education. He has worked or consulted at Barclays Capital, Bank of America Merrill Lynch, British Petroleum, CITGO Petroleum, Ernst & Young, and Microsoft. He has created and delivered consumer and enterprise training for hundreds of people through The Iron Yard, Hack Reactor, App Academy, and Galvanize. He has a BS in Mathematics, BA in English, and MS in Computer Science. He is currently working on his PhD in Computer Science.

Background Image

Daniel Billotte, Principal Instructor

Daniel Billotte’s career as a software engineer began in the mid 90’s, as the Internet was coming of age. He’s worked at large companies like Netscape, AOL, and Canon, as well as smaller companies and entrepreneurial ventures of his own. He helped start the first coding bootcamp in Phoenix in 2014. Daniel enjoys frontend web, but his passion is for building scalable backend systems that use cool technologies like neural networks. Daniel has a BS in Computer Science from Arizona State University.

Our Professional Development Students Work at Great Companies

Many of these companies reimburse tuition for our courses. Please click here for more information.

Hack Reactor alumni work at google
Hack Reactor alumni work at Facebook
Hack Reactor Professional Development Students work at IBM
Hack Reactor Professional Development Students work at Intel
Hack Reactor alumni work at microsoft
Hack Reactor Professional Development Students work at Nisum
Hack Reactor Professional Development Students work at Pivotal
Hack Reactor Professional Development Students work at JP Morgan
Hack Reactor Professional Development Students work at Rackspace
Hack Reactor Professional Development Students work at Vmware

Background Image

Pro Dev FAQ

Have questions about our Pro Dev Courses? We have provided a list of our most frequently asked questions.

Read FAQ
Background Image

Why take an Algorithms + Data Structures course?

Learn More
Background Image

Navigating the software engineering career path

Learn More
Background Image

Learning session: Applying heuristics to complex problems

Learn more
Background Image

Which ProDev courses are best for recent bootcamp grads?

Learn more
Background Image

Levels of understanding and Impostor Syndrome

Learn More
Learn more about Hack Reactor's educational programs

Stay Informed