Jak zostać programistą Java?

Piotr Nazimek 17 października 2017
 

Do dziś pamiętam emocje jakie mi towarzyszyły, kiedy jako ośmiolatek uruchamiałem swój pierwszy program napisany w Basic na Atari 65XE. Pamiętam nawet jego kod źródłowy. Wiele osób zastanawia się jak zacząć programować, część z nich myśli o tym w kontekście zmiany swojego profilu zawodowego. Motywacje mogą być różne, ale jedno jest pewne - warto spróbować.

Wybierz język

Pierwsze pytanie jakie zadaje sobie kandydat na programistę ma związek z wyborem języka programowania. Nie warto zastanawiać się nad tym zbyt długo i robić analiz typu programista jakiego języka zarabia najwięcej. Spróbuj zacząć programować w Java. Jest to język, który z jednej strony stawia programiście dość wysokie wymagania, a z drugiej dostarcza sporej liczby narzędzi umożliwiających szybkie tworzenie aplikacji. Java jest również bardzo wszechstronna. W tym języku możemy tworzyć zarówno programy desktopowe (czyli takie uruchamiane bezpośrednio na komputerze), rozbudowane rozwiązania działające na serwerach, aplikacje mobilne dla urządzeń z Android oraz aplety uruchamiane w kartach elektronicznych (tzw. Java Cards, wyglądające jak karta płatnicza). Przy okazji programowanie w Java napędza nas do poznawania nie tylko samego języka, ale również innych narzędzi takich jak bazy danych czy HTML, CSS i JavaScript, które umożliwiają przygotowanie aplikacji działającej w przeglądarce. Nie da się ukryć, że Java już od wielu lat jest najpopularniejszym językiem programowania. Jeśli nie chcesz Javy to wybierz sobie na początek inny język programowania. Czy będzie to C, C++, Python nie ma na tym etapie większego znaczenia. Powinien być to jedynie język w miarę ogólnego przeznaczenia, umożliwiający tworzenie różnych aplikacji.

Bez względu na to jaki język wybierzemy na pewno przyda się również znajomość języka angielskiego. Bez tej umiejętności dokumentacja, wiele książek oraz tutoriali będzie dla nas niedostępnych.

Programuj od samego początku

Nie ma możliwości, aby z lektury samych książek, kursów wideo czy artykułów nauczyć się programowania. Co nie oznacza, że nie należy ich czytać lub z nich korzystać. Podobnie jak z nauką matematyki, możemy posłuchać nauczyciela, możemy przeczytać wiele podręczników, ale dopóki nie rozwiążemy samodzielnie mnóstwa zadań to nie zrozumiemy o co tak naprawdę chodzi. Z tego powodu bardzo ważne są warsztaty. To okazja do praktycznego przećwiczenia swoich umiejętności. Jak również to okazja do zrobienia wielu błędów, które też wiele nas nauczą. Czytając książkę eksperymentuj na bieżąco z podanymi w niej przykładami. Wybierając się na kurs programowania (bootcamp) wybieraj takie, które są nakierowane na warsztaty. Na slajdach zawsze wszystko działa, a doświadczenie zdobywamy dopiero wtedy, kiedy próbujemy zrobić coś samodzielnie.

Pierwszy krok, pierwszy kawałek kodu zazwyczaj jest najtrudniejszy. Ale też nie taki straszny. Zainstaluj JDK w wersji 9, uruchom aplikację jshell i spróbuj wpisać System.out.println("Hej!"). Mając ten przykład możesz już napisać fragment kodu, który wydrukuje na ekranie Twoje imię. Nie ma nawet konieczności instalowania JDK. Istnieje wiele portali, jak na przykład Try It Online, na których można wybrać język, programować i uruchamiać aplikacje w przeglądarce.

Pierwsze eksperymenty z Java Pierwsze eksperymenty z Java

Używaj odpowiednich narzędzi

Nie pisz kodu w notatniku. Im wcześniej zaczniesz używać narzędzi, których używają programiści, tym lepiej. Na początku są one przytłaczające, często mają mnóstwo opcji, które niekoniecznie są zrozumiałe. Obecnie najpopularniejsze środowiska programistyczne (IDE, Integrated Development Environment) to IntelliJ IDEA, Eclipse i NetBeans. Warto spróbować użyć każdego z nich. Te wymienione powyżej dostępne są za darmo (w przypadku IntelliJ IDEA to wersja Community).

Zacznij od niewielkich aplikacji

Ucząc się chodzić zaczynaliśmy od małych kroków i niewielkich dystansów. Podobnie jest z programowaniem. Na początku lepiej tworzyć małe programy. Pozwala to na nabranie dobrych praktyk przed zmierzeniem się z większymi aplikacjami. Ma również pewien efekt psychologiczny. Szybciej osiągniemy cel i to zachęci nas do kolejnych wyzwań. Stawiając sobie zbyt wysokie wymagania, możemy nie wdrapać się już na pierwsze szczyty i zrażeni zakończyć przygodę z programowaniem.

Poznawaj algorytmy i struktury danych

Algorytmy umożliwiające sortowanie czy wyszukiwanie informacji oraz struktury danych typu tablice, listy, stosy czy kolejki to podstawowy warsztat programisty. Choć są one już w Java zaimplementowane, to wiedza jak to działa w środku jest niezbędna, aby uniknąć kłopotów tworząc bardziej skomplikowane rozwiązania. Jest to również znakomita okazja do ćwiczeń i absolutnie nie należy traktować czasu poświęconego na przykład na implementację sortowania bąbelkowego jako czas stracony. Choć takich implementacji jest już całe mnóstwo, to zrobienie tego samodzielnie jest dobrym treningiem umiejętności programistycznych.

Niestety, wielu programistów, również pracujących zawodowo, zupełnie nie dba o rozwój w tym zakresie. Te braki wcześniej czy później się ujawnią. Użycie złych algorytmów czy struktur danych często kończy się tym, że aplikacje działają wolno lub nie tak jak trzeba. Nie unikaj lektur takich jak Wprowadzenie do algorytmów.

Zobacz i zrozum jak robią to inni

Programiści (nie tylko początkujący) często szukają fragmentów kodów, które rozwiązują dany problem. Ta metoda nie jest zła, ale nie kopiuj bezmyślnie znalezionego kodu. Postaraj się go zrozumieć i jeśli to możliwe również ulepszyć. Technika programowania metodą kopiuj-wklej na dłuższą metę prowadzi na manowce.

Uczestnictwo w zajęciach z programowania to dobra okazja, aby na bieżąco wymieniać się swoimi spostrzeżeniami i korzystać z rad, wiedzy i obserwacji innych. Jest to szczególnie ważne przy stawianiu pierwszych kroków. Początkowe niepowodzenia są naturalne i aby się nimi nie zrazić i nie popaść w stan nie wiem jak to zrobić trzeba rozmawiać i pytać innych.

Jeśli wykorzystujesz aplikacje z udostępnionym kodem źródłowym, to warto do niego zerknąć. Dobre środowisko programistyczne ułatwia przeglądanie nawet dużych i skomplikowanych programów pozwalając chociażby na płynne przechodzenie z metod do metod.

Szukaj alternatywnych rozwiązań

Nie bój się eksperymentować. Jeśli uważasz, że coś można zrobić inaczej, to po prostu spróbuj to tak zrobić. Zawsze można wrócić do poprzedniego rozwiązania, a każda linijka napisanego kodu to wzrost doświadczenia.

Pokaż swoje programy

Swoim kodem, z prośbą o komentarze od bardziej zaawansowanych użytkowników, można pochwalić się na przykład na Code Review. Lektura tej grupy jest również bardzo pouczająca. A jeśli stworzyłeś lub tworzysz większą aplikację, udostępnij jej kod na przykład korzystając z GitHub. Przy okazji poznasz kolejne narzędzie używane przez programistów. Jest nim git, który jest systemem kontroli wersji, czyli aplikacją umożliwiającą śledzenie i zapamiętywanie zmian w naszym kodzie oraz ułatwiające pracę grupową.

Projekty udostępnione w sieci dają również możliwość pracodawcy zaznajomienia się z umiejętnościami kandydata na pracownika. Dla wielu firm to już obowiązkowy punkt w CV, który z powodzeniem zastępuje testy na rozmowie kwalifikacyjnej.

Podsumowanie

Umiejętność programowania daje dużo satysfakcji. Choć w tytule napisałem o programowaniu w Java, to język jest tylko językiem, w którym wyrażamy to co komputer ma wykonać. Programowanie to nie tylko znajomość języka programowania, to przede wszystkim wiedza jak za pomocą komputerów rozwiązuje się realne problemy, umiejętność twórczego myślenia i systematyczny rozwój. Nie da się raz nauczyć Javy, poznajemy ją z każdym kolejnym rozwiązanym zadaniem. To spore wyzwanie, ale spróbować zawsze warto.

Piotr Nazimek

Absolwent Wydziału Elektroniki i Technik Informacyjnych Politechniki Warszawskiej, gdzie w 2012 roku obronił doktorat z obszaru niezawodności systemów komputerowych. Zakres jego zainteresowań obejmuje szeroko pojęte bezpieczeństwo oraz inżynierię oprogramowania. Bierze udział w projektach systemów transakcyjnych związanych z płatnościami elektronicznymi oraz transportem. Prowadzi szkolenia z zakresu praktycznego stosowania kryptografii w systemach komputerowych. Od 2016 roku jest wykładowcą na pierwszych w Polsce technicznych studiach Big Data realizowanych przez firmę Sages oraz Politechnikę Warszawską.
Komentarze
Ostatnie posty
Data Science News #202
Data Science News #201
Data Science News #200