JavaRush /Blog Java /Random-PL /Studia na JavaRush. Pierwsze projekty, co Cię czeka, a cz...
dwajot
Poziom 41
Киев

Studia na JavaRush. Pierwsze projekty, co Cię czeka, a czego lepiej nie robić. Część 1.

Opublikowano w grupie Random-PL
Dzień dobry W końcu dotarłem do momentu, w którym jestem gotowy podzielić się historią mojego sukcesu. Chcę Wam dużo opowiedzieć, więc podzielę to na dwie części – że tak powiem, „pierwsze projekty i czego lepiej nie robić” oraz właściwie „poszukiwanie pracy i przechodzenie przez rozmowy kwalifikacyjne”. Nie będę Wam zbyt wiele o sobie opowiadał, powiem tylko, że jak prawie wszyscy tutaj, skończyłem studia i pracowałem na innej specjalności, ale potem zdecydowałem się zostać programistą :) Porozmawiajmy od razu o szkoleniach. Zacząłem uczyć się JavaRush na początku 2016 roku. Długo zastanawiałem się, gdzie studiować programowanie i oczywiście, jak wszyscy nasi ludzie, nie chciałem płacić za szkolenia. Chciałem uczyć się języka Java, ponieważ moim marzeniem jest programowanie na Androidzie. Kurs JavaRush kilka razy przykuł moją uwagę podczas poszukiwań, ale odrzuciłem go, ponieważ był oprogramowaniem typu shareware. Zacząłem brać lekcje wideo na YouTube. Potem jednak jakaś siła zmusiła mnie do spróbowania rozwiązywania darmowych zadań na JavaRush i byłem tak zaskoczony, że po odbyciu 50 lekcji wideo (uważałem je za całkiem normalne) i pisaniu kodu pod okiem lektora, miałem ogromne trudności i to nie za pierwszym razem spróbuj rozwiązać początkowe problemy kursu. Doceniłem jakość kursu i to, co mi da, jeśli ukończę go w całości, potem spojrzałem na forum, że od czasu do czasu są dobre zniżki na subskrypcje i zdecydowałem, że wezmę pełną wersję. Tak, wielu studentów jest złych i oburzonych z powodu kursu - zadania stawiane są na podstawie materiału, który nie został jeszcze przerobiony, walidator ich nie rozumie, a jest bardzo dużo rzeczy, które można przeczytać na forum i w komentarzach. I zgadnij co? Ja też tak miałem :) Nadal mam duże zadanie wiszące na poziomie 34 i próbowałem wszystkich rozwiązań, ale walidator tego nie akceptuje. Dobrze, że wsparcie dało mi trochę czarnej materii i udało mi się ukończyć kurs. Generalnie, jako absolwent kursu JavaRush, podzielę się z Wami moją subiektywną opinią na temat tego, co mi się w kursie podobało, a co nie (niech administratorzy mi wybaczą). Podobało mi się: ilość zadań, błyskawiczna weryfikacja zadań, nauka zdalna, szkolenie nie jest powiązane z harmonogramem pracy, strukturą kursu, forum studenckim, a także ceną. Nie polubiłem:W trakcie kursu zaczyna się oswajać z walidatorem i potem ciężko się od niego odzwyczaić, pomyśleć i znaleźć jakieś inne podejście (ale mimo wszystko taki pomysł i tutaj całkiem nieźle jest realizowany), błędy w niektórych zadaniach, duża zawiłość w niektórych warunkach zadaniowych (dobrze, że jest forum dla takich przypadków), wypróbowałem też nowy interfejs - niezbyt mi się podobał, na szczęście jest możliwość przejścia na stary. Podsumowując, jestem zadowolony z kursu i tego, co mi dał. Pamiętam, jak rok temu znajomy próbował mi wyjaśnić, czym są wartości logiczne i puste, jakie są metody i jak zwracają wartości. Pamiętam, jak długo nie mogłem zrozumieć, dlaczego te wartości trzeba zwracać :) Teraz często przypominam sobie scenę z filmu Matrix: Neo: Czy będziesz mnie uczył, jak unikać kul? Morfeusz: Kiedy nadejdzie czas, nie będziesz już go potrzebować. I rzeczywiście, kiedy nadszedł czas, miał już te umiejętności a priori. Na poziomie 30 kursu chciałem odbyć staż oferowany przez JavaRush. Spojrzałem na zadanie testowe i byłem trochę przerażony. Bardzo liczyłem, że znajomy mi pomoże, ale tydzień przed terminem powiedział, że tu jest Google, wpiszcie tu wszystkie technologie i będzie mnóstwo przykładów. Jestem mu bardzo wdzięczny, że tak się stało, bo wtedy po raz pierwszy poczułem, co to znaczy być programistą. Wykonałem zadanie w ciągu 4 pełnych dni i byłem niesamowicie zadowolony, że dostałem staż. Praktyka. Stażu nie ukończyłem, bo w tym samym czasie zacząłem realizować swój pierwszy projekt, a mimo to okazał się on dla mnie priorytetowy i ciekawszy + Nie chciałem pracować w przedsiębiorstwie. Co mogę powiedzieć o samym stażu, ma swoje wady i zalety, ale ogólnie jest całkiem nieźle. Jeśli planujesz kontynuować karierę w przedsiębiorstwie, myślę, że warto to zrobić. Pierwszy projekt. Jak wspomniałem powyżej, około 30 poziomu dostałem się na staż i zacząłem realizować swój projekt. To był i jest bot telegramowy. Już na 20-30 poziomach kursu miałem ochotę stworzyć bota, ale nie mogłem znaleźć odpowiedniego poradnika ani instrukcji jak zacząć. A jednak przypadkiem natknąłem się na taki artykuł i od razu zacząłem próbować. Jeśli ktoś jest zainteresowany to tutaj link do artykułu - Jak napisać bota w telegramie w Javie Szczerze mówiąc, autor tego artykułu bardzo mi później pomógł, co zostanie omówione poniżej. Pomysł na bota był taki: jako programista muszę nauczyć się języka angielskiego. Gramatykę znałem stosunkowo dobrze, ale chciałem udoskonalić swoje słownictwo. Pomyślałem, że fajnie byłoby mieć bota do nauki słówek. Szczegółowe informacje o bocie pisałem już wcześniej w artykule, więc nie będę się powtarzać - tutaj jest link Bot Telegramu Słowa Opowiem z jakimi trudnościami musiałam się zmierzyć przy jego tworzeniu. Po pierwsze, po raz pierwszy pracuję z interfejsem API telegramu. Choć wiele osób twierdzi, że jest to jedno z najprostszych i najlepiej udokumentowanych API, dla mnie jako początkującego było to bardzo trudne. Robiłem wszystko metodą selekcji :) Czasami musiałem poświęcić cały dzień na wykonanie jakiejś funkcji, np. usunięcie przycisku po jego naciśnięciu. W jakieś pół miesiąca udało mi się napisać pierwszą wersję beta, której cały kod znajdował się w jednej klasie Java i chciałem spróbować wrzucić ją na serwer. Mój projekt nie jest komercyjny, więc od razu wyrzuciłem płatne serwery. Przypomniałem sobie serwer Heroku, na którym, nawiasem mówiąc, hostowana jest strona dotycząca stażu. Próbowałem tego serwera przez dwa pełne dni i byłem już w całkowitej rozpaczy, ponieważ nic nie działało - wszystkie instrukcje dotyczące stron, ale mam bota i tam muszę działać trochę inaczej. W rezultacie postanowiłem napisać do autora artykułu na temat bota i zapytać, jakiego serwera używa do hostowania bota. I wtedy szczęście się do mnie uśmiechnęło - autor okazał się bardzo fajnym programistą (do dziś utrzymuję z nim kontakt) i zaproponował mi hostowanie bota na jego serwerze linuksowym (a jeśli znam Linusa, przydzieli mi konto). Początkowa nauka Linuksa trwała jeden dzień i oczywiście nie bez błędów i trudności bot zaczął kręcić się na serwerze. Poza tym ukończyłem kurs JavaRush i byłem bardzo zadowolony :) Wybrałem MySql jako bazę danych dla bota, przejrzałem wiele lekcji na temat optymalizacji tabel, wyboru silnika i całej reszty. Radziłbym każdemu, kto będzie robił swój pierwszy projekt - postaraj się od razu przemyśleć całą jego strukturę i zbudować przynajmniej w miarę w miarę rozszerzalną architekturę. Przepisałem mój prawdopodobnie 3 razy z powodu takich błędów. Tak, to trudne, ponieważ bardzo często nie wiesz, co chcesz dodać obok swojego projektu, ale nadal możesz to zrobić na minimalnym poziomie. Nie pisz całego kodu w jednej klasie!!! Spróbuj użyć MVC, pamiętaj OOP itp. Zabawne jest to, że zacząłem używać kilku podstawowych zasad OOP w projekcie, gdy był już prawie gotowy. Wcześniej nawet o nich nie myślałem. Oczywiście użytkownika na ogół nie interesuje, w jakim języku napisany jest produkt, jakie wzorce i technologie zastosowano, ale gdy po kilku miesiącach otworzysz go i będziesz chciał tam coś dodać, pomyślisz o nim wiele dobrych słów o sobie :) Nie zapomnij też o logowaniu - pozwala to zarówno na śledzenie błędów, jak i sprawdzanie, z jakich funkcji użytkownicy korzystają najczęściej, a nad czym jeszcze muszą pracować. Swoją drogą telegramem można to zrobić w bardzo fajny sposób - wysyłaj wszystkie logi w czasie rzeczywistym na swój prywatny kanał, że tak powiem, można stworzyć coś w rodzaju big data :) Podsumowując o pierwszym projekcie , utworzenie go zajęło około 3 miesięcy, obecnie jest tam ponad 14 tysięcy zarejestrowanych użytkowników, z których wielu stało się stałymi bywalcami i codziennie uczy się obcych słów. Drugi projekt. Moim celem było zostać programistą Androida, więc gdy już mniej więcej skończyłem pracę z botem, postanowiłem zaadaptować go na platformę Android. Zacząłem trenować od kursu StartAndroid, a mój najlepszy przyjaciel programista Androida dał mi wiele fajnych zadań, sprawdził je i powiedział, co należy przerobić i dokończyć. Kiedy już zdobyłem podstawowe umiejętności, zacząłem tworzyć własną aplikację. Podobnie jak w przypadku pierwszego projektu, było wiele różnych trudności, ale jeśli weźmiemy to jako całość, to trochę mniej. Po około półtora miesiąca była gotowa pierwsza wersja beta (musiałem kilka razy przepisać cały projekt aplikacji, bo nie miałem pojęcia, jak ona będzie wyglądać). Następnie zarejestrowałem się jako programista w Google Play i przesłałem go na rynek. Ostatnio zajmuję się optymalizacją i synchronizacją moich dwóch projektów. Do ogólnej bazy danych wybrałem Firebase - bardzo dobra dokumentacja, dużo lekcji, a dla małych projektów darmowa wersja 1 GB woluminu jest więcej niż wystarczająca. Jeśli krótko porozmawiamy o największych trudnościach w drugim projekcie (myślę, że niektóre z tych trudności pojawiają się również u doświadczonych programistów), to jest to tworzenie wielowątkowości w Androidzie, wiele problemów z rozmiarami ekranu i rozszerzeniami, aby utworzyć przy projekcie musiałem zaprzyjaźnić się z Photoshopem, obsługiwać stare wersje Androida, a także nigdy nie używać Recycler View, jeśli masz animację na swojej liście :) Po zablokowaniu Yandex na Ukrainie i tam otrzymuję większość tłumaczeń i głosu- nadmiar słów, musiałem dodać dodatkowe kontrole do kodu i po prostu poinformować użytkowników, aby korzystali z VPN. Trudności pojawiły się nawet przy rejestracji w Google Play – aby zostać programistą trzeba uiścić jednorazową opłatę w wysokości 25 dolarów (w przeciwieństwie do Apple Store). Kiedy płaciłem, na mojej karcie był limit i płatność została zablokowana. Musiałem porozmawiać z obsługą Google i w ogóle odsyłali mnie od jednego operatora do drugiego, aż zdałem sobie sprawę, że po prostu grzecznie mnie wysyłają :) Musiałem wszystko usunąć i zarejestrować się ponownie (od razu bym o tym pomyślał ). Jeszcze kilka słów o promowaniu Waszych projektów.Z botem wszystko było trochę prostsze – sam pomysł botów jest stosunkowo nowy (nie trafiłem do mainstreamu, ale i tak jest w porządku). Istnieje katalog botów, grup VK, FB i innych zasobów. Teraz mój bot zajmuje 5 miejsce w sekcji edukacyjnej i dla mnie jest to bardzo dobry wynik. Aby awansować w katalogu botów, musisz zostać oceniony. Zaproponowałem, aby użytkownik mógł głosować, który odbywa się tylko raz (sam nie lubię natrętności), gdy użytkownik rozegra określoną liczbę gier (tak jakby spędzał trochę czasu w bocie). Z aplikacją na Androida jest znacznie gorzej. Powiem jedno – bez reklamy nikt nie zauważy Twojej aplikacji na rynku, nawet po słowach kluczowych, bo jest ich tam miliony. Po zsynchronizowaniu projektów zareklamowałem swoją aplikację w bocie. Potem mam pierwsze 14 pobrań :) Jeśli ktoś doczytał do tego momentu, to tutaj link do aplikacji, dla zainteresowanych - aplikacji Words na Androida . Link do bota znajduje się w artykule na jego temat nieco wyżej w tekście. Dziękuję wszystkim za uwagę. W drugiej części opowiem Ci o moich doświadczeniach z rozmów kwalifikacyjnych, zadawanych przez nich pytaniach i ogólnie o poszukiwaniu pracy.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION