Java Developer este un program conceput pentru a oferi angajaților abilitățile și cunoștințele fundamentale necesare pentru a deveni dezvoltatori Java competenți. Adaptat special pentru companiile care doresc să îmbunătățească capacitățile de programare ale forței de muncă, acest program oferă o bază solidă în ceea ce privește conceptele și principiile de programare Java.
Java este un limbaj de programare care este utilizat pentru producerea și dezvoltarea unui număr mare de aplicații software.
Platformele Java sunt utilizate pe o scară largă în programare și soluții software aplicate. Nevoia de programatori care cunosc Java a crescut tot mai mult pe piața IT pentru că este un limbaj foarte răspândit și este utilizat pentru crearea de aplicații. Comparativ cu alte limbaje de programare precum C++ sau C, Java este mult mai accesibil prin modul în care asimilează informația întrucât dă foarte puține erori.
În acest program, participanții vor porni într-o călătorie pentru a stăpâni elementele de bază ale dezvoltării Java, indiferent de experiența lor anterioară în programare. Curriculumul a fost elaborat cu meticulozitate pentru a echilibra învățarea teoretică cu aplicarea practică, asigurându-se că angajații pot trece fără probleme de la învățare la proiecte Java din lumea reală.
- Materiale de studiu în format video înregistrat și activități practice.
- Teste intermediare prin care îți vei evalua progresul.
- Întâlniri periodice cu trainerii în ședințe tip live-virtual.
- Examen final, în urma promovării căruia primești o diplomă de finalizare program.
Urmând acest program, participanții vor învăța:
- Fundamentele Java, inclusiv Mașina Virtuală Java, codul în bytecode și configurarea mediilor de dezvoltare precum IntelliJ și Eclipse.
- Gestionarea codului, sistemele de control al versiunilor precum Git și SVN și modul de organizare a codului în pachete.
- Conceptele de clase, obiecte și variabile, inclusiv constructorii, metodele și tipurile de date.
- Principiile programării orientate pe obiect, cum ar fi moștenirea, polimorfismul, încapsularea și abstractizarea.
- Alocarea și dealocarea memoriei, heap-ul și stack-ul, manipularea șirurilor și ștergerea codului care nu mai este necesar sau utilizat.
- Gestionearea excepțiilor în Java, utilizând blocurile try-catch, blocurile finally și cuvântul cheie throw.
- Subiecte avansate ale limbajului Java, cum ar fi clasele înglobate, clasele anonime, enumerările, lucrul cu fișierele și lucrul cu date și orele.
- Anotările în Java, inclusiv anotările predefinite, anotările personalizate și utilizarea genericelor.
- Expresiile regulate, parametrii cu limită, caracterele genereice și anotările avansate.
- Java Collections Framework, inclusiv liste, seturi, hărți și operațiile acestora, precum și modul de utilizare a Lambdas și Streams pentru procesarea datelor.
Angajații pot începe de la zero și nu necesită cunoștințe anterioare nici din domeniul IT, nici de matematică. De asemenea, nu există limită minimă de studii.
Lesson 1 – Introduction – Java Virtual Machine
– JRE and JDK
– What is bytecode?
– .java files and .class files
– Setting up Intellij and OpenJDK
– Your first Java application in Eclipse
– Java Deliverables: how to create a JAR
– Java Operators
– Expressions, statements and blocks
– If-then-else
– switch
– while and do-while
– for
– break, continue and return
Lesson 2 – Code Management
– Version Control
– SVN, Mercurial, Git
– Git Setup
– Github, push your first code into Github
– Comments
– Write inline comments
– Write documentation comments
– Packages
– How to organize your code in packages
– special packages inside a java program
– Run a java program
– Normal mode
– Debugging mode
– Run with special arguments
– Examples & exercises
Lesson 3 – Classes, objects and variables
– What is a class and what is an object?
– The content of a class
– Class definition and fields definition
– Constructors definition
– Methods definition
– Primitive data types
– Arrays
– Variables
– Java Keywords
– Constructors
– this and super keywords
– Declaring objects
– Writing function guidelines
– What is a function and what is its general purpose
– toString(), hashCode(), equals()
– Getters and setters
Lesson 4 – Inheritance, polymorphism, encapsulation and abstraction
– Object oriented programming principles
– Inheritance
– Overloading and Overriding methods
– Polymorphism
– Encapsulation
– Java access modifiers
– Abstraction
– Why do we need abstract classes and interfaces at the same time? Can’t we just use one of
– them?
– Static methods, constants and final classes
– Static initialization block
– Non-static initialization block
Lesson 5 – Memory allocation and deallocation for an object
– Heap and stack not heap vs stack
– Instance variables and method variables allocation
– String and String pool
– Garbage collection in Java
– Constructors. Calling and overloading
– Autoboxing and unboxing
Lesson 6 – Treating exceptions in Java
– Exceptions and errors
– Catch or specify requirement
– How are exceptions treated in Java
– try-catch block
– finally block
– Catching multiple exceptions
– throw and throws
– Try with resources
Lesson 7 – Java Specials
– Inner classes, anonymous classes and local classes
– Inner Class
– Local class
– Anonymous classes
– Enums
– Working with files
– java.io classees
– Scanning input from files
– java.nio classes
– Working with dates
– Calendar implementation
– Date time API implementation
Lesson 8 – Annotations and Generics
– What is an annotation?
– Predefined annotations in Java
– @Override
– @Deprecated
– @SuppressWarnings
– Annotations that apply to other annotations
– Defining an annotation
– Places you can use annotations
– Generics
– Raw types and parameterized types
Lesson 9 – Advanced generics and annotations – Regular expressions
– Advanced Annotations
– Java 8 annotations. Functional Interface
– Using our own annotations. Annotation processor
– Advanced Generics
– Bounded type parameters
– Wildcards
– Regular Expressions
Lesson 10 – Java Collections Framework
– Java Collections Framework – an introduction
– List interface
– List operations
– Set interface
– Set operations
– SortedSet
– Implementation of the Comparable interface
– Comparator anonymous class at SortedSet creation time
– Queue interface
– Queue operations
– Deque interface
– Map interface
– Map operations
Lesson 11 – Java Collections traversing – Lambdas – Streams
– Java Collections traversing
– for-each construct
– Iterator
– Aggregate operations
– Java Collections ordering
– Lambda expressions
– Streams
– Pipelines
– Aggregate operations
– Reduction
Lesson 12 – Multithreading and parallelism
– Threads and Runnable
– Controlling the execution flow – sleep and yield
– Executors
– Shutting Down Executors
– Callable – Tasks that return a result
– Shared resources
– Tasks Cooperation
– wait() and notifyAll()
Lesson 13 – Threads, Sockets
– Atomic Variables
– Volatile keyword
– Immutable objects
– Parallel programming pitfalls
– Deadlock
– Starvation
– Race condition iv. Livelock
– Client Socket
– Server Socket
– Examples & Exercises
Lesson 14 – JDBC
– Maven
– JDBC Architecture
– Important classes for JDBC
– Start a Derby Server
– Create a Derby Database
– Create Person table
– Connect to a Database in Java
– Table column names
Lesson 15 – Designing and implementing a calculator in Java FX and Scene Builder – part 1
– Introducing JavaFX and SceneBuilder
– History of JavaFX
– FXML
– JavaFX application structure
– Creating a simple JavaFX application with coding
– Creating 3D objects in JavaFX
– Scene Builder
– Designing your first window in Scene Builder
– Handling events with Java code
– Requirements for the calculator
– Building the layout
– Try it out
Lesson 16 – Designing and implementing a calculator in Java FX and Scene Builder – part 2
– Prepare for the logic implementation
– Implementing a calculator in Scene Builder
– Adding the onAction methods in the controller
– Adding and linking the TextArea field
– Implement logic to show numbers in the TextArea
– Implement logic for clear, comma and math operations
– Implementing logic for evaluation
– Deciding which operation to perform
– Finding the operands
– Writing the result to TextArea
– Finishing touches
– Rejecting all other characters besides the ones on the buttons
– Clearing the TextArea after a successful operation
– Evaluate the operation when pressing Enter or =
Lesson 17 – Hibernate & Spring – MVC, Web API & Code Generation
– What is Hibernate?
– DIfferent ORMs
– POJO
– LOMBOK
– Mapping tables to POJO
– Hibernate Code First vs Database First
– MVC (Model View Controller pattern)
– What is a Web API
– HTTP Verbs
– JSON / XML
– Thymeleaf
– Spring and Spring Boot
– Application Context
– Dependency injection
– Aspect-Oriented Programming
– MVC in Spring
– Mapping Requests to POJO
Lesson 18 – Unit testing & Clean Code
– Clean Code
– Why is Clean Code Important
– General code writing guidelines
– DRY Principle
– Kiss principle
– Yagni Principle
– Unit Testing
– JUnit Framkework
– Unit tests vs Integration Tests
– JUnit API
– Mockito Framework
– Decoupled Code And Unit Tests
Lesson 19 – Spring & Hibernate project
– Setting up Spring and Hibernate
Lesson 20 – Spring & Hibernate project
– Adding interface and API to our project
Participanții vor primi diplomă de absolvire după completarea cursului și susținerea examenului de evaluare .