Lipiec 18, 2018

Wstęp do kursu

Wstęp do kursu

Po krótce postaram Ci się opowiedzieć jak cały kurs ma wyglądać, o niektórych informacjach pewnie już słyszałeś, o niektórych mówiłem tylko osobom, które pytały w e-mailu, a o niektórych jeszcze nikomu nie mówiłem.

Cel kursu

Głównym celem kursu jest oczywiście nauczenie Cię programowania w Javie zaczynając od samych podstaw, od samej instalacji środowiska, przechodząc przez podstawy składni języka, aż do coraz trudniejszych zagadnień.

Za cel jaki sobie postawiłem przed uruchomieniem kursu jest to, że chcę wypuścić każdego kursanta po ukończeniu kursu z aplikvacją, którą będzie można się pochwalić w swoim CV.

Tematyka aplikacji

Długo zastanawiałem się jaka aplikacja byłaby idealna do takiego kursu, aby móc zawrzec w niej wszystkie zagadnienia kursu – tak, aby tworzyć aplikację wykorzystując już poznane komponenty.

Wybór padł na aplikację do zarządzania magazynem/sklepem, gdzie można zarządzać produktami dzieląc je m.in kategorię, przypisywać do nich różne parametry i na podstawie tych parametrów je agregować.

Aplikacja od początku będzie przechowywana na systemie kontroli wersji – a dokładnie na Gicie – o którym wkrótce wszystko Ci powiem.

Dzięki temu będziesz mógł się od razu nauczyć tzw. git flow – które w jakimś stopniu wygląda podobnie jak w komercyjnym projekcie. Różnica jest taka, że przy takim projekcie pracuje zazwyczaj około kilku osób, a nie ty jeden sam.

Na początku aplikacja ma nie mieć interfejsu graficznego, lecz na koniec kursu jest taki plan, aby dodać również i interfejs graficzny, aby móc po niej klikać.

Tematyka tygodni

Jak wspominałem już wcześniej kurs jest prowadzony tygodniami, aby każdy mógł nadążyć i żebym każdy mógł pomóc.

Przedstawiam Ci teraz wstępny plan tygodni całego kursu – jest to mój pierwszy taki większy kurs, dlatego tygodnie mogą być lekko modyfikowane, mogą się lekko obsuwać. Są to na razie moje spekulacje, a wszystko wyjdzie w praniu – nie chcę po prostu Was „zalać” zbyt dużą dawką wiedzą jak na jeden tydzień.

Z wypowiedzi wyżej jak i z innych moich możesz spekulować, że kurs nie jest w pełni stworzony – Takto prawda. Takie rozwiązanie bardziej mi pasuję, ponieważ mogę tworzyć kurs elastyczny wobec kursantów – jeżeli jest czegoś za dużo lub za mało to po prostu tworzę go ciągle inaczej. A dodatkowo liczba zapisanych osób na kurs motywuje mnie jeszcze bardziej.

  1. Tydzień 0 – Wstęp do kursu i konfiguracja środowiska
  2. Tydzień 1 – Podstawy składni języka, koncepcja Clean Code oraz zrozumienie działania samej Javy
  3. Tydzień 2 – Wstęp do obiektowości, podstawy Mavena oraz stworzenie repozytorium GIT – rozpoczęcie tworzenia aplikacji
  4. Tydzień 3 – Obiektowość ciąg dalszy – interfejsy, rozszerzanie interfejsów, przysłanianie metod, SOLID, DRY, KISS
  5. Tydzień 4 – Kolekcje i typy generyczne, praca z plikiem i TestDrivenDevelopment – JUnit
  6. Tydzień 5 – Obsługa wyjątków, tworzenie walidatorów oraz wzorce projektowe
  7. Tydzień 6 – Enum, wstęp do SQL
  8. Tydzień 7 – Podpięcie bazy danych
  9. Tydzień 8 – Podpięcie interfejsu graficznego – JavaFX

Tak jak wspominałem wyżej cały plan może się lekko zmieniać na podstawie Waszego feedbacku.

Choć niektóre tygodnie mogą wydawać się „lżejsze” niż inne to nie zapominajmy, że w trakcie tych 8 tygodni chcemy stworzyć pełnoprawną aplikację do zarządzania produktami z podstawowymi funkcjonalnościami takimi jak: dodawanie, edytowanie i usuwanie.

Grupa Facebookowa

Doszedłem do wniosku, że skoro kurs jest prowadzony w systemie tygodniowym to warto będzie mieć miejsce, gdzie każdy będzie mógł o wszystko zapytać w tematyce kursu, a ja na podstawie wszystkich Waszych wypowiedzi będę mógł tworzyć kurs jak najbardziej odpowiedni pod Wasze wymagania.

Nie zapominajmy, że warto sobie pomagać – może mając problem wystarczy zapytać, a zaoszczędzi nam sporo czasu pomoc kolegi, który już wcześniej zmarnował X czasu na rozwiązanie owego problemu. 😉

Dołączyć do grupy możesz pod tym linkiem.

Zadania dodatkowe

Choć zdania są podzielone to ja osobiście uważam, że warto w trakcie kursu otrzymać samodzielne zadanie do wykonania, a nie tylko przepisywać wszystko jak leci i udawać, że wszystko się rozumie.

Dlatego na każdą/lekcję będę przygotowywał zadania do wykonania – na początku, będą to proste zadania, aby szybko przyswoić składnie języka, lecz później będą to funkcjonalności, które będzie trzeba dodać do naszej aplikacji.

Oczywiście zadania będziemy weryfikowali wspólnie na grupie Facebookowej, a ja oczywiście będę udostępniał swoje rozwiązania danej funkcjonalności.

Na koniec

No to wszystko co musisz wiedzieć o kursie, ruszajmy!