Zostań programistą Java.
Intensywna nauka programowania -
od totalnych podstaw. Bootcamp
dla każdego, kto chce zacząć
profesjonalną karierę w IT.
-
Prowadzący:Ekspert Java, programista z branży, trener z zamiłowania
-
Czas trwania:lub
-
Cena:poczęstunek w ceniestanowisko komputerowe w cenie
-
Tematyka:przybornik programisty, język Java,
programowanie proceduralne i obiektowe,
aplikacje okienkowe (GUI), praca z danymi
W wersji XL: zaawansowane elementy Javy,
bazy danych, aplikacje webowe i REST-owe,
framework Spring, Hibernate, Maven
-
Tryby zajęć:
- weekendowo (sob-niedz., średnio co 2 tygodnie)
- dziennie (bloki 3- i 4-dniowe, co ok. 2 tyg.)
- wieczorowo (2x w tygodniu, 18-20:30, przez kilka m-cy)
-
Grupa:Zajęcia stacjonarne - na sali max 12 osób.
Dla kursów zdalnych - do 17 osób łącznie.
-
Rekrutacja:brak wymagań, kurs od kompletnych podstaw
-
Elastyczność:a) do 15 dni przed startem można zrezygnować
b) podczas zajęć można:
- przejść z trybu stacjonarnego na zdalny
- ze zdalnego na stacjonarny
- w razie potrzeby otrzymać nagrania z zajęć
- zawiesić uczestnictwo i dokończyć później
(w miarę dostępności miejsc)
-
Miejsce:Warszawa, Kraków lub
Zdalnie (online na żywo z trenerem i grupą)
Inne opcje nauki
Kurs (poziom 2):
Java Developer II - backendInne kursy:
Tester automatyzujący Język Java dla programistów Java Developer (przyspieszony I + II)Ten kurs jest bootcampem programistycznym - czyli solidnym, intensywnym treningiem, który przygotowuje do zawodu programisty. Program pełnego kursu wiedzie od podstaw, przez wszystko, co niezbędne, aż do całkiem rozbudowanych aplikacji działających w oparciu o te same technologie, których używa się w realnych projektach. Spring, Maven, najnowsze rozwiązania języka Java, ale też najzwyczajniej w świecie umiejętność napisania pętli, która coś obliczy – tego oczekuje się od kandydatów na Junior Developera.
Możemy przejść na „Ty”? Super :-) To standard na naszych zajęciach. Skoro już tu jesteś, to zapewne doskonale wiesz, że warto uczyć się programowania. My jesteśmy po to, aby zrobić to jak najlepiej – na naszych zajęciach nabędziesz umiejętności, które pozwolą Ci rozpocząć lub rozwinąć karierę w IT. Nasz kurs cieszy się olbrzymią popularnością wśród osób, które nigdy wcześniejszej nie programowały i nie mają technicznego wykształcenia. Jeśli zacząłeś/zaczęłaś uczyć się samodzielnie, ale czujesz jednak, że ktoś powinien Ci pomóc, potrzebujesz dodatkowych wyjaśnień i wskazówek – ten kurs także będzie właściwym wyborem. Uprzedzamy jednak, że oczekujemy od Ciebie pracy i zaangażowania - również w domu. Absolwenci naszych kursów uzyskują dodatkowe korzyści, w tym rabat na kolejne szkolenia czy możiwość udziału w warsztatach nt zdobywania pracy w IT.
Czym cechują się nasze zajęcia?
Stawiamy na praktykę i ćwiczenia już od pierwszych godzin. Zajęcia polegają głównie na pisaniu programów pod kierunkiem prowadzących. Przykłady pisane wspólnie, ćwiczenia rozwiązywane indywidualnie, zadania i projekty wykonywane „w domu”. Wszystko możesz skonsultować, o wszystko możesz zapytać prowadzących – w tym kurs jest lepszy niż samodzielna nauka z książek i materiałów internetowych. Teoria? Zaskoczymy Cię: teoria jest ważna, ale można ją pokazać na przykładach!
Nasi trenerzy są przede wszystkim doświadczonymi programistami, którzy już wiedzą, jakie umiejętności są najważniejsze w pracy, jakie technologie są obecnie cenione w branży, na czym polega praca programisty na różnych etapach. Ale to nie wszystko! Nie każdy dobry programista będzie dobrym dydaktykiem, a podczas nauki od podstaw jest to niezwykle ważne. Dlatego nie bierzemy osób z przypadku, lecz mamy stabilną, sprawdzoną kadrę trenerską, dobrze ocenianą przez naszych kursantów.
Budujemy dom od fundamentów. W zalewie online'owych kursów i tutoriali „jak w 5 minut zostać programistą” my chcemy postawić sprawę jasno: Nie wystarczy przepisać bez zrozumienia kilkudziesięciu linii kodu, aby uznać się za programistę. My nie tylko powiemy Ci co napisać, ale także wytłumaczymy co to znaczy, dlaczego należy pisać właśnie tak, dlaczego inaczej byłoby źle. Naszym celem jest zaszczepić w Tobie konkretne umiejętności i powtarzając pewne schematy sprawić, by niektóre rzeczy stały się wręcz odruchowe. Byś niezależnie od wykształcenia i dotychczasowych doświadczeń mogła/mógł odnaleźć się w świecie IT i działać od początku profesjonalnie. Mając dobrze opanowane podstawy, będziesz w stanie używać wszelkich technologii, znacznie łatwiej uczyć się kolejnych języków programowania i podążać za zmianami tej dynamicznie rozwijającej się branży.
Opcje nauki
U nas sami możecie zdecydować na jaki wymiar kursu się zapisać. Pełna ścieżka bootcampu prowadzącą do uzyskania kompetencji „juniora” obejmuje 240 godzin (160h zajęć w sali z trenerem + dodatkowo 80h samodzielnej pracy w domu). Tyle czasu potrzeba, aby poznać nie tylko zasady programowania i język Java, ale także technologie (tzw. biblioteki, narzędzia, frameworki), których używa się w praktyce w projektach. Jednak cennych umiejętności, owych wspomnianych wyżej „fundamentów”, można nauczyć się w krótszym czasie, a już to dużo Ci da. Dlatego dajemy Ci wybór.
Pakiet Standard, czyli kurs „Programista Java”, to przede wszystkim nauka sztuki programowania. W czasie 80 godzin zajęć z trenerem + ok. 40 godzin samodzielnej pracy w domu będziesz uczyć się programowania od zupełnych podstaw, ale w takim tempie, aby w czasie kursu opanować wszystkie najważniejsze techniki, takie jak pisanie pętli i prostych algorytmów, tworzenie własnych klas i metod, programowanie proceduralne, obiektowe i podstawy funkcyjnego. Po aktywnym udziale w tej wersji kursu będziesz mogła/mógł pisać samodzielnie pierwsze programy: z interfejsem graficznym lub tekstowym, skupiając się na logice i przetwarzaniu danych. Pozwala to wykonywać już pierwsze czynności w pracy - tworzyć nieduże, pomocnicze programy lub dopisywać fragmenty kodu do już istniejących, nawet większych, systemów, a tak właśnie najczęściej zaczynają programiści.
Pakiet XL zawiera w sobie to wszystko, ale dokłada jako drugą połowę kurs Programista Java II (web/backend), poświęcony zastosowaniom Javy do tworzenia aplikacji serwerowych (Web, REST, bazy danych), co właśnie najczęściej ma miejsce w realnych projektach. Kurs w tej wersji omawia najbardziej popularne technologie: Spring, Hibernate, Maven, elementy Java Enterprise Edition. Wychodzimy tu także poza ścisły świat Javy i stosujemy m.in. bazy danych SQL, HTML i technologie webowe oraz ogólne narzędzia i praktyki stosowane w projektach IT: GIT i wersjonowanie kodu, testy. Jeśli rzetelnie przepracujesz ten kurs, będziesz przygotowany/a do samodzielnego tworzenia pierwszych aplikacji webowych oraz do pracy w większych projektach realizowanych w języku Java.
Wybierz swój pakiet
Co zawiera pakiet?
- Nauka programowania od podstaw
- Kompletny kurs języka Java
- Narzędzia i techniki pracy dewelopera
- Przetwarzanie danych: pętle, pliki, kolekcje, proste algorytmy
- Graficzny interfejs użytkownika
- Rzut oka na inne zastosowania Javy
Co zawiera pakiet?
- Całość pakietu Standard
- Bazy danych i ich obsługa w Javie: SQL, JDBC, Hibernate
- Tworzenie aplikacji webowych
- Platforma Spring i elementy Java EE
- Podstawy usług sieciowych REST i SOAP
- Zaawansowane elementy Javy
Kształcimy programistów, których brakuje na rynku pracy
Zapotrzebowanie na programistów zwiększa się z każdym rokiem - obecnie w Polsce brakuje ponad 50 tysięcy programistów*. Olbrzymie braki kadrowe są spowodowane tym, że mamy coraz większe zapotrzebowanie na nowe technologie, sprawnie działające aplikacje, profesjonalne strony WWW i programy usprawniające pracę przedsiębiorstw. Bez wątpienia - zawód programisty to zajęcie przyszłościowe - bo przecież rośnie nam pokolenie tabletów i telefonów - oraz dochodowe! Jeśli przyłożysz się do nauki to z pewnością będziesz pracować jako programista w branży która bardzo dba o swoich pracowników.
*źródło: wprost.pl
Bootcamp. Czyli jak uczymy?
Uczymy metodą bootcampu. Słowo “bootcamp” pochodzi z armii amerykańskiej i oznacza ekstremalny trening, który z rekrutów robi prawdziwych wojskowych - zdolnych od razu do walki. Bootcampy programistyczne to intensywne, nastawione na praktykę programy kształcenia. Kursantów czeka wiele godzin wytężonej pracy. Kończąc nasz bootcamp jesteś gotowym do pracy (ale też dalszej nauki) młodszym programistą.
-
Stawiamy na małe grupy i luźną atmosferę!
Nasze kursy prowadzimy stacjonarnie w największych miastach w Polsce. Część zajęć jest prowadzona w trybie hybrydowym (część osób w sali, część w trybie zdalnym), możesz więc brać udział w kursie nawet, jeśl trudno Ci dojeżdżać. Przez cały czas trwania kursu pracujesz w małej grupie - dokładnie tak jak w szkołach języków obcych. W ten sposób uczysz się szybciej, ale też przygotujesz się do pracy zespołowej - bo przecież programista nie pracuje na bezludnej wyspie - musisz umieć współdziałać w teamie! - Stawiamy na praktykę - i kontakt z trenerem! Brak nudnych wykładów - u nas uczysz się tylko praktycznych rzeczy - nasz kurs to bardziej warsztaty niż wykłady, które znasz ze studiów. Przez cały czas jest przy Tobie trener, którego w każdej chwili możesz zapytać i poprosić o pomoc. Wiemy z doświadczenia, że sama teoria nigdy nie wystarczy. Żeby zawodowo programować trzeba mieć konkretne umiejętności praktyczne - wtedy stajesz się atrakcyjnym kandydatem na rynku pracy.
-
Uczymy nie tylko języka
Każdy kto myśli o karierze programisty musi wiedzieć, że programowanie nie sprowadza się tylko do znajomości języka programowania. Programowanie - to sposób myślenia, to także stosowanie technologii informatycznych, umiejętność sprawnego poruszania się w środowisku IT. Jak to uzyskać? Odpowiedź jest jedna: praktyka, dużo praktyki - czyli po prostu pisanie kodu!
Wyszkoliliśmy ponad 7 000 osób w różnych językach programowania – dla wielu z nich nasze kursy są to pierwszy krok do rozwoju ścieżki kariery.
Nauka w domu
Kurs jest organizowany w trybie dziennym oraz zaocznym (weekendowym). W obu przypadkach pomiędzy blokami zajęć jest przerwa - tydzień lub 2 tygodnie. Przerwa jest potrzebna na trening w domu, utrwalenie wiadomości i ćwiczenia. Od swojego trenera otrzymasz odpowiednio przygotowane materiały do nauki w domu oraz zadania, do których musisz się przyłożyć. Duża ilość ćwiczeń sprawi, że utrwalisz zdobytą wiedzę i bardzo szybko opanujesz technologię.
Jeśli masz problem z zadaniem - zawsze możesz skontaktować się ze swoim trenerem.
Czy nadaję się na programistę?
„Nie wiem czy nadaję się do programowania. Jestem słaby z matematyki.”
Takie stwierdzenie słyszeliśmy w ALX wiele razy.
Zawsze odpowiadamy: nie, nie trzeba być dobrym z matmy, żeby programować. Sami znamy programistów, którzy nie mają wykształcenia informatycznego czy matematycznego, a kodują lepiej niż osoby po studiach informatycznych. Umiejętności i praktyka są bardziej istotne niż dyplom uczelni (co nie znaczy, że studia z założenia są złe – tego nie twierdzimy, a nasi trenerzy na ogół są inżynierami, magistrami lub nawet doktorami; po prostu nie jest to konieczne, a umiejętności zweryfikowane w praktyce są ważniejsze niż papierek). Nawiasem mówiąc, na nasze kursy dość często przychodzą studenci lub świeży absolwenci, aby poznać praktykę programowania w danym języku, której na ich uczelni było zbyt mało.
Programowanie to sposób myślenia - już kilka pierwszych godzin kursu i pierwsze własne linie kodu - pozwolą Ci zrozumieć, że programista musi mieć bardzo jasne i klarowne podejście do rozwiązania każdego problemu, musi być poukładany - i mieć zdolność analitycznego myślenia. To, co bardzo pomaga, to umiejętność wyobrażenia sobie tego, co dzieje się w pamięci komputera, co robi program. Ale bez obaw, nie trzeba być zakręconym nerdem żyjącym w świecie zer i jedynek. Wbrew stereotypom, znakomita większość programistów to zupełnie normalni ludzie ;-)
Czy zagwarantujecie mi, że zostanę zawodowym programistą?
Nie i naszym zdaniem nikt nie powinien takich prostych obietnic czynić. My często porównujemy naukę programowania do nauki języka obcego czy nauki gry na instrumencie. Niezwykle ważny jest właściwy nauczyciel i dobre warunki nauki – to zapewniamy Ci w ALX – ale o efekcie końcowym decyduje jeszcze kombinacja wrodzonego (choć nie zawsze odkrytego) talentu i włożonej własnej pracy.
Możesz mieć pewność, że po naszym kursie będziesz wiedzieć na czym programowanie polega, „czym to się je”, znać różne techniki i (szczególnie po wersji XL) technologie, których używa się w przemyśle IT. Z pewnością będziesz w stanie napisać samodzielnie mniej lub bardziej złożone programy. Ale ostatecznie to Ty, po doświadczeniu udziału w kursie, musisz odpowiedzieć sobie na pytanie czy programowanie sprawia Ci frajdę. Bo dobry programista, to tylko taki, który po prostu lubi pisać programy.
Od licznych byłych kursantów otrzymujemy informacje o ich dalszym rozwoju jako programistów. Pamiętaj jednak o tym, że branża IT jest ogromna i pracują w niej nie tylko programiści sensu stricte. Istnieje wiele innych ról: analitycy, projektanci, testerzy, administratorzy i wdrożeniowcy. Oprócz stanowisk technicznych, istnieje też mnóstwo takich, gdzie wymagane są kompetencje „miękkie”, interpersonalne: liderzy i menedżerowie projektów, opiekunowie produktów, trenerzy… Na każdym z tych stanowisk warto znać chociaż podstawy programowania, więc tak czy inaczej umiejętności wyniesione z tego kursu zaprocentują.
Jeśli chodzi o samo szukanie pracy (szczególnie tej pierwszej w branży IT), ważne są także właściwa autoprezentacja (np. przygotowanie własnego profilu, posiadanie pokazowych projektów) i profesjonalne podejście do procesu rekrutacji. W tym miejscu zachęcamy do udziału w warsztatach HR, które są dostępne dla naszych kursantów i absolwentów.
Java jako pierwszy język programowania. Dlaczego?
- Po pierwsze dlatego, że to najpopularniejszy język programowania na świecie (według indeksu Tiobe) i “pewniak” pod kątem ofert pracy. Java napędza większość systemów biznesowych w wielkich korporacjach, średnich i mniejszych firmach, administracji publicznej. Java stanowi podstawę działania tak popularnych aplikacji, jak Facebook, Twitter czy Allegro, napędza wiele systemów firm Google, Oracle, Amazon i dużą część współczesnych systemów bankowych. Główne założenie Javy to “write once – run everywhere” - jest językiem uniwersalnym. W Javie można zrealizować niemal wszystkie zadania informatyczne, od najmniejszych „zwykłych programów”, poprzez aplikacje mobilne na Androida, aplikacje graficzne, do aplikacji webowych, usług sieciowych i systemów serwerowych.
- Po drugie - znajomość Javy (nawet podstawowa) jest świetnym startem dla każdego, kto chce się uczyć dalej - innych języków programowania i technologii. Java jest spokrewniona z wieloma innymi popularnymi językami, a kto dobrze zrozumie Javę, bez większych problemów odnajdzie się także gdzie indziej. Java jest rozwijana od wielu lat, ma znakomitą dokumentację i bardzo ugruntowaną społeczność użytkowników. Java to programowanie obiektowe, więc ucząc się Javy nabędziesz wiele umiejętności i przyzwyczajeń, które zrobią z Ciebie lepszego programistę w dalszych etapach Twojej kariery w IT.
Kto powinien przyjść na ten kurs?
Ten kurs jest przygotowany dla osób początkujących, które zupełnie nie miały wcześniej styczności z programowaniem, lub miały w niewielkim stopniu.
Większość uczestników tego kursu to osoby bez wykształcenia technicznego. Wystarczy, że potrafisz posługiwać się komputerem - czyli kopiować pliki, tworzyć foldery, sprawnie pisać na klawiaturze - resztą zajmiemy się my!
Jeszcze będąc w liceum wymyśliłem sobie, że pójdę na studia dziennikarskie. Skończyłem dwa lata i przerwałem - nie miałem do tego serca. Chciałem stabilizacji i dobrze płatnej pracy w korporacji. Poszedłem na kurs programowania do ALX, nauczyli mnie podstaw Javy. Po skończonym kursie zacząłem staż w jednej z warszawskich firm. Przez kilka miesięcy pracowałem jako młodszy programista Java w dużym zespole programistów - sporo się nauczyłem, po pół roku szef wysłał mnie na kurs Androida dla programistów. Teraz piszę aplikacje na Androida, mam etat w korporacji i świetnie zapowiadającą się ścieżkę kariery.
Rafał l. 33 WarszawaManagerowie i właściciele startupów - żeby nauczyć się pisać i czytać kod.
Kod jest wszędzie! Używamy go stale, przygotowując analizę budżetu w Excelu, edytując swojego bloga czy firmowy newsletter. Jesteśmy uzależnieni od technologii, otaczają nas komputery - natomiast praktycznie nikt z nas nie umie pisać ani czytać kodu! Podstawy programowania powoli wkraczają do różnych branż, a umiejętność czytania kodu i jego (nawet prostej) edycji będzie na wagę złota! Ten kurs jest świetną propozycją dla wszystkich prowadzących własne biznesy internetowe, start-upowców i project managerów. Koniecznie zobaczcie ten film:
Program kursu - czego się nauczysz?
Program kursu został stworzony przez zespół doświadczonych programistów Javy, którzy pracują w branży od wielu lat. Nasi trenerzy to praktycy, kierują zespołami programistycznymi lub zajmują się pisaniem aplikacji w Javie na zamówienie dla firm zewnętrznych. Kurs jest podzielony na moduły i pomyślany tak - abyś od naszych specjalistów nauczył się dokładnie tego co jest potrzebne na rynku pracy. Kurs w wersji Standard da Ci solidne podstawy niezbędne dla każdego programisty, abyś mógł/mogła rozwijać w dowolnym kierunku. Kurs w wersji XL dodatkowo wdroży Cię w realne zastosowania Javy związane z tzw. backendem, czyli programowanie na serwerze, w oparciu o bazy danych, z wykorzystaniem technologii webowych i usług sieciowych - to jest dokładnie to, do czego używa się najczęściej Javy w projektach IT.
Schemat nauki podczas kursu
Zapewniamy go! Nowoczesny sprzęt komputerowy będzie do Twojej dyspozycji podczas kursu. Oprócz motywacji i chęci do nauki nie musisz niczego ze sobą zabierać!
Czego się nauczysz?
Przybornik programisty
Nauczysz się pracy w najbardziej popularnych środowiskach deweloperskich (IntelliJ, Eclipse), budowania projektów, używania systemów kontroli wersji (GIT), używania gotowych komponentów (Maven) itd.
Podstawy programowania
Dużo czasu poświęcamy dobremu zrozumieniu spraw podstawowych: zmiennych, pętli i prostych algorytmów, tworzeniu własnych funkcji i klas.
Praca z danymi
Poznasz sposoby modelowania i przechowywania danych w pliach oraz bazach danych. W wersji XL opanujesz różne sposoby dostępu do baz danych z języka Java: JDBC, Hibernate, Spring Data.
Zastosowania
Przećwiczysz tworzenie w języku Java końcowych aplikacji różnego typu: tekstowych i okienkowych, a w wersji XL także: webowych, REST-owych, usług sieciowych
Posłuchaj jednego z naszych trenerów
Bootcamp u nas w ALX polega na tym, że uczestnicy siedzą przy swoim komputerze, ja przy swoim i wspólnie tworzymy kod
Ważne jest to żeby było mało mówienia i słuchania a dużo pisania, pisania i pisania - bo to co nie przejdzie przez palce bardzo szybko wietrzeje z głowy
To jest trochę tak jakby klasyczny XIX wieczny Eskimos miał zostać mechanikiem samochodowym...
Back-end vs. front-end. Dobrze wiedzieć.
Na tym kursie nauczysz się głównie back-endu. Poznasz język Java, logikę, architekturę i dobre praktyki programowania. Jednak już na samym początku warto wiedzieć, że w IT są dwie ścieżki kariery - sprawnie działające aplikacje i systemy oprócz back-endu wymagają także front-endu.
Programista back-end
Zajmuje się tym, czego użytkownik nie widzi - bazy danych, architektura aplikacji, obliczenia, bezpieczeństwo i wydajność. Dla back-endu nie liczy się wygląd, tylko logika działania i cel - “to ma działać, i być przygotowane na wszelkie możliwe scenariusze i przypadki”.
Programista front-end
Jest odpowiedzialny za to co użytkownik zobaczy na monitorze. W wypadku aplikacji internetowych są to szablony stron (HTML), interaktywność aplikacji WWW (JavaScript), wygląd poszczególnych elementów na stronie (CSS). Aplikacja/strona ma być intuicyjna, przejrzysta i po prostu ładna.
Tutaj pewne podstawowe elementy front-endu pojawią się w pierwszej części podczas tworzenia aplikacji „okienkowych” oraz w drugiej części, aby wizualnie przyozdobić tworzone tam aplikacje webowe.
Podstaw programowania uczymy również młodzież (od 13 roku życia). Umiejętność programowania to samodzielność i szansa na szybki rozwój młodego człowieka - to "must have” w dzisiejszym świecie.
Trenerzy - wiedza połączona z praktyką
Trener, który będzie prowadził ten kurs to wykładowca i informatyk w jednej osobie. Nasi trenerzy wywodzą się z najlepszych polskich uczelni i od wielu lat wykonują projekty IT dla firm zewnętrznych, organizacji i instytucji publicznych. Na co dzień pracują w zawodzie - co daje im możliwość prowadzenia ultra ciekawych zajęć, przepełnionych przykładami z realnych projektów.
którzy umieją dobrze i skutecznie komunikować się z ludźmi, dzięki temu potrafimy szkolić i przekazywać wiedzę w bardzo przystępny sposób!
którzy informatykę znają nie tylko w teorii. Cały czas jesteśmy aktywni zawodowo. To siła naszego zespołu!
Trenerzy - zawodowi programiści
Nawet najlepiej przygotowany program kursu nie zadziała bez dobrego, otwartego na słuchaczy i doświadczonego wykładowcy. Doskonale o tym wiemy!
Dlatego nasi trenerzy są najlepsi. Mają wieloletnie doświadczenie w szkoleniach, nauczaniu oraz tworzeniu oprogramowania. Są to praktycy - osoby prowadzące żywe, obfitujące w realistyczne przykłady zajęcia.
Programista i trener o szerokim zakresie kompetencji. Specjalizuje się przede wszystkim w technologiach Java, XML, SQL, C, Linux, programowanie funkcyjne. Ceniony wykładowca na Uniwersytecie Warszawskim.
Pracował jako programista (Java, C++, PHP) oraz jako analityk i projektant baz danych w projektach komercyjnych i akademickich. Jako ekspert w zakresie technologii XML miał swój udział w projekcie eDeklaracje 2 Ministerstwa Finansów: jest współautorem arkuszy XSL do deklaracji podatkowych.
Posiada także bogate doświadczenie dydaktyczne, przez wiele lat pracował jako asystent i prowadzący zajęcia (C, Java, Haskell, Ocaml, Prolog, XML, progr. współbieżne, bezpieczeństwo) na Wydziale Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego, którego jest absolwentem. Jako współpracownik zewnętrzny, wciąż prowadzi wykłady dot. technologii XML.
Szkolenia prowadzi od 2008r. Obecnie jako „freelancer” występuje w roli programisty, eksperta i prowadzącego szkolenia. W chwilach wolnych usiłuje udowodnić za pomocą systemu Coq własności programów zapisanych w bajtkodzie Javy.
Posiada certyfikaty:
- Oracle Certified Associate, Java SE Programmer (wersje 7 i 8)
- Oracle Certified Professional, Java SE Programmer (wersje 7 i 8)
- Oracle Certified Expert, Java EE 6 Web Services Developer
- Oracle Database SQL Certified Expert
- EnterpriseDB Certified PostgreSQL 9.3 Associate
- IBM Certified Solution Designer Rational Unified Process v7.0
Główny trener ALX w zakresie programowania w językach Python i Perl; trener języka Java, PHP, aplikacji webowych i baz danych - z wieloletnim doświadczeniem. Prowadzi zajęcia w Polsce i w Wielkiej Brytanii. Uczestniczył w projektach informatycznych w wielu językach i technologiach. Magister Wyższej Szkoły Morskiej w Szczecinie. Zagorzały fan gier MMORPG.
Ukończył Inżynierię Oprogramowania i Tworzenia Systemów Informatycznych na Uniwersytecie Szczecińskim. W latach 2002-2004 redaktor prowadzący magazynów informatycznych „Software 2.0” i„Hakin9”. Wykładowca, prowadzący warsztaty, przewodniczący komisji programowej konferencji IT Underground w Software Konferencje. Przez wiele lat uczestniczył w projektach informatycznych na zlecenie wielu europejskich firm. Piotr jest bardzo wymagającym trenerem, dąży do tego żeby każdy, kto kończy jego szkolenie wyciągnął z niego jak najwięcej się da!
Piotr ma także tytuł magistra Wyższej Szkoły Morskiej w Szczecinie. Uwielbia poznawać obce języki tj.: hiszpański, arabski i papiamento. Zagorzały fan gier MMORPG. Prowadzi zajęcia w Polsce i Wielkiej Brytanii. Ogromne doświadczenie zawodowe Piotra sprawia, że przyjeżdżają do niego na konsultacje szefowie IT największych polskich i zagranicznych firm.
Posiada certyfikaty:
- Microsoft Certified Technology Specialist
- Microsoft Project – Managing Projects
- Programming in HTML5 with JavaScript and CSS3
Program szkolenia
Wersja podstawowa
1. Wprowadzenie do programowania
- Jak rozmawiać z komputerem?
- Kod maszynowy i kod źródłowy
- Języki programowania, kompilatory, interpretery
- Proces, program, aplikacja
- Rzut oka na współczesny świat technologii programistycznycha
- Rodzaje aplikacji: frontend vs backend, aplikacje wsadowe, graficzne, webowe i mobilne; adekwatne technologie
- Przegląd języków i paradygmatów programowania
- Platforma Java – dlaczego powstała, jej miejsce w dzisiejszym świecie IT, cechy charakterystyczne i zastosowania
- Biblioteki i frameworki
- Instalacja i konfiguracja platformy Java
- Podstawy pracy w wierszu poleceń
- Kompilacja i uruchamianie
- Interaktywny interpreter jshell
- Instalacja i konfiguracja wybranego środowiska deweloperskiego (IDE)
- Przegląd środowisk właściwych dla języka Java
- Zalety IDE i techniki pozwalające na sprawną pracę
- Budowa programu w języku Java
- Struktura projektu: pliki źródłowe i skompilowane, katalogi, pakiety, klasy
- Konwencje dot. nazw i formatowania kodu
- Proste metody komunikacji z użytkownikiem: standardowe wejście i wyjście, okna dialogowe
- Zmienne i typy
- Podstawowe typy danych: liczby całkowite i z ułamkiem, napisy, typ logiczny
- Wyrażenia arytmetyczne i logiczne
- Instrukcje sterujące języka Java
- Instrukcje warunkowe: if, switch
- Pętle: while, for
- Pisanie prostych algorytmów
- Tablice
- Elementy proceduralnego stylu programowania
- Metody w języku Java
- Tworzenie sparametryzowanych funkcji i procedur
- Wydzielanie powtarzających się fragmentów kodu; podstawy refaktoryzacji
- Obiektowy styl programowania
- Czym są obiekty, czym są klasy?
- Odniesienia do pojęć ze świata rzeczywistego
- Obiekty i klasy technicznie
- Elementy składowe klas, budowa obiektów
- Struktura pamięci maszyny wirtualnej Javy; stos i sterta; referencje do obiektów
- Dziedziczenie i interfejsy
- Rozszerzanie klas i nadpisywanie metod
- Polimorfizm, zasada podstawiania
- Interfejsy i klasy abstrakcyjne
- Enkapsulacja (hermetyzacja)
- Modyfikatory widoczności
- Techniki i korzyści z enkapsulacji
- Wyjątki w języku Java
- GUI w programowaniu obiektowym: komponenty graficzne jako obiekty
- Technologia Swing jako jedna z możliwości tworzenia GUI w Javie
- Obsługa zdarzeń w aplikacji okienkowej
- Budowanie interfejsu użytkownika na dwa sposoby: pisząc odpowiedni kod w Javie oraz za pomocą edytora graficznego
- Napisy
- Klasa String: możliwości i ograniczenia
- Budowanie napisów
- Przetwarzanie tekstu, w tym podstawy wyrażeń regularnych
- Kolekcje: listy, zbiory, słowniki; Java Collections Framework
- Wykorzystanie w algorytmach i schematach przetwarzania danych
- Wpływ właściwego doboru struktur danych na wydajność aplikacji
- Podstawy funkcyjnych technik programowania: lambdy i strumienie
- Obsługa daty i czasu
- Obsługa plików
- Pliki binarne i tekstowe, bajty i znaki, kodowania znaków
- Strumienie wejścia/wyjścia i podstawowa obsługa plików w programach Javy (z większym naciskiem na pliki tekstowe)
- Klasa Files i operowanie na całych plikach
- Popularne formaty zapisywania danych strukturalnych i podstawy ich obsługi w Javie: CSV, XML, JSON
- Dostęp do zdalnych serwisów typu Web API / Rest API
- Wątki i synchronizacja
- Elementy wielowątkowości wbudowane w język Java
- Klasy biblioteki standardowej wspierające wielowątkowość
- Typy generyczne
- Elementy programowania funkcyjnego od Javy 8
- Wyrażenia lambda i referencje do metod
- Strumienie i operacje na nich
- Redukcje, kolektory i schematy przetwarzania danych
- Budowanie projektów Java: command-line/Ant/Maven/Gradle
- Projekt jako biblioteka; zależności między projektami
- Centralne Repozytorium Mavena i wykorzystywanie bibliotek „trzeciej strony” we własnych projektach
- Przegląd użytecznych bibliotek programistycznych open source
- GIT i kontrola wersji kodu
- Zapisywanie i odtwarzanie historii zmian
- Rozgałęzienia i ich późniejsze łączenie (branch/merge)
- Repozytoria lokalne i zdalne; różne scenariusze pracy zespołowej
- Testy i kontrola jakości kodu
- Zapewnianie poprawności oprogramowania
- Dobre i złe praktyki programistyczne
- Wypisywanie informacji diagnostycznych (tzw. logów)
- Uruchamianie programu w trybie debug
- JUnit i testy jednostkowe w Javie
- Dodatkowe biblioteki przydatne w pisaniu testów: AssertJ, Mockito
- Zasada działania aplikacji webowej strony serwera
- Protokół HTTP
- Podstawy HTML i CSS - w razie potrzeby
- Podstawy technologii serwletów w Javie
- Filozofia pracy na serwerze aplikacji. Czym jest Java Enterprise Edition? RedHat WildFly i inne serwery aplikacji
- Obsługa żądań i generowanie odpowiedzi
- Parametry zapytań i obsługa formularzy
- Utrzymywanie sesji i atrybuty w różnych zakresach
- Wprowadzenie do technologii Java Server Pages (JSP) i różne podejścia do podziału odpowiedzialności między JSP a Javę
- Tworzenie i uruchamianie projektu w oparciu o Spring Boot
- Aplikacja webowa w technologii Spring MVC
- Kontroler: rola, zasada działania, mapowanie URL-i i wybór metody na podstawie zapytania
- Obsługa parametrów i nagłówków
- Warstwa widoku i technologie szablonowe (JSP / Thymeleaf)
- Model: przekazywanie danych między aplikacją a widokiem
- Obsługa formularzy
- Zasada działania aplikacji Spring
- Warstwy typowego projektu
- Adnotacje i wstrzykiwanie zależności; rola interfejsów w projektach Spring
- Różne sposoby inicjalizacji i wstrzykiwania komponentów („beanów”)
- Zabezpieczanie aplikacji - podstawy Spring Security
- Wprowadzenie do technologii baz danych
- Serwer baz danych (DBMS)
- Koncepcja relacyjnych baz danych i pomysły alternatywne
- Instalacja i konfiguracja PostgreSQL lub innego serwera baz danych
- Podstawy języka SQL
- Polecenie SELECT, wyrażenia i warunki
- Sortowanie i grupowanie
- Łączenie danych z wielu tabel
- Wstawianie i aktualizacja danych
- Projektowanie relacyjnych baz danych (na przykładzie)
- Definiowanie tabel, typy kolumn
- Klucze i inne więzy integralności
- Unikanie redundancji, postacie normalne
- JDBC i bezpośrednie zadawanie zapytań SQL z aplikacji Java
- Zalety i wady bezpośredniego dostępu do baz danych
- Modyfikacja danych i praca z transakcjami
- Obiektowy dostęp do baz danych (ORM) w technologii JPA/Hibernate
- Klasy encji; generowanie na podstawie tabel
- Operacje odczytu i modyfikacji danych
- Zadawanie własnych zapytań JPQL oraz natywnych
- Dostęp do danych z aplikacji Spring
- Warstwa danych („repository”) w aplikacji Spring
- Automatyczne instancjonowanie interfejsu przez technologię Spring Data
- Koncepcja SOA i rodzaje usług sieciowych
- Usługi sieciowe typu SOAP
- Technologia JAX-WS i tworzenie serwera SOAP w ramach Java EE
- Generowanie i rola WSDL
- Tworzenie klienta i architektura klient/serwer
- Usługi typu REST
- Zasoby, URL-e i metody HTTP
- Technologia JAX-RS i tworzenie serwera REST w ramach Java EE
- Parametry, nagłówki, odnośniki i przekierowania
- Rozszerzanie JAX-RS o własne typy zawartości na przykładzie generowania PDF
- Tworzenie serwera REST za pomocą Spring MVC
- Dostęp do usług REST od strony klienta
- Tworzenie aplikacji tekstowych i wsadowych
- Zastosowanie Javy do przetwarzania danych zawartych w plikach
- Tworzenie aplikacji z graficznym interfejsem użytkownika
- Tworzenie aplikacji webowych
- w oparciu o serwlety i JSP (podstawy)
- w oparciu o Spring MVC i Thymeleaf
- Podstawy tworzenia usług sieciowych typu SOAP i REST