Program rozwojowy


Poznaj pakiet rozwojowych technologii w ekosystemie Java, odpowiadających na aktualne oczekiwania biznesu, w trakcie blisko 300h nauki zakończonej możliwością zatrudnienia w firmie Sages.

Poznaj nas na webinarze

Zdobądź kwalifikacje niezbędne do pracy w komercyjnych projektach

Zdobądź kompetencje pożądane na rynku pracy, dostosowane do aktualnych potrzeb biznesu i oczekiwań pracodawców względem kandydatów stanowiska Java Developer

  • Zaczniesz korzystać z narzędzi umożliwiających realizację projektu m.in. systemu kontroli wersji, Docker czy serwera ciągłej integracji
  • Nauczysz się pracować w zwinnym zespole, realizować przydzielone zadania, współpracować z innymi programistami
  • Zdobędziesz umiejętność budowania kompletnych aplikacji od warstwy utrwalania, aż po usługi REST / interfejs użytkownika
  • Opanujesz testowanie na poziomie jednostkowym i integracyjnym oraz stosowanie podejścia Test Driven Development
  • Będziesz tworzyć czysty kod i architekturę, świadomie stosować wzorce projektowe oraz refaktoryzacyjne
  • Nauczysz się wykorzystywać i integrować najbardziej popularne rozwiązania na JVM
  • Najlepsi absolwenci otrzymają propozycję pracy od firmy Sages
Przejrzyj WSZYSTKIE przewagi

Gwarancja Pracy

Mateusz Kamiński, Engineering Manager @ Sages

Jesteśmy współtwórcami oprogramowania Omega-PSIR, działamy na rzecz Open Science. Obecnie projekt jest w trakcie komercjalizacji. Mamy wdrożenia w Polsce i prowadzimy ekspansję na rynki zagraniczne. W projekt zaangażowani są pracownicy Sages oraz Politechniki Warszawskiej. W pracy korzystamy z nowoczesnych narzędzi, stosujemy do ekosystemu Atlassian (Jira Software, Jira Service Desk, Bitbucket). Projekty prowadzimy zgodnie z metodologią Kanban. Dbamy o przyjazną atmosferę - często przesiadujemy przy planszówkach i PlayStation. :)

Tak, to możliwe! Co najmniej 2 absolwentom programu zaoferujemy pracę na stanowisku Java Developera w Sages, z wynagrodzeniem w widełkach od 7 000 do 10 000 PLN netto (B2B). Jakby tego było mało, zwrócimy zatrudnionym pełną kwotę za udział w programie.


Miejsce pracy: Warszawa / zdalnie na czas pandemii


Aplikujesz do programu Java Developer PRO i po pozytywnym przejściu rekrutacji do programu wnosisz opłatę i rozpoczynasz naukę na kursie.

KROK I

Po zakończeniu programu rozwojowego przechodzisz pozytywnie testy weryfikujące Twoją wiedzę z zakresu kursu oraz rozmowę rekrutacyjną w Sages.


KROK II

Podpisujesz umowę o współpracy z Sages i otrzymujesz zwrot opłaty, którą wniosłeś/aś na poczet opłaty za udział w programie rozwojowym.

KROK III

Zobacz ofertę pracy
  • 13 lat doświadczenia w branży
  • Polski kapitał - biuro zlokalizowane w centrum Warszawy
  • Ciekawe projekty open science i nie tylko
  • Klienci z całego świata
  • Pierwszorzędni profesjonaliści (programiści, informatycy i analitycy), absolwenci najlepszych polskich i zagranicznych uczelni

DLACZEGO WARTO PRACOWAĆ W SAGES?

Czy program Java Developer PRO jest dla Ciebie?

ZALEŻY NAM NA REALNYM EFEKCIE

TAK, jeśli...

  • Znasz język Java lub Kotlin (uczyłeś/aś się samodzielnie, na studiach, na bootcampie; wykorzystywałeś w codziennej pracy) w stopniu przynajmniej podstawowym tzn. znasz składnię języka, posługujesz się umiejętnie standardowym SDK, potrafisz tworzyć programy rozwiązujące konkretne problemy
  • Znasz podstawy dowolnego języka programowania (uczyłeś/aś się samodzielnie, na studiach, na bootcampie; wykorzystywałeś w codziennej pracy)
Zaaplikuj

NIE, jeśli...

  • Dopiero zaczynasz swoją przygodę z programowaniem
Nie masz pewności? Sprawdź się aplikując!

Co oferuje nasz program rozwojowy?

Ogrom wiedzy w maksymalnie krótkim czasie

300h nauki, w tym 200h na żywo online z najlepszymi mentorami

Dostęp do nagrań ze wszystkich zajęć

Ponad 30h e-learningu: Masterclass Spring Framework

Program

Środowisko programistyczne

  • Praca z systemem kontroli wersji Git
  • Zarządzanie zależnościami i automatyzacja zadań na poziomie projektu z Maven i/lub Gradle
  • Wprowadzenie do konteneryzacji z wykorzystaniem Dockera
  • CI/CD z użyciem Jenkins
  • Współpraca w zespole i zarządzanie zadaniami na przykładzie ekosystemu Attlasian
  • Zaawansowane debugowania kodu
  • Profilowanie aplikacji i strojenie maszyny wirtualnej
  • Typy generyczne
  • Przegląd nowości z ostatnich wydań Javy
  • Klasyczna wielowątkowość (java.util.concurrent)
  • Programowanie reaktywno-funkcyjne (RxJava / Reactor)

Wybrane zagadnienia z zakresu programowania w Javie

  • Platforma / specyfikacja
  • Model komponentowy
  • Serwery aplikacyjne na przykładzie WildFly
  • Przegląd wybranych standardów (Servlets, EJB, JTA, JNDI, JMS)

Wprowadzenie do Jakarta EE

  • Inwersja kontroli i wstrzykiwanie zależności
  • Beany zarządzane
  • Zasięgi
  • Metody producentów (Producer methods)
  • Interceptory (Interceptors)
  • Dekoratory (Decorators)
  • Zdarzenia (Events)
  • Stereotypy (Stereotypes)
  • Alternatywy (Alternatives)

Context and Dependency Injection

Usługi sieciowe oparte o JAX-RS / RestEasy

  • Założenia i dobre praktyki związane z projektowaniem REST API
  • Budowa, wdrażanie i konfigurowanie usług
  • Mapowanie zasobów
  • Wstrzykiwanie parametrów i konwersja typów
  • Obsługa nagłówków i ciasteczek
  • Statusy odpowiedzi
  • Mapowanie wyjątków
  • Negocjacja treści i implementacja maperów
  • Budowa aplikacji klienckich

Nierelacyjne bazy danych na przykładzie MongoDB

  • Wprowadzenie do baz NoSQL
  • Konfiguracja i uruchamianie MongoDB
  • Modelowanie danych
  • Praca z dokumentami i wykonywanie zapytań
  • Aggregation framework
  • Narzędzia administracyjne i diagnostyczne
  • Wykorzystanie MongoDB z poziomu Javy

Wprowadzenie do języka Kotlin

  • Ogólna charakterystyka języka
  • Podstawy składni
  • Konwencje kodowania
  • Typy bazowe
  • Instrukcje sterujące
  • Wykorzystanie pakietów
  • Idiomy programistyczne
  • Interoperacyjność z Javą
  • Wykorzystanie klas i interfejsów
  • Specjalne typy klas (Data, Sealed, Nested, Enum, Inline)
  • Hermetyzacja i kontrola dostępu
  • Delegacja na poziomie klas (classes) i własności (properties)
  • Rozszerzenia (extensions)
  • Typy generyczne
  • Objects / Companion Objects
  • Najważniejsze elementy SDK
  • Operowanie na kolekcjach
  • Obsługa wyjątków
  • Typy opcjonalne (null safety)
  • Użycie adnotacji

Standard JPA i Hibernate

  • Model obiektowy vs. relacyjny
  • Wykorzystanie relacyjnych baz danych w kontekście aplikacji Java
  • Mapowanie obiektowo-relacyjne
  • Java Persistence API i jego implementacje
  • Obiekty trwałe - tworzenie, cykl życia, mapowanie
  • Kontekst utrwalania i menadżer encji

Mapowanie obiektowo relacyjne

  • Mapowanie encji
  • Zarządzanie relacjami
  • Klucze główne i strategie ich generowania
  • Wykorzystanie kolekcji i map
  • Odwzorowywanie relacji dziedziczenia
  • Mapowanie typów niestandardowych (konwertery)
  • Użycie istniejących baz i struktur danych

Praca z obiektami trwałymi

  • Zarządzanie encjami
  • Propagacja kaskadowa
  • Optymalizacja ładowania
  • Wywołania zwrotne i klasy nasłuchujące
  • Prawidłowa implementacja metod equals i hashcode na poziomie encji
  • Walidacja encji z użyciem BeansValidation

Transakcje i kontrola dostępu

  • Definicja i konfiguracja transakcji (deklaratywnie, programowo)
  • Standard Java Transaction API
  • Bezpieczeństwo danych w środowisku wielo-użytkownikowym
  • Kontrola współbieżnego dostępu - blokady optymistyczne i pesymistyczne

Wykonywanie zapytań

  • Tworzenie i uruchamianie zapytań
  • Język JPA QL/HQL (składnia, operatory, klauzule, wyrażenia funkcjonalne)
  • Relacje i złączenia
  • Criteria API
  • Zapytania natywne
  • Procedury składowane
  • Wykorzystanie pamięci cache pierwszego i drugiego poziomu

Wprowadzenie do Spring framework

  • Charakterystyka frameworku
  • Wstrzykiwanie zależności
  • Separacja odpowiedzialności z wykorzystaniem AOP
  • Konfigurowanie projektu
  • Schemat budowy aplikacji

Kontener Spring

  • Przegląd dostępnych implementacji
  • Konfiguracja (XML, adnotacje, JavaConfig)
  • Wstrzykiwanie zależności
  • Zasięg i cykl życia beanów
  • Rozwiązywanie konfliktów
  • Event bus i programowanie przez zdarzenia
  • Konfiguracja projektu z użyciem Spring Boot

Programowanie aspektowe

  • Koncepcje i najważniejsze mechanizmy AOP
  • Tworzenie, konfigurowanie i stosowanie aspektów
  • Przechwytywanie argumentów, rezultatów działania oraz wyjątków
  • Konfigurowanie połączenia do bazy (standalone, lokalna pula połączeń, jndi)
  • Szablony JDBC
  • Menadżer transakcji
  • Konfigurowanie mechanizmu transakcyjnego
  • Zatwierdzanie i wycofywanie transakcji
  • Integracja z JPA i frameworkiem Hibernate
  • Tworzenie warstwy utrwalania z wykorzystaniem Spring Data (PostgreSQL, MongoDB)

Warstwa dostępu do danych

Warstwa prezentacji

  • Wprowadzenie do Spring MVC i Thymeleaf
  • Cykl obsługi żądania
  • Konfiguracja aplikacji webowej
  • Budowa i mapowanie kontrolerów
  • Obsługa formularzy
  • Walidacja
  • Internacjonalizacja
  • Integracja z innymi frameworkami webowymi (ReactJS)
  • Tworzenie i mapowanie kontrolerów
  • Obsługa nagłówków i ciasteczek
  • Statusy odpowiedzi
  • Mapowanie i obsługa wyjątków
  • Mapery i obiekty transferowe

Usługi oparte o architekturę REST

  • Architektura, komponenty i podstawowe usługi mechanizmu bezpieczeństwa
  • Konfiguracja bezpieczeństwa (uwierzytelnianie, autoryzacja dostępu)
  • Kontekst bezpieczeństwa
  • Customizacja wybranych komponentów
  • Wykorzystanie OpenID oraz tokenów JWT

Wprowadzenie do Spring Security

Czysty kod

  • Czym jest czysty kod?
  • Code smells
  • Dług techniczny
  • Podstawowe zasady tworzenia jakościowego i testowalnego kodu (SOLID, GRASP, SRP …)

Czysta architektura

  • Czym jest architektura i jakie ma znaczenie?
  • Czysta architektura - definicja, zalety, przykłady (clean / hexagonal architecture)

Wzorce projektowe

  • Definicja
  • Przegląd wzorców GoF (wyjaśnienie, diagramy, przykłady w kodzie)
  • Inne wzorce warte uwagi
  • Łączenie wzorów i przykłady ich praktycznego zastosowania

Refaktoryzacja

  • Czym jest refaktoryzacja i jak ją bezpiecznie przeprowadzić?
  • Wsparcie z poziomu IDE
  • Techniki / katalog refaktoryzacji (wyjaśnienie + przykłady w kodzie)
  • Refaktoryzacja do wzorców
  • Praca z kodem legacy

Testy jednostkowe

  • Definicja i zakres odpowiedzialności
  • Podejście Classic vs. Mockist
  • Cechy dobrych testów jednostkowych
  • Tworzenie testów jednostkowych z wykorzystaniem narzędzia JUnit / Spock
  • Izolacja zależności z użyciem obiektów zastępczych oraz Mockito
  • Dlaczego testowanie jest ważne?
  • Kod niskiej jakości a testowanie
  • Architektura aplikacji a testowanie
  • Piramida testów
  • Metryki pokrycia testami

Testowanie

Testy integracyjne

  • Cechy dobrych testów integracyjnych
  • Testowanie w kontenerze / środowisku zarządzanym (Spring, Jakarta EE)
  • Behavior-driven development / Specification by example
  • Testy funkcjonalne i obciążeniowe na przykładzie JMeter i/lub Gatling
  • Definicja, zalety, wyzwania
  • Cykl pracy programisty
  • Testy jednostkowe w kontekście TDD
  • Strategie implementacji wymagań
  • Refaktoryzacja w kontekście TDD
  • TDD w praktyce

Test Driven Development

EKSPERCKI PROGRAM ROZWOJOWY STWORZYLIŚMY Z MYŚLĄ O BUDOWANIU NAJLEPSZYCH KADR IT

Dlaczego warto zainwestować w kurs Java Developer PRO?

Uczysz się od razu przez praktykę

Budowa aplikacji, projekty do samodzielnego wykonania, mniejsze ćwiczenia pomagające zrozumieć i utrwalić omawiane zagadnienia

Wszyscy trenerzy to praktycy z wieloletnim doświadczeniem produkcyjnym i dydaktycznym

Masz wsparcie mentora

Doskonałe przygotowanie do pracy w komercyjnym zespole deweloperskim

Uczysz się pracy zespołowej

Poznajesz technologie pożądane na rynku

Najbardziej popularne frameworki, biblioteki i narzędzia wchodzące w skład ekosystemu Java

Poznajesz najlepsze praktyki, a także sposoby rozwiązania typowych problemów projektowych

Zdobywasz przydatną wiedzę

Dzięki znajomości zaawansowanych aspektów programowania stajesz się atrakcyjnym kandydatem na rynku pracy

Wchodzisz na wyższy level umiejętności

Uczysz się dobrych praktyk

Przyswajasz najlepsze praktyki związane z tworzeniem jakościowego i testowalnego kodu, a także poznajesz zaawansowane idiomamy programistyczne

Wyższe kompetencje to odpowiednio większe zarobki.

Masz szansę na większe zarobki

Wybrane osoby otrzymają propozycję zatrudnienia lub stażu na stanowisku programisty w firmie Sages

Otrzymujesz możliwość zatrudnienia lub stażu

Zaaplikuj na kurs

Wybierz preferowany przez siebie tryb, w jakim poprowadzimy Twój program rozwojowy. Do wyboru masz opcję weekendową oraz dzienną. W obu przypadkach po ukończeniu kursu będziesz mieć szansę otrzymania propozycji pracy.

ETAP III

Poinformowanie o wyniku rozmów i podpisanie umowy z wybranymi kandydatami.

Rozmowa z wybranymi kandydatami

ETAP II

ETAP I

Zadania z zakresu znajomości podstaw

języka Java oraz OOP

Weekendowy

Zajęcia w soboty i niedziele

9600

PLN

Możliwa płatność w ratach.

Kredyt 0% na 12 rat. Czytaj więcej >>>

Możliwość zatrudnienia w firmie Sages po ukończeniu programu i otrzymania zwrotu kosztów kursu.

CENA ZAWIERA

  • 200h na żywo z trenerem (online)
  • 30h e-learningu: Masterclass Spring Framework (o wartości 999zł)
  • 30h pracy własnej nad projektami
  • Aktualne narzędzia i dobre praktyki
  • Konsultacje i mentoring
  • Bieżące review kodu
  • Symulacja środowiska pracy w komercyjnym zespole deweloperskim
  • Praca w Scrum/Agile
  • Zadania domowe i konsultacje przy ich rozwiązaniu na zamkniętej grupie na Slacku
  • Dostęp do nagrań z kursu

Dzienny

Zajęcia od poniedziałku do piątku

CENA ZAWIERA

Zaaplikuj

9600

PLN

Możliwa płatność w ratach.

Kredyt 0% na 12 rat. Czytaj więcej >>>

Możliwość zatrudnienia w firmie Sages po ukończeniu programu i otrzymania zwrotu kosztów kursu.

  • 200h na żywo z trenerem (online)
  • 30h e-learningu: Masterclass Spring Framework (o wartości 999zł)
  • 30h pracy własnej nad projektami
  • Aktualne narzędzia i dobre praktyki
  • Konsultacje i mentoring
  • Bieżące review kodu
  • Symulacja środowiska pracy w komercyjnym zespole deweloperskim
  • Praca w Scrum/Agile
  • Zadania domowe i konsultacje przy ich rozwiązaniu na zamkniętej grupie na Slacku
  • Dostęp do nagrań z kursu
Zaaplikuj

TRYB

TRYB

29.05.2021

START

7.06.2021

START

CENA

CENA

Czekamy na Twoją aplikację do 27 maja 2021.

Czekamy na Twoją aplikację do 5 czerwca 2021.

🔴 Webinar

18 maja 2021

POZNAJMY SIĘ NA ŻYWO

Rapid Application Development z wykorzystaniem Kotlina i Springa

18:00

Mateusz Kamiński
Maciej Martyński

FAQ

Jak wygląda proces rekrutacji do programu?

Zgłoszenie uczestnictwa odbywa się na podstawie formularza aplikacyjnego. Po przesłaniu zgłoszenia kandydat otrzymuje drogą mailową zaproszenie do procesu rekrutacji. Rekrutacja jest dwuetapowa: obejmuje zadania, sprawdzające podstawową znajomość programowania oraz rozmowę kwalifikacyjną z trenerem (telefoniczna około 20 min.). Potwierdzenie terminu rozpoczęcia danego kursu następuje po zakończeniu całości procesu rekrutacyjnego na ten kurs.

Czy udział w programie gwarantuje zatrudnienie w firmie Sages?

Możemy jednak dać Ci 100% gwarancję, że na kursie dostarczymy Ci wiedzy i narzędzi odpowiadających potrzebom współczesnego rynku pracy, jednak aby otrzymać propozycję pracy od firmy Sages musisz przejść proces weryfikacji i udowodnić, że przyswoiłeś omawianą na programie wiedzę oraz potrafisz ją wykorzystywać w praktyce. Firma Sages oferuje 2 miejsca pracy dla najlepszych uczestników.

Pełna zawartość programu opisana jest szczegółowo w sekcji Cena. Organizatorzy nie zapewniają sprzętu, zakwaterowania oraz wyżywienia uczestnikom na czas trwania kursu.

Co obejmuje cena kursu?

W przypadku osób prywatnych podana cena to cena końcowa, w przypadku finansowania szkolenia przez firmy - jest to cena netto - doliczamy 23% VAT.

Czy podana cena jest kwotą netto czy brutto?

Zajęcia odbywają się godzinach 9-17. Są podzielona na cztery bloki - po dwa przed i po przerwie obiadowej, rozdzielone przerwą. Nie ma podziału na zajęcia wykładowe i ćwiczeniowe - zajęcia mają formę warsztatową i cały czas pracujemy przy swoich komputerach. Nie znaczy to, że w ogóle nie ma momentów, w których trener coś opowiada i pokazuje, a uczestnicy tylko słuchają. Natomiast takich momentów “wykładowych” jest stosunkowo mało, a do tego często mają formę angażującą - teoria płynnie przeplatana jest praktyką. Zajęcia są elastyczne i nieograniczone tradycyjnym sztywnych harmonogramem - jeżeli grupa ma trudności z opanowaniem pewnego zagadnienia, a inne są łatwiejsze, to prowadzący więcej czasu poświęci na to trudniejsze zagadnienie. Nie ma tu miejsca na mechaniczne odhaczanie punktów “podstawy programowej” - celem zajęć jest dobre opanowanie materiału przez uczestników, a plan kursu jest skonstruowany tak, że na wszystko jest czas. Standardem są również kształcące dyskusje wywiązujące się z pytań uczestników. Jest to wyższa jakość edukacji w stosunku do tradycyjnych studiów.

Jak wyglądają zajęcia?

Jak otrzymać zwrot kosztów za udział w programie?

Po pomyślnym przejściu procesu weryfikacji umiejętności, firma Sages zwróci koszt kursu zatrudnionym uczestnikom.

Wymagania opisaliśmy na stronie w sekcji: Czy program Java Developer PRO jest dla Ciebie? Natomiast jeśli w dalszym ciągu masz wątpliwości to pamiętaj, że będziesz mógł to sprawdzić w trakcie procesu rekrutacji, który jest darmowy i do niczego nie zobowiązuje. Rekrutacja obejmuje zadania z zakresu podstaw programowania oraz rozmowę indywidualną osoby merytorycznej z kandydatem.

Czy kurs jest dla mnie?

W obecnych czasach w Internecie da się znaleźć wszystko - i dotyczy to również tego czego uczymy na kursie. Natomiast nie istnieje jedno źródło (kurs online, zestaw materiałów, podręcznik dostępny online), które kondesowałoby tę wiedzę w jednym miejscu. Każde materiały dostępne w sieci pokrywają jedynie pewien wycinek całości i są one rozrzucone po bezkresie Internetu. Odnalezienie się w tym, oddzielenie treści przydatnych od tych zbędnych, wybranie materiałów dobrej jakości - to olbrzymie i bardzo trudne wyzwanie, wymagające poświęcenia ogromnej ilości czasu na jego realizację. Do tego dochodzą naturalne kwestie efektywności nauki samodzielnej - motywacja do samotnej pracy, wynajdywanie czasu pośród natłoku obowiązków życia codziennego, brak pomocy nauczyciela. Ponadto podczas nauki samodzielnej nigdy nie skorzystamy z osobistych doświadczeń specjalistów - nie dowiemy się co jest ważne w praktyce, na co trzeba zwracać uwagę i nie dowiemy się jak najefektywniej rozwiązywać praktyczne problemy. Wielu uczestników naszych kursów rozpoczynało naukę na własną rękę, ale ostatecznie z różnych względów decydowało się na udział i uznało to za opłacalną inwestycję.

Czy na kursie nauczę się więcej, niż mogę sam z internetu?

- laptop / PC (4 rdzeniowy procesor, 16GB RAM, dysk SSD, 512GB)

- dostęp do internetu

- kamerka + słuchawki

- dodatkowy monitor (opcjonalnie)

Jaki sprzęt powinni zapewnić sobie uczestnicy programu?
Nie czekaj aż wyprzedzą Cię inni - zainwestuj w siebie i stań się atrakcyjnym kandydatem na rynku pracy.

Zapotrzebowanie na wykwalifikowanych specjalistów Java ciągle rośnie. Stań się jednym z nich.


Do zgłoszenia się do programu masz jeszcze tylko:

DNI
GODZ
MIN
SEK

© Sages. Wszelkie prawa zastrzeżone.

Ta strona korzysta z ciasteczek. Dalsze korzystanie ze strony oznacza, że zgadzasz się na ich użycie. Możesz to zmienić w ustawieniach swojej przeglądarki.