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.
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.
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.
- Java Syntax
- Java Core
- Java Multithreading
- Java Collections
The roadmap of learning and practicing fundamentals of JavaWith 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 SyntaxThis 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 CoreThis 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
Quest #3 JavaMultithreadingmThis 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
- Working with files and archives
- RMI and dynamic proxy. Working with Swing
- 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