Best Algorithms Courses

Find the best online Algorithms Courses for you. The courses are sorted based on popularity and user ratings. We do not allow paid placements in any of our rankings. We also have a separate page listing only the Free Algorithms Courses.

Master the Coding Interview: Data Structures + Algorithms

Ultimate coding interview bootcamp. Get more job offers, negotiate a raise: Everything you need to get the job you want!

Created by Andrei Neagoie - Senior Software Developer / Founder of


Students: 110622, Price: $89.99

Students: 110622, Price:  Paid

Updated for 2021 hiring season! Join a live online community of over 400,000+ developers and a course taught by an industry expert that has actually worked both in Silicon Valley and Toronto as a senior developer. Graduates of this course are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Facebook + other top tech companies.

Want to land a job at a great tech company like Google, Microsoft, Facebook, Netflix, Amazon, or other companies but you are intimidated by the interview process and the coding questions? Do you find yourself feeling like you get "stuck" every time you get asked a coding question? This course is your answer. Using the strategies, lessons, and exercises in this course, you will learn how to land offers from all sorts of companies.

Many developers who are "self taught", feel that one of the main disadvantages they face compared to college educated graduates in computer science is the fact that they don't have knowledge about algorithms, data structures and the notorious Big-O Notation. Get on the same level as someone with computer science degree by learning the fundamental building blocks of computer science which will give you a big boost during interviews. You will also get access to our private online chat community with thousands of developers online to help you get through the course.

Here is what you will learn in this course:


1. Big O notation

2. Data structures:

* Arrays
* Hash Tables
* Singly Linked Lists
* Doubly Linked Lists
* Queues
* Stacks
* Trees (BST, AVL Trees, Red Black Trees, Binary Heaps)
* Tries
* Graphs

3. Algorithms:

* Recursion
* Sorting
* Searching
* Tree Traversal
* Breadth First Search
* Depth First Search
* Dynamic Programming

Non Technical:

- How to get more interviews
- What to do during interviews
- What do do after the interview
- How to answer interview questions
- How to handle offers
- How to negotiate your salary
- How to get a raise

Unlike most instructors, I am not a marketer or a salesperson. I am a senior developer and programmer who has worked and managed teams of engineers and have been in these interviews both as an interviewee as well as the interviewer.

My job as an instructor will be successful if I am able to help you become better at interviewing and land more jobs. This one skill can really change the course of your career and I hope you sign up today to see what it can do for your career!

Taught by:

Andrei is the instructor of the highest rated Web Development course on Udemy as well as one of the fastest growing. His graduates have moved on to work for some of the biggest tech companies around the world like Apple, Google, JP Morgan, IBM, etc... He has been working as a senior software developer in Silicon Valley and Toronto for many years, and is now taking all that he has learned, to teach programming skills and to help you discover the amazing career opportunities that being a developer allows in life. 

Having been a self taught programmer, he understands that there is an overwhelming number of online courses, tutorials and books that are overly verbose and inadequate at teaching proper skills. Most people feel paralyzed and don't know where to start when learning a complex subject matter, or even worse, most people don't have $20,000 to spend on a coding bootcamp. Programming skills should be affordable and open to all. An education material should teach real life skills that are current and they should not waste a student's valuable time.   Having learned important lessons from working for Fortune 500 companies, tech startups, to even founding his own business, he is now dedicating 100% of his time to teaching others valuable software development skills in order to take control of their life and work in an exciting industry with infinite possibilities. 

Andrei promises you that there are no other courses out there as comprehensive and as well explained. He believes that in order to learn anything of value, you need to start with the foundation and develop the roots of the tree. Only from there will you be able to learn concepts and specific skills(leaves) that connect to the foundation. Learning becomes exponential when structured in this way. 

Taking his experience in educational psychology and coding, Andrei's courses will take you on an understanding of complex subjects that you never thought would be possible.  

See you inside the courses!

Python for Financial Analysis and Algorithmic Trading

Learn numpy , pandas , matplotlib , quantopian , finance , and more for algorithmic trading with Python!

Created by Jose Portilla - Head of Data Science, Pierian Data Inc.


Students: 105570, Price: $109.99

Students: 105570, Price:  Paid

Welcome to Python for Financial Analysis and Algorithmic Trading! Are you interested in how people use Python to conduct rigorous financial analysis and pursue algorithmic trading, then this is the right course for you!

This course will guide you through everything you need to know to use Python for Finance and Algorithmic Trading! We'll start off by learning the fundamentals of Python, and then proceed to learn about the various core libraries used in the Py-Finance Ecosystem, including jupyter, numpy, pandas, matplotlib, statsmodels, zipline, Quantopian, and much more!

 We'll cover the following topics used by financial professionals:

  • Python Fundamentals
  • NumPy for High Speed Numerical Processing
  • Pandas for Efficient Data Analysis
  • Matplotlib for Data Visualization
  • Using pandas-datareader and Quandl for data ingestion
  • Pandas Time Series Analysis Techniques
  • Stock Returns Analysis
  • Cumulative Daily Returns
  • Volatility and Securities Risk
  • EWMA (Exponentially Weighted Moving Average)
  • Statsmodels
  • ETS (Error-Trend-Seasonality)
  • ARIMA (Auto-regressive Integrated Moving Averages)
  • Auto Correlation Plots and Partial Auto Correlation Plots
  • Sharpe Ratio
  • Portfolio Allocation Optimization 
  • Efficient Frontier and Markowitz Optimization
  • Types of Funds
  • Order Books
  • Short Selling
  • Capital Asset Pricing Model
  • Stock Splits and Dividends
  • Efficient Market Hypothesis
  • Algorithmic Trading with Quantopian
  • Futures Trading

JavaScript Algorithms and Data Structures Masterclass

The Missing Computer Science and Coding Interview Bootcamp

Created by Colt Steele - Developer and Bootcamp Instructor


Students: 85352, Price: $89.99

Students: 85352, Price:  Paid

Updated in November 2018 with brand new section on Dynamic Programming!

This course crams months of computer science and interview prep material into 20 hours of video. The content is based directly on last semester of my in-person coding bootcamps, where my students go on to land 6-figure developer jobs. I cover the exact same computer science content that has helped my students ace interviews at huge companies like Google, Tesla, Amazon, and Facebook. Nothing is watered down for an online audience; this is the real deal :)   We start with the basics and then eventually cover “advanced topics” that similar courses shy away from like Heaps, Graphs, and Dijkstra’s Shortest Path Algorithm

I start by teaching you how to analyze your code’s time and space complexity using Big O notation.  We cover the ins and outs of Recursion.  We learn a 5-step approach to solving any difficult coding problem. We cover common programming patterns. We implement popular searching algorithms. We write 6 different sorting algorithms: Bubble, Selection, Insertion, Quick, Merge, and Radix Sort.   Then, we switch gears and implement our own data structures from scratch, including linked lists, trees, heaps, hash tables, and graphs.  We learn to traverse trees and graphs, and cover Dijkstra's Shortest Path Algorithm.  The course also includes an entire section devoted to Dynamic Programming.

Here's why this course is worth your time:

  • It's interactive -  I give you a chance to try every problem before I show you my solution.

  • Every single problem has a complete solution walkthrough video as well as accompanying solution file.

  • I cover helpful "tips and tricks" to solve common problems, but we also focus on building an approach to ANY problem.

  • It's full of animations and beautiful diagrams!

Are you looking to level-up your developer skills? Sign up today!

The Coding Interview Bootcamp: Algorithms + Data Structures

Ace your next Javascript coding interview by mastering data structures and algorithms.

Created by Stephen Grider - Engineering Architect


Students: 79343, Price: $89.99

Students: 79343, Price:  Paid

Data Structures? They're here.  Algorithms?  Covered.  Lots of questions with well-explained solutions?  Yep!

If you're nervous about your first coding interview, or anxious about applying to your next job, this is the course for you.  I got tired of interviewers asking tricky questions that can only be answered if you've seen the problem before, so I made this course!  This video course will teach you the most common interview questions that you'll see in a coding interview, giving you the tools you need to ace your next whiteboard interview.

Coding interviews are notoriously intimidating, but there is one method to become a better interviewer - and that is practice!  Practicing dozens of interview questions is what makes the difference between a job offer for a $120k USD and another rejection email.  This course is going to not only give you dozens of questions to practice on, but it will also make sure you understand the tricks behind solving each question, so you’ll be able to perform in a real interview.

I have spent many hours combing through interview questions asked at Google, Facebook, and Amazon to make sure you know how to answer questions asked by the most well-paying companies out there.  No stone is left unturned, as we discuss everything from the simplest questions all the way to the most complex algorithm questions.

In this course, you'll get:

  • Clear, well-diagramed explanations for every single problem to make sure you understand the solution
  • An overview of the most important data structures to know about.  These are presented for people without a CS degree.
  • A huge collection of common algorithm questions, including everything from 'reversing a string' to 'determine the width of a BST'
  • Sensible strategies for tackling systems design problems
  • Insider tips on answering what interviewers area really looking for
  • Constant support on the Udemy Q&A forums from me!

My goal in this course is to help you defeat those interviewers who ask nasty algorithm questions.  Sign up today, and be the cutting edge engineer who will be prepared to get a high paying job

Mastering Data Structures & Algorithms using C and C++

Learn, Analyse and Implement Data Structure using C and C++. Learn Recursion and Sorting.

Created by Abdul Bari - Professional Programmer and Educator


Students: 76249, Price: $109.99

Students: 76249, Price:  Paid

You may be new to Data Structure or you have already Studied and Implemented Data Structures but still you feel you need to learn more about Data Structure in detail so that it helps you solve challenging problems and used Data Structure efficiently.

This 53 hours of course covers each topic in greater details, every topic is covered on Whiteboard which will improve your Problem Solving and Analytical Skills. Every Data Structure is discussed, analysed and implemented with a Practical line-by-line coding.

Source code for all Programs is available for you to download

About Instructor

I am the Instructor of this course, I have been teaching this course to university students for a long period of time, I know the pulse of students very well, I know how to present the topic so that it’s easy to grasp for students.

I know how to use White board to explain the topic and also to make it memorable. Remembering the thing and using them in right place is more important than just understanding the topic.

After Completing Course

 After completing this course you will be confident enough to take up any challenging problem in coding using Data Structures.

Course Contents

1. Recursion

2. Arrays Representation

3. Array ADT

4. Linked List

5. Stack

6. Queues

7. Trees

8. Binary Search Tree

9. AVL Trees

10. Graphs

11. Hashing Technique

Python for Data Structures, Algorithms, and Interviews!

Get a kick start on your career and ace your coding interviews!

Created by Jose Portilla - Head of Data Science, Pierian Data Inc.


Students: 65464, Price: $109.99

Students: 65464, Price:  Paid


Welcome to Python for Data Structures, Algorithms and Interviews!

This is the most comprehensive course online to help you ace your coding interviews and learn about Data Structures and Algorithms! This course takes advantage of the easy to read Python programming language to efficiently teach you what you need to know to land the tech job of your dreams!

This course will teach you everything you need to know to get a great job in the software technology field, including:

  • Creating a great resume
  • Creating LinkedIn and GitHub profiles for recruiters to find
  • Building and leveraging a network for job opportunities
  • The latest job searching tools available online
  • Non-Technical Interview Questions and Answers
  • Post-Interview topics (Salary Negotiation and References Preparation)
  • Jupyter Notebooks Overview
  • Algorithm Analysis and Big-O Notation
  • Array Sequences
  • Stacks Queues and Deques
  • Linked Lists
  • Recursion
  • Trees
  • Searching and Sorting Algorithms
  • Graph Algorithms
  • Riddles and Brainteasers
  • 4 Mock Interviews!

Achieve your career goals and get a fantastic job in technology by enrolling in this course!

Data Structures and Algorithms: Deep Dive Using Java

Learn about Arrays, Linked Lists, Trees, Hashtables, Stacks, Queues, Heaps, Sort algorithms and Search algorithms

Created by Tim Buchalka - Java Python Android and C# Expert Developer - 987K+ students


Students: 56731, Price: $99.99

Students: 56731, Price:  Paid

So you've worked with the basics of data structures and algorithms in Java (or another OO programming language) but feel like you need a deeper knowledge of how things work.

Maybe you have taken other courses on this topic that focus more on teaching how to pass job interview tests (theory) instead of how to make good choices for the programs you develop (implementation).

Or maybe you are ready to move from a junior programming position to a more senior one and need to get skilled in advanced concepts like data structures, and how to apply them to your own projects.

Whatever the reason, if you are looking for a course that focus on the implementations to give you a complete understanding of how things work, then this is the course for you.

This course goes over the theory of how things work, but only to give you what you need to know to understand the implementation covered. 

Complete source code is included and available for you to download.

This is a hands-on course!  If you want to try understand things at a deep level, and work on implementations, rather than theory, then again, this is the course for you.

Topics covered:-

Linked Lists
Sort algorithms
Search algorithms

The course also spends more time than most other courses of its kind looking at what’s available in the JDK. Students wanting to understand how things work "under the hood" will benefit enormously from this course.

Why learn about data structures and algorithms?

The reality is, the more you learn about data structures and algorithms, the better a programmer you become.


Because, data structures and algorithms are effectively patterns for solving problems.   You want to add as many of them as you can to your skill-set.  By doing so, you will find you solve more problems, and use the right tools for the job, in a more elegant way.  And you will learn a heap of them in this course.

Why enrolling in this course is the best decision you can make.

Your instructor, Sarah Ettritch has over 25 years’ software development experience and has been working with Java since JDK 1.1.  She has spent many years creating tools used by developers, which required a deep knowledge of data structures and algorithms, and is perfectly qualified to teach this course.

Most courses focus on giving you the theory of how things work, so that you can take an interview.  Whilst the theory is important, the knowledge of how to implement these data structures and algorithms are of vital importance.

This course goes over the theory of how things work, but only to give you what you need to know to understand the implementation covered.   The main focus of the course is to give you a real understanding of how things work under the hood, so that you can apply this to future programming projects.

If you want to actually understand how things work, and be able to take that understanding and apply it to your own programs, then this course is for you.

After completing this course, you will have a solid understanding of data structures and algorithms (both the theory, and the implementation).

The sooner you sign up for this course, the sooner you will have the skills and knowledge you need to increase your job or consulting opportunities.    Java developers with key skills and understanding of data structures and algorithms are in high demand and get paid extremely well.

If you are ready for that new job promotion or consulting opportunity, it's time to get started.

Why not get started today?

 Click the Signup button to sign up for the course

Data Structures A-Z : Data Structures + Algorithms Bootcamp

Become ace in data structures & algorithms & Crack the code interview by getting mastery in data structures & algorithms

Created by Vinoth Parthasarathy - Instructor


Students: 13986, Price: $89.99

Students: 13986, Price:  Paid

Congratulations!  You've found the most popularmost complete, and most up-to-date resource online for learning Data structures and Algorithms.

Do you want to crack your next coding interview? Do you want to be a master in solving challenging Algorithms?

Are you interested in the field of Data structures? Are you interested to play around with complex Algorithms?  Then this course is for you!

You need to understand algorithms and data structures because I've seen code written by people who didn't understand Data structures and algorithms; and trust me, you don't want to be that guy.

The entire course is based around a single goal: Turning you into a professional programmer & capable of writing code as a professional.

Are you scared about the coding interview? Join me in this Adventure, Crack your coding interview by getting mastery in data structures & algorithms.

There are lots of free tutorials and videos on YouTube. Why would you want to take this course? The answer is simple: Quality of teaching. So, from the very beginning to the very end, you'll be confident that you'll be in good hands and watching every minute of the course, unlike reading many free tutorials and videos, do not waste your precious time. Each section is equipped with a balanced mix of theory and Implementation.

It's my goal to make clear Data structures and Algorithms as much as possible and ensure your success. I want everyone to benefit from my courses, that's why we'll dive deeply into Data structures and Algorithms concepts and why I made sure to also share the knowledge that's helpful to programmers

I can promise you that, this is the most comprehensive and modern course you can find on data structures & algorithms on udemy or anywhere else- it's based on all my knowledge And teaching experience. It's both a complete guide, starting with the core basics of the language, as well as an extensive reference of the data structures & algorithms, ensuring that both newcomers, as well as experienced developers, get a lot out of this course! It's my goal to make you clear about the concepts of data structures & algorithms as much as possible. To accomplish this, throughout the course, extensive use of slides and graphics is being utilized in order to aid the understanding and memorability of complex concepts. Moreover, the course is packed with practical exercises that are based on real-life examples. So not only will you learn the theory, but you will also get some hands-on practice building your own project. This course is designed to be fast at getting you started but also get you deep into the "why" of things. Simply the fastest and best way to learn the latest skills. Look at the scope of topics in the Session and see the breadth of skills you will learn.

Why it’s the only course you need to learn Data Structures and Algorithms?

This course is everything you need from start to end regardless of your experience.

It's an interactive course. Instead of explaining the concepts with Powerpoint slides, I will take you to the classroom again.

These course videos are designed very carefully to make you more engaging and you won’t get bored while watching the course videos. Unlike other learning videos which you can find on other courses or on YouTube, this course is carefully designed with full of animated content that will make learners grasp the concepts quickly and easily. In this way, you can understand even hard topics/concepts easily.

While you take this course, you will feel the simplicity of learning the language, This is because time spent for preparation for the videos (script for the videos and video structure) and video editing (to cut boring pieces of the lesson or time when the program loads) is huge. And also the structure of the course is created based on beginners in mind. And also this course will be a good reference for those who are already having good knowledge of data structures and algorithms.

Don’t take my word for it. Check the reviews and see what other students are saying


No Words!! The explanation is very simple and clear, And its perfect combination of theory plus practical on Data structure, And I'm simply amazed by the instructor as they make such a hard topic like Data structure very easy to learn.

And it's crisp and straight to the point and examples are really great and the way in which the presenter describes the topic is also very helpful.

Thanks a lot! - Giada


The Concepts are presented in a simpler & detailed way in a short span of time. This is the best course for learning data structures from scratch. Tree part has the best explanation. Sir, you helped me face my fears regarding data structures & coding & have boosted up my confidence. Sir, please post courses on competitive coding Vinoth Sir cause you are the best. - Divyakanti Batabyal


It's a good experience so far, I'm loving the content! I'll give a full review once I'm done. So far I feel it's a very valuable course. Update: After finishing the course I am very happy with it. This is a wonderful course and Vinoth, you have really done an awesome job. Before this course I really don't have much knowledge of Data Structures, this course is designed, which made me really confident about my learning. Thanks a lot, Vinoth. Keep up the great work! - Gayathri


It is evident that Vinoth has put a lot of thought into planning this course. It is well organized and the topics lead nicely into one another. Moreover, Vinoth's teaching experience helps the complex topics to grasp easily. I am really enjoying the course and think Vinoth's teaching style is stellar - Ravi


In a very simple and clear manner, the trainer is explaining things and giving us chance to think and develop our own logic for implementing data structures. It really makes complex things simple !!! I found the videos and code samples very clear and precise. A very good foundation course on data structure -Abhishek Agarwal


the way of teaching is very good, sir is teaching with real-time examples which helps us to easily understand the topic. Sir made this course very easy for me to understand, such a great teacher - Aditya Bohra


This course is a good match for me, Till start, to end its well-executed, Content and syllabus is good, for me as a beginner is very useful, i learnt lots of thing from this course, Thank you very much for such a wonderful course. thanks - Magnus


Explained clearly, This course covers all the basics and beyond. I learnt what I want to learn plus much more. Vinoth explains clearly, I enjoyed the way he taught, very precisely and briefly. Honestly, the course is good for beginners - Noel


I found this course is much valuable for me, especially Tree and Graph sections are awesome, Neat presentation, easily understandable course, overall its must have taken the course who what to understand data structures and algorithms from the base. Thanks - Abinav


Incredibly comprehensive course! I found this course really well laid out and easy to get to grips with, concepts were introduced in a very logical manner which made it easy to follow. Overall this course matched my expectations and expanding my current knowledge of data structures. Thanks - Trinity


Super Good! The teaching style, content and quality of the course all are excellent. Over this is the perfect material for data structures and algorithms. I will highly recommend this course to my friends. Thanks a lot for such a wonderful course. - Celia

Why you should learn Data Structures and Algorithms:

  • Industry Demand for Data Structures and Algorithms: Top tier tech brands such as Google, Facebook, Microsoft, Youtube, etc. focus more on designing things in the most optimal manner that improves user experience and enhances tracking and managing. These companies ask most of the questions related to Data Structures and Algorithms in interviews to assess a candidate's approach for solving any real-world problem.

  • Solve the problem more efficiently: The search engine may provide source code for solving the issue or steps for you to fix the issue. But, the real programmer understands the Application Programming Interface internals including data structure and make the decision.

  • Improving problem-solving and analytical skills: Data Structures and Algorithms are not only crucial to land your dream job, but it also helps in improving problem-solving and analytical skills that can prompt you to think out-of-the-box solutions.

  • Use the Right tool to solve the problem: The data structure and algorithm provide a set of techniques to the programmer for handling the data efficiently. The programmer should understand the core concepts of data handling the data. Data structure and algorithms help you to decide the right tool for your job

  • Furthermore, it will also enable your future endeavours as it is something that will never go out of demand considering the rapid evolution of technologies and an increasing amount of data.

Here’s just some of what you’ll learn

(It’s okay if you don’t understand all this yet, you will in the course)

This course is fun and exciting, but at the same time, we dive deep into Data Structures and Algorithms. Specifically, you will learn :

· Understanding the core principles of coding.

· Understanding code complexity and how to write code efficiently and various levels of complexity.

· Basics of Data Structures and algorithms

· Basic data structures (Arrays, linked list, and Hash Table)

· Tree data structures

· Graph data structures

· Algorithms to apply Graph in product implementation

· Searching algorithms

· Various Sorting algorithms

Frequently Asked Questions:

Will I be able to learn Data Structures and Algorithms and find a job after completing this course?

YES, This course covers all the topics in a very detailed way which you need to know to become a professional Data Structures and Algorithms. However, you will be able to learn Data Structures and Algorithms and be job-ready heavily depends on you once you completed this course.

If you merely watch the videos, you will hardly learn anything without trying things on your computer. Instead, try the code on your computer, change the code, run it, improve it further, rerun it, fix the possible errors, try making a similar app, repeat, ask questions in the Q&A when you get stuck, and try to solve all the exercises in the course. That way, you will undoubtedly learn how to use Data Structures and Algorithms and find a job.

How much time will I need to complete the course?

That depends on how much effort you can put into learning the language. If you dedicatedly follow the course, you can complete the course in 1 week. And If you practice the programs in day to day life, You will be getting familiar with the Data Structures and Algorithms in a very short period.

I don't know anything about programming. Will I still be able to learn Data Structures and Algorithms?

Absolutely YES. This course assumes you have no previous knowledge of any programming.

Do I need to have any prior knowledge to take this course?

A big NO. You don’t need any prior knowledge to take this course. I have designed this course which makes it comfortable even for beginners. It starts from the absolute beginner level initially and gradually moving to complex and advanced level topics. And also this course is filled up full of practical and fun examples. You will learn the core skills step by step with hands-on experience. And If you are already comfortable with coding and need to refresher your skill, this course will be suitable for you, too. Every time you come back to this course you will learn something new or improve yourself.

Does the course expire?

No. Once you buy the course, it's yours. I update the content regularly, and all the updates come to you for free in the one-time purchase you make.

Will I get support if I get stuck?

Yes. Feel free to drop a question in the Q&A, and I will answer your questions within the same day. I covered almost everything that you need to become expert in Data Structures and Algorithms. if you feel, this course wasn’t complete enough, I offer full support, answering any questions you have 7 days a week.

What if I have questions?

As if this course wasn’t complete enough, I offer full support, answering any questions you have 7 days a week.

What’s stopping you from signing up today?

You don’t have enough time? Not an issue. I’ve designed this course so you can learn everything you need in as little as ONE week.

You’re still weighing up the value? Listen. I’ve made this course bigger, better and more affordable—with even more content and more coding tips and best practices —than EVER before. And In this course, I show you how to create all of the code from scratch. You can type the code along with me in the videos, which is the best way to learn. And I am a very responsive instructor and I am available to answer your questions and help you work through any problems.

You don’t have any previous experience? Seriously, not a problem. This course is expertly designed to teach everyone from complete beginners, right through to pro developers. (And yes, even pro developers take this course to quickly absorb the latest skills, while refreshing existing ones).

Straight up: There's no other course that teaches you that, so join thousands of other students who have successfully applied their data structures and algorithms in the real world. Sign up and start learning the expert in data structures and algorithms today!

Sounds great, doesn’t it? Are you ready for a life-changing adventure? If you are serious about your career as a software developer, this is the only Bootcamp you will need. Then don't waste your time with random tutorials or incomplete youtube videos. This course is an easy-to-follow, all-in-one packages that will take your skills to the next level.

Buy this course today, and you will get all updates for FREE!

Enroll now and begin your journey towards the most lucrative, adventurous and exciting career path you can imagine! Or, take this course for a free spin using the preview feature, so you know you’re 100% certain this course is for you.


This course comes with a 30-day full money-back guarantee. Take the course, go through the lectures, do the exercises, and if you're not happy, ask for a refund within 30 days. All your money back every last penny questions asked.

You either end up with an expert in Data Structures and algorithms skills, go on to develop great programs and potentially make an awesome career for yourself, or you try the course and simply get all your money back if you don’t like it… (And why not give such a guarantee? I certain this course will provide a ton of value for you)

You literally can’t lose.

See you on the inside (hurry, Data structures, and algorithm class is waiting!)

Data Structures and Algorithms Bootcamp

How to ace your Silicon Valley style coding interview

Created by Jonathan Rasmusson - Ex-Spotify Engineer, The Agile Samurai


Students: 13396, Price: $99.99

Students: 13396, Price:  Paid

This course is about getting you up-to-speed quickly on the fundamental computer science concepts you are going to be expected to know if you want interview at any large Silicon Valley tech company (Google, Apple, Facebook, Amazon, or Spotify).

Topics include

  • Arrays

  • Linked Lists

  • Big O notation

  • Stacks & Queues

  • Hash Tables

  • Binary Trees

  • Binary Heaps

  • Dynamic Programming & Memoization

  • Bubble Sort / Merge Sort / Quick Sort

  • Graphs

  • Breadth First Search

  • Depth First Search

  • More...

What you get

With this course you get

  • Over 115 beautifully hand crafted HD videos walking you through every aspect of how all these data structures and algorithms work

  • Practices questions and personal walkthroughs of the most commonly asked interview questions

  • My personal notes on interviews I have personally had with Spotify, Facebook, Amazon, and others

  • A section called The Classics where we walk through classic interview questions no interviewee should be with out

  • Interview tips on soft skills big tech companies look for when hiring and techniques on how to answer

What you save

By investing in yourself with this course you are saving yourself the most precious thing you’ve got - time. I have spent a year scouring the web looking for the best examples, the simplest explanations, the best visualizations on how to explain how this stuff works, and assembled it all into one, quick, easy to digest place.

Let's do this together

Learning data structures and algorithms doesn’t have to be a chore. It can be fun. And I want you to know I am here for you every step of the way. Ask me any question. I usually get back to my students with 24 hrs. And together, we will get you the understanding behind how these things work.

I also don’t have a formal computer science background

Look. I know what it’s like not to know how this stuff works. And, like you, I have had to learn this stuff from scratch.

But I am here to tell you it can be done. I have no formal computer science background. I am not classically trained as a computer scientist. But by learning this material, I landed my dream job as an engineer at Spotify in San Francisco. And so can you.

So what are you waiting for? Sign up and get started on your journey today.


Here are some testimonials from students who have taken the course.

Tiffany Scott

Best $10 I've ever spent. The explanations are concise and are giving me confidence for my upcoming Microsoft and Facebook interviews. Planning on finishing the course in 4 days to give me ample time to practice problems.

Saif Addin Ellafi

Really, this will sound like exaggeration. But this course is perfect, 5 stars falls short. The instructor puts the content in a an easy to follow order, videos are short to keep attention and leave you wanting to know more. Concise and important points are made very clear, with zero repetition. Native speaker offers no challenge for understanding, especially if you are not a native speaker. Answers questions very quickly. The course WONT teach you how to program, so forget about 100% coding from scratch or having pedagogical exercises. It relies on you to check out the code, re-write it, practice and research deeper the concepts. Examples are written in Java, but they are very agnostic to the language (aside of having to setup a java environment to run tests). Huge focus on acing interviews. A clear target of the course makes it great and an example. Time and pacing are perfect, no need to slow down or speed up. Overall 10 out of 5.

Anna Teittinen

I completed this course in my busy schedule within 3 weeks of learning I will have technical phone interviews with both Google and Facebook. I learned so much and understood everything without memorizing, unlike when I was in school. I recently learned I did well on both phone interviews. I will have a second technical phone interview with both companies again in mid Jan. I highly recommend this course! Thank you very much Jonathan!

Rick A

I took your course in the very beginning of my interview prep to refresh all my concepts. I think you've done a great job in this course. After a lot of practice using these concepts I got pretty good at it. I got multiple offers from big N including Google, Facebook, Amazon and Microsoft. I would like to take this moment to thank you for creating the course and being available to answer our queries.

Luciano Sa

Amazing course! Very well explained, great didactic which makes it very easy to follow and understand! I wish these stars were exponential. :)

Kavitha Bhasker

I am really thankful I found this course on Udemy. It has been 15 years since I learnt these concepts during my engineering college days and needed to brush up on them for interview prep. This course really nailed the contents and exercise that are asked in tech interviews these days. The tone of the instructor is very friendly and calm and make you think rather than put you in a spot. I was asked for a interview query on whether to use an array vs hashmap in a certain scenario and was able to nail the answer and also give the Time complexity with confidence . I landed the job and will be starting next week. Thank you so much!

Eyal Carmi

Great. I like the that Jonathan filters what we actually need for an interview - instead of being flood with lot's of data, he notes you what worth remembering. His explanations are clear, and if you don't understand something, just ask him and he explains it to you.

Flavio Marques Migowski Carvalho

One of the best course I've had. It's very well explained, each step in the coding is shown and explained with drawings. I think some design and architecture problems would be very handy! Thank you for making this course for us!

Adam Mendoza

Best course I've seen to brush up on algorithms and data structures to prepare for an interview at competitive companies. Really, a class apart.


I love the course overall. Very engaging. The Instructor, Jonathan is a great mentor and has this calm and assuring voice that puts the confidence in anyone who does not have programming experience before. He not only covered the technical aspects of almost all the important algorithms but also added a great ending with the interviewing tips which is really helpful. I would recommend this course to everyone who want to brush up on algorithms and just be ready enough to start with their interview.

Juwan Turner-Howard

I can program. I thought I "knew" about arrays, but this helping me to know the why which can allow me to make better tradeoffs when it's time to choose between linkedlist(probably O(n) get and set time) versus the O(1) array get and set time. If the rest of the course is consistent with the style and value of information in this first module... whew... I'm in for a good ride. So happy and excited about this course thus far though.

Aung Khant Nyra

I would say Jonathan has done a great job of showing you how to prepare for interview problems by giving you a touch of basic data structures and a bird's eye view of the a typical interview. I am in the bay area and personally for me, this course is pretty basic and I am preparing for interviews myself, so this course was helpful for me although it didn't include advanced topics like dynamic programming and so on. Of course, there are countless interview practice problems online so I understand, it's impossible for him to cover everything. Anyways, I love the course . It is better to learn from a professional who is in the field instead of learning from a professor or a lecturer.

Ramachandran Rajagopalan

Good course to wrap your head around DSA if you are a beginner. For others who have a got a week's time for the interview and need a refresher then grab this. Thanks, Jonathan. Good work.

Advanced Algorithms (Graph Algorithms) in Java

Breadth-First Search, Depth-First Search, Shortest Path, Arbitrage, Strongly Connected Components and Maximum Flow

Created by Holczer Balazs - Software Engineer


Students: 12643, Price: $99.99

Students: 12643, Price:  Paid

This course is about advanced algorithms (graph algorithms) focusing on graph traversal, shortest path problems, spanning trees and maximum flow problems and a lots of its applications from Google Web Crawler to taking advantage of stock market arbitrage situations. 

Section 1 - Graphs Theory Basics:

  • what is a G(V,E) graph

  • adjacency matrix representation

  • adjacency list representation

Section 2 - Graph Traversal (Breadth-First Search)

  • what is breadth-first search?

  • how to use BFS for WebCrawling in search engines?

Section 3 - Graph Traversal (Depth-First Search)

  • what is depth-first search?

  • how to use recursion to implement DFS

  • applications of DFS such as topological ordering and cycle detection

  • find way out of a maze with DFS

Section 4 - Topological Ordering

  • what is topological ordering (topological sort)

  • directed acyclic graphs (DAGs)

  • DAG shortest path and longest path

  • critical path methods and project management

Section 5 - Cycle Detection

  • what are cycles in a graph?

  • forward edges and backward edges

  • cycle detection algorithms (Tarjan's algorithm with DFS)

Section 6 - Dijkstra's Shortest Path Algorithm

  • what is a shortest path in a G(V,E) graph

  • Dijkstra's shortest path algorithm

Section 7 - Bellman-Ford Shortest Path Algorithm

  • Bellman-Ford algorithm

  • how to handle negative cycles

  • finding arbitrage opportunities on the FOREX

Section 8: - Spanning Trees (Kruskal and Prim's Algorithms)

  • what are spanning trees?

  • union find data structures

  • Kruskal's algorithm

  • Prim's algorithm

Section 9 - Strongly Connected Components (SCCs)

  • what are strongly connected components

  • Kosaraju's algorithm

  • Tarjan's algorithm

Section 10 - Maximum Flow Problem

  • the famous maximum flow problem

  • how to reduce most of the hard problems to maximum flow problem

  • Ford-Fulkerson algorithm

  • bipartite matching problem

Section 9 - Travelling Salesman Problem and Hamiltonian Cycles:

  • travelling salesman problem (TSP)

  • how to deal with NP-hard problems

  • what are meta-heuristics

Section 10 - Eulerian Paths

  • eulerian paths and eulerian cycles

  • Hierholzer algorithm and the Chinese Postman Problem

The course is going to take approximately 11 hours to completely but I highly suggest you typing these algorithms out several times in order to get a good grasp of it. You can download the source code of the whole course at the last lecture. 

You should definitely take this course if you are interested in advanced topics concerning algorithms. There are a bunch of fields where these methods can be used: from software engineering to scientific research.

Thanks for joining the course, let's get started!

Forex Algorithmic Trading Course: Code a Forex Robot!

Build a Completely Automated Trading Robot (Expert Advisor) from scratch using MQL4 (MetaQuotes Language 4)!

Created by Mohsen Hassan - Finance & Programming Education


Students: 11036, Price: $129.99

Students: 11036, Price:  Paid

In this course you will learn how to completely automate a Forex Trading Robot from scratch using the MQL4 Programming language.

You do not need any programming knowledge as we will learn all the basic programming concepts in the beginning of the course. The great thing about this course is that we view these programming concepts as they relate to trading, keeping the content extremely engaging.

We proceed by learning the ins and out of the MQL4 programming language. We see how to get live price updates, use most technical indicators in code, send and modify orders automatically and much much more.

We do all of this in a highly engaging manner as we code everything as we cover it. We also give you many assignments along the way making this an extremely practical and interactive course.

Once we have covered all the concepts necessary, we proceed by creating our fully automated trading robot. We backtest it to make sure it’s consistently profitable and see how to run it on a demo or live account.

All the codes created in the course are available to you.

Algorithms (Data Structures) Bootcamp in C++

Recursion, Backtracking, Dynamic Programming, Graphs, Data Structures, Sorting and Substring Search Algorithms

Created by Holczer Balazs - Software Engineer


Students: 8915, Price: $19.99

Students: 8915, Price:  Paid

This course is for those who are interested in computer science and want to implement the algorithms and given data structures in C++ from scratch. In every chapter you will learn about the theory of a given data structure or algorithm and then you will implement them from scratch.

Chapter 1: Recursion

  • theory behind recursion (recursive function calls)

  • stack memory and heap memory

  • recursion and stack memory of the OS

  • recursive problems such as the Towers of Hanoi problem

Chapter 2: Backtracking

  • what is backtracking

  • how to solve problems with backtracking

  • N-queens problem

  • coloring problem

  • knight's tour

Chapter 3: Dynamic Programming

  • overlapping subproblems and dynamic programming

  • what is "memoization" and "tabulation"?

  • Fibonacci numbers

  • knapsack problem

Chapter 4: Data Structures

  • data structures and abstract data types (ADTs)

  • arrays

  • linked lists

  • stacks

  • queues

  • binary search trees

  • priority queues (heaps)

  • associative arrays (hash tables)

Chapter 5: Graphs

  • directed and undirected graphs

  • graph traversal: breadth-first search and depth-first search

  • shortest path algorithms

  • Dijkstra's algorithm

  • Bellman-Ford algorithm

Chapter 6: Substring Search Algorithms

  • the most relevant substring search algorithms

  • naive substring search

  • Knuth-Morris-Pratt (KMP) substring search algorithm

  • Rabin-Karp algorithm

  • Z algorithm (linear pattern matching)

Chapter 7: Sorting

  • stable sorting and adaptive sorting

  • comparison based and non-comparison based sorting algorithms

  • string sorting

  • bubble sort

  • selection sort and insertion sort

  • quicksort

  • merge sort

  • counting sort and radix sort

These are the topics we are going to consider on a one by one basis. After every topic there is a Q&A section where you can test your knowledge on the given topics. Thanks for joining my course, let's get started!

Data Structures & Algorithms, Level-up Course(2021)

The only course you need to master problem solving using Data Structures & Algorithms in C++

Created by Prateek Narang - Software Engineer at Google & Programming Instructor


Students: 6182, Price: $89.99

Students: 6182, Price:  Paid

Do you find yourself feeling like you get "stuck" every time you get a coding question? 

Welcome to Data Structures & Algorithms, Level up Course the only course that provides you an ultimate practice on problem solving process and helping you to take your data structures & algorithms to the next level.  The course is taught by an expert instructor Prateek Narang from Google, who is not just a software engineer but also has mentored thousands of students in becoming great programmers & developers.

The Course contains 25+ hours of interactive video content & dozens of coding exercises, teaching you the right tips & tricks in problem solving in a most concise way. Every problem discussion starts with a brute force approach, optimisations and ends with hands-on-coding video in C++ as well.

Here is what you will learn -

Problems on Data Structures

* Arrays, Strings, Vectors

* Hashing (Unordered Maps, Maps, Sets)

* Stacks, Queues, Linked Lists

* Binary Trees, BSTs, Heaps

* Graphs, Tries

Problems on Algorithms

* Brute force, Backtracking

* Sliding Window Algorithms

* Sorting, Searching, Binary Search

* Dynamic Programming Fundamentals

* Important Graph Algorithms

* BFS & DFS, Shortest Paths

Course exercises are in C++ but programmers having experience in one or more languages (C++/Java/Python/JavaScript) can definitely do this course, provided they have fundamental understanding of data structures. The course covers both breadth & depth of topics, diving deep where-ever needed. You will also learn how to apply techniques involving like - sorting & searching algorithms, sliding window, binary search, hashing which are very important for problem solving. For advanced topics like Dynamic Programming & Graphs, the course starts from the basics & helps you master these topics from the very fundamentals.

Unlike most instructors, I am not a salesperson or a marketer. My job is to help you build strong fundamentals in programming & be  a successful developer. Through Udemy, I am providing this course to you at a fraction of cost of its original cost, so that anyone who is interested to learn can take their skills to the next level. So I hope you sign up today, and I will see you in the course.

Algorithmic Trading using Interactive Broker’s Python API

Implement algorithmic trading strategies on Interactive Broker's platform

Created by Mayank Rasu - Experienced Quant Researcher and Educator


Students: 3689, Price: $49.99

Students: 3689, Price:  Paid

Design and deploy trading strategies on Interactive Broker's platform. Automate every step of your strategy including, extracting data (stock data and fundamental data), performing technical/fundamental analysis, generating signals, placing trades, risk management etc. Gain a thorough understanding of native interactive broker's API.

You can expect to gain the following skills from this course

  • API trading

  • Advanced python concepts (OOP concepts, multi-threading etc.)

  • Extracting historical data

  • Extracting fundamental data

  • Harnessing streaming tick level data

  • Incorporating technical indicators using python

  • End to End strategy design and deployment

  • Handling asynchronous calls

  • Sqlite database management

  • Interactive Broker's TWS terminal

  • Relevant account settings in IB


Important note - Course prerequisites:

Please note that this course requires basic python proficiency. At the minimum, you should be comfortable with:

  • basic python data types and format

  • basic python data structures such as list, dictionary, tuple etc.

  • how to create python functions

  • how to implement loops in python

  • installing and importing libraries 

Basic python proficiency is mandatory because Interactive Broker API's python client uses advanced OOP and asynchronous programming concepts. While, I have devoted an entire section explaining these concepts, students with no python knowledge will really struggle to follow along.


Java Data Structures and Algorithms Masterclass

Data Structures and Algorithms from Zero to Hero and Crack Top Companies 100+ Interview questions (Java Coding)

Created by Elshad Karimov - Software Developer and Lead Instructor


Students: 3223, Price: $89.99

Students: 3223, Price:  Paid

Welcome to the Java Data Structures and Algorithms Masterclass, the most modern, and the most complete Data Structures and Algorithms in Java course on the internet.

At 44+ hours, this is the most comprehensive course online to help you ace your coding interviews and learn about Data Structures and Algorithms in Java. You will see 100+ Interview Questions done at the top technology companies such as Apple,Amazon, Google and Microsoft and how to face Interviews with comprehensive visual explanatory video materials which will bring you closer towards landing the tech job of your dreams!

Learning Java is one of the fastest ways to improve your career prospects as it is one of the most in demand tech skills! This course will help you in better understanding every detail of Data Structures and how algorithms are implemented in high level programming language.

We'll take you step-by-step through engaging video tutorials and teach you everything you need to succeed as a professional programmer.

After finishing this course, you will be able to:

Learn basic algorithmic techniques such as greedy algorithms, binary search, sorting and dynamic programming to solve programming challenges.

Learn the strengths and weaknesses of a variety of data structures, so you can choose the best data structure for your data and applications

Learn many of the algorithms commonly used to sort data, so your applications will perform efficiently when sorting large datasets

Learn how to apply graph and string algorithms to solve real-world challenges: finding shortest paths on huge maps and assembling genomes from millions of pieces.

Why this course is so special and different from any other resource available online?

This course will take you from very beginning to a very complex and advanced topics in understanding Data Structures and Algorithms!

You will get video lectures explaining concepts clearly with comprehensive visual explanations throughout the course.

You will also see Interview Questions done at the top technology companies such as Apple,Amazon, Google and Microsoft.

I cover everything you need to know about technical interview process!

So whether you are interested in learning the top programming language in the world in-depth and interested in learning the fundamental Algorithms, Data Structures and performance analysis that make up the core foundational skillset of every accomplished programmer/designer or software architect and is excited to ace your next technical interview this is the course for you!

And this is what you get by signing up today:

Lifetime access to 44+ hours of HD quality videos. No monthly subscription. Learn at your own pace, whenever you want

Friendly and fast support in the course Q&A whenever you have questions or get stuck

FULL money back guarantee for 30 days!

This course is designed to help you to achieve your career goals. Whether you are looking to get more into Data Structures and Algorithms , increase your earning potential or just want a job with more freedom, this is the right course for you!

The topics that are covered in this course.

Section 1 - Introduction

  • What are Data Structures?

  • What is an algorithm?

  • Why are Data Structures and Algorithms important?

  • Types of Data Structures

  • Types of Algorithms

Section 2 - Recursion

  • What is Recursion?

  • Why do we need recursion?

  • How Recursion works?

  • Recursive vs Iterative Solutions

  • When to use/avoid Recursion?

  • How to write Recursion in 3 steps?

  • How to find Fibonacci numbers using Recursion?

Section 3 - Cracking Recursion Interview Questions

  • Question 1 - Sum of Digits

  • Question 2 - Power

  • Question 3 - Greatest Common Divisor

  • Question 4 - Decimal To Binary

Section 4 - Bonus CHALLENGING Recursion Problems (Exercises)

  • power

  • factorial

  • productofArray

  • recursiveRange

  • fib

  • reverse

  • isPalindrome

  • someRecursive

  • flatten

  • captalizeFirst

  • nestedEvenSum

  • capitalizeWords

  • stringifyNumbers

  • collectStrings

Section 5 - Big O Notation

  • Analogy and Time Complexity

  • Big O, Big Theta and Big Omega

  • Time complexity examples

  • Space Complexity

  • Drop the Constants and the non dominant terms

  • Add vs Multiply

  • How to measure the codes using Big O?

  • How to find time complexity for Recursive calls?

  • How to measure Recursive Algorithms that make multiple calls?

Section 6 - Top 10 Big O Interview Questions (Amazon, Facebook, Apple and Microsoft)

  • Product and Sum

  • Print Pairs

  • Print Unordered Pairs

  • Print Unordered Pairs 2 Arrays

  • Print Unordered Pairs 2 Arrays 100000 Units

  • Reverse

  • O(N)  Equivalents

  • Factorial Complexity

  • Fibonacci Complexity

  • Powers of 2

Section 7 - Arrays

  • What is an Array?

  • Types of Array

  • Arrays in Memory

  • Create an Array

  • Insertion Operation

  • Traversal Operation

  • Accessing an element of Array

  • Searching for an element in Array

  • Deleting an element from Array

  • Time and Space complexity of One Dimensional Array

  • One Dimensional Array Practice

  • Create Two Dimensional Array

  • Insertion - Two Dimensional Array

  • Accessing an element of Two Dimensional Array

  • Traversal - Two Dimensional Array

  • Searching for an element in Two Dimensional Array

  • Deletion - Two Dimensional Array

  • Time and Space complexity of Two Dimensional Array

  • When to use/avoid array

Section 8 - Cracking Array Interview Questions (Amazon, Facebook, Apple and Microsoft)

  • Question 1 - Missing Number

  • Question 2 - Pairs

  • Question 3 - Finding a number in an Array

  • Question 4 - Max product of two int

  • Question 5 - Is Unique

  • Question 6 - Permutation

  • Question 7 - Rotate Matrix

Section 9 - CHALLENGING Array Problems (Exercises)

  • Middle Function

  • 2D Lists

  • Best Score

  • Missing Number

  • Duplicate Number

  • Pairs

Section 10 - Linked List

  • What is a Linked List?

  • Linked List vs Arrays

  • Types of Linked List

  • Linked List in the Memory

  • Creation of Singly Linked List

  • Insertion in Singly Linked List in Memory

  • Insertion in Singly Linked List Algorithm

  • Insertion Method in Singly Linked List

  • Traversal of Singly Linked List

  • Search for a value in Single Linked List

  • Deletion of node from Singly Linked List

  • Deletion Method in Singly Linked List

  • Deletion of entire Singly Linked List

  • Time and Space Complexity of Singly Linked List

Section 11 - Circular Singly Linked List

  • Creation of Circular Singly Linked List

  • Insertion in Circular Singly Linked List

  • Insertion Algorithm in Circular Singly Linked List

  • Insertion method in Circular Singly Linked List

  • Traversal of Circular Singly Linked List

  • Searching a node in Circular Singly Linked List

  • Deletion of a node from Circular Singly Linked List

  • Deletion Algorithm in Circular Singly Linked List

  • Method in Circular Singly Linked List

  • Deletion of entire Circular Singly Linked List

  • Time and Space Complexity of Circular Singly Linked List

Section 12 - Doubly Linked List

  • Creation of Doubly Linked List

  • Insertion in Doubly Linked List

  • Insertion Algorithm in Doubly Linked List

  • Insertion Method in Doubly Linked List

  • Traversal of Doubly Linked List

  • Reverse Traversal of Doubly Linked List

  • Searching for a node in Doubly Linked List

  • Deletion of a node in Doubly Linked List

  • Deletion Algorithm in Doubly Linked List

  • Deletion Method in Doubly Linked List

  • Deletion of entire Doubly Linked List

  • Time and Space Complexity of Doubly Linked List

Section 13 - Circular Doubly Linked List

  • Creation of Circular Doubly Linked List

  • Insertion in Circular Doubly Linked List

  • Insertion Algorithm in Circular Doubly Linked List

  • Insertion Method in Circular Doubly Linked List

  • Traversal of Circular Doubly Linked List

  • Reverse Traversal of Circular Doubly Linked List

  • Search for a node in Circular Doubly Linked List

  • Delete a node from Circular Doubly Linked List

  • Deletion Algorithm in Circular Doubly Linked List

  • Deletion Method in Circular Doubly Linked List

  • Entire Circular Doubly Linked List

  • Time and Space Complexity of Circular Doubly Linked List

  • Time Complexity of Linked List vs Arrays

Section 14 - Cracking Linked List Interview Questions (Amazon, Facebook, Apple and Microsoft)

  • Linked List Class

  • Question 1 - Remove Dups

  • Question 2 - Return Kth to Last

  • Question 3 - Partition

  • Question 4 - Sum Linked Lists

  • Question 5 - Intersection

Section 15 - Stack

  • What is a Stack?

  • What and Why of Stack?

  • Stack Operations

  • Stack using Array vs Linked List

  • Stack Operations using Array (Create, isEmpty, isFull)

  • Stack Operations using Array (Push, Pop, Peek, Delete)

  • Time and Space Complexity of Stack using Array

  • Stack Operations using Linked List

  • Stack methods - Push , Pop, Peek, Delete and isEmpty using Linked List

  • Time and Space Complexity of Stack using Linked List

  • When to Use/Avoid Stack

  • Stack Quiz

Section 16 - Queue

  • What is a Queue?

  • Linear Queue Operations using Array

  • Create, isFull, isEmpty and enQueue methods using Linear Queue Array

  • Dequeue, Peek and Delete Methods using Linear Queue Array

  • Time and Space Complexity of Linear Queue using Array

  • Why Circular Queue?

  • Circular Queue Operations using Array

  • Create, Enqueue, isFull and isEmpty Methods in Circular Queue using Array

  • Dequeue, Peek and Delete Methods in Circular Queue using Array

  • Time and Space Complexity of Circular Queue using Array

  • Queue Operations using Linked List

  • Create, Enqueue and isEmpty Methods in Queue using Linked List

  • Dequeue, Peek and Delete Methods in Queue using Linked List

  • Time and Space Complexity of Queue using Linked List

  • Array vs Linked List Implementation

  • When to Use/Avoid Queue?

Section 17 - Cracking Stack and Queue Interview Questions (Amazon,Facebook, Apple, Microsoft)

  • Question 1 - Three in One

  • Question 2 - Stack Minimum

  • Question 3 - Stack of Plates

  • Question 4 - Queue via Stacks

  • Question 5 - Animal Shelter

Section 18 - Tree / Binary Tree

  • What is a Tree?

  • Why Tree?

  • Tree Terminology

  • How to create a basic tree in Java?

  • Binary Tree

  • Types of Binary Tree

  • Binary Tree Representation

  • Create Binary Tree (Linked List)

  • PreOrder Traversal Binary Tree (Linked List)

  • InOrder Traversal Binary Tree (Linked List)

  • PostOrder Traversal Binary Tree (Linked List)

  • LevelOrder Traversal Binary Tree (Linked List)

  • Searching for a node in Binary Tree (Linked List)

  • Inserting a node in Binary Tree (Linked List)

  • Delete a node from Binary Tree (Linked List)

  • Delete entire Binary Tree (Linked List)

  • Create Binary Tree (Array)

  • Insert a value Binary Tree (Array)

  • Search for a node in Binary Tree (Array)

  • PreOrder Traversal Binary Tree (Array)

  • InOrder Traversal Binary Tree (Array)

  • PostOrder Traversal Binary Tree (Array)

  • Level Order Traversal Binary Tree (Array)

  • Delete a node from Binary Tree (Array)

  • Entire Binary Tree (Array)

  • Linked List vs Python List Binary Tree

Section 19 - Binary Search Tree

  • What is a Binary Search Tree? Why do we need it?

  • Create a Binary Search Tree

  • Insert a node to BST

  • Traverse BST

  • Search in BST

  • Delete a node from BST

  • Delete entire BST

  • Time and Space complexity of BST

Section 20 - AVL Tree

  • What is an AVL Tree?

  • Why AVL Tree?

  • Common Operations on AVL Trees

  • Insert a node in AVL (Left Left Condition)

  • Insert a node in AVL (Left Right Condition)

  • Insert a node in AVL (Right Right Condition)

  • Insert a node in AVL (Right Left Condition)

  • Insert a node in AVL (all together)

  • Insert a node in AVL (method)

  • Delete a node from AVL (LL, LR, RR, RL)

  • Delete a node from AVL (all together)

  • Delete a node from AVL (method)

  • Delete entire AVL

  • Time and Space complexity of AVL Tree

Section 21 - Binary Heap

  • What is Binary Heap? Why do we need it?

  • Common operations (Creation, Peek, sizeofheap) on Binary Heap

  • Insert a node in Binary Heap

  • Extract a node from Binary Heap

  • Delete entire Binary Heap

  • Time and space complexity of Binary Heap

Section 22 - Trie

  • What is a Trie? Why do we need it?

  • Common Operations on Trie (Creation)

  • Insert a string in Trie

  • Search for a string in Trie

  • Delete a string from Trie

  • Practical use of Trie

Section 23 - Hashing

  • What is Hashing? Why do we need it?

  • Hashing Terminology

  • Hash Functions

  • Types of Collision Resolution Techniques

  • Hash Table is Full

  • Pros and Cons of Resolution Techniques

  • Practical Use of Hashing

  • Hashing vs Other Data structures

Section 24 - Sort Algorithms

  • What is Sorting?

  • Types of Sorting

  • Sorting Terminologies

  • Bubble Sort

  • Selection Sort

  • Insertion Sort

  • Bucket Sort

  • Merge Sort

  • Quick Sort

  • Heap Sort

  • Comparison of Sorting Algorithms

Section 25 - Searching Algorithms

  • Introduction to Searching Algorithms

  • Linear Search

  • Linear Search in Python

  • Binary Search

  • Binary Search in Python

  • Time Complexity of Binary Search

Section 26 - Graph Algorithms

  • What is a Graph? Why Graph?

  • Graph Terminology

  • Types of Graph

  • Graph Representation

  • Graph in Java using Adjacency Matrix

  • Graph in Java using Adjacency List

Section 27 - Graph Traversal

  • Breadth First Search Algorithm (BFS)

  • Breadth First Search Algorithm (BFS) in Java - Adjacency Matrix

  • Breadth First Search Algorithm (BFS) in Java - Adjacency List

  • Time Complexity of Breadth First Search (BFS) Algorithm

  • Depth First Search (DFS) Algorithm

  • Depth First Search (DFS) Algorithm in Java - Adjacency List

  • Depth First Search (DFS) Algorithm in Java - Adjacency Matrix

  • Time Complexity of Depth First Search (DFS) Algorithm

  • BFS Traversal vs DFS Traversal

Section 28 - Topological Sort

  • What is Topological Sort?

  • Topological Sort Algorithm

  • Topological Sort using Adjacency List

  • Topological Sort using Adjacency Matrix

  • Time and Space Complexity of Topological Sort

Section 29 - Single Source Shortest Path Problem

  • SWhat is Single Source Shortest Path Problem?

  • Breadth First Search (BFS) for Single Source Shortest Path Problem (SSSPP)

  • BFS for SSSPP in Java using Adjacency List

  • BFS for SSSPP in Java using Adjacency Matrix

  • Time and Space Complexity of BFS for SSSPP

  • Why does BFS not work with Weighted Graph?

  • Why does DFS not work for SSSP?

Section 30 - Dijkstra's Algorithm

  • Dijkstra's Algorithm for SSSPP

  • Dijkstra's Algorithm in Java - 1

  • Dijkstra's Algorithm in Java - 2

  • Dijkstra's Algorithm with Negative Cycle

Section 31 - Bellman Ford Algorithm

  • Bellman Ford Algorithm

  • Bellman Ford Algorithm with negative cycle

  • Why does Bellman Ford run V-1 times?

  • Bellman Ford in Python

  • BFS vs Dijkstra vs Bellman Ford

Section 32 - All Pairs Shortest Path Problem

  • All pairs shortest path problem

  • Dry run for All pair shortest path

Section 33 - Floyd Warshall

  • Floyd Warshall Algorithm

  • Why Floyd Warshall?

  • Floyd Warshall with negative cycle,

  • Floyd Warshall in Java,

  • BFS vs Dijkstra vs Bellman Ford vs Floyd Warshall,

Section 34 - Minimum Spanning Tree

  • Minimum Spanning Tree,

  • Disjoint Set,

  • Disjoint Set in Java,

Section 35 - Kruskal's and Prim's Algorithms

  • Kruskal Algorithm,

  • Kruskal Algorithm in Python,

  • Prim's Algorithm,

  • Prim's Algorithm in Python,

  • Prim's vs Kruskal

Section 36 - Cracking Graph and Tree Interview Questions (Amazon,Facebook, Apple, Microsoft)

Section 37 - Greedy Algorithms

  • What is Greedy Algorithm?

  • Well known Greedy Algorithms

  • Activity Selection Problem

  • Activity Selection Problem in Python

  • Coin Change Problem

  • Coin Change Problem in Python

  • Fractional Knapsack Problem

  • Fractional Knapsack Problem in Python

Section 38 - Divide and Conquer Algorithms

  • What is a Divide and Conquer Algorithm?

  • Common Divide and Conquer algorithms

  • How to solve Fibonacci series using Divide and Conquer approach?

  • Number Factor

  • Number Factor in Java

  • House Robber

  • House Robber Problem in Java

  • Convert one string to another

  • Convert One String to another in Java

  • Zero One Knapsack problem

  • Zero One Knapsack problem in Java

  • Longest Common Sequence Problem

  • Longest Common Subsequence in Java

  • Longest Palindromic Subsequence Problem

  • Longest Palindromic Subsequence in Java

  • Minimum cost to reach the Last cell problem

  • Minimum Cost to reach the Last Cell in 2D array using Java

  • Number of Ways to reach the Last Cell with given Cost

  • Number of Ways to reach the Last Cell with given Cost in Java

Section 39 - Dynamic Programming

  • What is Dynamic Programming? (Overlapping property)

  • Where does the name of DC come from?

  • Top Down with Memoization

  • Bottom Up with Tabulation

  • Top Down vs Bottom Up

  • Is Merge Sort Dynamic Programming?

  • Number Factor Problem using Dynamic Programming

  • Number Factor : Top Down and Bottom Up

  • House Robber Problem using Dynamic Programming

  • House Robber : Top Down and Bottom Up

  • Convert one string to another using Dynamic Programming

  • Convert String using Bottom Up

  • Zero One Knapsack using Dynamic Programming

  • Zero One Knapsack - Top Down

  • Zero One Knapsack - Bottom Up

Section 40 - CHALLENGING Dynamic Programming Problems

  • Longest repeated Subsequence Length problem

  • Longest Common Subsequence Length problem

  • Longest Common Subsequence  problem

  • Diff Utility

  • Shortest Common Subsequence  problem

  • Length of Longest Palindromic Subsequence

  • Subset Sum Problem

  • Egg Dropping Puzzle

  • Maximum Length Chain of Pairs

Section 41 - A Recipe for Problem Solving

  • Introduction

  • Step 1 - Understand the problem

  • Step 2 - Examples

  • Step 3 - Break it Down

  • Step 4 - Solve or Simplify

  • Step 5 - Look Back and Refactor

Section 41 - Wild West

Technical Analysis with Python for Algorithmic Trading

Use Technical Analysis and Indicators for (Day) Trading. Create, backtest and optimize TA Trading Strategies with Python

Created by Alexander Hagmann - Data Scientist | Finance Professional | Entrepreneur


Students: 2252, Price: $89.99

Students: 2252, Price:  Paid

"(How) Can I use Technical Analysis and Technical Indicators for Trading and Investing?" - This is one of the most frequently asked questions in trading and investing.

This course clearly goes beyond rules, theories, vague forecasts, and nice-looking charts. (These are useful but traders need more than that.) This is the first 100% data-driven course on Technical Analysis. We´ll use rigorous Backtesting / Forward Testing to identify and optimize proper Trading Strategies that are based on Technical Analysis / Indicators.

This course will allow you to test and challenge your trading ideas and hypothesis. It provides Python Coding Frameworks and Templates that will enable you to code and test thousands of trading strategies within minutes. Identify the profitable strategies and scrap the unprofitable ones!     

The course covers the following Technical Analysis Tools and Indicators:

  • Interactive Line Charts and Candlestick Charts

  • Interactive Volume Charts

  • Trend, Support and Resistance Lines

  • Simple Moving Average (SMA)

  • Exponential Moving Average (EMA)       

  • Moving Average Convergence Divergence (MACD)

  • Relative Strength Index (RSI)

  • Stochastic Oscillator

  • Bollinger Bands

  • Pivot Point (Price Action)

  • Fibonacci Retracement (Price Action)

  • combined/mixed Strategies and more.

This is not only a course on Technical Analysis and Trading. It´s an in-depth coding course on Python and its Data Science Libraries Numpy, Pandas, Matplotlib, Plotly, and more. You will learn how to use and master these Libraries for (Financial) Data Analysis, Technical Analysis, and Trading.   

Please note: This is not a course for complete Python Beginners (check out my other courses!)

What are you waiting for? Join now and start making proper use of Technical Analysis!

As always, there is no risk for you as I provide a 30-Days-Money-Back Guarantee.

Thanks and looking forward to seeing you in the Course!

Data Structures and Algorithms in Swift

Implementing Practical Data Structures with Swift

Created by Mohammad Azam - Apple Featured iOS Developer and iOS Instructor


Students: 1910, Price: $19.99

Students: 1910, Price:  Paid

Data Structures and Algorithms in Swift

Data structures and algorithms are the building blocks of programming. Algorithms and data structures are taught in universities and are often asked during a programming job interview. This course is dedicated to teach you the concepts behind the most common data structures and algorithms, implemented in Swift language.

My name is Mohammad Azam and I am one of the top mobile instructors on Udemy. I have authored 20+ courses and have close to 35000 students. Some of my popular courses include:

Mastering ARKit for iOS

Blockchain Programming in iOS

Mastering MapKit for iOS

Server Side Swift Using Vapor 3

A Complete Guide to Lean Controllers in iOS

I have worked as a lead mobile developer for many fortune 500 companies including AIG, Valic, Schlumberger, Baker Hughes, The Home Depot and At present I am serving as a lead instructor for a coding bootcamp, DigitalCrafts.

What’s stopping you from enrolling in this course today?

I have designed this course specifically for you! Each section is accompanied with exercise files and explain the concept in detail. Check out some of the reviews from my students below:

"Mohammad Azam has an excellent teaching style which makes it easy & fun to comprehend these Swift features in such a short course & he explains the concepts in more detail & clarity than most instructors. Plus, his videos are well prepared & he's very articulate. I hope he will create more courses."

I fully recommend this course to anybody who is learning Swift and wants to learn more about the mapKit framework. The instructor is superb and is very experienced. This course is ideal for beginners, intermediate and even experienced iOS developers. There is something new to learn for everybody about mapKit. I rate this course 10 out of 10. Mohammad Azam is a world class teacher and it was a pleasure following his lessons.

As testament to his work ethic and passion, Mohammad immediately prepared a series of videos covering the specific scenario I mention below. Ultimately, this is a fantastic foundation for anyone looking to explore the new capabilities of the Codable protocols within Swift 4.

Buy this course and what will you get?

I am using the latest version of Xcode 10 for this course along with Swift 4.2. This means you will be working with the brand new technology and language features. I also provide unlimited support on Udemy forums. I love my students and I want to see them succeed and that is why I provide excellent customer service.

Can you believe this course is just $199?

Learning and applying data structures and algorithms can help you land your dream job. Most of the programming interviews revolves around the questions related to data structures and algorithms. All of the information regarding design patterns is available to you for only $199. This is a extremely good deal and you should definitely make use of this deal.

Why learn data structures and algorithms?

  • Data structures and algorithms can land you your dream job since it is asked quite often during programming job interviews.  

  • By learning data structures and algorithms you can become a better developer.

  • Data structures and algorithms can make you a better developer. You will know how things work behind the scenes and what is the cost of writing a particular piece of code.

Who is this course for?

  • This course is for intermediate and advanced developers who wants to learn more about data structures and algorithms using Swift language.

  • Developers who wants to enhance their existing skills.

Is this course right for me?

Look: If you are still not convinced then check out my 5 star rating on Udemy. I am very active on Udemy forums and I try my best to answer every single question from my students. I also provide lifetime updates for my course and keep a regular schedule for updating the course with new, educational material.

2021: Learn algorithmic trading in one day

Python for finance. Deploy your algorithm from A to Z.

Created by Trading 707 - Data Science and Trading


Students: 1745, Price: $89.99

Students: 1745, Price:  Paid

Hi there, we are Sami Sebai and Sajid Lhessani. Both of us are working as a data scientist for various banks here in London, and we have both gone a long way before arriving at our current position in the market.

Do you wish to become a data scientist or algorithmic trader and build yourself a strong portfolio? This course will allow you to develop your Python skills tutored by professionals. You will be able to add Trading Technical Analysis and Algorithmic Trading to your CV and start getting paid for your skills.

  • Tyler: "At time of writing, I have completed close to 100% of this course. The course my first introduction to Python, Numpy, Pandas, and Plotly, as well as using each of them to write technical indicators. Overall I think it was helpful and worth the money."

In this course, you will learn how to build, automate, and deploy your algorithmic trading strategy using Python. Furthermore, using these algorithms, you will be able to perform predictive analysis of the stock market and cryptocurrency.

  • Siraj: "This course is very clearly delivered and very informative. I've learned a lot about algo trading and brushed up on my Python skills in the process.

    It's amazing learning from experts who have experienced their own successes from the trading techniques that they teach. It's also really helpful that this course is 'End-To-End'. That is, they take use from the basics all the way to actually implementing the algorithms in real life.

    Very much looking forward to future courses from these guys!"

What you will learn from this course:

- Plot impressive professional chart guided by an experienced data scientist to be able to present it to client or friend.

- Learn how to import market data.

- Getting connected to the US stock exchange live and get market data with less than one-second lag. (The only course of proposing this option).

- Develop your first trading strategies on Python such as Ichimoku Kinko Hyo or Bollinger Bands with Live Trading Examples. (The only course of proposing this option).

Data Structures & Algorithms – JavaScript

The Ultimate JavaScript Coding Interview Bootcamp

Created by Scott Barrett - Instructor


Students: 970, Price: $89.99

Students: 970, Price:  Paid

This course is different…

After each line of code, an animation of the data structure or algorithm is updated to show exactly what that line of code did.

The animations provide some huge advantages to students:

  • Increased understanding of the concepts

  • Greater rate of retention

  • The material can be covered in a fraction of the time

That means that you can actually learn more material in less time and have higher retention of the material.

That is the key combination of factors to prepare you for the technical interview that lands you your dream job!

I invite you to watch a few of the videos in this course to see what I mean. The difference will be noticeable right away!

I spent over a year to create this course with the goal that an absolute beginner can take it and understand all of the concepts the first time through.

What you will get in this course…

Over 100 hand crafted HD videos that use animations to illustrate technical concepts.

Here is what you will learn in this course:


  • Big O notation

Data Structures

  • Arrays

  • Linked Lists

  • Doubly Linked Lists

  • Stacks & Queues

  • Binary Trees

  • Hash Tables

  • Graphs



  • Bubble Sort

  • Selection Sort

  • Insertion Sort

  • Merge Sort

  • Quick Sort


  • Breadth First Search

  • Depth First Search

I am excited to help you move forward with your coding and career goals. 

Let's get started!

Algorithms in JavaScript : Design techniques

Data Structures, Complexity Analysis,Recursion, backtracking, Dynamic Programming,Greedy algorithm, Divide and Conquer

Created by Basics Strong - Team of technocrats and Programming lovers


Students: 195, Price: $19.99

Students: 195, Price:  Paid

Algorithm Design Techniques : Live problem solving in Java Script

Algorithms are everywhere! One great algorithm applied sensibly can result into a System like GOOGLE!

Larry Page, founder of google designed “Page Rank” algorithm that is behind the search in google. That is why when we search on google we generally find the most relevant result on the First Page itself.

Every Computer Programmer should learn how to design algorithms which are not only correct but also efficient in terms of


Completer scientists have worked from 100s of years !! - (Put images of some of the scientists…)

And derived some of the techniques that can be applied to write and design algorithms!

So Why to reinvent the wheel ??

Let’s go through some of the most famous algorithm design techniques in this course!!

Once you will come to know these design techniques It will become very easy for you to approach a problem by identifying which technique to apply to solve that correctly and efficiently.

We will start this course with some measurement techniques in algorithms that is called complexity analysis so that we can measure -

The time and space in an algorithm when we design that.

Then we will start with understanding recursion and deep dive into that.

Recursion is the base of any algorithm design … because most of the algorithms has to be solved using recursion!

Recursion is executed in computers in a very special way using stack frames… we will understand all that..

There are many types of recursion and we will have a look into that.

We will solve some classic problems like the Tower of Hanoi, Binary subtree… to understand the recursion deeply…

And WE WILL WRITE THE CODE LINE BY LINE IN JAVA !! To make it very easy to understand and code…

Then we will move into another design technique backtracking !!

Backtracking algorithms are enhanced recursion where we can revert our decision from inside a recursion…

We will understand how to Identify and approach this kind of problems..

Also, we will solve some classical problems

Rat In Maze, NQueens, KnightsTour problems… and Code them LINE by LINE …

Then, We will then move to the next section

Divide and Conquer… Greedy algorithms

And will take the same approach !! To understand identify and Solve some problems… and code some classic problems.

Then there will be a very important section! Dynamic programming

That is not only important for Algorithms design but also, Interviews

This is a very favorite paradigm for the interviewer to ask questions from - We will solve a lot of problems in section along with code… and understand how to approach this kind of problem!!

All in all!

By the end of this course -

    1. You will understand how to design algorithms

    2. A lot of coding practice and design live problems in Java

    3. Algorithm Complexity analysis


If you are preparing for your coding Interview or doing competitive programming

This course will be a Big help for you!

I think this is enough to create the THRILL !! I welcome you to the course and I am sure this will be fun!!

If it does not - It comes with a 30 Days money-back guarantee so don’t think twice to give it a shot…

Welcome Again !! And See you in the course.