Pod nagłówkiem „ itp. ” Znajduje się coś, co z łatwością może zająć 50% lub więcej czasu.
Dowiedz się, jak debugować.
Oznacza to naukę metody naukowej . Mam na myśli naprawdę się go uczyć. A potem stosuję go z brutalną uczciwością . Naucz się, jak dokładnie określać, co wiesz, że jest prawdą, co wiesz, że nie jest prawdą, i te rzeczy, których nie znasz. Za każdym razem, niechlujnie przypisać element do niewłaściwej kategorii, właśnie się twoje życie dużo trudniejsze.
Naucz się mówić „myślę” zamiast „wiem”. Możesz powiedzieć „wiem” tylko wtedy, gdy „myślisz”, że coś jest prawdą (lub fałszem), a potem to udowodnisz!
Wiele błędów jest trywialnych, ale mogą być trudne do zobaczenia, ponieważ „wiesz”, jaki powinien być kod ... z wyjątkiem tego, że nie. Znajdź przyjaciela, aby to wyjaśnić. Poproś ich, aby byli „ekspertem idioty”: kimś, kto nie zna twojego kodu, ale kogo wiesz, że nie możesz zdmuchnąć BS. Nie zdziw się, jeśli w trakcie opisywania ich nagle zatrzymasz się i powiesz: „abyś mógł ... zobaczyć ... zobaczyć to ... cholera. Dzięki.”
Nietrywialne błędy wymagają arsenału technik. Klasykiem, który może szybko wykryć większość błędów niezwiązanych z czasem, jest Wolf Fence na Alasce. Gdzieś na Alasce jest wilk; zbuduj ogrodzenie przecinając państwo na pół. Po której stronie jest wilk? Przetnij tę stronę na pół. Spłucz, spłucz, powtórz. Wykonanie tego 20 razy w dobrze wybranych miejscach w kodzie zmniejsza obszar, w którym błąd (wilk) może wynosić do 1/1048576. Zabij tego wilka.
Wskazówka: szukaj fal ręcznych - fizycznych, umysłowych lub innego rodzaju. Gdy tylko Ty (lub Twój kolega) wzdrygniesz się / przekierujesz / zminimalizujesz uwagę poświęconą części kodu, idź całkowicie wściekły . Ponieważ obszar, w którym po prostu znasz błąd, nie może istnieć, mimo że spędziłeś godziny / dni na szukaniu d * mn i wciąż nie możesz go znaleźć ... to jest największe prawdopodobieństwo błędu. Nikt nie dostaje „do widzenia” , nikt (w tym maszyna, system operacyjny, kompilator lub ty ) nie otrzymuje żadnego „należnego szacunku”. Jest błąd. Kropka. Koniec zdania. A teraz idź zabij to d * mn.
Nie znam żadnej szkoły, która sama uczy debugowania. IMNSHO, może to być jeden z najbardziej rażących dowodów na to, że oni (uniwersytety / profesorowie) nie uczą cię bycia programistą, zamiast tego uczą cię bycia ... takim jak oni? Szorstki? Być może. Prawdziwe? Zdecyduj się. Teraz to udowodnij.