Ta strona wykorzystuje pliki cookie w celu prezentacji dopasowanych dla Ciebie treści. Możesz włączyć/wyłączyć obsługę plików cookies w swojej przeglądarce.

Dowiedz się więcej
30 krytycznych błędów, które programiści popełniają od lat. Sprawdź, jak ich uniknąć

30 krytycznych błędów, które programiści popełniają od lat. Sprawdź, jak ich uniknąć

Opublikowano  przez Marek Zoellner

Chcesz zostać programistą? Ucz się na błędach. Najlepiej cudzych. Kodilla poprosiła programistów z wieloletnim doświadczeniem, żeby na chwilę wczuli się w rolę nowicjuszy. Co zmieniliby na początku nauki, gdyby już na starcie wiedzieli to, co wiedzą dzisiaj?

Niedługo darmowy webinar Jak się przebranżowić? Marcin Kosedowski & Krzysiek Wróblewski DOŁĄCZ  ZA  DARMO »

Pierwsze kroki w programowaniu bywają trudne. Zanim zdobędziesz doświadczenie, czekają Cię różne potknięcia i wpadki. Jak ich uniknąć? Gdzie szukać odpowiedzi? W internecie znajdziesz całą masę poradników i tutoriali, ale który z nich rzeczywiście pomoże, a który tylko namiesza w głowie?

My poprosiliśmy o pomoc profesjonalistów. Zapytaliśmy doświadczonych programistów i programistki, co by zrobili, lub czego nie zrobili, gdyby musieli wybierać jeszcze raz. Gdyby musieli zacząć od nowa, tyle że mieliby już obecną wiedzę i umiejętności. Przeanalizowaliśmy odpowiedzi naszych mentorów, znajomych programistów, setki wątków na forach, komentarzy pod nimi i wypowiedzi programistów na YouTube… Zajęło to dwa tygodnie. Okazało się, że część porad pojawia się bardzo często.

Co programiści zrobiliby, gdyby zaczynali naukę dzisiaj?

Gdybym znów uczył/a się programowania…


1. “Zacząłbym naukę od dziś"

Od dziś. Nie od jutra. Nie po weekendzie. Nie po wakacjach.

Niby takie oczywiste, a jakoś wielu z nas uwielbia odkładać różne sprawy. Czekamy aż kolega czy koleżanka też zaczną, bo chcemy wspólnie. Wymyślamy sobie przełomowe daty, na przykład pierwszy dzień nowego roku. “Gdybym odwlekał, być może dzisiaj wcale nie byłbym programistą. Cztery lata temu podjąłem decyzję i jeszcze tego samego dnia zacząłem czytać pierwszy podręcznik znaleziony w internecie. Wam radzę to samo”.

2. “Znalazłbym Mentora, żeby uczyć się z najlepszymi”

Programowanie to sztuka, której będziesz się uczyć przez całe życie, ale pamiętaj: “Nie ma sensu błądzić po omacku tam, gdzie już ktoś zapalił światło. Znajdź mentora, osobę, która korzysta z przetartych szlaków”. Poproś, aby Tobą pokierował.

Internet to dobrodziejstwo ludzkości, ale gromadzi mnóstwo informacji (często dla Ciebie przestarzałych, w większości zbędnych, czasami wręcz fałszywych). Samodzielnie też możesz się wiele nauczyć, jednak zajmie to znacznie więcej czasu. Na dalszym etapie warto czytać książki i oglądać tutoriale, jednak na początku ucz się wspólnie z lepszymi od siebie. Tak będzie najszybciej i popełnisz najmniej błędów.

Poznaj Mentorów Kodilli >>

3. “Zaprzyjaźniłabym się z gumową kaczuszką”

“Metoda gumowej kaczuszki wydawała mi się infantylna, a ja przecież chciałam być dojrzałą specjalistką. Dopiero po jakimś czasie odkryłam, że to naprawdę działa”. Żółta, gumowa kaczka jest symbolem i metaforą myślenia na głos. To sposób na wyłapywanie i analizowanie błędów w kodzie (debugowanie).

Programista stawia gumową zabawkę w pobliżu komputera i gdy ma jakiś problem z własnym kodem, coś w nim nie działa, zaczyna analizować go linia po linii, jednocześnie tłumacząc kaczce, co robi i co widzi. Kaczkę można zastąpić każdym innym dowolnym przedmiotem, można też po prostu analizować na głos, jednak to właśnie kaczka stała się kultowym już symbolem tej metody. Dla niektórych może wydawać się to dziecinne, ale jeśli spróbujesz, przekonasz się, że daje zaskakujące efekty.

4. “Kupiłbym plan lekcji”

„Co masz zrobić dzisiaj, zrób pojutrze, będziesz mieć dwa dni wolnego” - to powiedzenie podczas nauki programowania z pewnością się nie sprawdzi.

Nie odwlekaj, nie odkładaj na później! Zaległości się szybko zemszczą. A jeśli wejdzie Ci to w krew, będziesz robić to samo już jako zawodowiec, zaczniesz zawalać projekty. Dla pracodawców i klientów to dyskwalifikacja.

“Gdybym zaczynał się uczyć od nowa, poszedłbym do księgarni i kupił arkusz z planem lekcji. Taki, z jakiego korzystają dzieci w szkole. A potem dokładnie rozpisał dzień po dniu, pamiętając o przerwach. Oczywiście trzeba to dopasować do swojego rytmu, innych zajęć, obowiązków, pracy, ale myślę, że osobom słabiej zdyscyplinowanym mogłoby to pomóc”.

Dobry pomysł, ale skoro mowa o programowaniu, możesz zastanowić się nad czymś bardziej nowoczesnym, czyli np. kalendarzem Google albo w telefonie, które mogą wysyłać Ci przypomnienia. Pamiętaj tylko, żeby nie tracić więcej czasu na konfigurację niż na naukę.

5. “Zamiast czytać książki, od razu poszedłbym na praktyki. Zamiast studiów wybrałbym bootcamp”

“Poznając język codziennie przerabiałem przez godzinę podstawy z podręcznika. Doszedłem do tego, że choć język znałem, nie potrafiłem niczego sensownego w nim napisać. Dlatego poszedłem do jednej z firm na praktyki i… świat się przede mną otworzył. Równolegle zacząłem studiować informatykę” - wspomina jeden z mentorów Java Developer w Kodilli. Czy dziś zrobiłby tak samo?

“Gdybym zaczął się uczyć programowania od nowa, to zamiast studiów wybrałbym kurs w Kodilli, a po nim poszedł do pracy”. Jak podkreśla, w nauce programowania najlepsze efekty daje realizacja własnych projektów, a tego nie zapewni studiowanie książek w domowym zaciszu i zaliczanie kolejnych egzaminów na uczelni wyższej.

6. “Krócej bym studiował”

Andrzej Trznadel, Mentor Java Developer w Kodilli: “Zamiast studiów magisterskich wybrałbym inżynierskie albo zaoczne i jak najszybciej starałbym się zdobyć komercyjne doświadczenie”. Uczelnie wyższe uczą teorii - na to zwraca uwagę wielu programistów.

Jak zdobyć doświadczenie praktyczne? “Trzeba jak najszybciej zacząć pracę w zespole. Uczyć się od innych i realizować projekty. Dyplom się na pewno przyda, ale cenniejsze są umiejętności praktyczne”.

W Europie pojawiają się też alternatywne sposoby na zaliczenie studiów, gdzie w rok - półtora można zdobyć licencjat z informatyki. Jak? Po prostu rezygnują z niepotrzebnych przedmiotów i zostawiają samo sedno. Polskie prawo niestety na to nie pozwala, ale są bootcampy.

7. “Szukałbym kontaktów”

Mentor jest naszym opiekunem, przewodnikiem, wsparciem. Ale on tylko ustawia drogowskazy. Większość problemów musimy rozwiązać samodzielnie. Jednym z nich będzie znalezienie pracy. To jednak nie znaczy, że musimy być zupełnie sami.

“Konferencje, spotkania grup skupiających programistów w danym języku, targi pracy. Nie tylko w internecie, ale również na żywo. To byłby jeden z moich pierwszych kroków. Kiedyś wydawało mi się to mniej istotne. Tymczasem właśnie tam można się dowiedzieć, czego oczekuje rynek i czego chcą pracodawcy. Dobrze jest sobie upatrzyć jakąś firmę i ją obserwować. Każda z nich ma nieco inne oczekiwania w stosunku do juniorów”.

8. “Uczyłbym się na własnych projektach”

Zanim jednak ktoś Cię przyjmie pod swoje skrzydła, powinieneś wykazać się własną inicjatywą. Na początek nic wielkiego, bo konkurencja jest duża i sam świata nie zawojujesz. Michał Dolny, Mentor Web Developer w Kodilli: “Swoją naukę rozpocząłbym od tworzenia prywatnych mini projektów. Od absolutnie minimalnej funkcjonalności, rozbudowując swój projekt krok po kroku.”


Sprawdź, co radzą początkującym programistom Mentorzy Kodilli.


9. “Wybrałbym tylko jeden język”

No dobrze, ale skoro dopiero zaczynasz, to skąd właściwie masz wiedzieć, jaki język programowania wybrać? Możesz kierować się ofertami pracy, ale pieniądze to nie wszystko. Jeśli wiążesz swoją przyszłość z programowaniem, na pewno chcesz przez następne lata robić coś, co daje satysfakcję nie tylko finansową.

“Gdybym zaczynał jeszcze raz, wybrałbym jeden język programowania i w nim się specjalizował, a później certyfikował. Byłby to język obecny na rynku od lat, ale też taki, na który wciąż jest rosnący popyt (dziś prawdopodobnie Java). Dopiero znając dobrze jeden język, zacząłbym się uczyć kolejnego” - to rada jednego z programistów, który dla dużych firm tworzy strony internetowe i aplikacje webowe.

Zwraca on uwagę, że lepiej znać bardzo dobrze jedną technologię niż kilka na średnim poziomie. W Polsce warte rozważenia są dwa języki: Java i JavaScript. W nich jest i przez najbliższe lata będzie najwięcej ofert pracy dla juniorów.

Zrób darmowy test predyspozycji i sprawdź czy programowanie jest dla Ciebie >>

10. “Znów zaczęłabym od surowego języka”

A jeśli już wybierzesz swój język, ucz się go od podstaw. W trakcie swojej kariery w świecie IT znajdziesz wiele gotowych rozwiązań, które pomogą Ci w tworzeniu skomplikowanego kodu, ale Ty nie idź na skróty.

“Gdybym miała uczyć się od nowa, to po raz kolejny najpierw opanowałabym dobrze surowy język, zamiast zaczynać od frameworków” - zapewnia doświadczona programistka. Jak dodaje, w odwrotnym kierunku przejście też jest możliwe, ale o wiele trudniejsze.

Czysty język (jakikolwiek) jest z zasady nieporęczny, rozbudowany i “trzeba w nim kombinować jak koń pod oblodzoną górę”, ale jak już się go nauczysz, dasz radę ze wszystkim.“Widzę tę różnicę, kiedy porównuję moją ścieżkę. Najpierw nauczyłam się czystego HTML, frameworki typu Bootstrap przyszły dużo później, dlatego teraz nie jestem zagubiona i bezradna, kiedy muszę kodować na surowo, bez frameworka”.

11. “Nie szalałbym tak bardzo wybierając nowy komputer”

Zastanawiasz się, czy Twój komputer da radę? Koniecznie chcesz kupić nowszy, bo myślisz, że ten, który masz, nie udźwignie kodu? Spokojnie, nie szalej. Nie potrzebujesz niczego specjalnego.

Ważne, żeby działał i się nie zawieszał, no i oczywiście miał dostęp do internetu. Chyba, że będziesz go używał do różnych innych celów, ale to z programowaniem nie ma nic wspólnego.

“Mnie się wydawało, że programista musi mieć wyjątkowy sprzęt. Wziąłem kredyt, żeby też coś takiego kupić. A że była w nim bardzo dobra karta graficzna, popełniłem błąd i dokupiłem od razu parę gier. No i położyłem na kilka tygodni naukę programowania.”[PATRZ pkt. 12]

12. “Szlaban na gry”

“Na komputerze, którego używam do nauki programowania, zablokowałbym dostęp do gier, filmów i mediów społecznościowych, żeby nie odciągały mnie od zadań”. Taką deklarację usłyszeliśmy od kilku osób. Jak ostrzegają, gry bardzo rozpraszają i odciągają od nauki kodowania.

Jest wiele innych sposobów na relaks i odciążenie głowy. “Oszukiwałem się trochę, że gry to przecież też kod i to całkiem niezły, ale w efekcie dawałem się im pochłonąć tak bardzo, że odkładałem naukę kodowania na bok. Dlatego lepiej już na starcie odciąć się od tego zupełnie”. Więcej porad o oszczędzaniu czasu dajemy tutaj.

13. “Użyłbym internetu, bo gdy zaczynałem, nie było”

Andrzej Jaromin, Mentor Java Developer w Kodilli: “To może wydawać Ci się dziwne, ale starsi, doświadczeni koledzy i koleżanki z zazdrością obserwują możliwości, jakie masz Ty, stawiając dziś swoje pierwsze kroki. Kiedyś wiedzę teoretyczną zdobywało się podczas trwających wiele lat studiów. Oczywiście była też literatura, ale znacznie trudniej dostępna. Dziś jest internet - skarbnica wiedzy, globalna platforma dyskusyjna.

Naucz się tylko filtrowania wiedzy z Internetu, przede wszystkim zwracając uwagę na datę napisania znalezionych informacji i wersji języka lub frameworka, której dotyczy rozwiązanie. Przy samodzielnej nauce może to sprawiać problemy. Na bootcampie wiedza jest odpowiednio dobrana i na bieżąco aktualizowana”.

14. “Nie ścigałbym się”

Skoro już zrezygnowaliśmy z gier, zapomnijmy też o wyścigach. Z nauką programowania jest podobnie jak z biegami górskimi. Im wolniej zaczniesz, tym szybciej skończysz.

Jeśli przeszarżujesz, a brakuje Ci jeszcze doświadczenia i umiejętności, możesz się szybko zmęczyć i wypalić. Gdy zaczynasz, wydaje Ci się, że wszystko robisz zbyt wolno, że nie nadążasz za bardziej doświadczonymi kolegami. Chcesz jak najszybciej im dorównać, ale przez to możesz pominąć wiele tematów, które oni już znają i korzystają z nich rutynowo. Tymczasem każdy ma swoje własne tempo. Dziel mądrze czas, nie pędź. Nie przyspieszysz, jeśli z przemęczenia utkniesz w martwym punkcie.

Oto rady od Andrzeja Samka, właściciela startupu trigger.to:

"Początki były trudne, często nawet bardzo trudne: godziny spędzone nad “głupimi błędami”, brak wystarczającej wiedzy i kogoś, kto mógłby mnie poprowadzić. Mogłem się poddać i rzucić wszystko. Zniechęcony, czasami robiłem sobie dłuższe przerwy, ale wewnętrzna potrzeba dokończenia rozpoczętej pracy sprawiała, że wracałem. Ciężką pracą udawało się pokonywać przeszkody i dzięki temu ostateczny cel - taki jak napisanie galerii zdjęć, systemu komentarzy, prostych stron wizytówkowych - stawał się powodem do dumy. Dlatego właśnie uważam, że cierpliwość i konsekwencja są najważniejsze na samym początku przygody z programowaniem. Następnie, gdy będziesz gotowy/gotowa na pierwszą pracę, równie ważne stają się: uważne słuchanie współpracowników, zadawanie pytań i chęć podejmowania nowych wyzwań."

15. “Szybciej zaczęłabym budować swoje portfolio”

Rzadko się zdarza, by pierwsza (taka naprawdę pierwsza) strona internetowa czy aplikacja były jakimś wiekopomnym dziełem. Bardzo możliwe, że będziesz chciał ją ukryć przed światem. Ale nie kasuj jej i zachowaj.

Dzięki temu po jakimś czasie, gdy już nabierzesz biegłości, lepiej ocenisz swoje postępy. “Część moich projektów gdzieś się zawieruszyło, a szkoda. Na początku swojej drogi nie myślałam, że tak szybko się rozwinę. Teraz mogłabym pokazywać innym, jak szybko się rozwinęłam. Portfolio nie musi być złożone wyłącznie z najlepszych prac. Niektórzy pracodawcy z chęcią zobaczą, jak zaczynaliśmy, bo wtedy nas lepiej poznają. Oczywiście kolejne, zaawansowane prace również w takim portfolio powinny się znaleźć, dlatego warto zbierać je od początku, a później dopiero zdecydować, co chcemy pokazać innym”.

16. “Nauczyłabym się korzystania z debugowania i inspektora elementów”

Dla początkujących może brzmieć tajemniczo, ale im szybciej dowiesz się, co oznaczają te zaklęcia, tym mniej czasu stracisz na użeranie się z czymś, co może zrobić za Ciebie komputer.

W tym przypadku ścigać się akurat warto, ale nie z innymi, tylko z samym sobą. “Podobnie jak wielu dyletantów na początku działałam chaotycznie. Zanim poznałam narzędzia do śledzenia kodu i wyłapywania w nim błędów, ślęczałam godzinami i przeglądałam linijkę po linijce. Dziś, gdy moje kody mają po kilka tysięcy linii, byłoby to okrutna torturą. Dlatego wszystkim, którzy dopiero zaczynają radzę, by jak najszybciej nauczyli się rozmawiać z maszynami. Komputer zrobi wiele rzeczy za Was, tylko musicie wiedzieć, jak go o to poprosić.”

17. “Uczyłbym się pisać testy”

Kolejna ważna cecha, z której programiści nie powinni rezygnować ani kiedyś, ani dziś - umiejętność pisania testów. Jeszcze kilkanaście lat temu przeciętny programista spędzał 10-20% czasu na pisaniu kodu, a 80-90% na analizowaniu co zrobił źle.

Im większy system, tym więcej było miejsc, gdzie mógł popełnić nieoczekiwany błąd i godzinami próbować dojść do tego, co się stało. “Później ktoś - prawdopodobnie jakiś geniusz - wymyślił, że można tak napisać program, żeby sam się testował i sygnalizował nam, gdzie popełniliśmy błąd." Serio! To szczególnie istotne, jeśli dodajemy do programu nową funkcję, która wpływa na wiele innych elementów systemu. Możemy nawet nie pamiętać o wszystkich zależnościach, a pisany program sam nam wskaże, że gdzieś popełniliśmy błąd. W ten sposób czas marnowany/wykorzystywany na testowanie znacząco się skraca, a Ty możesz w ciągu dnia programować 2-3 razy więcej niż ja 10 lat temu, kiedy musiałem tracić czas na testowaniu.

18. “Większą uwagę zwracałbym na dokumentację”

Andrzej Jaromin, Mentor Java Developer w Kodilli: “Na początku człowiek często nie docenia dokumentacji i bardziej skupia się na książkach, tutorialach. Tymczasem dokumentacja danej technologii może być dla początkujących bardzo przydatną instrukcją obsługi. Ucząc się danej technologii, jak najczęściej zaglądaj do dokumentacji, miej ją zawsze otwartą w drugiej karcie przeglądarki. Szczególnie w Javie orientowanie się co gdzie znaleźć w dokumentacji, znacząco przyspieszy tworzenie programów. Zdziwisz się, jak dużo rzeczy jest już rozwiązanych i konkretnie opisanych. Gdybym zaczynał jeszcze raz, zwracałbym na to większa uwagę. Odkryłem to dopiero po latach. Dowiadujesz się np. że do jednego rozwiązania możesz dojść różnymi drogami.”

19. “Oddałbym się w ręce społeczności chętnych do pomocy”

“Kiedyś tego nie doceniałem, bałem się, że to strata czasu. Dziś wiem, że forum dyskusyjne jest prawdziwą kopalnią wiedzy.” Na forach, grupach na FB i w innych społecznościach spotykają się prawdziwi pasjonaci, którzy uwielbiają dzielić się swoimi doświadczeniami, a także oceniać cudze projekty.

Tematów nie brakuje i dość łatwo jest znaleźć miejsce dla siebie. Tutaj szukamy porady, gdy coś nam nie wychodzi. Tu dzielimy się swoim kodem, a inni użytkownicy wskazują nam nasze błędy i tłumaczą, jak je naprawić.

Warto korzystać także ze stron typu Stack Overflow, gdzie znajdziemy odpowiedzi na wiele pytań związanych z programowaniem. Z myślą o kursantach Kodilli powstał natomiast dedykowany czat, gdzie mogą oni dyskutować z Mentorami oraz innymi uczestnikami bootcampów, wymieniać się doświadczeniami, zadawać pytania czy prosić o radę.

20. “Nie przejmowałbym się komentarzami innych”

Krytykować można w różny sposób. Konstruktywnie - wykazując błędy i jednocześnie sugerując możliwe rozwiązania. Można też krytykować tak normalnie, żeby kogoś pogrążyć, poczuć się dzięki temu lepszym.

“Jeśli spotkasz się z opiniami, że to co robisz, jest słabe, a krytykująca osoba nie wytłumaczy Ci, co robisz źle, co należy zmienić, nie przejmuj się tym. Dość długo po takich komentarzach czułem smak porażki. Myślałem nawet o tym, żeby dać sobie spokój z programowaniem. Na szczęście uważniej wsłuchiwałem się w bardziej wyważone opinie i dlatego dziś jestem, kim jestem”.

21. “Nie poddawałbym się”

No właśnie, nie poddawaj się. Nie tylko jeśli chodzi o komentarze w internecie. “Nigdy nie uznawaj że jesteś na coś za głupi. Jeżeli czegoś w ogóle nie rozumiesz, to znaczy że za wcześnie się zabrałeś za naukę tej rzeczy. Wróć, poczytaj więcej, uzupełnij brakujące kroki na swojej drodze i podejdź do tego problemu ponownie. Bądź cierpliwy i ucz się dużo. Korzystaj z narzędzi - one sprawiają, że tworzymy szybciej, popełniamy mniej błędów, a jak się już jakiś zdarzy, pozwalają szybciej go znaleźć”.

22. “Nie uczyłbym się na pamięć”

Narzędzia narzędziami, zawsze znajdzie się jakiś skrót, ale w programowaniu chodzi o to, żeby rozumieć, co się robi. “Nauka definicji i dokumentacji na pamięć to strata czasu. Wystarczy, że w odpowiednim momencie szukając jakiegoś rozwiązania będziemy w stanie sobie przypomnieć o takim dokumencie i umieć go odszukać. A potem oczywiście zastosować do napotkanego problemu. Im więcej problemów i przerobionych sytuacji - tym większa szansa, że poradzimy sobie z kolejnymi”.

Sprawdź 4 sposoby na efektywną naukę >>

23. “Od pierwszej napisanej linijki szanowałbym swój kod”

„Zawsze pisz kod tak, jakby gość, który ma się nim zajmować, był agresywnym psychopatą, który wie, gdzie mieszkasz” - to w kręgach IT słynny cytat pokazujący, jak wielką wagę programiści przywiązują do swojej pracy. Wielu z nich często odmawia poprawiania cudzego kodu np. ze względu na brak ogólnie przyjętych zasad i panujący w nim bałagan. “Gdy uczyłem się programować, zdarzało mi się iść na skróty, myślałem tylko o tym, żeby jak najszybciej skończyć swoją pracę. To było byle jakie i takie podejście odradzam, bo może wejść w nawyk. Programowanie to precyzyjna sztuka i tak należy ją traktować od pierwszego dnia”.

24. “Wybrałbym odpowiedni język programowania (i nie byłby to Python)”

Jeśli chcesz nauczyć się języka obcego, wybierasz jakiś z nich - może angielski, żeby dogadać się w wielu miejscach na świecie, a może włoski, bo masz rodzinę we Włoszech. Podobnie jest z programowaniem - są języki popularne (Java, JavaScript), a są niszowe (np. w Polsce Ruby).

Ponadto języki mają wersje. Jeśli chcesz dogadać się w USA, nie wybierzesz staroangielskiego. Podobnie w programowaniu - Javę 4 i Javę 8 dzieli taka sama przepaść, jak zwrot „Fæder ūre, þū þe eart on heofonum” (tak, to po angielsku) od angielskiego, jaki słyszysz oglądając seriale.

„Początkującym często poleca się język Python, bo podobno ma prostą składnię, bardzo zbliżoną do angielskiego. To tak, jakby powiedzieć, że pierwszym językiem do nauki powinien być czeski, bo jest podobny do polskiego. W praktyce okazuje się, że to w 90% nieprawda.”

Jeśli poniższy kod brzmi dla Ciebie prawie tak samo jak angielski, to polecam Pythona.

num = int(input("Enter a number: "))

for i in range(2,num):

if (num % i) == 0:

print(num,"is not a prime number")

Jeśli jednak uważasz, że to „trochę” co innego niż angielski, wybierz popularniejszy język, w którym w Polsce tworzy się więcej projektów. Bez względu na to, który z typowych języków wybierzesz , po tygodniu jego składnia będzie dla Ciebie jasna. Java, JavaScript, C#, Ruby, Python - nauczenie się składni każdego z nich jest tak samo trudne.

25. “Nie tonąłbym w programowaniu niskopoziomowym, jak na studiach”

“Podstawy programowania poznałem na studiach, jednak po latach uważam, że kolejność poznawania wiedzy była zupełnie nietrafiona”.

No właśnie, jak to jest na studiach? “U mnie zaczęło się od zarządzania pamięcią i wskaźników. Potem na ruszt wzięliśmy różnice w zakresach typów zmiennych na poszczególnych procesorach, następnie złożoność obliczeniową programów, działania na poszczególnych bitach pamięci i sprytne sposoby manipulowania danymi przetwarzanymi przez procesor. Kilka tygodni później napisaliśmy pierwszy program, który dodawał dwie liczby. W międzyczasie 30% studentów uznało programowanie za trudne i zrezygnowało”.

Mimo że wszystkim wymienionym zagadnieniom trudno odmówić rangi ważności, w firmach zajmują się tym jedynie najbardziej doświadczeni programiści i robią to niezmiernie rzadko. Co więcej, w wielu technologiach ich stosowanie jest albo niemożliwe, albo niemile widziane przez współpracowników, bo prowadzi do powstawania ciężkich do znalezienia błędów.

“Jeśli nie programujesz w C/C++, to w 99% przypadków firma oszczędzi więcej na programie pisanym w czytelny sposób, niż na zbytniej optymalizacji (szczególnie robionej przez juniorów)”.

Optymalizacja i złożoność obliczeniowa - tak, jak najbardziej, te zagadnienia są ważne. Jednak nie w wykonaniu juniora, który przez pierwsze lata pracy nie będzie miał okazji do wykorzystania tej wiedzy.

26. “Postawiłbym sobie jakiś cel”

Bez celu będziesz ciągle zaczynać od nowa, porzucać naukę na miesiące i w konsekwencji przerobisz 200 godzin w 5 lat, zamiast w 3 miesiące. Co może być Twoim celem?

Znajdź coś, co sprawia Ci frajdę i spróbuj to zakodować. Oglądasz nałogowo seriale? Oderwij się od nich na chwilę i napisz aplikację, która będzie Ci przypominała o zbliżającym się nowym sezonie. Haratasz w gałę? Napisz prostą grę, polegającą na tym, by trafić piłką do bramki.

Aplikacja nie musi być tak rozbudowana, by zawieszać komputery niczym kolejna część “Wiedźmina”. Wystarczy, że będzie Twoja własna, a Ty dzięki niej połączysz hobby z nauką programowania. Być może kiedyś wymyślisz wehikuł czasu, na razie jednak postaraj się stać twardo na ziemi i robić swoje.

27. “Dbałbym o czystość kodu”

Jeśli masz ograniczony czas (a każdy ma), staraj się spędzać jak najwięcej czasu na faktycznym kodowaniu. Oszczędzisz więcej czasu na szukaniu błędów niż na dbaniu o czystość. Długie metody, złożone warunki (szczególnie z podwójnymi przeczeniami), używanie zbyt krótkich i ogólnych nazw zmiennych, które nic nie znaczą (nie dotyczy Javy), hardcodowanie wartości w kodzie, stosowanie hacków (szczególnie dotyczy absolwentów informatyki) - to typowe złe praktyki, które pogarszają czystość kodu i prowadzą prosto do marnowania czasu na rozmyślanie „o co mi chodziło jak to pisałem”.

“sense of universe” === a && b = 42;

If ( question === “sense of universe” ) {

answer = 42;

}

Obydwa fragmenty kodu robią to samo, ale intuicyjnie widać, że drugi jest zdecydowanie bardziej zrozumiały.

28. “Przykładanie zbyt dużej wagi do algorytmów… i zapominanie o strukturach danych czy wzorcach projektowych”

Początkujący programiści, którzy przygotowują się do rozmów kwalifikacyjnych, przywiązują zbyt często za dużą wagę do algorytmów. Uczą się ich na pamięć, żeby zabłysnąć. Jednocześnie zapominają np. o strukturach danych, czyli sposobach ich uporządkowania.

Obecnie programuje się inaczej niż w latach ‘90. Często od ekstremalnej wydajności ważniejsze jest logiczne ułożenie kodu w projekcie. „Na rozmowie kwalifikacyjnej prędzej trafisz na pytania dotyczące wzorców projektowych i struktur danych niż algorytmów. Wybór i implementacja wzorca pokazują czy faktycznie rozumiesz temat.”

“Nie zgrywaj się na geniusza, nie zabłyśniesz, jeśli będziesz recytował z pamięci wzory, których nie potrafisz użyć” - zwrócił na to uwagę jeden z blogerów w swoim wpisie pt. “Błędy, które popełniłem jako początkujący programista”.

29. “Nie bałbym się code review ani błędów”

Ten sam bloger przypomina jeszcze jedno ważne hasło: Zawsze będziesz uczniem i musisz to zaakceptować. Dlatego nie bój się code review (przeglądu/inspekcji kodu prowadzonej przez bardziej doświadczonego programistę).

Potraktuj code review jako naukę. Dzięki temu masz szansę uczyć się ciągle czegoś nowego i rozwijać umiejętności. Doświadczony programista właśnie dzieli się z Tobą swoją wiedzą. Wykorzystaj to!

Warto również polubić błędy generowane przez aplikację, którą tworzysz. Jeśli któryś z nich się powtarza, to dla Ciebie sygnał, że coś trzeba załatać albo obsłużyć sytuację, o której nie pomyślałeś. Twój program sam podpowiada Ci, czego nie wziąłeś pod uwagę!

30. “Twoja apka, to Twoja wizytówka. Zadbaj o jej wygląd”

Tak, wiemy… chcesz być programistą. Chcesz nurkować w kodzie. Ale nigdy nie zapominaj, że ponad taflą wody jest mnóstwo ludzi, którzy patrzą na Twoje poczynania z innej perspektywy.

“Techniczna część rekrutacji to dopiero któraś z kolei część procesu ubiegania się o pracę. Zanim Twój kod będzie oceniał programista, najpierw czeka Cię rozmowa z paniami z HR. To pierwsze sito. Jeżeli Twój kod będzie idealny, ale wygląd aplikacji nie przyciągnie uwagi, odpadniesz już na starcie. Jeśli nie wyślesz działającej aplikacji, tylko link do repozytorium, rekruter nawet go nie otworzy, bo po prostu tego nie potrafi”.

Weź sobie do serca również bardzo modne ostatnio hasło UX (doświadczenia użytkownika). Przygotuj swoją apkę tak, by wrażenia, zwłaszcza te pierwsze, były jak najlepsze. No i nie wrzucaj do niej absolutnie fraz typu “dupa” i rozjechanych zdjęć. Zadbaj o to, żeby pokazowa aplikacja nie sypała błędami. Aplikacja ma działać, ma być przyjazna i dobrze wyglądać, ale powinna też być ciekawa. Dobry content może przykryć niektóre, mniej istotne błędy.

Podsumowanie

Zaczęliśmy od rady, by uczyć się na cudzych błędach. Część z przedstawionych wypowiedzi to indywidualne spostrzeżenia doświadczonych programistów, inne są kompilacją najczęściej powtarzających się opinii. Czas wyciągnąć z nich wnioski.

Jeśli dopiero zaczynasz, musisz zaakceptować to, że to początek Twojej kariery. Nie spieszyć się i nie równać z lepszymi od siebie, ale skupić na utrzymaniu dyscypliny i konsekwencji w nauce. Dyskutuj i pytaj, ale nie zamęczaj innych bez potrzeby. Od tego masz gumową kaczkę, czyli tak naprawdę samego siebie. Myśl i szukaj rozwiązań samodzielnie. Krytykę przyjmuj z pokorą, wyciągaj z niej lekcje, nie wpadaj jednak w depresję, jeżeli coś Ci nie wychodzi. Oni też się kiedyś uczyli. Znajdź Mentora i pozwól mu być swoim przewodnikiem. Z jego pomocą korzystaj z dostępnej literatury, internetu, tutoriali, ale jak najszybciej zacznij też realizować własne projekty. A gdy już zaczniesz, buduj swoje portfolio, które będzie mógł zobaczyć Twój przyszły pracodawca. Pamiętaj o odpoczynku i relaksie, ale wszystko z umiarem. Nauka programowania to nie zabawa. Jeżeli dasz się wciągnąć za bardzo rozrywce, zaczniesz się cofać. A jeśli po przeczytaniu tych wszystkich rad nadal chcesz naprawdę stać się częścią branży IT, ale wciąż nie wiesz, jak to zrobić, zapisz się na bootcamp w Kodilli i wspólnie z nami ucz się programowania!

Dlaczego? Bo właśnie w Kodilli dostaniesz opiekę Mentora, który pomoże Ci w doborze materiałów i będzie Twoim drogowskazem na nieznanym gruncie. Staniesz się też częścią społeczności, będziesz dyskutować i wymieniać się doświadczeniami na dedykowanym czacie. Zapewnimy Ci również przemyślany i dobrze opracowany plan nauki. No i wreszcie pomożemy w przygotowaniu CV, zdobyciu kontaktów i będziemy wsparciem w poszukiwaniu pierwszej pracy.

Jeśli temat Cię zainteresował i chcesz dowiedzieć się więcej, zapisz się koniecznie na webinar "5 pomysłów na zostanie przeciętnym klepaczem kodu" - Maciek Olaczek wraz z Marcinem Kosedowskim opowie o między innymi o tym czego nie robić by nie utknąć w martwym punkcie kariery i nie klepać tego samego kodu wciąż i wciąż :)

Umów się na rozmowę z doradcą Kodilli