Data Structures and Algorithms: Deep Dive Using Java (Udemy.com)
Learn about Arrays, Linked Lists, Trees, Hashtables, Stacks, Queues, Heaps, Sort algorithms and Search algorithms
Created by: Tim Buchalka
Last updated April 2025
Our take
Based on the ratings of 22,813 students, a sample of their written reviews and the syllabus, as the course stood in April 2025. No course pays to be reviewed.
This is a 16 hour, 118 lecture course on the classic data structures and sorting algorithms, taught in Java and aimed at people who already write it. It comes from Tim Buchalka's Learn Programming Academy, with Sarah Ettritch credited on the course page as the presenter. The pitch is implementation over interview theory: students build each structure themselves, then look at what the JDK already gives them. Around 124,000 students have enrolled since 2017.
Reviewers like the rhythm: a short explanation with visuals, then code it live. Several call it easy to follow, and one student credits it for the highest grade in a DS&A class. Of 22,811 ratings, about 87 percent are four or five stars. The complaints are consistent. Sorting gets 27 lectures, more than a quarter of the run time, and one reviewer found some sections ran long. Graphs, tries, dynamic programming and greedy algorithms are not covered at all. One three-star review says the videos show what to do but not always why. Two others say the Java version and Ubuntu install steps feel dated even after the 2025 refresh.
Against its neighbors, this is the Java option, pitched at building things rather than passing interviews. The courses beside it are aimed at C++, JavaScript or interview prep; this one stays in Java, and reviewers who wanted LeetCode practice say it isn't here. If Java is the daily language and the goal is to understand what ArrayList and HashMap actually do, it's a sound pick. Interview crammers should look next door.
Pros
- Each structure is explained with visuals first, then coded live, and reviewers say the pace is easy to follow.
- Spends real time on what the JDK already provides, so students learn when not to write their own.
- About 87 percent of 22,811 ratings are four or five stars, with under 3 percent at one or two.
- Full source code is included, and one reviewer ported the whole course to C# as an exercise.
Cons
- No graphs, tries, dynamic programming or greedy algorithms, which two reviewers asked for.
- Sorting takes 27 lectures and over four hours, and one reviewer found some sections ran long.
- Java version and Ubuntu install steps still feel dated to reviewers, despite an April 2025 update.
The teacher's logic is clear, and even those with no background in data structures and algorithms can keep up. By coding along with the teacher, one can understand important data structures and algorithms.
Intermediate is right: it assumes comfort with Java classes and OOP, and one reviewer says no data structures background is needed to keep up.
What you will learn
- Learn the strengths and weaknesses of a variety of data structures, so you can choose the best data structure for your data and applications
- Code an implementation of each data structure, so you understand how they work under the covers
- Learn many of the algorithms commonly used to sort data, so your applications will perform efficiently when sorting large datasets
- Learn what’s available in the JDK for storing and sorting data, so you won’t waste time reinventing the wheel
Course content
12 sections · 118 lectures · 16 hours of video 4 articles
- 1Introduction 6 free previews11 lectures · 57 min
- 2Arrays and Big-O Notation5 lectures · 44 min
- 3Sort Algorithms Deep Dive 4 free previews27 lectures · 4.3 hours
- 4Mastering Lists in Java: Implementations and Applications 1 free preview13 lectures · 2.1 hours
- 5Stack Data Structures: Implementation and Use Cases 1 free preview6 lectures · 49 min
- 6Mastering Queue Data Structures: Implementation and Applications in Java8 lectures · 1.2 hours
- 7Hash Tables: Mastering Key-Value Data Structures for Efficient Data Retrieval14 lectures · 2.2 hours
- 8Optimized Search Algorithms in Java: Linear and Binary Search4 lectures · 26 min
- 9Mastering Tree Data Structures: Implementation and Optimization in Java14 lectures · 1.8 hours
- 10Mastering Heaps: Priority Queues and Heapsort Algorithm in Java10 lectures · 1.4 hours
- 11Final Section: Concluding the Course with Key Takeaways and Sets3 lectures · 4 min
- 12Extra Information - Source code, and other stuff3 lectures · 7 min
Who it is for
The instructor says it suits
- Developers who have some knowledge of Java (or another OO language) looking to understand data structures and algorithms at a deep level
What you need before you start
- Previous experience with an object-oriented programming language, preferably Java (but any OO language is fine).
How it compares
Against the other 231 rated Udemy courses in Java on CourseDuck:
- Rating4.5 out of 5higher than 53% of them
- Reviews22,813#10 of 232 by number of reviews
- Length16 hourslonger than 71% of them
- Last updatedApril 2025more recently than 60% of them
Course Description
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:-
Arrays
Linked Lists
Trees
Hashtables
Stacks
Queues
Heaps
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.
Why?
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
Instructor Details
- 4.5 Rating
22,813 Reviews
Tim Buchalka
Tim's been a professional software developer for over 40 years. During his career, he has worked for major companies such as Fujitsu, Mitsubishi, and Saab.
His video courses are used to train developers in major companies such as Mercedes-Benz, Paypal, VW, Pitney Bowes, IBM, and T-Mobile just to name a few (via the Udemy for Business program).
What makes Tim unique is his professional programming career - many instructors have never programmed professionally, let alone had a distinguished professional development career like Tim.
Tim has trained over 1.73 million students how to program, way more than a typical IT Professor at a college does in a lifetime.
In fact, Tim's courses are often purchased by students struggling to get through college programming courses.
More courses by Tim Buchalka
Java Masterclass 2025: 130+ Hours of Expert Lessons
4.6 (214,534 Reviews)
Provider: Udemy
Time: 135.7h
$149.99
Learn Python Programming Masterclass (2026)
4.6 (105,895 Reviews)
Provider: Udemy
Time: 61.7h
$199.99
Introduction to Continuous Integration & Continuous Delivery (2025)
4.5 (30,569 Reviews)
Provider: Udemy
Time: 2.3h
$59.99
Android Java Masterclass - Become an App Developer (2025)
4.1 (10,740 Reviews)
Provider: Udemy
Time: 60.4h
$119.99
Java Spring Tutorial Masterclass - Learn Spring Framework 5 (2025)
4.0 (6,471 Reviews)
Provider: Udemy
Time: 45.5h
$14.99
Android App Development Masterclass using Kotlin (2025)
4.3 (6,194 Reviews)
Provider: Udemy
Time: 62.2h
$84.99
More Java courses
Hibernate and Spring Data JPA: Beginner to Guru (2026)
4.8 (1,265 Reviews)
Provider: Udemy
Time: 30.3h
$84.99
Learn JAVA Programming - Beginner to Master (2026)
4.7 (31,368 Reviews)
Provider: Udemy
Time: 61.4h
$119.99
The Complete Java Certification Course (2025)
4.7 (30,462 Reviews)
Provider: Udemy
Time: 18.1h
$174.99
Oracle Java Certification - Pass the Associate 1Z0-808 Exam. (2025)
4.7 (6,236 Reviews)
Provider: Udemy
Time: 20.2h
$12.99
Reviews
By Jessie Ji on 8/10/2024
The course is well-taught, emphasizing fundamentals, and is suitable for students who have studied the Java language. The teacher's logic is clear, and even those with no background in data structures and algorithms can keep up. By coding along with the teacher, one can understand important data structures and algorithms. I hope the teacher can add content on backtracking algorithms, greedy algorithms, graph, and DP, as these are very essential knowledge we definitely need to master. I hope to learn these from you.
By April McBroom on 6/9/2024
This was an excellent course though some parts were longer in sections. I am hoping this course is updated in the future so that it will contain the latest and newest algorithms and data structures. Concepts have been taught well, although there are some sections that were longer as mentioned in the above. I took this course in Java but I translated the Java code into C# and now have the entire course as a C# DSA. I wish however, that the same employee code wasn't used for multiple sections since it was a lengthy class and having to recreate it over and over wasn't too satisfying depending on the section.
By beyza Erdoğan on 6/30/2022
The course is very well organized, and I am studying and coding every day, but there is some issue. Theory parts are really too long and difficult to keep up with, because the instructor says something without doing anything for a long time through the video. For example, merge sort theory video is 20 minutes long and the first 10 minutes we only see slides with some writing. Please consider that anyone can focus on the screen for a so much long time. Now, I finished list part, and I am in stack part, and I have to say that the teacher and her codes is very clean and easy to understand. Everything is explaining in a reasonable way.
By Yash Agarwal on 10/19/2021
The instructor is very good. I was never able to understand algorithms and data structures this much cleary until I purchased this course. If are having understanding the recursive part of merge sort then just print this int[] leftSiblingArray = new int[mid - start]; for (int i = start, j = 0; i < mid; i++) { leftSiblingArray[j++] = inputArray[i]; } int[] rightSiblingArray = new int[end - mid]; for (int i = mid, j = 0; i < end; i++) { rightSiblingArray[j++] = inputArray[i]; } System.out.println("left sibling array: " + Arrays.toString(leftSiblingArray) + ", right sibling array: " + Arrays.toString(rightSiblingArray)); just before the merge function call.
By Sagar Kaw on 6/25/2020
Most of the other courses that I have gone through in the past only had the theory of DSA explained in their courses. But this course in particular becomes the favourite as every concept in this course is explained well through its coding implementation in Java. Really appreciate the efforts of Sarah and Tim. Best part of the course: The challenges provided in each section. Thanks a Lot!!!
By Anand Sharma on 6/1/2020
A good quick course on data structure using java. Provides good understanding of different DS types. Coding videos are also good and teaches the clean and brief coding. To the people taking these course- I suggest to watch the implementation videos for a 2nd or 3rd time with pen and paper with you, if you are having problem in understanding write the code/logics/loops on paper and evaluate them. The implementation shown here are actually very good, short and adhering to clean code standards.
By Mousa Al Bateh on 1/28/2020
This course is very helpful and practical for let's stay starting Software Engineers like me or people who want to become Software Engineers. It provides almost maximum coverage for the mass of the questions and concerns in today's world when it comes to efficiency and proper handling of memory; even though today technology has evolved and memory has become cheap, and it doesn't matter anymore that much how good our algorithms are thanks to the strong CPUs and RAM memory chips, we need to praise the instructor of this course for putting all of this effort to implement such complex topics and explaining to us all of that complicated stuff. I would have given this course a maximum rating or 5/5 if the following could change (I would change my rating or increase it if such changes could happen): 1- Give the students something that they can get back to before an interview or something to review. The source code is actually really good that we can download it so we wouldn't have to copy it like a copywriter. However, if they are in a format that would make it easier for us to review later on without having to do special arrangements, it would be great. For example, PDF friendly booklet with all the theory and implementation that we can print out and review. 2- I'm taking several courses with Tim's academy and trust me, it's a good academy. However, I failed to notice one tiny problem. Sometimes I asked questions in few courses under the QA section and got answers mostly by Mr. Goran. Sometimes, I feel that the initial or automatic response is like "Cmon man, use your brain, play the videos again and follow word by word; be independent; we are not in Kindergarten". I think that instead of viewing students' questions in such situations as a student who is being lousy or not tentative, maybe we can see it the other way around. Consider those questions as gifts since they mean the following: A- If the student failed to understand something, could it mean that we failed at a certain moment in the lesson to draw attention to something that could have been easy to miss by the student? B- Maybe the student is a bit lost and has a different way of formulating or visualizing things due to different background either academic or professional? :) Maybe a small tip or some good website can help a lot on a specific term that is being used implicitly in the course? Don't get me wrong, this is a great course that I would recommend all my friends to take; the above comments are just suggestions for improvement, that's all :)
By Thomas Mathew on 5/3/2019
A really good course covering a variety of essential computer science topics that any good programmer should know using the Java language. The instructor Sarah goes into the details and mechanics of each algorithm and data structures quite painstakingly and does a great job explaining each topic. There is a good balance of theory and practice throughout this course and that helps immensely in getting a grasp of each topic.
By Bill Brophy on 4/14/2018
I'm a software developer who uses Java (intermediate experience and knowledge). I enjoyed Tim's Java Masterclass - it helped me a LOT in my work (Particularly with Java 8. We just upgraded to 8 recently). I found this course a good followup - helped me see more of the nuts and bolts behind many Java classes. My work involves frequently using JDBC for data base access, and this course will be very helpful with how I handle the data once I've fetched it from the DB - detailed collection structures, sorts, etc., PLUS explanations of the pros and cons of many of these structures. I'm very pleased with this course and it will definitely help me. Thank you!
By Rinkesh Gokulchandani on 2/6/2018
This was my first course on Udemy and I really enjoyed learning.I seriously didn't knew that there were so many sort algorithms.Being an Electronics and TeleCommunication Graduate who wants to get into IT industry,I always heard that Data Structures and Algorithms is a key subject to become a better programmer and now I know why.Sarah Mam explains really well and to the point.I am grateful that I chose this as my first Udemy course and I am thankful to her for teaching me such a important subject.The only reason I am not giving a 5 star rating is there should have been Graphs Topic at least a little bit and one or two extra lessons about implementing a Set-Related Program.Please try to add this for students who are going to enroll in this course in the future.I totally recommend this course to anyone who wants to learn Data Structures and Algorithms and it's practical implementations.I am sure I am a much better programmer now due to this course.One again Thank You!!
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 90 / 100












