Course Back-End (Java)

Pool of parallel streams!

Now on discount!


Nikita Mykhailov
Nikita Mykhailov
Software Engineer | Engineering Manager
5+ years in IT.
Works at Scalable Capital.
Likes to play the guitar, surf and play tennis.

About the course

Java is a programming language that has been one of the most popular of all development languages for many years. This is because, unlike many other programming languages, Java is designed for developing large and complex web applications. Among them: banking systems, aircraft management systems, corporate HR systems, large aggregators and platforms (Amazon, Ebay), social networks (LinkedIn), etc. The choice of medium and large businesses for development is almost always Java.

At the same time, Java is considered one of the most difficult programming languages. That is why it is really not easy to become a Java developer. But if you can master this direction, you will become a successful and in-demand specialist until your retirement!

The demand for Java developers is always high and is accompanied by a decent level of salary. This applies not only to experienced specialists with experience, but also to beginners.

Our instructors have designed the Java course program so that every student gets the necessary basic knowledge and practical skills from scratch. You will be able to study online at your convenience, combine your studies with your work, etc.

The course is ideal for

Anyone who already knows a little bit about programming face-1
Everyone who loves to look for non-standard solutions to various problems face-2
Everyone who is dreaming of working in the IT industry face-3
IT practitioners who want to expand their knowledge and learn a new direction for themselves face-4

Course program Back-End (Java)

Module 1: Introduction to programming

Introduction. What is an algorithm. The basic constructs of a programming language.
  • Understanding what is variable and if, simple data types, how to type.
  • Understanding how to properly name variables, camel cases.
  • Understanding what they are and the difference between for, while, and do-while loops.
  • Understanding the order in which operations are performed.
  • Understanding what "compilation" is.
  • Understanding what kind of projects Java is used for.
Advanced set of constructs and operators.
  • Knowledge of mathematical, binary (including shift), logical operators.
  • Understanding of binary system, conversion to or from decimal, column addition, shift.
  • Understanding of Boolean algebra, truth table, XOR, OR, AND, NOT.
  • Understanding the ternary operator (Elvis Operator).
  • Git (introductory).
An extended set of constructs and operators (practice).
    Arrays and multidimensional arrays.
    • Understanding what a one-dimensional array is.
    • Understanding what a matrix and a multidimensional array are.
    • Being able to bypass an array, understanding ArrayIndexOutOfBound.
    • Understanding the sorting task and being able to do bubble sort.
    • Understanding how an array differs from a variable and what data can be stored.
    Arrays and Multidimensional Arrays (Practice).
      The concept of class and object. Functions of methods. Recursion. Debugging.
      • Understanding what a class and object are (without inheritance, encapsulation, or polymorphism).
      • Understanding what a function is.
      • Understanding how to name functions correctly.
      • Understanding what a call stack is.
      • Understanding how and why code should be divided into functions (refactoring).
      • Understanding what recursion and getting out of recursion are.
      • Understanding StackOverflowException.
      • Understanding how to put a break point, where to see the call stack, how to walk through code.
      Git version control systems.
      • Understanding what commitments are, history.
      • Understanding what branches are.
      • Understanding push, fetch, merge, pull.
      • Understanding what a pull request is.
      • Understanding how Git is used in real-world projects (master, feature branches, code reviews).

      Module 2: OOP (Object-Oriented Programming)

      • What are tests and what are they for?
      • Types of code and application testing in general.
      • What is TDD and TLD.
      • Getting to know maven.
      The beginning of object-oriented programming.
      • Understanding what a heap is and how it differs from a stack.
      • Understanding of interface, marker interface, class and object.
      • Understanding fields and methods, static fields and methods.
      • Familiarity with the term domain model and understanding that we model it.
      • Understanding classical inheritance, final classes.
      • Understanding how constructors work.
      • Understanding inheritance through composition.
      Object-oriented programming. Continued.
      • Abstract classes. How they differ from interfaces.
      • Understanding polymorphism. Early and late binding. The virtual method table.
      • Understanding Enumerations.
      • Understanding hashCode and equals().
      • Different types of references.
      Exceptions. API development. What if a method returns null?
      • Understanding the different approaches to error handling: code status return, exit(), special object return, exceptions.
      • Understanding why exceptions are needed.
      • Understanding Enumerations.
      • Understanding the difference between checked, unchecked.
      • Understanding try-catch-finally, rethrow.
      • Understanding NullPointerException.
      • Understanding the semantics of IllegalException, IllegalArgumentException.
      • Understanding null safety, NPE.
      • Understanding what approaches there are instead of returning null: exceptions, Optional, null object, empty list.
      • Understanding Optional.
      • Understanding Null-Object Pattern.
      • Understanding Nullable annotations.
      The complexity of the algorithms, O-large.
      • Understanding what is O-big, O-small, theta.
      • Understanding the merge sorting algorithm.
      • Understanding linear and binary search.
      Generics, collections.
      • Understanding simple generic.
      • Understanding extends, <?>.
      • Understanding how to make a generic method.
      • Syntax for calling a static method from generics.
      • Understanding collections, list, set, map.
      • Understanding modern collections (Guava).
      • Understanding boxing/unboxing.
      Collections, data structures, continued 1.
      • Understanding Queue, Dequeue and its successors, what is FIFO, LIFO.
      • Understanding HashSet, HashMap, why we need equals and hashCode.
      • Being able to make an Iterator.
      Collections, data structures, continued 2.
      • Understanding what a binary tree is, traversing a binary tree.
      • Understanding what a graph is, types of graphs.
      • Understanding graph traversal algorithms.
      Stream API.
      • Functional interface, lambda-expression.
      • Stream pipelines, terminal & conveyor operations.
      • Collectors.
      • Understanding how to read a file byte-by-byte.
      • Understanding how to write a file byte-by-byte.
      • Understanding how to read and write a file as a string.
      • Understanding the use of Files.
      • Understanding try-with-resources.
      • A general understanding of the difference between synchronous and asynchronous programming.

      Module 3: Database

      Java Annotations, Reflection.
      • Understanding why annotations are used.
      • The ability to create an instruction.
      • Understanding RetentionPolicy, Target, etc.
      • The ability to bypass methods defined in an instruction.
      SQL, JDBC.
      • Understanding what a relational model is.
      • Understanding of primary keys, 1, 2, 3 normal form.
      • Understanding of simple DQL, DDL.
      • Understanding what a transaction (ACID) is.
      • Understanding how to "go to" the database from Java.
      SQL. Hibernate.
      • What is ORM, what tasks it solves.
      • What is entity-manager in hibernate.
      • Entity creation and relationships between entities.
      • A brief introduction to HQL.
      MongoDB. Writing a simple ORM.
      • Understanding what JSON and BSON are.
      • Understanding the difference between SQL and NoSQL databases.
      • Understanding what Mongo is.
      • Understanding how to read and write to a database.
      The basics of operating systems.
      • Understanding what tasks the operating system solves.
      • Understanding the differences between the major operating systems.
      • Understanding of processes and threads, mutexes, semaphores.
      Linux OS.
      • Understanding how the file system works.
      • Understanding stdout, stderr. Understanding >, &>, 2>1, etc.
      • Basic terminal commands: working with files, cat, less, tail, ps, top, kill.
      • Understanding Piping.
      • Basic bash scripts.
      Object-oriented design.
      • Understanding all the letters in SOLID.
      • Understanding the basics of Unix philosophy.
      • Understanding of tiny types.
      • Understanding improbability, deep copies.
      • First pattern factory method. Hence: understanding the private constructor, creating an instance statically.
      • General understanding of the difference between synchronous and asynchronous programming

      Module 4: Web

      • Understanding what Thread and Runnable are.
      • Understanding, API of threads.
      • Understanding how to create and run one thread, many threads.
      • Understanding of race condition and dead lock.
      • Understanding volatile.
      • Understanding synchronized.
      • Ability to use mutex and semaphore in java.
      • Understanding atomic operations.
      • Basic concurrency package tools.
      • Understanding how to solve dead lock and race condition.
      • Understanding the Observer pattern, the word callback.
      Networking, HTTP, Web.
      • Understanding the OSI model.
      • Understanding HTTP methods, their limitations.
      • Understanding headers and cookies.
      • Understanding the request life cycle from browser to program and back. Stats.
      Servlets, Chain Of Responsibility.
      • The ability to create a project with modules in maven.
      • Understanding how to implement Servlet.
      • Understanding how to send an HTTP request using curl.
      • What filters are.
      • Understanding the Chain of Responsibility pattern.
      Introduction to the theory of microservices.
      • Cluster managers. The concept of scaling.
      • Understanding what a monolithic architecture is, its pros and cons.
      • Understanding what a microservice architecture is and its pros and cons.
      REST API.
      • Getting familiar with web and routing http requests and practice working with web and routing http requests.
      Introduction to the Spring Framework.
      • What is IoC, DI?
      • How the container is built, the principle of operation.
      Spring Boot, MVC and data.
      • What is Spring Boot for?
      • The highlights of working with MVC in Spring Boot.
      • Spring Boot repositories.
      Setting the task for the final project.
      • Understanding what task will be performed.
      • Understanding what technology will be used.
      • Understanding what is expected at the end.
      • Understanding how, where, and why to write Javadoc.
      • Thinking through the architecture of the project.
      • Getting to know Agile.
      API development. Pattern Review.
      • Understanding Proxy, Facade, Bridge, Adapter patterns and the difference between them.

      Module 5: Diploma project

      • The project involves the implementation of a web application or website that contains several pages. At the practical level, students demonstrate the knowledge they have acquired, during their studies. Work with databases is used, usually the data is stored in one of the SQL DB and must be saved between runs of the program.
      Defense of the project.
      • It is necessary to pass the practice, which provides a demonstration of the working project, answers to any questions related to the project, a demonstration of the code on demand. And separately, theory on the entire course program and on all topics is passed. Theory is passed in the format of an interview for Junior Developer position, to an outside, independent expert. You can get from 0 to 100 points for both blocks.

      Your resume after taking the course

      Junior Java Developer
      Salary from
      48 000 euro a year

      Professional skills:
      • JUnit 5
      • Java Concurrency
      • Thymeleaf
      • Linux
      • HTTP, Web
      • Spring
      • Spring Boot, MVC
      • SQL, JDBC
      • CSS3 / HTML5
      • Agile / Scrum / Kanban
      • Logging
      • Jenkins

      This is what your electronic certificate will look like

      You can add this certificate to your CV
      Certificate Back-End (Java)

      Tools you'll master

      Java Сore
      JUnit 5
      Java Сore
      It is the simplest version of Java and sets the foundation for all other editions of Java plus a set of related technologies such as CORBA, Java VM, etc. D. Core Java refers to a collection of libraries, not just a programming language. It is the purest form of Java, primarily used for developing general desktop applications. It provides basic Java functionality with an in-depth knowledge of the Java language itself.
      Maven is a build and project management tool commonly used in frameworks built on Java. It was developed by the Apache Software Foundation. Maven, a Yiddish word, means "knowledge builder." It was introduced to make the process of running a build in the Jakarta Turbine Project.
      Git is a distributed version control system that allows you to track software development history and collaborate on complex projects from anywhere in the world.
      GitHub is an online code storage and synchronization service for programmers and application developers. The main purpose of this service is to support collaborative project development and version control.
      The Spring Framework (or Spring for short) is a universal open-source framework for the Java platform.
      Flyway is an open source database migration tool.
      IntelliJ Idea is an integrated software development environment for many programming languages, particularly Java, JavaScript, Python, developed by JetBrains.
      Linux is a family of operating systems (OSs) based on the kernel of the same name. There is no single Linux operating system like Windows or MacOS. There are many distributions (a set of files needed to install software) that perform specific tasks.
      Docker is a software platform for rapid application development, testing, and deployment. Docker packages software into standardized blocks called containers. Each container includes everything you need for your application: libraries, system tools, code, and a runtime environment. With Docker, you can quickly deploy and scale applications in any environment and remain confident that the code will work.
      Railway is a cloud-based service where you can deploy your application. It has a very simple user interface, allowing you to focus on learning your platform.
      PostgreSQL - object-relational database management system PostgreSQL is a popular free object-relational database management system. It is based on SQL language and supports numerous features.
      MongoDB is a database management system that works with a document-oriented data model. Unlike relational DBMSs, MongoDB does not require a table, schema, or separate query language. Information is stored as documents or collections.
      JUnit 5
      JUnit 5 is a next-generation unit test framework for Java, equipped with many interesting features, including nested tests, parameterized tests, a new extension API or Java 8 support and many others.
      Thymeleaf is a Java XML/XHTML/HTML5 templating engine that can work in both web and non-web environments. It is better suited to serve XHTML/HTML5 at the presentation level of MVC-based web applications, but it can handle any XML file even in standalone environments.
      A hypertext page markup language that is used to mark up documents for viewing web pages in a browser. It is used to let the browser know how to display a loaded site or page.
      CSS (Cascading Style Sheets) is a language for describing the appearance of a document written using a markup language. It is usually used to describe the appearance of web pages written in the HTML markup language.
      SQL is a declarative programming language used to create, modify and manage data in a relational database managed by an appropriate database management system.
      JavaScript is a multi-paradigm programming language. It supports object-oriented, imperative, and functional styles. It is an implementation of the ECMAScript specification. JavaScript is typically used as an embedded language for programmatic access to application objects.

      Salary expectations

      The possibility of career growth with an increase in wages like a magnet attracts new professionals in the field of IT.

      To achieve earnings of 85,000 euros (gross) per year or more, you need to go from Junior to Senior. And this path can be quite fast - it all depends on you!
      4000 euro / month
      5500 euro / month
      7000 euro / month
      For the Junior position, just a month's salary of 4000 Euro (gross) will cover the entire six months of training on our course. You will get your money back very quickly!
      Experience: freshman
      When you grow up to Middle Specialist, your salary will be from 5500 euros (gross) per month and above! You can achieve this result only after 2 years of hard work and constant self-development.
      Experience: 2-3 years
      Senior is a specialist who earns from 7,000 euros (gross) per month and above - depending on the type of company, experience and your goals. Only your ambition determines the upper limit of your earnings and your career ladder - so don't stop there!
      Experience: 4-5 years

      Contact us

      We will help you, tell you and find your direction in IT.
      Leave an application for free consultation or sign up for a course.




      +49 152 5263 7381


      All done!

      Congratulations! You've successfully signed up for our free consultation. Our team will be in touch shortly with further details. Get ready to expand your IT knowledge and skills with us at Codillas Academy!

      Oh no!

      Apologies for the inconvenience. There was an error submitting your contact form for the free consultation. Please double-check the information and try again. For assistance, please contact our support team at We appreciate your understanding and look forward to helping you on your IT learning journey.

      Sign up for an IT course

      We will help you, tell you and find your direction in IT.
      Leave an application for free consultation or sign up for a course.




      +49 152 5263 7381


      All done!

      Congratulations! You've successfully signed up for our IT course. Our team will be in touch shortly with further details. Get ready to expand your IT knowledge and skills with us at Codillas Academy!

      Oh no!

      Apologies for the inconvenience. There was an error submitting your contact form for the IT course. Please double-check the information and try again. For assistance, please contact our support team at We appreciate your understanding and look forward to helping you on your IT learning journey.