Monday, October 10, 2016

My New Book: Java 9 Data Structures and Algorithms

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 https://www.packtpub.com/application-development/java-9-data-structures-and-algorithms.

No comments:

Post a Comment