Witam wszystkich serdecznie, jestem studentem politologii i postanowiłem w wolnym czasie wrócić po latach do nauki programowania. Nie wiem, czy mogę wiązać z tym przyszłość zawodową (na razie robię to dla rozwijania pasji i samorozwoju), jednak i tego nie wykluczam.
Wybrałem Go, zachęcony faktem, że jest to język kompilowany do natywnego pliku wykonalnego z wbudowanym GC. Choć do tej tematyki jeszcze mi daleko w nauce (jestem obecnie na poziomie różnych struktur danych i różnych aspektów funkcji), zachęcił mnie także prosty (z punktu widzenia pracy programisty) model współbieżności. Jak na razie nauka idzie całkiem przyjemnie, język wydaje mi się o wiele bardziej intuicyjny niż te, które w bliższej i dalszej przeszłości "liznąłem". Chciałbym zatem w kolejnym kwartale solidnie opanować podstawy języka, a przy okazji dalej oswajać się z GoLandem od JetBrains.
Dostrzegam jednocześnie, że te podstawy niewiele mi dadzą do bardziej praktycznego działania i pisania własnych małych aplikacji, dlatego przydałoby się opanować jakąś bazę danych, no i... właśnie, drugi język. Bibliotek do Go jest stosunkowo niewiele, a dynamika rozwoju ekosystemu wydaje się, że wyhamowała. Ponadto brak bibliotek do UI, czy na aplikacje mobilne, a może w tym kierunku bym się bardziej spełniał. Podobnie z frameworkami do aplikacji webowych (aczkolwiek tu bym musiał poznać JS, na razie znam tylko podstawy HTML5 i CSS3).
Zatem pytania:
- Co powinienem zrobić po opanowaniu Go, by rozszerzyć umiejętności? Polecacie jakieś bazy danych, których można byłoby się łatwo nauczyć do zastosowań hobbystycznych, ale też dających jakieś kompetencje pod rynek pracy? SQLite to dobry wybór na start? Co właściwie powinienem zrobić w kolejnych krokach, by móc zabiegać o miano "Junior Developer"?
- Za jaki język warto się zabrać w drugiej kolejności? Ciekawy i perspektywiczny wydaje się Rust, choć nie wiem, czy właściwy do zastosowań hobbystycznych, niemniej, ma wspierane bindingi do GTK+, a to mnie jako linuksiarza by interesowało. Jest sens uczyć się Kotlina pod aplikacje desktopowe (Swing), niekoniecznie mobilne? Wspominam o tych językach, bo ich popularność bardzo wzrasta, a wydają się o wiele bardziej przejrzyste i intuicyjne niż C/C++, czy Java i C#.