CodeGym /Java Blog /Learning Java /Learn Java Fundamentals on CodeGym — The Complete Course ...
Alex Vypirailenko
Java Developer at Toshiba Global Commerce Solutions

Learn Java Fundamentals on CodeGym — The Complete Course Summary

Published in the Learning Java group
You probably know that today programming in Java is utilized globally. It’s a good choice for web programming, creating mobile applications and software solutions for both small companies and enterprises. And of course, Java is on top of the wave of IoT developments. If you’re interested in computer science and modern technologies you know what we’re talking about. Fancy creating something entirely new? Then programming in Java is the right choice for you. Learn Java Fundamentals on CodeGym — The Complete Course Summary - 1 Of course, programming at its core isn’t attached to any machine language. But consider that the language is your major tool, and when you choose to learn Java fundamentals, you make the first step to gaining the whole toolkit. Java is a flexible, object-oriented programming language with vast collections and compatible frameworks. It also improves during constant updates that introduce the new cool features to help you create any programming solution you need. Literally, anything from simple mobile games and chatbots to secure corporate software and even the developments for space explorations! So if you’re ready to learn something fantastic, welcome to CodeGym. It is more than just a regular online course with endless lectures and a small amount of practice or books with tons of theory. With CodeGym you’ll get exactly what you need:
  1. Comprehensive training program for the total beginners
    If you’re new to programming you might don’t even know where to start and how many theoretical knowledge you need. We won’t let you get lost! CodeGym course includes just the right dash of theory explained in a plain language with real-life examples. You will learn fundamentals of Java programming step by step and level-up to a junior Java developer.

  2. Tons of practice to make you confident in coding
    You will learn Java programming by doing and sharpen your programming skill. We believe that practice is the most important in your learning. Here you’ll get 1200+ tasks of different complexity with instant verification, code analysis, tips to help you with the task. Prepare to code from the first lessons.

  3. A gamified quest game with motivation and rewards
    We know that your future programming career is not a joke, but your learning can be (and must be) fun. We’ve designed a gamified course with motivation and rewards that will help you reach your goal. The course is divided into four quests. Each quest has 10 levels with bite-size lectures and dozens of tasks. If you don’t know how to start learning Java, just stick to our course, and it will effectively introduce you to Java basics.

    Imagine that you need to complete the quest and level-up your character, that lives in a futuristic universe. By doing it you learn, code and communicate with other users, get help from students and experienced developers, write solutions, cool projects and games… Well, that sounds like CodeGym!

    You’re not limited in time on CodeGym. Learn and code whenever you want. It takes from 6 to 12 month on average to complete the course and get 500+ hours of programming practice. But there are plenty of students who had made it to the end in 3 months. It’s up to you.

CodeGym course highlights:
  • Java Syntax
  • Java Core
  • Java Multithreading
  • Java Collections
These four major topics are covered in four quests of CodeGym course. Here’s a detailed review of them.

The roadmap of learning and practicing fundamentals of Java

With CodeGym you’ll get well-balanced learning of fundamentals of Java. Our formula is 20% of theory plus 80% of the practice, so on each level, you’ll receive a few times more tasks than lectures.

Quest #1: Java Syntax

This is the introduction to Java programming in general. The quest can be mastered even by those who didn’t have any previous background in coding. You will start with the simplest concepts like classes, objects, methods and variables — the “bricks” of Java programs. You will learn different data types, arrays, loops and conditional statements. Starting from level 3, you will learn how to work with the real IDE — IntelliJ IDE — and write code in it. Each topic has a set of practical tasks you need to complete to move forward. At the end of the level you will have a brief introduction to collections and OOP basics, which you will fundamentally learn on the fourth quest. The list of topics in the quest:
  • Introduction to the course
  • Introduction to Java: what are screen output, String and int types
  • Introduction to Java: variables, methods, classes
  • Your first program: keyboard input, working in the IDE
  • Introduction to branches and loops
  • Introduction to classes: writing your own classes, constructors
  • Introduction to objects: writing your own objects, lifetime, static variables
  • Arrays and lists: Array, ArrayList, Introduction to generics
  • Collections: LinkedList, HashSet, HashMap. Date.
  • Introduction to exceptions: try, catch, throws, multi-catch
  • Converting primitive types: widening and narrowing conversions

Quest #2 Java Core

This quest is devoted to the basics of object-oriented programming and will familiarize you with streams, serialization, and method overloading. It also includes levels with tasks and lessons about interfaces and multiple inheritance. To complete this quest, you need to pass the Java Syntax. After you’re done with Core quest, you’ll be ready to solve more complicated tasks and even write the mini-projects. The list of topics in the quest:
  • Basics of OOP: basic principles, inheritance, encapsulation
  • Basics of OOP: overloading, polymorphism, abstraction, interfaces
  • Interfaces: comparison with an abstract class, multiple inheritance
  • Type casting, instanceof. A big task involving interfaces
  • Overloading methods, a feature of constructor calls
  • Introduction to threads: Thread, Runnable, start, join, interrupt, sleep
  • Introduction to threads: synchronized, volatile, yield
  • Introduction to streams: InputStream/OutputStream, FileInputStream, FileOutputStream
  • Introduction to streams: Reader/Writer, FileReader/FileWriter
  • Serialization

Quest #3 JavaMultithreadingm

This quest will introduce you to the organization of Object, String, and inner classes. During the lectures and dozens of tasks, you will learn how to create and stop threads, what is the deadlock, how to use the wait, notify, and notifyAll methods. You will gain experience with jsoup and Swing and learn about autopacking. And, of course, you will complete your first big tasks like chat system, ATM emulator, web scraper and write a few games: Tetris, Snake, a space shooter, and Arkanoid. The list of topics in the quest:
  • Organization of an Object object: equals, hashCode, clone, wait, notify, toString()
  • String: mutable, immutable, format, StringTokenizer, StringBuilder, StringBuffer
  • Inner classes, e.g. Map.Entry
  • Inner classes, implementation features
  • Creating and stopping threads: start, interrupt, sleep, yield
  • Accessing shared data: synchronized, volatile
  • Deadlock. Wait, notify, notifyAll
  • TreadGroup, ThreadLocal, Executor, ExecutorService, Callable. Working with jsoup
  • Autoboxing, implementation features
  • Operators: numeric, logical and binary. Working with Swing

Quest #4 Java Collections

Get ready to make your way to the top! The final quest will be dedicated to Java collections, design patterns, and you will get lots of useful practice. For example, working with JSON, Guava, Apache Commons Collections, and JUnit. You will learn how to use programming tools and get hands-on experience with Git and JAXB, RMIand DymamicProxy. You’ll learn a little about another important programming language — JavaScript. And of course, you will get more asks and mini-projects, which you can later add into your portfolio. The list of topics in the quest:
  • Working with files and archives
  • RMI and dynamic proxy. Working with Swing
  • JSON, JavaScript. Working with Guava, Apache Commons Collections, JUnit
  • Recursion. Garbage collection and types of reference in Java. Logging
  • Version control systems: Git and SVN. Generics
  • Basic patterns for creating web applications. In-depth study of collections
  • Design patterns. Utility classes, e.g. Arrays. Collections
  • Development methodologies. Annotations in Java. Exception hierarchy
  • Create your first web application. Working with Tomcat and IDEA
  • URI, URL. REST services. Create your own client-server application
Learning core Java fundamentals with CodeGym is both effective and fun. Join the global course for Java learners and complete the introduction levels for free!