"Hello, Amigo, my friend (forgive me for being redundant!). You've probably heard this saying: 'The more you sweat in training, the less you bleed in war', yes?"

"Well, it's true, learning is often not easy! You are mastering a new profession as a programmer, and, quite possibly, you're drastically changing your line of work."

"CodeGym involves a large amount of practice. It makes up more than 80% of the entire learning process."

"We turned them into a big, interesting quest (actually a whole series of quests), but everyone is different: some learn fast, others more slowly. Some master new material easily, while it is more difficult for others. However, our job is to get each of our students to the finish line."

"But, Professor, what if no matter what I try I can't figure out the next task, or what if I can't grasp the explanation of the next topic if my life depended on it?"

"The solution is very simple: the community. The community includes students like you, graduates, teachers, and professional developers…

"Programmers aren't just a few million people who write code in various languages and create startups in their free time. They form a global network of people who constantly share their knowledge with others. They're ready to answer questions and help others understand complex topics."

"The world's largest developer community, the StackOverflow website, started because programmers need to learn from each other. The concept is simple: you ask a question and any programmer in the world can answer it. Convenient, right? :)"

"Here at CodeGym, we think there is huge value in students exchanging knowledge. By helping others, the programmer grows personally (after all, there is no better way to grasp something yourself than to explain it to someone else)."

That's why we created special sections designed to give all our students an opportunity to share knowledge and help each other in the learning process.

"So, what should you do if you've stalled on a task? Searching for the completed solution on the Internet is not a good idea. If you find one, you'll get credit for the quest. But, you'll still have a gap in your understanding and it will definitely come back to bite you in the future. Trust me."

"It's much better to start actively using the Help section."

"It's really easy to use. Just click the 'Help' button next to the task:"

wedIDE-Help

"If you need to find a specific task from a specific level, simply enter its name in the search bar."

Java Help

"Or, choose the quest and level you need from the drop-down list."

Help CodeGym

"If you select the 'Resolved' filter, you'll see questions that the CodeGym community has already answered."

"Simply click the 'Ask a question' button, attach a link to the task, and explain your problem."

"Note: answering with complete code in the Help section is not allowed. The point of this section is to allow users to give each other tips, which will help them find the right solution on their own. On one hand, you'll no longer have gaps in your understanding; and on the other, you'll feel pleased with yourself: you completed the task instead of skipping it or googling to find a completed solution. Nothing but upsides here! :)"

"And as you gain experience on CodeGym, don't forget about the Help section! As I mentioned above, there's no better way to learn something than to explain it to someone else. CodeGym students will be happy if you come to their aid, just like others came to help you. Simply select the 'New' filter, and try to answer the questions posed by your fellow nerds. They'll be grateful, and you'll get to deep dive into the subject once again and dig into someone else's code (and understanding someone else's code is a critical skill for programmers!).

But CodeGym isn't just for learning! We also interact with our fellow programmers (beginners and experts alike)."

"Usually, people create groups on social networks to associate with like-minded people. We decided that this is a good idea, so our site also has groups (so-called sections in the Articles section)".

"As you can see, there are different types of groups. They center on various IT interests (for example, there are groups for front-end developers and testers)."

"And be sure to join our website's three main groups!

In the CodeGym group, we publish the latest news about the website, contests, and promotions. All new website updates and changes appear there first."

"In the Random group, we publish interesting articles about IT in general, many of which are written by our students and graduates! Here you can significantly expand your horizons by exploring new technologies, finding book reviews, getting tips on how to find work, unwinding with IT jokes, and much more. :)"

"There's also a Leaderboard section."

"Successfully finish all the tasks, and one day you might be the best student of all! :)"

"In the Java Developer group, you'll find interesting articles about Java, additional training materials, as well as news about the language."

"And there are more groups. CodeGym is the best place for new writers! Writing an article is a great way to thoughtfully organize your knowledge on a topic."

"Okay, great. Practice makes sense. But what role does theory play?"

"Theory is also very important, of course. If physicists didn't apply their theoretical knowledge, and instead only experimented, though fun, it probably wouldn't be very useful! Programming is no exception. On CodeGym, we focus primarily on practice, which lets you progress as quickly as possible. However, you can (and we strongly advise that you do!) gain knowledge from other sources of information, primarily books."

"Everyone is different: some people just read one short lesson on CodeGym and it immediately makes sense; others find it more convenient to gather information from other sources, summarize it, and then draw conclusions."

"Here are some of the best books about Java programming, which you can study in parallel with your activities on CodeGym. Each proved itself to be worthwhile long ago and will definitely not be a waste of your time or money."

  1. "Kathy Sierra and Bert Bates, Head First Java"

    Professor Noodles to the rescue - 4

    "Definitely the best book on Java for beginners! The Head-First series has dozens of books on various programming languages. The authors have their own unique way of presenting the material, which makes it a quick and easy read. Plus, you can write code and do tasks right in the book!"

    "You can start reading it no matter what your level is on CodeGym, even if you're at level zero. :)"


  2. "Herbert Schildt: Java: The Complete Reference"

    Professor Noodles to the rescue - 5

    "This book is also good for beginners. The primary difference from the previous book is how the material is presented: here the material is presented in a more rigorous and consistent manner (many prefer this 'rules of the game' method of presentation). Among its unquestionable advantages is the fact that it breaks down the material to the smallest detail, sometimes, repeatedly."


  3. "Bruce Eckel, Thinking in Java"

    Professor Noodles to the rescue - 6

    "This is Java programmer's bible. And that's not an exaggeration: every Java developer should read it. It is pretty big, and there's a reason for that. It wasn't given its name lightly: it doesn't just cover specific topics on the language, it also explains Java's philosophy—its ideology; why the language's creators sometime did things their own way, differently than in other languages."

    "It's not meant for complete beginners, but by the time you reach the 20th level on CodeGym, you can start studying it."

    "These are the essential Java books you should read (there are many others). By reading books, in addition to learning about the language, you'll also expand your understanding of programming in general. Here are the best books for that:"


  4. "Charles Petzold, Code: The Hidden Language of Computer Hardware and Software"

    Professor Noodles to the rescue - 7

    "This book's rating on Amazon (4.7/5) and other rave reviews, speak for themselves."

    "It's a great book for people who have long since forgotten what they learned in their high school computer science class, or who never took one. It explains, in layman's terms, important things about how computers and code work. For example, how does the computer execute the code written by the programmer? And how does the computer understand the code's text, i.e. what people want the computer to do?"

    "This book, which has already become a classic, contains the answers to these questions. The book does a fantastic job at helping bring up to speed people who are studying programming without any specialized education."


  5. "Aditya Bhargava, Grokking Algorithms".

    Professor Noodles to the rescue - 8

    "Algorithms and data structures are very important and necessary. They represent a significant part of a programmer's work, and programmers must use them effectively! For example, how do you sort thousands of random numbers?"

    "Actually, you can do it a bunch of ways! But, they are far from equally effective. There are lots of books and courses on algorithms and data structures, but Bhargava's book is definitely the best for people who have just started learning programming. It uses simple language, includes detailed explanations with pictures, and isn't too big. Just what you need to get started!"

"Read books, complete tasks, and participate in the community: the perfect recipe for becoming a programmer!"