Wpis z mikrobloga

Mirki, postanowiłem dokonać programistycznego coming-out! Ponieważ jestem średnio zadowolony ze swojej obecnej kariery zawodowej i perspektyw w niej (niedokończony doktorat z historii, w humanistyce prognozy na przyszłośc też raczej mało optymistyczne, słabo płatne stanowisko na publicznej uczelni, a już prawie 30-tka na karku), pomyślałem, że warto będzie dołączyć do grona wykopowych programistów. No dobra, ale po co chwalić się tym na mirko? Rzecz prosta, lepiej uczyć się w grupie - przynajmniej ja tak mam, że lepiej uczy mi się i pracuje wśród ludzi o podobnych zainteresowaniach.

Czym postanowiłem się zatem zająć?
- Jako język, który wybrałem do nauki to Java. Materiałów mnóstwo, multiplatformowość, niezbyt trudny w nauce.
- Zaczynam od programowania na PC, ale myślę, że docelowo będzie jednak Android i/lub jakieś rozwiązania dla aplikacji online.

Jakie mam dotychczasowe doświadczenie?
- Dość dobrze ogarniam HTML/CSS, mam podstawy PHP i SQLa. Napisałem dwie strony (frontend i backend) od podstaw, kilka prostych skórek pod Wordpress'a. Wizualnie to wszystko mało atrakcyjne, ale starałem się, żeby kod był solidny.

Co dotychczas zrobiłem?
- Naukę Javy zacząłem na początku grudnia od czytania oficjalnej dokumentacji. Krótko potem zaczałem oglądać wykłady udostępniane przez Uniwersytet Stanforda, które okazały się być strzałem w 10. Śledzę też kanały Derek'a Banasa i naszego wykopowego @javadevmatt'a. Z literatury czytam P. Niemeyer, D. Leuck, Learning Java, wyd. 4, Sebastopol 2013 oraz Eric i Elisabeth Freeman, Head First Design Patterns.
- Powoli ogarniam podstawy języka i jednocześnie wzroce projektowe - z tych drugich opanowałem obestwatora.
- Od razu zacząłem też ogarniać Git'a wypychając swoje 'dokonania' do repo na GitHubie.
- Myślę nad nauką UML-a, ale nie jest to priorytetem.
- Jako założenie przyjąłem też, że komentarze i nazwy zmiennych, a także opisy commitów w gicie będę pisał po angielsku
- Pomyślałem też, że najlepiej będzie pracowac nad konkretnym projektem. Moi teściowie mają niewielki sklep, do zarządzania którym używają starego, DOSowskiego programu 'Szef'. Wymyśliłem więc, że będę jeszcze lepszym zięciem i napiszę Windowsowską wersję programu. Ma to być prosty menedżer sklepowego magazynu z możliwością drukowania podstawowych dokumentów - przede wszystkim faktur sprzedaży detalicznej. Plusem, oprócz samej nauki języka i projektowania programu, jest doświadczenie w bezpośrednim kontakcie z końcowym użytkownikiem programu, które z mojego puntu widzenia wymusza modułowość oprogramowania (możliwość prostego dopisywania i rozszerzenia już istniejąckych funkcjonalności).
Póki co, napisałem podstawowe klasy definiujące m.in. przedmiot przechowywany w magazynie, sam magazyn itd., zacząłem też projektować zręby interfejsu, oraz ogarnałem zapisywanie danych do bazy SQLite, ale jeszcze nie usuwanie. Obecnie pracuję nad importem danych do bazy z pliku generowanego w programie używanym przez teściów (zwykłe parsowanie tekstu plus obliczanie podstawowych wartości, np. ceny brutto, czy marży). Zadanie niby proste, ale jest problem z kodowaniem znaków w pliku...

Fajnie, z mojego punktu widzenia, byłoby znaleźć grupę osób na podobnym poziomie, z którymi razem moglibyśmy pracować i się uczyć. Czasu, pracując na pełnym etacie, z małym bobasem i niedokończoną pracą naukową mam stosunkowo niewiele, więc i rytm nauki jest raczej powolny, ale myślę, że razem po protu będzie bardziej wydajnie.

Będę starał się wrzucać raz w tygodniu, w piątki lub w soboty, uaktualnienia, nad czym aktualnie pracuję.

Moje repo na GitHubie

Wzywam: @JavaDevMatt i wszystkich, którzy chcą pomóc we wspólnym ogarnianiu Javy i programowania w ogóle!

#java #programowanie #naukaprogramowania #nauka
  • 50
  • Odpowiedz
@kitke: Mam podobny plan jak Ty. Najpierw uczyelm sie sam. potem internship teraz dostalem pierwsza umowe. Zoabczymy tylko jak z czasem ebdzie zeby cos po godzinach porobic :)
  • Odpowiedz
@kitke: a tak na marginesie, to jakimi zagadnieniami zajmujesz się w ramach historii średniowiecza? - jeśli to oczywiście nie jest jakaś tajemnica :)
  • Odpowiedz
@abc1112: Żadna tajemnica. Zajmuję się tzw. "średniowieczem powszechnym" i problemami budowania tożsamości grup narodowych. Jako case-study pracuję nad jednym z zagadnień związanych z wojną angielską-szkocką, tzw. Szkocką Pierwszą Wojną o Niepodległość (William Wallace, Edward I i te sprawy) i wykorzystywaniem przez średniowiecznych wiedzy historycznej jako argumentu w sporze politycznym.
  • Odpowiedz
@kitke: Java to jeden z trudniejszych języków w pracy - może dlatego, że zazwyczaj piszą duże apki w niej. Ale powodzenia:) Ja bym się wziął za pythona jakbym miał od zera zaczynać.
  • Odpowiedz
@kitke: Gratuluję determinacji colego, mało komu się chce uczyć nowych rzeczy w tym wieku. Mam jednak wrażenie, że popełniasz błędy, pomijając to że Java to nie jest najlepszy język do nauki programowania. Ale jak Tobie pasuje to już w to brnij, tylko nie zamykaj się w obiektowym sposobie myślenia.

Ogólnie jesteś początkujący, więc na razie ucz się podstaw. Wzorce projektowe to jest dość zaawansowana wiedza. UML też. Zacznij od podstawowych
  • Odpowiedz
@rskk: Znalem podstawy tylko :-) + mialem pare programow prostych do pokazania. Pytali mnie np co to interfejsy, klasa abstrakcyjna, dziedziczenie, wytlumaczyc jakis algorytm. Jak zrobic selecta an bazie, o joiny :D + troche kodu na kartce musialem pisac. Jezyk nie mial wlasciwie znaczenai bo rekruter znal jave ja pisalem kod c# :D
  • Odpowiedz