0. Theory is important too

Theory, of course, is also very important. Suppose physicists never systematized their theoretical knowledge, but instead exclusively engaged in experiments. That would be a lot of fun, but hardly very useful! Programming is no different. On CodeGym, we have focused mainly on practice and hands-on tasks that let you make progress as quickly as possible. But you can (and we strongly recommend it!) draw knowledge from other sources, above all — from books.

Everybody is different: some people can just read one short lesson on CodeGym and everything is immediately clear; others are more comfortable relying on a variety of sources, synthesizing information and drawing conclusions as they go.

Here are the best Java programming books that you can use in conjunction with your studies on CodeGym. Each of them is tried and true and will definitely not be a waste of your time or money.


1. Head First Java

Kathy Sierra, Bert Bates

By far the best Java book for beginners! Head First is a series of dozens of books on various programming languages. The authors have an original presentation style, which makes the book a quick and easy read. You can also write code and solve problems right in the book!

You can start reading it at any level of CodeGym, even level zero :)


2. Thinking in Java

Bruce Eckel

A Java programmer's bible. This is no exaggeration — every Java developer should read it. It is quite thick, and there's a reason for that. This book is aptly named: it not only deals with specific Java topics, but also explains the Java language's philosophy and ideology, i.e. why Java's creators did things their own way and not like in other languages.

It's not suitable for entirely newbie programmers, but after you can tackle it after completing half of the CodeGym course.

These are the main books for you to read about Java (although there are many more). But beyond learning the language, books can broaden your understanding of programming in general. Below is a list of books that are perfect for this.


3. Java: The Complete Reference

Herbert Schildt

This book is also good for beginners. It differs from the previous one mainly in how the material is presented: here the presentation is more strict and consistent (many people prefer just such an approach). It undoubtedly excels at "chewing up" the material into the smallest bits, sometimes many times.


4. Code: The Hidden Language of Computer Hardware and Software

Charles Petzold

The rave reviews and high Amazon ratings for this book (4.7/5) speak for themselves.

An excellent book for anyone who never took computer science in high school forgot it long ago. Important aspects of a computer's operation and code are explained right in your fingertips. For example, how does a computer actually execute the code written by a programmer? And how does the code tell the computer what we want it to do?

This classic book answers every question. It is the perfect study aid for anyone learning to program without the benefit of a specialized education.


5. Grokking Algorithms

Aditya Bhargava

Algorithms and data structures are essential topics. Much of a programmer's time is spent using them, and it should be effective! For example, how can you sort 1000 random numbers?

Well, there are tons of ways to do this! But they are all far from equally effective. Plenty of books and courses are dedicated to algorithms and data structures, but for people who have just started to learn programming, Bhargava's book is by far the best. It has simple language, detailed explanations with pictures, and it isn't very large volume — just what you need to get started!

Of course, life doesn't stand still: new versions of Java, new books, and new translations are constantly being released. Reviews and collections of new books regularly appear on the CodeGym website, so stay tuned!

Learn Java on CodeGym, read books, and get involved in the CodeGym community, and the rest will follow.

undefined
3
Task
New Java Syntax, level 3, lesson 10
Locked
Labels and numbers
Use the keyboard to enter an integer. Display a string description as follows: "Negative even number" - if the number is negative and even, "Negative odd number" - if the number is negative and odd, "Zero" - if the number is 0, "Positive even number" - if the number is positive and even, "Positive o
undefined
3
Task
New Java Syntax, level 3, lesson 10
Locked
Describing numbers
Enter an integer from the keyboard in the range 1 - 999. Display a string description as follows: "even single-digit number" - if the number is even and has one digit, "odd single-digit number" - if the number is odd and has one digit, "even two-digit number" - if the number is even and has two digi
undefined
3
Task
New Java Syntax, level 3, lesson 10
Locked
Positive number
Use the keyboard to enter three integers. Display the number of positive numbers in the original set. Here are some examples: a) if you enter the numbers -4 6 6 then we display 2 b) if you enter the numbers -6 -6 -3 then we display 0 c) if you enter the numbers 0 1 2 then we display 2
undefined
3
Task
New Java Syntax, level 3, lesson 10
Locked
Positive and negative numbers
Use the keyboard to enter three integers. Display the number of positive and negative numbers in the original set in the following form: "Number of negative numbers: a", "Number of positive numbers: b", where a and b are the relevant values. Examples: a) if you enter the numbers: 2 5 6 then we displ