Cześć, pisze apki na androida od jakiegoś czasu i staram się dążyć do jakiegoś stażu/pracy jako junior.
W moich tworach korzystałem z: ButterKnife, Firebase, Google Games, łączenie z API, parsowanie JSON'a, SQLite.
Staram się tworzyć proste apki w każdej kolejnej ucząc się czegoś nowego. I związku z tym mam kilka pytań:
1.Czego jeszcze warto się nauczyć w kontekście pracy? Dużo słyszałem o wzorcach projektowych, tylko które z nich są najistotniejsze w kontekście androida?
2.Ktoś przeglądając mój kod wspominał o braku warstw i MVVM, gdzie znaleźć jakieś materiały na ten temat albo przykładowe aplikacje?
3.Czy przykładowo taki kurs ma sens: https://www.udemy.com/android-app-development-with-java/ ? Kosztuje obecnie poniżej 40zł i wygląda na to że jest w nim sporo przykładów czego wydaje mi sie że właśnie mi brakuje... Czy ewentualnie są jakieś inne materiały/kursy które mają większy sens?
4. Czytam Thinking in Java, aczkolwiek nie poświęcam temu zbyt wiele czasu... Czy kontynuować czytanie w bardzo powolnym tempie czy jednak warto zainwestować więcej czasu i mniej czytać o kolejnych rzeczach pokroju ButterKnifa, retrofit'a itp a więcej o samej javie?
Ad 1. Jeśli chcesz pracować to musisz się nauczyć:
- system kontroli wersji: najlepiej git
- pisanie testów: np JUnit
- korzystanie z mocków przy testach: np Mockito
Ad 2. MVVM/MVC czy inne cudo przeczytasz artykuły o tym kilka razy i niewiele ci w głowie zostanie. Dopiero jak będziesz pisał coś większego i popełnisz kilka błędów architektonicznych, wtedy czytanie o tych wzorcach pozwoli na zrozumienie czegoś. A jeszcze lepiej to pracować z kimś kto się zna i od którego będziesz zrzynał wzorce programowania i kto będzie ci robił sensowne Code Review.
- Jeżeli chodzi o architekturę w apkach Androidowych to spójrz na:
https://github.com/googlesamples/android-architecture
Szczególnie zwróć uwagę na przykłady wykorzystujące Architecture Components
-
Dobra znajomość Javy jak najbardziej będzie procentować, więc warto to ogarnąć.
-
Tak jak napisano wyżej podstawy Version Control oraz Fundamentals of Testing
Byłem swego czasu liderem podczas androidowych praktyk studenckich. Polecałbym Ci zapoznać się z książkami: Clean Code, http://www.empik.com/czysty-kod-podrecznik-dobrego-programisty-robert-c-martin,p1100571160,ksiazka-p oraz https://helion.pl/ksiazki/jak-stac-sie-lepszym-programista-przewodnik-pete-goodliffe,jakpro.htm . Pierwsza pozycja jest bardziej techniczna, nadaje się na Twój poziom. Druga opisuje bardziej drogę pracy programisty.
Samo programowanie to więcej niż pisanie kodu. Jedną z pierwszych spraw związaną z programowaniem jest zrozumienie że kod który piszemy nie piszemy tylko dla komputera ale również ( a może nawet przede wszystkim) dla innego programisty. (Należy zauważyć że innym programistą jesteśmy również my sami kiedy siadami do "starego" modułu po zdobyciu większego doświadczenia).