Mentionsy Mentionsy
JavaReady.pl - jak zostać programistą Javy? (Junior/Mid)
JavaReady.pl - jak zostać programistą Javy? (Junior/Mid)

#34 - Jak został Java Developerem? Wywiad z Dymitrem Misiejukiem

25.08.2022 ·1 godz 2 min

Linki z tego odcinka znajdziesz na https://javaready.pl/34 Bartek Kalka | javaready.pl

Coż ja mogę powiedzieć. Kotlin ma sporo wspólnego z Javą, gdyż działa na wirtualnej maszynie Javy. Tak naprawdę w projekcie, z którym pracuję, to my korzystamy ze Springa, więc wszystko czego się uczyłem, na przykład Springa do Javy, to teraz też to wykorzystuję w Kotlinie. To jest, można powiedzieć, jakiś sposób, jakieś narzecze Javy ten cały Kotlin, więc to nie jest tak, że nagle przestałem w ogóle pracować z Javą. Nie, nie, nie. Tam bardzo dużo się używa Javy, takiej czystej Javy w Kotlinie. Tylko, że ona jest ukryta jakby w adnotacjach różnych do kodu, czy po prostu z klas jakiś, czy tam importów zewnętrznych.

Podpowiada na co zwracać uwagę, podpowiada dlaczego jakiś typ kolekcji jest lepiej używać od innego. Dużo rzeczy robi w taki sposób, on jest praktykiem. Z tego, co mówi, to tam dziesiątki lat pracuje w programowaniu, więc wie, co mówi, tak? Jego się naprawdę miło słucha, że to jest elegancko zrobiony sam w sobie kurs, bo różnej jakości można kursy na tym Udemy trafić. To jego jest naprawdę wysokiej jakości i serdecznie polecam. No i oczywiście, jak tworzyłem aplikację, to też trzeba było Springa, bo ja stwierdziłem, że aplikacja webowa, którą będę tworzył, będzie w Springu, więc sięgnąłem po książkę, która się nazywa Spring w akcji. To trzeba było przeczytać.

Spring to jest w ogóle inna para kaloszy, to trzeba z tym pracować, żeby to dobrze rozumieć, jeżeli nie ma się formalnego jakiegoś, podejrzewam, wykształcenia w tym, ale do ogarnięcia to jest oczywiście. No i u mnie, jakby to powiedzieć, napisałem tą aplikację, która tak naprawdę motywowała mnie do tego, żeby w ogóle uczyć się programowania. Uważam, że to jest niezbędne. Trzeba mieć projekt, na którym ci zależy, bo on właśnie jakby napędza ruchy, które trzeba wykonać. Na początku okazało się, dobra, frontend oczywiście jest potrzebny, bo trzeba stworzyć jakąś stronę, jeżeli to ma być aplikacja webowa, ale okazuje się, że wcale tego jakoś nie trzeba. Poznawać na nie wiadomo jakim poziomie tak naprawdę podstawowy HTML, CSS, który i tak jest niezbędny do tworzenia aplikacji z Javą.

Przynajmniej do tego, jeżeli chce się coś, żeby mniej więcej wyglądało na froncie. Jakiś absolutnie podstawowy JavaScript, który po kursie Javy w ogóle nie jest trudny. No i bazy danych się nagle okazało, że trzeba się przytulić do baz danych. Na bootcampie były bazy danych poruszane, no ale tam wszystko szybko leciało. To wtedy szczerze mówiąc nie wydawał mi się jakiś priorytet, więc przeszedłem to jak przeszedłem, ale musiałem się tego na nowo pouczyć troszkę. No i między innymi wtedy trafiłem też na Twój kurs, bo potrzebowałem coś, uznałem może jakoś trzeba wykorzystać Jak wykorzystać bazy danych? Między innymi Docker się urodził. Czy potrzebuję Dockera?

Ja głównie do Twojego kursu sięgnąłem, bo był o Dockerze. Ostatecznie w mojej aplikacji okazało się, że w sumie to ona aż tak skomplikowana nie musi być, żeby dokeryzować frontend, backend, bazy danych, bo odpaliłem ją na Heroku Apps. Taka aplikacja webowa, która pozwala za darmo publikować swoje aplikacje. Ona nie jest jakoś mega szybka, ale na moje potrzeby wystarczająca się okazała i darmowa jest przede wszystkim, tam przynajmniej do 500 megabitów. Czyli tak podsumowując na razie co powiedziałeś, dostałeś się na bootcamp, później stwierdziłeś, że jednak potrzebujesz trochę powtórek zrobić, utrwalić wiedzę po to, żeby tworzyć kolejne projekty, a gdzie było na przykład myśl o tym, żeby już się rekrutować, bo o tym jeszcze nie wspominałeś i cały czas gdzieś zbierałeś tę teorię i tak dalej, wiedzę praktyczną,

Przede wszystkim wychodziły z bazami danych moje braki, że jeszcze z SQL-em niedobrze sobie radzę, że tam nie tak na przykład rysunki robiłem baz danych, tak, więc polecam każdemu przytulcie się do baz danych i relacyjnych i nierelacyjnych, tak, czyli tam do MongoDB jako nierelacyjnych czy tam jakiegoś MySQL-a jako relacyjnych. Bo to warto znać. Tak naprawdę później się w pracy okazuje, że głównie pracuje się z bazami danych. I mimo iż może korzysta się z adnotacji w Springu, czy jakichś innych narzędzi, to i tak warto znać po prostu, jak się używa baz danych i czego można się spodziewać. Dlaczego taka, nie inaczej jest stworzona jakaś adnotacja.

No, więc... Zacząłem się rekrutować i pojawiła się możliwość napisania aplikacji w jednej polskiej firmie. Ja się do tego bardzo napaliłem, bo uznałem, że w końcu tutaj nie będą ludzie zwracać uwagi na moje imię i nazwisko, które nie brzmi po polsku i nie będą uważać, że ja potrzebuję najpierw jakiejś formalności i załatwić z cyklu wiza pracownicza i inne rzeczy. To było śmieszne. Wielokrotnie zadawali mi pytanie właśnie z cyklu, a czy ma pan pozwolenie pracy w Polsce? Ja się urodziłem w Polsce, mam paszport polski, jestem obywatelem Polski, a wy mi takie pytania zadajecie, bo co, bo tak, a nie inaczej się nazywam. No ale troszkę się obraziłem na rekruterów, że zdziwieni byli w ogóle, że tak sytuacja może wyglądać.

W wielu przypadkach polega na tym, że się gogla po prostu najskuteczniejsze rozwiązania, czy na Stack Overflow się przygląda im, no bo nie ma sensu odkrywać koła na nowo. Jak coś jest najwydajniejsze, to wydajniejszego nie wymyślisz. Maszyna ma skończoną moc obliczeniową, więc jeżeli wzory matematyczne mówią, że to jest najbardziej skuteczne rozwiązanie, no to nie będzie już skuteczniejszego. Koniec i kropka. Poza tym do tego często frameworki są stworzone do wyszukiwań innych rzeczy, które właśnie korzystają z tych już najbardziej użytecznych algorytmów. I tyle. A wyjdę z takim właśnie kontrargumentem może, co do tych zadań typowo algorytmicznych. I jestem ciekawy Twojego zdania, bo większość firm chce zatrudnić kogoś na stanowisku juniora, czyli osoby, która nie ma doświadczenia w komercyjnych technologiach, czyli na przykład Spring Boot i tak dalej.

Bo startowałem oczywiście do firm, które na przykład dawały zadania z cyklu, a napisz jakieś tam query w SQL-u. No dobrze, no to jakieś tam query w SQL-u napiszę, no ale do czego to się odnosi, tak? Co ma być z tym później zrobione? I później dostajesz odpowiedź, ty no słuchaj, te twoje query mogły być inaczej napisane, mogło być coś tam inaczej zrobione. No dobrze, mogło być inaczej zrobione, ale przecież robi to, co miało robić, tak? A z tego powodu odpadam na przykład. No bo według nich to zostało nie tak napisane, jak oni sobie życzyli. Bo trzeba pamiętać, że w programowaniu do tej samej rzeczy można dojść na wiele różnych sposobów. I to już są jakieś takie dziwne preferencje.

Ciekawe. Mam jeszcze takie pytanie, kończąc tak naprawdę. Jeżeli chodzi o to, że kogoś nie stać na bootcamp, nie stać go na to, żeby poszedł na studia, musi pracować i ma bardzo mało czasu, to jak ta osoba ma właśnie po tym sznurku pójść? Gdzie znaleźć jakieś takie wsparcie, żeby wiedzieć, co po kolei robić? Żeby jednak dążyć do jakiegoś celu, czyli do tej pierwszej pracy, do rekrutacji, a nie cały czas odkładać, uczyć się różnych jakichś książek, czytać w teorii. Czy są takie rzeczy w internecie albo w jakichś książkach, materiałach, z których na przykład inni twoi znajomi korzystali, albo ty korzystałeś i możesz coś polecić takiego do kogoś? Na YouTubie jest mnóstwo darmowych filmików do nauki.

Używałem Mavena, teraz używamy Gradle'a. Trzeba uczyć się Gradle'a. Uczyłem się i aplikację swoją pisałem i na bootcampie były relacyjne bazy danych, a tu bach, używamy nierelacyjnych baz danych i nagle się okazuje, że ty nic nie umiesz jakby, ale już umiesz się uczyć, już umiesz szukać informacji i to się, że tak powiem, ze sobą później uzupełnia. Więc stale musisz być nastawiony na naukę i na to, żeby w tym wytrwać. No i przyzwyczaj się, że zwątpienie... Ja ile razy już w tej pracy chciałem złożyć wypowiedzenie na zasadzie, słuchajcie, ja się do tego nie nadaję, to trudno powiedzieć, tak?

Pokazano wszystkie 11 dopasowań. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.