Training Java
Dezvoltat în 1995 de către Sun Microsystems Java este unul dintre cele mai populare 5 limbaje de programare (conform indexului TIOBE), deoarece este un limbaj de nivel înalt, orientat obiect, ce permite dezvoltarea unui spectru larg de aplicații. Pornind de la principiul “Write Once, Run Anywhere”, acestea pot fi rulate pe orice dispozitiv ce suportă o mașină virtuală Java:
- aplicații native pentru dispozitive embedded, IoT sau chiar Smartcard-uri
- aplicații cu un spectru larg de utilizare ce pot rula pe dispozitive și platforme hardware diferite
- aplicații de tip Enterprise
- aplicații performante ce rulează în zona de Back-End/Servicii
Java este un limbaj de programare ce se învață relativ ușor și care permite programatorilor să înțeleagă și să folosească eficient avantajele programării orientate obiect. Limbajul poate fi folosit atât de echipele de dezvoltare software dar și în zona testării software pentru automatizarea acestor procese.
În funcție de nevoile echipei de dezvoltare sau cerințele proiectului software vă putem ajuta să acoperiți următoarele concepte specifice programării în Java
Java
Full Track
To ce trebuie să știi despre Java
Java
Fast Track
Introducere în Java și POO
Java pentru Q/A
Java pentru testare
Java Full Track
Cursul se adresează echipelor care învață Java sau fac tranziția la acest limbaj de programare.
Cursul prezintă conceptele de bază ale Programării Orientate Obiect, sintaxa specifică limbajului de programare și librăriile de bază necesare dezvoltării de aplicații Java. Cursul descrie în detaliu conceptele de bază specifice programării orientate obiect: modul în care este abstractizată și transpusă în cod problema reală, avantajele încapsulării și ale reutilizării codului prin moștenire și derivare.
Cursul acoperă concepte solicitate de certificările Oracle Certified Java Associate și Oracle Certified Java Programmer
- Înțelegerea și implementarea conceptelor specifice Programării Orientate Obiect prin intermediul limbajului Java.
- Tranziția eficientă la Java de la un alt limbaj de programare
- Platforma Java (JRE și JD): dezvoltarea și rularea de aplicații Java
- Utilizare Eclipse, Visual Code sau IntelliJ pentru a dezvolta aplicații Java cu Open JDK
- Conceptele de bază ale Programării Orientate Obiect (POO)
- Clase
- Principiile abstractizării: stare obiect, comportament, proprietăți, interfață, metode
- Tipuri de date primitive și referențiale
- Operatori
- Structuri de control
- Vectori și șiruri de caractere
- Metode și transferul valorilor
- Expresii lambda (Java 8)
- Pachete și modificatori de acces
- Derivare clase
- Supradefinirea metodelor moștenite din Object (equals, hashCode, toString)
- Shallow-copy vs. Deep Copy
- Interfețe și metode default (Java 8)
- Clase abstracte
- Polimorfism
- Enumerări în Java
- Atribute și metode statice
- Gestiunea excepțiilor în Java
- Gestiunea log-urilor prin utilizarea librăriei Logging sau Log4j
- Generics
- Colecțiile standard (List, Set și Map)
- Procesarea textelor/șirurilor de caractere în Java
- Operații de intrare/ieșire (I/O) pe fișiere text sau binare
- Serializarea obiectelor
- Java API: java.lang, java.math, java.time și java.net
- Concepte de baza pentru multi-threading
- Software Developer; System Administrator; Web Developer; Q&A Engineer; Software Tester
- Programatori cu experiență în alte limbaje de programare ce nu sunt orientate obiect
- Programatori cu experiență în alte limbaje orientate obiect care fac tranziția la Java
- Servicii Back-End
- Servicii REST
- Platforme și dispozitive embedded
- Platforme și dispozitive IoT
- Aplicații cross-platform
- Aplicații mobile pentru paltforma Android
Începător
On-site sau online, în timpul săptămânii, timp de 5 zile (40 de ore)
Experiență dobândită:
- Utilizarea corectă a sintaxei specifice Java
- Înțelegerea și implementarea conceptelor fundamentale specifice Programării Orientate Obiect
- Definirea corectă de clase care să abstractizeze entitățile reale
- Încapsularea datelor obiectelor și controlul accesului la acestea
- Utilizarea colecțiilor de bază din Java (Set, List și Map)
- Definirea și utilizarea ierarhiilor de clase
- Definirea și utilizarea claselor abstracte, precum și a interfețelor
- Înțelegerea polimorfismului si utilizarea avantajelor acestuia în dezvoltarea de soluții software
- Gestiunea datelor din fișiere text și binare
- Serializarea obiectelor
- Managementul excepțiilor prin mecanismul try-catch
- Utilizarea principiilor de bază aferente programării multi-threading
Java Fast Track
Cursul se adresează dezvoltatorilor sau echipelor de testare software fără o experiență bogată în programare și învață Java pentru a dezvolta aplicații sau pentru a automatiza diferite procese.
Cursul prezintă conceptele de bază ale procesului de programare și ale limbajelor de programare, folosind sintaxa specifică Java. Pornind de la acest nivel sunt prezentate principiile Programării Orientate Obiect, sintaxa specifică limbajului de programare și librăriile de bază necesare dezvoltării de aplicații Java.
- Dobândirea cunoștințelor de bază necesare dezvoltării de programe software utilizând limbajul Java
- Înțelegerea conceptelor de bază specifice Programării Orientate Obiect prin intermediul limbajului Java.
- Platforma Java (JRE și JDK): dezvoltarea și rularea de aplicații Java
- Utilizare unui IDE (Eclipse, Visual Code sau IntelliJ) pentru a dezvolta aplicații Java cu Open JDK
- Conceptele de bază ale Programării Orientate Obiect (POO)
- Principiile abstractizării: stare obiect, comportament, proprietăți, interfață, metode
- Clase
- Tipuri de date primitive și referențiale
- Operatori
- Structuri de control (if-then-else, for, enhanced for, do-while, while-do, switch)
- Vectori și șiruri de caractere
- Metode și transferul valorilor
- Pachete și modificatori de acces
- Derivare clase
- Supradefinirea metodelor moștenite din Object (equals, hashCode, toString)
- Shallow-copy vs. Deep Copy
- Interfețe
- Clase abstracte
- Polimorfism
- Enumerări în Java
- Atribute și metode statice
- Gestiunea excepțiilor în Java
- Colecțiile standard (List, Set și Map)
- Procesarea textelor/șirurilor de caractere în Java
- Introducere în Java API: java.lang, java.math, java.time și java.io
- Software Developer; System Administrator; Web Developer; Q&A Engineer; Software Tester
- Programatori sau testeri fără o experiență bogată în programare
- Aplicații software Java cu nivel de complexitate scăzut
- Automatizare testare software
Începător
On-site sau online, în timpul săptămânii, timp de 3 zile (24 de ore)
Experiență dobândită:
- Utilizarea și interpretarea corectă a sintaxei specifice Java
- Dezvoltarea de aplicații Java cu nivel de complexitate scăzut
- Înțelegerea și implementarea conceptelor fundamentale specifice Programării Orientate Obiect în Java
- Polimorfism în Java
- Abstractizarea entităților reale prin clase
- Definirea și utilizarea ierarhiilor de clase
- Managementul excepțiilor prin mecanismul try-catch
- Gestiunea datelor din fișiere text și binare
- Utilizarea colecțiilor de bază din Java
Java pentru Q/A
Cursul se adresează echipelor de testare software sau Q/A (Quality Assurance) care doresc să înțeleagă conceptele fundamentale ale limbajului de programare Java pentru a scrie teste automate, pentru a depana codul sursă Java și pentru a gestiona testele automate existente.
Cursul combină elementele specifice programării în limbajul Java și a celor specifice Test-Driven Development (TDD). Prezentarea limbajului Java se face gradual, pornind de la tipurile de date și a structurilor de control de bază și continuând cu elementele specifice Programării Orientate Obiect.
Din perspectiva testării, cursul face o prezentare generală a conceptelor de testare, a instrumentelor de testare automate și a modului în care sunt definite cazurile de testare. Testele automate sunt definite în Java, folosind framework-ul JUnit sau TestNG. Sunt acoperite și scenariile în care este nevoie de includerea obiectelor de tip Mock.
- Testarea claselor și metodelor dezvoltate în Java
- Dezvoltarea de teste automate folosind Java și JUnit sau TestNG
- Înțelegerea, rularea și modificarea testelor automate scrise în Java
- Platforma Java (JRE și JDK): dezvoltarea și rularea de aplicații Java
- Utilizare unui IDE (Eclipse, Visual Code sau IntelliJ) pentru a dezvolta aplicații Java cu Open JDK
- Conceptele de bază ale Programării Orientate Obiect (POO)
- Principiile abstractizării: stare obiect, comportament, proprietăți, interfață, metode
- Clase
- Tipuri de date primitive și referențiale
- Structuri de control (if-then-else, for, enhanced for, do-while, while-do, switch)
- Vectori și șiruri de caractere
- Metode
- Supradefinirea metodelor moștenite din Object (equals, hashCode, toString)
- Shallow-copy vs. Deep Copy
- Enumerări în Java
- Gestiunea excepțiilor în Java (try-catch, definirea de excepții)
- Colecțiile standard (List, Set și Map)
- Gestiunea log-urilor prin utilizarea librăriei Logging sau Log4j
- Tipuri de testare: Integration, Continuous, Robustness și Acceptance testing
- Concepte specifice testării unitare: planuri de testare, cazuri de testare, colecții, teste unitare
- Caracteristicile testelor unitare
- Testare automată din IDE. Configurarea mediului de lucru
- Testare automată cu Maven
- Testare continuă cu Jenkins
- Definirea de teste unitare folosind JUnit (3, 4 sau 5)
- Interpretarea rapoartelor de testare
- Code coverage
- Obiecte Mock și librăria Mockito
- Software Developer; Q/A Engineer, Software Tester
- Ingineri Q/A sau testeri cu experiență minimă (sau fără) în programare
- Testare automată cod sursă dezvoltat în Java
- Dezvoltare de aplicații software folosind Java
Începător
On-site sau online, în timpul săptămânii, timp de 2-3 zile (20 de ore)
Experiență dobândită:
- Înțelegerea sintaxei de bază a limbajului Java și a fluxului de execuție
- Definirea unei secvențe pentru validarea datelor simple
- Gestiunea excepțiilor la execuție folosind try-catch
- Înțelegerea conceptelor specifice testării software: teste unitare, teste de regresie, teste de integrare, teste de acceptanță etc
- Implementarea procesul de testare unitară: definirea cazurilor de testare, implementarea testelor unitare, rularea testelor și interpretarea rapoartelor
- Implementarea unui proces de dezvoltare software de tip TDD
- Utilizarea librăriei JUnit sau TestNG
- Utilizarea obiectelor de tip Mock

