Java programmer - course 106,920 rub. from GeekBrains, training 7 months, Date: June 5, 2023.
Miscellaneous / / November 28, 2023
Basics of programming
The course is aimed at people with no programming experience. To start learning, it is enough to have computer skills at the level of the most ordinary user. All training will take place in the browser and you will not need to install additional software. You will learn what a program is, how it is executed, and get acquainted with the basic operations in programming. We will talk about basic data types, arrays, branching, loops and functions in accessible language. You will gain experience in solving simple but interesting problems, which will give you the basis for learning to solve much more serious problems.
Lesson 1. Program, variables and data types
After the lesson, you will have an idea of what a program is, that it consists of instructions and data, you will learn scalar data types in JS, you can write a program that multiplies two numbers entered by the user and prints result.
Lesson 2. Flowcharts and branches
After the lesson, you will have an idea of how to visualize algorithms using flowcharts, understand the work of comparison operators, understand how to use branching and what problems it solves
Lesson 3. Cycles
After this lesson, you will have an understanding of how to visualize cyclic algorithms using flowcharts, how to use loops, and what problems they solve.
Lesson 4. Functions
After the lesson, you will have an idea of what problems are solved by putting code into functions, and be able to create functions, including those that take arguments.
Lesson 5. Arrays
After the lesson, you will have an idea of what problem arrays solve, be able to create arrays, add and receive its elements.
Java. Level 1. 1 month.
Java SE 8 and above
A course for beginner developers, those who want to quickly master the basics of object-oriented programming (OOP) and learn how to create their own projects. The main feature of the course is the combination of studying the theoretical foundations of the Java language and practical online training under the guidance of a teacher.
Lesson 1. Java. Introduction
Features of the Java platform, developer tools, writing the first “Hello, World!” program. Variables, constants, primitive data types and principles of working with them. Methods. Conditional statements.
Lesson 2. Basic designs
Loops, switch statement, code blocks, variable scopes, arrays.
Lesson 3. Practice
Analysis of practical examples of using the basic elements of the Java language, working with the console.
Lesson 4. Procedural-style tic-tac-toe
We apply the acquired knowledge to write the console program “Tic Tac Toe”.
Lesson 5. Introduction to OOP
Introduction to object-oriented programming. Classes, objects, constructors, encapsulation and access modifiers.
Lesson 6. Advanced OOP
In-depth study of object-oriented programming issues: inheritance, polymorphism.
Lesson 7. Practice OOP and working with strings
Analysis of practical examples of using OOP in application development. Working with the classes String, StringBuilder, StringBuffer.
Lesson 8. Writing a GUI Application
Basics of working with the Swing library. The main application window, controls and their layout. Writing an application with a graphical interface, assembling the project.
Git. Basic course
Git Basics
13 videos will teach you the basics of working with the Git version control system. You'll learn why it's important in modern development. Learn the basic concepts: repository, commits, branches and tags. Master key operations: creating and cloning a repository, merging branches, querying change history, and much more. After training, you'll be ready to use Git to prepare homework assignments for programming courses in any language. Plus, you'll get closer to the interview, where several questions usually focus on version control.
Lesson 1. Introduction to Git
Lesson 2. Installing and Configuring Git
Lesson 3. Basic terminal commands
Lesson 4. Working with repositories in Git
Lesson 5. Repository File Management
Lesson 6. History of changes
Lesson 7. Working with repository branches
Lesson 8. Publishing a repository
Lesson 9. Branch merges
Lesson 10. Version management
Lesson 11. Creating a pull request
Lesson 12. Complex operations
Lesson 13. Working with Fork repositories
Database Basics. 20 lessons.
Database Design and SQL Queries
Databases (DBs) are data storage and processing systems that are accessed using the SQL (Structured Query Language) language. Any modern website, game or desktop application needs data storage. At the moment, there are many different database management systems (DBMS), the most popular being MySQL. “Database Basics” is 20 intensive video lessons (10 minutes each), where we will go through all the stages of database design using the example of an online store using the SQL query language. After this course, you will be able to use various databases, such as MS SQL and Postgre Sql, since the SQL syntax for them is practically the same.
Lesson 1. Relational Databases
What is the difference between a database and a DBMS; what databases are called relational; overview of modern DBMS.
Lesson 2. Installing the DBMS
Installation of the MySql DBMS and the Mysql Workbench graphical application.
Lesson 3. Database design, normal forms
Data design in Excel; normal forms; primary key.
Lesson 4. SQL command CREATE
Creating tables in the MySql Workbench GUI; CREATE command; data types; work in the console.
Lesson 5. SQL INSERT command
Filling tables with data using a graphical interface; INSERT command; AUTO INCREMENT.
Lesson 6. SQL SELECT and WHERE Commands
Receiving and filtering data using SQL SELECT and WHERE commands; checking for NULL; filtering data by several conditions.
Lesson 7. SQL commands DISTINCT, ORDER BY, LIMIT
Receiving and filtering data using SQL commands DISTINCT and LIMIT; sorting using the ORDER BY command.
Lesson 8. SQL commands DELETE and UPDATE
Updating and deleting data using SQL commands DELETE and UPDATE; filtering data using WHERE IN.
Lesson 9. Data Consistency
The concept of consistency or consistency of data.
Lesson 10. External key
The concept of a foreign key and restrictions on column values; FOREIGN KEY CONSTRAINTS.
Lesson 11. Creating tables with a many-to-many relationship
Adding a cart to the online store database.
Lesson 12. Composite primary key
Using a composite primary key when designing a table with a many-to-many relationship.
Lesson 13. Merging data from multiple tables
Retrieving data from several interrelated tables; inconsistency of the approach using several SELECTs.
Lesson 14. INNER JOIN operator
Joining data from multiple tables using the INNER JOIN operator.
Lesson 15. Operators LEFT JOIN, RIGHT JOIN
Joining data from multiple tables using LEFT JOIN and RIGHT JOIN operators.
Lesson 16. UNION operator
Combining the results of multiple SQL queries using the UNION operator.
Lesson 17. Aggregation functions
Aggregating functions COUNT, SUM, MIN, MAX.
Lesson 18. GROUP BY operator
Group a selected set of rows using the GROUP BY clause.
Lesson 19. Indexes
Filtering in GROUP BY using HAVING; increasing the speed of query execution using indexes.
Lesson 20. Transactions
Transaction concept; TRANSACTION statement; ACID requirements for the transaction system.
Java. Level 2. 1 month.
Advanced course
This course is for those who want to strengthen their knowledge in Java. During the course, students master the theory and, at the same time, under the guidance of a teacher, develop a full-fledged project from scratch Java, thereby gaining hands-on experience in applying the complex object-oriented concepts found in language. Before taking the course, it is recommended to master the course for beginners: "Java. Level 1".
Lesson 1. Java Object Oriented Programming
In-depth study of OOP issues in Java: basic principles of OOP, abstract classes, interfaces.
Lesson 2. Exceptions
Concept of exception handling, its comparison with traditional error handling mechanism, try-catch-finally block, types of exceptions, standard exceptions in Java and their role, throwing an exception from a method
Lesson 3. Collections
Types of containers in Java: List, Map, Set. Basic implementations and usage techniques, walking through collection elements, comparing and sorting collection elements
Lesson 4. Advanced GUI Creation Issues
Create your own controls. Working with graphics. Event Handling
Lesson 5. Multithreading
Threads in Java, ways to create and manage thread states, main problems when working with threads and synchronization.
Lesson 6. Networking
Sockets Writing a simple echo server and console client.
Lesson 7. Writing a network chat. Part I
Writing the client and server parts of the chat. Multi-threaded processing of client connections.
Lesson 8. Writing a network chat. Part II
Interface development for the client side. Authorization. Mechanisms of interaction between client and server.
Java. Level 3. 1 month.
Professional software development
The course is designed for those who want to learn about the advanced features of the Java language and gain practical experience in writing applications. To successfully complete the course, students must understand basic programming concepts and have some basic experience with Java. The course covers all the basic topics required for professional work.
Lesson 1. Generalizations
What are generics, generic classes, methods and interfaces, inheritance of generic classes, restrictions when working with generics
Lesson 2. Database
Relational databases, SQL query language. Operators SELECT, INSERT, UPDATE, DELETE. Connecting to the database via JDBC, sending requests and processing results
Lesson 3. I/O facilities
Overview of input-output tools. Byte, character, buffered streams. Network communication, serialization/deserialization of objects
Lesson 4. Multithreading. Part I
Multithreading in Java, shared memory, thread management and synchronization issues, interaction of execution threads, deadlocks
Lesson 5. Multithreading. Part II
Classes for working with multithreading, Concurrent collections, analysis of practical examples
Lesson 6. Development Tools Overview
Logging. Testing using JUnit, writing tests, Assert class
Lesson 7. Reflection API and annotations
The concept of reflection, Class data type, class metadata, access to fields and methods, annotations and their use, writing your own annotations.
Lesson 8. Preparing for an interview
Preparing for an interview and reviewing questions throughout the Java course
Java algorithms. Interactive course. 1 month.
Java algorithms. Interactive course
The course focuses on the use of data structures and algorithms in Java programming. Data structures define how data is stored in computer memory. The course will cover the following data structures: arrays, stack, queue, lists, graphs, trees, hash tables. For each data structure, algorithms will be considered that provide various operations on these structures, for example, searching or sorting. The course is designed for students who have completed the basic course on Java SE.
Lesson 1. Algorithms and data structures
What are algorithms and data structures; An example of the use of algorithms and data structures in software development; What are algorithms and data structures for? Algorithms and data structures in Java; Principles of data storage in Java; Reference data types; Primitive data types; Abstract data types; What is the complexity of the algorithm; What is the complexity of the algorithm; O-big; Principles for determining the effectiveness of a data structure.
Lesson 2. Arrays and sorting
What are arrays and their use; One-dimensional and two-dimensional arrays; class arrays; An example of an array and the arrays class; What is sorting; Why is sorting necessary? Sorting using the built-in sort() method; Quick sort; Efficiency of quick sort; Why is search implementation necessary? How linear search is implemented; How is binary search implemented; Complexity of algorithms; Why is insertion sort necessary? Implementation of insertion sorting; Efficiency of insertion sort; Why is selection sorting necessary? Implementation of sorting by selection method; Efficiency of selection sorting; Why is bubble sort necessary? Implementation of bubble sort; Efficiency of bubble sort.
Lesson 3. Collections, Lists, Linked Lists, and Iterators
What are collections; What do collections implement? What are lists; Advantages and disadvantages of lists; Methods for converting an array into a list or collection; What are two-way lists; What are two-way lists for? Efficiency of linked lists; What is an iterator; What is an iterator for? Iterator methods; Iterator example; How to add an object or element to a list; How to remove an object or element from a list; How to get an object or element from a list; What is the insert method and its implementation; What is the delete method and its implementation; Example LinkedList; What are linked lists? What are linked lists for? Implementation of a simple linked list.
Lesson 4. Stacks and Queues
Adding an element to the queue; Removing an element from the queue; Receiving an element from the queue; Creating a stack; Adding an element to the stack; Removing an element from the stack; Getting an element from the stack; Checking if the stack is empty; Programming example of using a stack; What is a queue; What is the queue for? Advantages and disadvantages of the queue; Queue efficiency; What is a stack; What is a stack for? Advantages and disadvantages of the stack; Stack efficiency; What helper methods exist for the queue; What are the queue helper methods for? What is cyclic transfer; Why is cyclic transfer needed? What is dec; What is the deck for? Dec methods; What is a priority queue; What are priority queues for? Efficiency of priority queue; Example of a priority queue; What is a stack and queue based on a linked list; Why do you need to implement a stack and queue based on a linked list; How to implement a stack and queue based on a linked list.
Lesson 5. Recursion
What is infinite recursion; How to implement infinite recursion; What is infinite recursion for? What is correct recursion in programming; How to implement correct recursion; What is recursion; Using recursion; An example of recursion in mathematical practice; What is a loop in programming; What are the differences between a loop and recursion in programming; What is recursive binary search; What is recursive binary search used for? How to implement recursive binary search; Why is selection sorting necessary? Implementation of sorting by selection method; Efficiency of selection sorting; What is a call stack; How the call stack works; What is a recursive call stack? Nuances and call stack overflow.
Lesson 6. Trees
What is a binary pyramid; Why do we need a binary pyramid? Using a binary pyramid; Efficiency of the binary pyramid; What are trees; What are trees for? Trees are beyond programming; Trees in programming; Binary Tree Efficiency; What are red-black trees? What are red-black trees needed for? What is tree traversal; How to implement tree traversal; How to implement the search for maximum and minimum; Why is heapsort necessary? Implementation of heapsort; Efficiency of heap sort; Search for a tree node; Inserting a tree node; How to create nodes; How to create a tree; Implementation of deleting tree nodes.
Lesson 7. Graphs
What are graphs; What are graphs for? Where are graphs used? Graphs in Java; What are vertices? What are ribs; What are adjacency matrices; Why are adjacency matrices needed? What are adjacency lists; What are adjacency lists for? The concept of bypass; What is depth first traversal method? Why do we need the depth first traversal method? How the depth-first traversal method is implemented; What is breadth first traversal method? Why do we need the breadth first traversal method? How to implement the breadth-first traversal method.
Lesson 8. Hash tables
What is hashing and hash tables; Why is hashing needed? What is double hashing; How to implement double hashing; What are keys and what are they for? What are collisions and what is their significance; How to deal with collisions; What is open addressing? Why is open addressing needed? What is linear testing; Why is linear testing needed? How to implement linear probing; Why is it necessary to increase the hash table; How to implement hash table augmentation; What is quadratic testing; How to implement a hash function; What is summation; What is exponentiation?
HTML/CSS. Video course. 1 month.
HTML/CSS. Video course
HTML/CSS is a hypertext markup language, the basis for learning server-side programming languages. By learning html, you can create a responsive web page or website. Having studied css, you will be able to design a website. To practice your acquired knowledge, do practical assignments. We don’t check them, but it’s important to follow them: this will give you basic professional layout skills.
Lesson 1. Basic concepts in web development
Introduction, introductory information, setting up visual studio code, hotkeys, installing extensions. Creating an html document Structure of an html document. Types and attributes of tags Browser debugger
Lesson 2. HTML Document Markup Language Basics
Lists in html Special characters and comments Hyperlinks (local, absolute, anchors) Types of images for the web; Forms and their elements. View, edit, search for errors through the browser debugger
Lesson 3. Basics of the CSS document styling language
Introduction to styles Methods for connecting styles Selectors Basic properties of styles (px, %, background, color, border) part 1 Basic style properties (width, height, font, list-style, text) Nesting, inheritance and grouping properties
Lesson 4. Basic tags for layout, Pseudo-classes and pseudo-elements
Basic tags div, span, creating a block structure Element indents Flow elements Pseudo-classes Pseudo-elements Tables
Lesson 5. Positioning basics, working with Flexbox
Display property What is flexbox (horizontal and vertical layout) Display order, multi-line, offset of a separate block Setting flexible sizes for blocks Position: relative and absolute
Lesson 6. Working with a design mockup in Figma format
What is a layout and what types of layouts are there? Getting to know the Figma program, cutting the layout Determining the sizes of blocks, creating a block structure Adding styles from the layout Creating a website based on the layout. Part 1 Creating a website based on the layout. Part 2
Lesson 7. Basics of creating a responsive website
Flexible block sizes, responsive website Mobile device emulation Media queries Footer squeezing to the bottom of the screen Practice of creating a responsive website Practice of creating a responsive website part 2
Lesson 8. Web standards and supporting tools
Developer Tools. Part 1 Uploading projects to the server Cross-browser Introducing Boostrap Introducing the Sass preprocessor Practical use of the Sass preprocessor
Basics of web development using the Spring Framework. 1 month.
Creating web applications in Java
The course introduces the Spring framework and the features of its interaction with other software platforms. Students will master connecting and configuring Spring and the specifics of data access. They will look step by step at the stages of development and ways to improve projects: templates, internationalization, and validation. Learn application security technology using Spring Security. They will apply the acquired knowledge when developing an online store.
Lesson 1. Java EE Basics
Lesson 2. Introduction to Spring
Lesson 3. Spring MVC
Lesson 4. Spring Boot
Lesson 5. Java Persistence API. Hibernate. Part 1
Lesson 6. Java Persistence API. Hibernate. Part 2
Lesson 7. Spring Data
Lesson 8. Thymeleaf
Lesson 9. Spring REST. Part 1
Lesson 10. Spring REST. Part 2
Lesson 11. Spring Security
Lesson 12. Practice
Internship at GeekBrains. 2 months.
In webinar format
During the internship, students will have to work remotely on an Open Source project or startup. Students will be asked to choose from a set of projects available for development. Students will learn to work in a team, communicate with other developers, product and project managers, designers, will study flexible methodologies, the SCRUM framework, and master the principles remote work. The result of the internship is the ability to work in a team, the addition of a portfolio, and the opportunity to indicate work on a project as core work experience in your resume. The internship takes place in the format of part-time remote work, weekly status meetings with the teacher in webinar format.
Lesson 1. Getting to know each other, choosing a project
What roles are there in development? Product Manager, Project Manager, developer, designer. What is MVP. Architecture of modern service. How developers interact with each other. REST API, Web Socket. Backend, Frontend, mobile applications. Microservice architecture. Basics of remote work. Sign up for teams.
Lesson 2. Development methodologies
Review of methodologies. Cascade (waterfall), Agile manifesto, Kanban, Scrum. Where and for what they are used. Mixed methodologies.
Lesson 3. SCRUM methodology
Work using SCRUM. Sprint planning. Backlog grooming. Sprint goal. Increment. Flexible methodology in remote working conditions. Task trackers (Trello, Favro)/
Lesson 4. User Story Mapping
Types of tasks. Decomposition of tasks. Mapping user stories. Working on user stories. Working with technical specifications using waterfall and flexible methodologies.
Lesson 5. Responsibility, motivation, personal growth
What and how to motivate yourself. What are the levels of motivation? How not to burn out at work. And how not to forget about work.
Lesson 6. Writing a resume
How to write a resume so that HR doesn’t reject it. How to interest an employer. How to demonstrate the skills acquired in your studies if you don’t yet have relevant work experience.
Lesson 7. Preliminary summing up, preparation for project defense
Analysis of student resumes. Preliminary summary. A little about startups, monetization, investors.
Lesson 8. Summing up, demonstrating the final project
Demonstration of a working prototype by students. Discussion of the results obtained. Feedback from the teacher. Parting words.