7 rzeczy, które każdy nowy programista powinien wiedzieć
- Computerworld Online/DP,
- 17.06.2016, godz. 14:25
Programiści-weterani dzielą się cenną wiedzą, którą zdobyli w ciągu wielu lat pracy i podpowiadają, jak profesjonalnie zająć się kodowaniem.
Programiści-weterani dzielą się cenną wiedzą, którą zdobyli w ciągu wielu lat pracy i podpowiadają, jak profesjonalnie zająć się kodowaniem.
Jeśli dołączyłeś niedawno do grona profesjonalistów w dziedzinie programowania, prawdopodobnie wydaje Ci się, że dzięki swojej edukacji oraz szkoleniom z informatyki i programowania, masz już wszystko w najmniejszym paluszku. Programiści, który zajmują się tym od wielu, wielu lat podkreślają jednak, że istnieje cała masa rzeczy dotyczących pisania kodów, których nie dowiesz się na uniwersytecie czy na kursie.
By dowiedzieć się, co to za rzeczy, przeprowadziłem rozmowy z wieloma weteranami w sztuce kodowania (wszyscy pracowali jeszcze w ostatniej dekadzie, a niektórzy przez ostatnich kilka dekad) i zapytałem, co, patrząc z perspektywy czasu, chcieliby wiedzieć w momencie, gdy zaczynali przygodę z kodowaniem. Nieważne, czy jesteś świeżo upieczonym absolwentem zaczynającym swoją pierwszą pracę, czy starszym pracownikiem, który zmienił branżę na programowanie, powinieneś kliknąć kilka razy na strzałkę w prawo, by poznać tych siedem wskazówek dla programistów-nowicjuszy.
Zdobądź wiedzę na temat podstawowych systemów
Ważną częścią rozwoju w programowaniu jest oczywiście znajomość języków programowania. Jednak, czego dowiedziałem się od kilku osób, programista powinien posiadać również wiedzę dotyczącą niższych poziomów.
„Wiele języków ma niewiele wspólnego z tym, co się dzieje na poziomach systemowych, ale jest to właściwie korzystne, dlatego że pozwala na większą produktywność przez większość czasu”, powiedział Pete Bull, inżynier wsparcia w Acquia. „Kiedy jednak natrafisz na problem, naprawdę ciężki orzech do zgryzienia, i będziesz potrzebował dogłębniejszego zrozumienia procesów, które zachodzą gdzieś w czeluściach komputera, całkiem przydatną umiejętnością okaże się debugowanie, możliwość przejrzenia systemowych połączeń i sprawdzenie, jak dany fragment kodu działa z resztą systemu”, napisał w e-mailu.
Podobnych rzeczy dowiedziałem się od Roberta Douglassa, zastępcy przewodniczącego w dziale Customer Satisfaction na Platform.sh: „Kiedy zaczynałem z programowaniem, było mnóstwo rzeczy, o których nie miałem pojęcia. Systemy plików, networking, jak przechowywane są rzeczy w pamięci – to tylko te oczywiste przykłady. A to znaczyło, że niekoniecznie zrozumiałem cele niektórych konstrukcji programowania, o których mnie uczono.”
Poznaj narzędzia wiersza poleceń
Istnieją duże szanse, że jako programista spędzisz mnóstwo czasu, pracując w fantazyjnym Zintegrowanym Środowisku Programistycznym bądź w edytorze kodów. Tak czy siak wiedza na temat tego, jak poradzić sobie z niektórymi rzeczami przy pomocy wiersza poleceń czasami może bardzo ułatwić życie.
„Czasami możesz pracować ze sprzętem, na którym musisz zrobić wszystko natychmiast, a narzędzia, którymi dysponujesz, są ograniczone”, powiedział mi pewien 20-letni weteran-programista, który chciał pozostać anonimowy. „Musisz umieć używać interpretatora poleceń, tak jak umiesz oddychać: polecenia takie jak find, comm, diff, vi/vim, sed, awk, czy jak napisać małe skrypty bezpośrednio w wierszu poleceń, by znaleźć plik, w którym trzeba wprowadzić zmiany natychmiast, bo produkcja się zatrzymała, a Jacek, który popełnił błąd przy wpisywaniu URL nieznanego pliku jest akurat na wakacjach.”
Bull, który początkowo zaczął używać narzędzie Microsoftu, a później przeszedł powoli do Linuxa, zgodził się z tym, dodając: „Na pewno nauczyłbym się wszystkich szczegółów dotyczących wiersza poleceń i wszystkich przydatnych rzeczy, które są dostępne w systemie uniksopodobnym. Przypomina mi się nawet teraz jeden kod, który napisałem lata temu, pracowałem nad nim pewnie kilkanaście tygodni, a który mógł być napisany znacznie lepiej przy użyciu jednego wiersza poleceń (grep + awk).”
Twój debugger jest Twoim przyjacielem
Wiele czasu w pracy spędzisz na pewno na tropieniu wad w systemie. Dave Varon, programista-bioinformatyk w Novartis, podkreśla korzyści płynące z debuggera oraz to, jak wiele swego czasu możesz dzięki niemu zaoszczędzić. „Naucz się używać debuggera!”, powiedział. „Poświęć na to dodatkowy dzień czy dwa. Jeśli nie widzisz oczekiwanych rezultatów, po prostu to zdebuguj: ustal punkty przerwania, prześledź jeszcze raz swój kod, a zwłaszcza kody napisane przez innych. Zaoszczędzi Ci to mnóstwo złości i frustracji, a nawet lepiej – nauczysz się o kodowaniu czegoś, co jest możliwe tylko przy sprawdzaniu kodu należącego do kogoś innego.”
Naucz się pisać testy
Niektórzy programiści uważają, że testowanie, tj. pisanie testów weryfikujących małe jednostki kodów, bardzo dobrze się sprawdza i właściwie jest kluczowe. Richard Handlogg, programista bazy danych w Strategic Power Systems, zalicza się do tych osób. „Myślę, że najlepszą radą, jaką mógłbym dać komuś, kto chce nauczyć się programowania, jest zdobycie umiejętności pisania dobrych testów i to dość wcześnie”, odpisał mi w e-mailu.
Wyprzedzaj zmiany i zdobywaj wiedzę
To oczywiste, że technologia zmienia się obecnie bardzo szybko. I chodzi tu nie tylko o dobra konsumenckie, ale także podstawowe systemy, języki i narzędzia, których w swojej pracy używają programiści.
Adam Wulf, mobilny programista i założyciel Milestone Made, podkreśla, że nowi programiści powinni być przygotowani na zmiany, a nawet je wyprzedzać. „W tej chwili powiedziałbym, że powinieneś być nastawiony na zdobywanie wiedzy o całkowicie nowej technologii co cztery lata”, powiedział. „Dobre podstawy zawsze się przydają, jednak narzędzia i technologie, których używasz w tej chwili, za 4 lata będą wyglądać zupełnie inaczej.”
„Nigdy nie pisze się projektów tylko w jednym języku, używając zaledwie jednego frameworku”, powiedział programista, który chciał pozostać anonimowy. „Nigdy nie będziesz pracował tylko nad jednym elementem projektu, musisz przyzwyczaić się do pracy raz przy jednym, raz przy drugim projekcie, do używania różnych języków i technologii”, napisał.
Współpracuj z innymi
Wbrew powszechnemu przekonaniu, że programiści zawsze pracują sami, ze słuchawkami w uszach, okazuje się, że muszą oni ciągle pracować z innymi ludźmi. Ben Miller, CTO w Sinclair Digital Ventures, podkreśla, jak ważna do osiągnięcia sukcesu jest umiejętność pracy w zespole. „Duże projekty wiążą się z wieloma elementami, które trzeba dopasować, a dzielenie problemu może wywołać ogromne problemy, jeśli nie będziesz wystarczająco ostrożny”, napisał w e-mailu. „Zanim zaczniesz optymalizować jeden algorytm, popracuj z zespołem i upewnij się, że problem nie uległ kolejnemu podziałowi. Kodowanie to sport drużynowy!”
Varon podkreślił również znaczenie umiejętności pracy z innymi, mówiąc: „Jeśli nie możesz poradzić sobie z czymś sam, tworząc ponownie API czy debugując, poproś o pomoc. To, że wydaje Ci się, że Twój kod to prawdziwe dzieło sztuki, nie oznacza wcale, że nie jest on kiepski albo że po prostu nie może być lepszy. Tak jak w szkole, uczniowie mają czasami podobne wątpliwości bądź pytania, na które może odpowiedzieć tylko druga osoba. Bądź z kolegami i koleżankami w dobrych stosunkach. Czasami wystarczy, że opowie się o jakimś problemie na głos, a od razu nadchodzi olśnienie.
Mój anonimowy informator podzielił się podobną myślą dotyczącą zalet pracy w zespole. „Podjęcie jakichś działań i robienie tego, czego się od Ciebie wymaga, czyli podstawowych rzeczy zapewni Ci pracę, to prawda”, powiedział. „Tu jednak powinienem Cię ostrzec. Musisz być ostrożny, bo możesz utknąć w jednym punkcie, robiąc ciągle jedno i to samo.”
Nie bój się zając się czymś innym niż kodowanie
Miller udzielił szczególnie ciekawej rady, która na pierwszy rzut oka nie jest oczywista. „Zajęcie się czymś innym niż kodowanie może doprowadzić do awansu”, powiedział. „Jeśli znajdziesz najprostszy sposób rozwiązywania problemów, a Twój kod będzie wystarczająco bezpieczny, a utrzymanie darmowe, dostaniesz dużo więcej pracy. Prawdopodobnie poproszą Cię nawet, byś nauczył tego innych”, wyjaśnił. „Mówiąc prościej, jeśli będziesz chciał mieć pewną posadę, paradoksalnie możesz zaszkodzić tym swojej karierze.”
Computerworld dostarcza najświeższe informacje, opinie, prognozy i analizy z branży IT w Polsce i na świecie.
W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]