About halfway this year I decided to write a book on datastructure and algorithms in Java 9 after being suggested to do so by Packt. Java is the most popular programming language in the enterprise systems and have been such way at least for the last ten years. There are many people in the industry coming from all disciplines of engineering and doing an extraordinary job in this industry. I am one of these people, being a software developer without a formal degree in computer science. We started programming by simply implementing systems. However, at some point of time, it is necessary to learn the basics of computer science to get an entry into the elite club. My book is for the people who already know Java and having been programming in this language, but want to learn about datastructure and algorithms.
An overview of the book
Other than the knowledge of Java language, the book does not assume any knowledge of computer
science. However, I am assuming a science or engineering background, and I am assuming the
knowledge of high school algebra and calculus. The book however starts from the very basics
of datastructure and algorithms, covering basic convcepts of asymptotic complexity and analysis
of algorithms. From there, the book takes a step by step introduction to the concepts of datastructure
and algorithms, from the simplest to the more complex ones slowly. Even if the book assumes no
prior knowledge of algorithms, I tried to provide an in depth view into each topic. I have tried
to grow a mathematical understanding of the subject.
The book also provides fully working implementation using the lastest features of Java. Since a lot
of Java programmers are not familiar with the newest features, I have included an introduction to those
features as and when appropriate. This makes the book sort of standalone and the readers don't have to
keep looking for other books or the web to clarify those topics.
What is covered I have started with the basics of asymptotic
complexity and went onto covering linked lists, stacks, queues, trees, binary trees, search trees, hash tables,
and graphs. In algorithms, of course I have covered searching and sorting algorithms along with traversal of
datastructures, and certain specific algorithms for specific datastructures. Along with this, I felt that
a functional view of algorithms is also required to be studied and I have included a discussion on functional
programming as well. I have shown an inclination to a functional style of implementation of algorithms, although
I have kept away from it and resorted to procedural style when the functional style would be too inefficient.
The prefrence towards a recursive style of implementation makes the algorithms very intuitive to understand
and follow. I have also included a discussion on concurrent algorithms and reactive programming, although this
part is very basic.
How to get this book This book is currently incomplete and is work in progress.
You can however get an early access from the Packt Website.
You just have to click on the link
https://www.packtpub.com/application-development/java-9-data-structures-and-algorithms . The early access gives you access to pre-reviewed draft of the chapters as they
are writen. This gives you access to content as early as possible. This is as good as reading my
blog, the content is available as soon as I write it up.
To know more, you can click on