As you may know, programming is a very knowledge-demanding profession. Besides the fact that truly mastering any programming language will take a lot of time and practical experience, very often it isn’t enough. To be successful as a professional software engineer, you will also often be required to know multiple other areas and components of software development work. Even though at CodeGym our goal is to train our students to become real functional Java developers ready for hire, one course, even as great and well-structured as CG is, just can’t supply you with all the knowledge you may need as a pro software developer. That’s why we decided to write a number of pieces about additional programming-related subjects that are not a part of CodeGym’s course, with links and recommendations on where you can learn them. Today we are going to talk about Data structures.
Data Structures and Algorithms in Java is designed to be easy to read and understand, although the topic itself is complicated. Besides clear and simple example programs, the author includes a workshop as a small demonstration program executable on a web browser. The programs demonstrate in graphical form what data structures look like and how they operate.
A very old (first published in 1983) but still one of the most popular introductory textbooks on data structures and algorithms.
The authors' treatment of data structures in Data Structures and Algorithms is unified by an informal notion of "abstract data types," allowing readers to compare different implementations of the same concept. Algorithm design techniques are also stressed and basic algorithm analysis is covered. Most of the programs are written in Pascal.
Another good textbook for beginners in data structures. ‘Data Structures And Algorithms Made Easy: Data Structures and Algorithmic Puzzles’ is a book that offers solutions to complex data structures and algorithms. There are multiple solutions for each problem, and the book is coded in C/C++. This book can serve as a guide to prepare for interviews, exams, and campus work.
Advanced Data Structures presents a comprehensive look at the ideas, analysis and implementation details of data structures as a specialized topic in applied algorithms. This text examines efficient ways to search and update sets of numbers, intervals, or strings by various data structures, such as search trees, structures for sets of intervals or piece-wise constant functions, orthogonal range search structures, heaps, union-find structures, dynamization and persistence of structures, structures for strings, and hash tables.
Programming with Mosh is a popular mainstream YouTube channel for programming beginners. It has lots and lots of tutorials on Java and other programming languages, they are well-structured and well-presented, including the tutorial on data structures and algorithms. A good way to familiarize yourself with these subjects if you don’t feel like reading books and paying for courses.
One of the best free video courses on data structures by Google engineer William Fiset. This course teaches data structures to beginners using high quality animations to represent the data structures visually.
You will learn how to code various data structures together with simple to follow step-by-step instructions. Every data structure presented is accompanied by some working source code in Java.