Friends of OpenJDK Today

“Transitioning to Java”: My First Book!

May 24, 2023


  • Ken Fogel

    Java Champion, JCP Executive Committee, VP of Jakarta EE Ambassadors, conference speaker, and retired (but looking for new opportunities, DM me!) CS teacher.

When I retired from the classroom in 2021, I had no intention of sitting on a rocking chair on my front porch.

I looked for speaking opportunities, became a member of the JCP EC, and continued thinking about ways to enhance Java teaching.

I also wanted to write a book. I approached a number of publishers with my idea for a beginner's book. I even wrote a sample chapter and publsihed it on my blog,

It was unsuccessful because every publisher told me that they had enough beginners books. One publisher, Apress, did give me a contract to produce a video for beginners But I still wanted to write a book!

This is where "Transitioning to Java" came from. In talking with the publisher, Packt, I proposed another beginner's book but for a different category of beginner.

The beginners I hope will read my book are developers who already know another coding language. Rather than having to begin at square zero explaining what software is, what a variable is, what a method is, etc. I would explain the skills a developer new to Java needed. I submitted a formal proposal for a small book of 10 chapters and likely no more than 200 pages. In April 2022 Packt accepted the proposal, a contract was signed, and writing began.

After about two months, I realized that there was far more to say to an experienced developer about Java than I thought. The book grew to 12 and finally 16 chapters. The page count went from 200 to just over 300 pages. I learned that writing was a lot more difficult than I expected.

I found myself agonizing over individual sentences. Writing the code samples that accompanied every chapter was also difficult because I needed to ensure that I was using the best practices. An attack of imposters syndrome came up every time a chapter went to my technical reviewers. But in the end the book was completed and is available now.

What is in this book?

  • It begins with a look at how Java is distributed and what is included when you download the SDK. Next up was the development environment. Here I made the decision to to keep this as simple as possible. All you needed was Java, a text editor, and Maven. The version of Java is 17 although a later chapter that looked at virtuakl threads needed Java 19. When Jakarta EE came up I used Glassfish. An entire chapter is dedicated to Maven.
  • Next up were language fundamentals. I am quite proud that this section of the book is "Hello World" free. Instead the first program calculates compound interest. There are 9 chapters covering the fundamentals I believe a developer new to Java should know.
  • The third section of the book looks at Swing, JavaFX, and web programming. I present the same program using Swing and JavaFX. After discussing the fundamentals of a servlet I present the same application as a Jakarta Faces application.
  • The last section looks at packaging and containers. Here I show how to construct a custom JRE using modulaization and then create an installer for your desktop application. I end this section by showing how to deploay a web application in a Docker container.

I like to describe this book as a beginner's book for experts. Anyone who needs to get up to speed quickly using Java is my primary audience. I also believe that it will be useful to developers who had used Java but not for some years.

I hope that you find it useful. Tell your Python, C#, C, C++, Swift, and any other language using friends and co-workers that this will be the book to read when Java crosses their plate.


Related Articles

View All


  • Ken Fogel

    Java Champion, JCP Executive Committee, VP of Jakarta EE Ambassadors, conference speaker, and retired (but looking for new opportunities, DM me!) CS teacher.

Comments (1)

Your email address will not be published. Required fields are marked *

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

Save my name, email, and website in this browser for the next time I comment.

Michael David Wyatt Hensley

Just ordered this book!
Coming from Python/C++. I’m looking forward to some solid guidance.
Having used Java for a year now, some things are still very fiddly for me.

Subscribe to foojay updates:
Copied to the clipboard