Nie będzie pojazdu po wszystkich i wszystkim. Nikomu się nie dostanie. Będzie bardzo serio, bo nurtuje mnie jedno pytanie, czy warto? 😉
Dla jednych wyprawy po wiedzę to czytanie książek, inni nurzają się w głębinach internetów, pozostali chodzą na konferencje. Jednak nie liczy się jak, czy sam czy w towarzystwie książek czy też na spotkaniach społeczności. Liczy się to, iż masz w sobie dziecięcą ciekawość i głód wiedzy.
Dla mnie żadna z wymienionych technik nie działa. Czytam, bywam, spotykam. Jednak to tylko zajęcia dodatkowe. Często źródła inspiracji, nowych pomysłów.
By być lepszym programistą jedyną drogą jest… niespodzianka, o zgrozo, więcej programować.
“Ale przecież, ja programuję w pracy”. Poważnie? W pracy co najwyżej kleisz pierogi z cudzego ciasta architektury wymyślonego przez kogoś innego. Nie mylmy programowania z mechaniczną czynnością wprowadzania kodu zgodnie z literą narzuconego frameworku, który robi wszystko za Ciebie.
Jeśli Ty również uczysz się poprzez pracę i ciągłe eksperymentowanie, jeżeli chcesz spróbować czegoś nowego lub nie masz co robić z wolnym czasem, mam propozycję.
Uczę się i rozwijam poprzez pisanie kodu. Jednak udało mi się wypracować pewien sposób, który pozwala mi robić to efektywnie i jeszcze dobrze się przy tym bawić.
Pisałeś kiedyś własną bazę danych, albo serwer kolejek lub własny kompilator?
Zastanawiałeś się dlaczego nie? Bo to trudne? Bo nikomu niepotrzebne? Bo nie wiesz jak?
Tak, to jest trudne (tutaj powinien być fragment o sofie komfortu, ale darujmy sobie i zostawmy innym “ekspertom” do rozsądzenia). jeżeli trudne, to może ktoś może pomóc, podpowiedzieć. Razem zawsze raźniej.
Nikomu niepotrzebne? Zgadza się, świat nie potrzebuje kolejnej bazy klucz-wartość.
Ale Ty jej potrzebujesz. Efektem pracy nie jest nowa baza danych, jest Twoja nabyta wiedza. Tym razem produkt nie jest celem.
Jeśli nie wiesz jak, to dobrze. Nie wszyscy piszą bazy danych. Większość z nas w zaciszu “open space” przepycha encje w JSONy, a te potem prosto do przeglądarki. Możesz się dowiedzieć i nauczyć technik, które wyniosą Cię na inny poziom. Wyróżnij się lub zgiń, jak mawia klasyk.
Co będziemy robić?
Warsztaty będą się odbywać raz na dwa tygodnie (lub raz w miesiącu), w formie webinaru, w zaciszu własnego mieszkania czy też kafejki z najbardziej hipsterską kawą na świecie.
Podczas webinaru będę przedstawiał teoretyczne, jak i mocno praktyczne podstawy wybranego problemu. Pojawią się kod, dyskusje, linki do materiałów oraz zadania na kolejne dwa tygodnie. Będziemy sukcesywnie budować rozwiązanie. Będą pull request, code review i wszystko co jest potrzebne by stworzyć projekt.
Jest jednak jedna mała niespodzianka. Zero frameworków, pracujemy na czystym JDK10.
Jedyne frameworki na które jest zgoda to JUnit, AssertJ i Mockito ( oraz inne niezbędne do pisania testów). Czysta pachnąca wanilią Java.
Co weźmiemy na pierwszy ogień?
Bazę klucz-wartośc, wielowątkową, działającą tylko w trybie “embedded”, zgodną z modelem spójności, “monotonic reads”.
Brzmi ciekawie?
Czego się dowiesz?
- Czym są database storage structures
- Po co nam tyle consistency models
- Jak nie zginąć w gąszczu concurrency primitives
Z czym się bliżej zaprzyjaźnisz?
- java.nio.channels.FileChannel
- java.util.concurrent.*
O co zawsze bałeś się zapytać?
- syscalls, czyli read/write, readv/writev, pread/pwrite, mmap
- I/O w Linux i JVM,
- Śledzenie procesów w Linux i JVM
- Czy JVM może być szybki?
Po każdej sesji w repozytorium będzie się pojawiać nowe testy, a waszym celem będzie wypełnić implementację kodem. Przez cały czas, do następnej sesji będę dostępny by rzucić okiem na postęp prac, podpowiedzieć. Uruchomię też grupę mailingową na której będziecie mogli wymieniać się pomysłami.
Kiedy to wszystko startuje? Nie wiem, to zależy od Was, dlatego tutaj, ankieta, która pozwoli mi poznać odpowiedź na bardzo ważne pytanie, czy warto ;). Bo może wam się nie chce? Może jednak nie mam racji i wszystko trzeba przykryć warstwami abstrakcji.
Jeśli jesteś ciekaw dokładnego programu, zapraszam na pełny zakres warsztatów
W ankiecie znajdziecie kilka prostych pytań o częstotliwość spotkań, czas tych spotkań i o budżet jaki byście byli w stanie wydać na taką formę szkolenia oraz tematy, które Was szczególnie interesują.
Nie zbieram żadnych danych osobowych. Niech RODO będzie z wami.
Uwagi oczywiście mile widziane w komentarzach.