Jak prawdziwy programista radzi sobie z napotkanymi problemami?

16.10.2017 AUTOR: Radek Borzym

Programowanie wymaga ciągłego znajdowania pomysłowych i nieoczywistych rozwiązań na atakujące ze wszystkich stron problemy. Pisanie kodu samo z siebie nie jest sztuką, prawdziwym testem czyichś umiejętności jest pokonanie pojawiających się w trakcie kodowania problemów.

Nie ma jednej, sprawdzonej metody, która pozwoli na przezwyciężenie wszystkich trudności. Mimo tego, odpowiedni sposób myślenia jest fundamentem, który ułatwi znalezienie właściwego rozwiązania.

Przestań się martwić i pokochaj debugowanie

Jeżeli programista wie jak powinien wyglądać kod, który zrealizuje zaplanowaną akcję, ale mimo tego, aplikacja nie chce działać tak, jak powinna, to najprawdopodobniej w kodzie znajduje się jakiś błąd. Nawet najlepszym nie udaje się napisać aplikacji tak, żeby działała od razu bez zarzutu. Naprawianie niedziałającego kodu zajmuje programistom zwykle co najmniej tyle samo czasu co napisanie go więc zamiast przejmować się tym, że coś nie wyszło, trzeba podchodzić do błędów jako do zjawiska będącego na porządku dziennym.

Debugowanie jest jedną z kluczowych umiejętności potrzebnych programiście. Jest to proces polegający na wyszukiwaniu oraz naprawianiu błędów w kodzie. Obojętnie czy proces ten odbywać się będzie z użyciem dedykowanych narzędzi, czy całkowicie ręcznie, to trzeba przyzwyczaić się do faktu że pierwsza wersja kodu nie będzie działać tak jak tego chcemy.

Zanalizuj w jaki sposób rozwiązać dany problem

Jeżeli kod nie działa tak jak powinien, to reakcją niektórych osób jest jego modyfikacja bez dokładnego zastanowienia się co jest przyczyną wadliwego funkcjonowania. To częsty błąd popełniany przez początkujących programistów.
Lepiej jest zastanowić się dlaczego kod nie chce działać. Która jego część jest temu winna? W jaki sposób ona działa i co by się stało jeżeli zmienilibyśmy pewne elementy? W jaki sposób zmodyfikować dany fragment kodu, że otrzymać upragniony rezultat?

Trzeba wyrobić w sobie nawyk szczegółowego analizowania problemu przed przystąpieniem do jego rozwiązywania. Dobry programista zanim zacznie pisać kod ma dokładnie rozplanowane, to jak powinien on działać po ukończeniu. A jeżeli nie ma planu całości, to tylko dlatego, że problem został wcześniej podzielony na mniejsze części i programista zajął się na początku pracą nad pojedynczym fragmentem projektu.

Dziel problemy na małe części

Praktycznie każdy problem, który z początku wydaje się być nie do pokonania może być rozwiązany poprzez podzielenie go na mniejsze fragmenty i poradzenie sobie z nimi pojedynczo. Umiejętność analizy danego przypadku i odpowiedniego jego podziału jest czymś co przyjdzie programiście wraz z wiedzą i doświadczeniem.

Po podziale zadania w pierwszej kolejności należy się zająć problemami najłatwiejszymi do rozwiązania. Dzięki temu, przystępując do zmagań z najbardziej wymagającymi wyzwaniami, programista pracować będzie na kodzie charakteryzującym się lepszą jakością. W praktyce zmniejszy to prawdopodobieństwo, że problemy będą się na siebie wzajemnie nakładać zaburzając obraz danej sytuacji.

Korzystając z tej metody, ważne jest, żeby skupić się na pojedynczym problemie i dopiero po poradzeniu sobie z nim przejść do kolejnego. Jeżeli mamy problemy, z którymś z nich, to warto spróbować podzielić go na jeszcze mniejsze części.

Po rozwiązaniu wszystkich problemów trzeba oczywiście sprawdzić, czy powstały w ten sposób kod jest dobrze zintegrowany i czy osiągaliśmy efekt, który zamierzaliśmy osiągnąć siadając do pisania aplikacji.
Następnym krokiem jest optymalizacja powstałego programu, która polega na takiej jego modyfikacji, żeby działał on szybciej i bardziej wydajnie.

 

Zobrazuj problem na jakimś przykładzie

Napotkane problemy niekoniecznie trzeba rozwiązywać na wysokiej, koncepcyjnej płaszczyźnie. Szukając rozwiązania dobrze jest pracować na prostszym przykładzie, dzięki któremu zobrazowanie całego procesu działania kodu będzie prostsze.

Jeżeli programista przykładowo chce stworzyć aplikację, która będzie wynajdowała najkrótszą drogę pomiędzy dwoma punktami, to dobrym sposobem będzie wyznaczenie dwóch przykładowych punktów i rozpisanie kroków, które wykonywać będzie musiała maszyna szukając drogi pomiędzy nimi.

Otrzymane rozwiązanie nie będzie idealne, ale posłuży ono za szkic, na bazie którego powstanie pierwsza wersja oprogramowania. Szkicowa metoda powinna być w następnych krokach coraz bardziej generalizowana, żeby jej zastosowanie było jak najszersze.

Jeżeli nie możesz znaleźć rozwiązania na chwilę obecną, to prześpij problem

Wyobrażenie, że wystarczy tylko dostatecznie długo siedzieć nad danym problemem, żeby znaleźć na niego sposób jest błędne. Mózg nie jest maszyną, którą można zmusić do taśmowego wyrzucania z siebie rozwiązań.
Jeżeli naprawdę brakuje pomysłu na poradzenie sobie z napotkanymi trudnościami, to trzeba chwilowo zaprzestać walki z nimi. Lepiej jest skupić się na czymś innym. Przespać się, bądź wyjść na spacer. Świetne pomysły najczęściej przychodzą nie wiadomo skąd i w jaki sposób. Mózg najlepiej rozwiązuje problemy, kiedy pozwoli mu się działać w sposób nieco chaotyczny, tworzyć przypadkowe powiązania pomiędzy poszczególnymi ideami. 

Zaufaj radom innych programistów

Nikt nie jest samotną wyspą. Każdy programista posiada inne doświadczenia oraz mocne strony. Dlatego jeżeli osoba tworząca kod utknęła na jakimś problemie, którego nie może rozwiązać, to dobrym sposobem na poradzenie sobie z nim jest poproszenie innych programistów o pomoc.
Jeżeli człowiek posiada uczącego go mentora, to uzyskanie porady nie będzie dla niego zbyt trudne. Każdy prawdziwy nauczyciel chętnie pomoże w rozwiązaniu problemu, z którym uczeń boryka się od jakiegoś czasu. Nie każdy ma jednak dostęp do kogoś doświadczonego gotowego na poświęcenie mu swojego wolnego czasu.

Dla takich osób kierowana jest możliwość skorzystania z pomocy forów przeznaczonych dla programistów. Jest ich całkiem sporo w Internecie, najpopularniejszym jest Stack Overflow . Na forach tego typu można łatwo uzyskać porady na doskwierające programiście problemy. Społeczności takich miejsc to pasjonaci, którzy z reguły lubią pomagać innymi oraz dyskutować o programowaniu. Warto spróbować skorzystać z ich pomocy, ale należy pamiętać, że nie zawsze znajdą oni odpowiedź na doskwierający problem, tym bardziej jeśli z podobnym pytaniem zwraca się wielu młodych programistów.

Artykuł powstał dzięki:

Coders Lab

Łącząc doświadczenie edukacyjne ze znajomością rynku pracy IT, Coders Lab umożliwia szybkie i efektywne zdobycie pożądanych kompetencji związanych z nowymi technologiami. Skupia się się na przekazywaniu praktycznych umiejętności, które w pierwszej kolejności są przydatne u pracodawców.

Wszystkie kursy odbywają się na bazie autorskich materiałów, takich samych niezależnie od miejsca kursu. Dzięki dbałości o jakość kursów oraz uczestnictwie w programie Career Lab, 82% z absolwentów znajduje zatrudnienie w nowym zawodzie w ciągu 3 miesięcy od zakończenia kursu.


 

Do góry!

Polecane artykuły

22.09.2020

Comarch e-Sale, jako e-commerce na dobry ...