#Lazy Sunday. 5 kroków jak nie zostać programistą

By 4 stycznia 2015Lazy Sunday
Wpis-Header (2)

Dzisiejszy wpis o 5 rzeczach, których należy unikać wraz z krótkim wytłumaczeniem dlaczego tak nie robić.Nie ma co się oszukiwać, że droga aby zostać programistą jest prosta, gładka i przyjemna. Jak w każdej życiowej sytuacji, czeka na Ciebie kilka pułapek, które mogą opóźnić czy wręcz wstrzymać Twój rozwój w branży IT. W dzisiejszym wpisie dowiesz się, na co uważać :)

1. Zbyt dużo czasu poświęcone na wybór technologii

Nie chodzi o to, że to, czy korzystamy z technologii X czy Y nie ma znaczenia – ma, i to ogromne. W szczególności gdy wiesz, co chcesz zrobić (masz pomysł na zrobienie własnej strony WWW, więc wybierasz język do tego dedykowany).  Ale to tylko technologia, którą możemy zmienić w dowolnym momencie przy względnie niedużym wysiłku. To, co najważniejsze, to samo podejście, umiejętność logicznego myślenia, rozwiązywania problemów w taki sposób, aby możliwe było zrealizowanie go przez komputer. Jeśli masz wiele osób, które znają Ruby on Rails i chcą Ci pomóc – zacznij od niego! Dużo łatwiej jest nauczyć się programować w języku X przy wsparciu kogoś na bieżąco, a następnie zmienić język na Y niż uczyć się Y od początku samemu. Więcej o językach programowania przeczytasz w naszym wpisie, ale naprawdę, zamiast długo główkować i wpisywać w google „.NET vs Java”, po prostu zacznij :)

2. Za dużo teorii, za mało praktyki

Część ludzi ma to do siebie, że chcą najpierw poznać teoretyczne tajniki pewnej dziedziny zanim zaczną ją praktykować. W przypadku IT mówimy o kilkudziesięciu latach intensywnego rozwoju! I to nie zawsze w dobrym kierunku. Nawet chcąc specjalizować się w małym wycinku, ilość informacji do przyswojenia jest ogromna i najczęściej ciężka do opanowania bez praktycznego ‚obycia’ z problemem. Opanować teorii w branży IT po prostu się nie da – jest jej za dużo i często jest delikatnie mówiąc mało ciekawa. Dlatego książka książką, ale odstaw ją czasem na półkę i po prostu coś napisz :)

3. Za dużo praktyki, za mało teorii

Z kolei druga część ludzi ma problem zupełnie odwrotny – mają podejście ‚hands on’ i najchętniej od razu zabrały by się do pisania dużych systemów żeby więcej się nauczyć, zostawiając książki w kącie. To podejście jest równie złe jak poprzednie, bardzo prawdopodobne jest, że w ten sposób nauczymy się złych praktyk i nie będziemy w stanie efektywnie się rozwijać – za dużo rzeczy będzie nowych, problematycznych i całkowicie niezrozumiałych. A jeśli nasza pierwsza aplikacja to monstum na miarę nowego facebooka, to istnieje naprawdę spore prawdopodobieństwo, że bez wsparcia teoretycznego po prostu nie będziemy w stanie jej napisać, a ilość problemów absolutnie zniechęci nas do programowania.

4. Samodzielna nauka w dłuższym okresie czasu

Krótko mówiąc – ucząc się np. programować powinniśmy skoncentrować się nie na tym, aby samodzielnie zostać ekspertami w danej branży ale bardziej na tym, aby być w stanie uczyć się od innych. Opanowanie podstaw wystarczy, aby rozpocząć praktyki czy staże w jakiejś firmie – osoby bardziej doświadczone, które tam będą, pozwolą Ci dużo szybciej przyswajać wiedzę i (o ile nie będziesz miała pecha) uczyć się dobrych praktyk. Ucząc się samodzielnie, bez żadnych wzorców czy mentora, bardzo łatwo można nabyć złych nawyków, których ciężko nam będzie się pozbyć w przyszłości.

Tutaj warto też zaznaczyć, że wybierając pracodawcę (szczególnie na początku swojej kariery, ale później także jest to ważne) zastanówmy się, czy ten pracodawca pozwoli nam się uczyć i rozwijać. Inne kryteria (finansowe, ‚stanowisko’ w CV itp.) powinny być na dużo dalszym planie – inaczej możemy bardzo skrzywdzić swój rozwój i przyszłe perspektywy. Więcej o tym jak szukać pracodawcy, na co zwracać uwagę i o co pytać opiszemy już wkrótce na blogu, w końcu Ania zaczyna swoje poszukiwania pierwszej pracy IT :)

5. Wymyślanie koła od początku

Największa bolączka osób z formalnym wykształceniem ‚informatycznym’, ale także dużej części samouków – wymyślanie rzeczy od początku. W Javie (jak i w chyba każdym współczesnym języku programowania) istnieją biblioteki i narzędzia, które mają gotowe rozwiązania wielu problemów (np. Guava czy Apache Commons). Pisanie ich od początku (np. kodowania do base64) może nauczy Cię czegoś użytecznego, ale prawdopodobnie popełnisz kilka błędów i zajmie Ci to sporo czasu – efektywniej go wykorzystasz przeglądając kod źródłowy gotowego rozwiązania niż pisząc je od początku. Śmiejemy się czasem, że lenistwo to największa cnota programisty, ale coś w tym jest – naprawdę większość rozwiązań już ktoś napisał, wystarczy dobrze poszukać i skorzystać z tego, co już stworzone. Programowanie to naprawdę w dużej mierze składanie z gotowych klocków i nie ma co z tym walczyć.

To chyba 5 największych grzeszków początkującego developera, ale znając je możesz łatwo je wyeliminować i zamienić na swoje dobre praktyki… a z tej postawy tylko krok do zostania naprawdę dobrym programistą.

 

  • 32
  •  
  •  
  • 20
  •  
  • Repcak

    Wszystko w porządku, tylko czepne się szczegółu, pomylona numeracja ;)
    Pozdrawiam!

    • Cześć,
      dzięki za zwrócenie uwagi! Już poprawione :)

      Pozdrawiamy!

  • CKczm

    U mnie jest taki przypadek, że dostałem się na staż jako tester oprogramowania do dużego zachodniego koncernu. Dopiero zacząłem tam przygodę i cieszę się jak małe dziecko :) ale mam pewną wątpliwość. Czy praca jako tester nie oddali mnie od celu jakim jest zostanie developerem? Z tego co na razie zauważyłem u siebie to wolę coś tworzyć niż testować i patrzeć na aplikację okiem użytkownika końcowego. Faktem jest też to, że będę musiał nauczyć się wielu rzeczy i narzędzi (Selenium itp.), które później niekoniecznie będę używał jako dev. Chociaż część z nich też na pewno się przyda:) Co o tym myślisz? Zostać testerem i np. za rok przy ciągłej nauce po pracy – spróbować sił jako programista?

    • Jeśli chodzi o oddalanie się od celu, to po prostu kwestia tego, czy po pracy będzie jeszcze siła na naukę i praktykę programistyczną.Jeśli tak, to uważam, że nie jest to tak złe dla Twojej kariery – kilka miesięcy w testach może nauczyć się sporo o aplikacjach webowych, web services, uczulić na pewne błędy – nie jest to oczywiście perfekcyjna sytuacja, ale jako pewien okres przejściowy jest ok. Jeśli jednak po pracy, nie będzie czasu na programowanie, no to odpowiedź jest jasna, że będzie Ci trudniej rozwijać się w kierunku programowania.
      Ja sama, miałam możliwość podjęcia pracy w testach na samiutkim początku nauki i zrezygnowałam, wybierając coś co mniej angażowało mnie jeśli chodzi o naukę nowych rzeczy, by po pracy był czas i głowa do programowania. Obecnie pracuję w projekcie, w którym przez pewien okres wspieram testy i na tym etapie jest to dla mnie ok, bo po pracy mogę dłubać w swoim projekcie i np. przygotowywać się do certyfikacji, co z moim doświadczeniem nie jest już tak angażujące.
      Zastanów się jak to będzie w Twoim przypadku.
      Co jeszcze ważne, po np. roku pracy jako tester zakładam, że będziesz miał i fajne stanowisko i spoko kasę, więc musisz liczyć się z tym, że stawka może trochę spaść, co może teraz nie wydawać się bolesne, ale warto zdawać sobie z tego sprawę.
      Hm i tak też myślę, że z jednej strony warto czekać na idealną ofertę, ale konfrontując to z rynkiem pracy czasem na krótki okres można wziąć coś mniej pasującego – tylko trzeba zdawać sobie sprawę z tego, jakie to ma konsekwencje i też wykorzystać ten czas jak się tylko da ;) Może Kuba coś jeszcze dopisze, tymczasem pozdrawiam!

      • CKczm

        Ania, Kuba – dziękuję za tak szczere i obszerne odpowiedzi :) Od początku Wasz blog jest dla mnie (i nie tylko) mega motywacją i nie sądziłem, że już po 4 miesiącach nauki z Wami będę pracował w IT. To tak szybko pędzi, że obawiam się co będzie po następnych wspólnych 4 miesiącach :D W każdym razie myślę, że skoro starczyło mi zapału aby po pracy i ogarnięciu domowych obowiązków, podłubać trochę w kodzie, to dam radę i przez następny rok tak samo. Zostanę testerem, zobaczę wszystko „od kuchni” , będę dalej rozwijał się i alleluja. Oczywiście nie zapomnę pochwalić się kolejnymi sukcesami;) Pozdrawiam!

    • Wszystko zależy od Twojego podejścia – na pewno nie przekreśli to Twojej kariery jako programisty, z drugiej strony też niekoniecznie ją ułatwi. Bardzo ważne jest to, co powiedziała Ania – czy znajdziesz czas i będziesz w stanie się rozwijać jako programista jednocześnie pracując jako tester.
      Z drugiej strony pracując już w firmie, masz więcej możliwości – w przerwie na kawę możesz podejść do działu programistów, porozmawiać, powiedzieć parę słów o sobie i kto wie – być może po zakończeniu tego stażu przeniesiesz się do innego działu.
      Z drugiej strony możesz też się pokazać w ramach obecnego działu – zastanów się, być może jakąś czynność możesz zautomatyzować pisząc prostą aplikację, jeśli tak – to może być ona przepustką do ciekawszych, bardziej developerskich zadań w pracy.
      Wszystko tutaj zależy od Ciebie i Twojej dyscypliny – z pewnością można zrobić z tego szanse na rozwój jako programista i jest to całkowicie w Twoich rękach :)