Cześć!
Zajmiemy się dzisiaj rozwiązywaniem problemów, czyli odwieczną bolączką programistów. Nie jest tajemnicą, że ponad 50% pracy programisty to rozwiązywanie problemów 😉 Zwłaszcza takich, które stworzył ktoś inny, ale zdarza się też, że debugujemy własny kod… Niestety, rozwiązywanie problemów programistycznych to odwieczny problem. Na szczęście, istnieje wiele technik, dzięki którym ułatwisz sobie pracę nad dowolnym problemem 🙂
1. Rozbicie problemu na pierwsze części
Często zadania, jakie przed Tobą stoją, mogą być trudne do rozwiązania jako całość. Najlepiej przyjrzeć się wtedy problemowi i popatrzeć na niego jak na jednostkę -> rozbić na części pierwsze. Możesz zidentyfikować kluczowe kroki, funkcje lub moduły, aby ogarnąć, gdzie leży problem.
2. Debugowanie za pomocą kaczuszki
Sposób stary jak IT: wytłumaczenie komuś, co właściwie dzieje się z kodem, jak on działa i co próbujemy zrobić. Inna zasada takiego debugowania jest określenie 3 kroków:
a) co próbujemy zdziałać?
b) co dokładnie nie działa, w czym jest problem?
c) jakie są możliwe rozwiązania tego problemu?
Dzięki temu łatwiej nam będzie zrozumieć, co dokładnie ma robić ten kod.
3. Rozbicie kodu na części „po kolei”
Czyli zakomentowanie całego kodu i odkomentowanie po kawałeczku, by sprawdzić, w którym fragmencie kodu problem występuje. Nauczyłem się tego sposobu w swojej pierwszej pracy jako programista. To dość słuszna metoda pozwalająca nam określić, w którym kawałku kodu coś ewidentnie „nie zatrybiło” 😉
4. Kreatywne myślenie i eksperymentowanie
Gdy mamy przed sobą jakiś problem, często jesteśmy ‘zafiksowani’ na punkcie jednego rozwiązania, które ewidentnie nie działa. Może warto spróbować podejść problem od innej strony, może nie to o czym myślimy jest problemem? Wbrew pozorom programowanie to bardzo kreatywna dziedzina 😉
5. Optymalizacja i planowanie
Ta część bardziej odnosi się do tego, jak zapobiegać takim problemom. Ważne jest to, by nie iść na żywioł i zaplanować dokładnie, jak ten kod ma wyglądać. Ważna jest też optymalizacja kodu pod względem jego czystości: Odpowiednio napisany kod, który jest czytelny i przejrzysty, zapobiega takim błędom.
Ważne jest nie tylko samo rozwiązywanie problemów, ale debugowanie i zapobieganie im, o czym pisałem w jednym z poprzednich artykułów. Debugowanie kodu może być trudne, ale ‘problem solving’ zaowocuje nie tylko w postaci bycia dobrym programistą, ale i byciem osobą, która na co dzień nie ma problemu z decyzyjnością i rozwiązywaniem problemów dnia codziennego 🙂