Komputery, oprogramowanie, internet i okolice
Blog > Komentarze do wpisu

Programowanie to sztuka (popełniania błędów)

zanWiele osób, które nigdy nie programowały, nie potrafi zrozumieć cóż tak niesamowicie fascynującego jest w siedzeniu nad edytorem i wklepywaniu tych wszystkich "dziwacznych znaczków". A przecież fakt, że programowanie jest fascynujące nie ulega żadnej wątpliwości. Jeśli byłoby inaczej, nikt normalny nie ślęczałby tyle czasu przed monitorem i klawiaturą (i proszę mi tu nie mówić, że programiści są nienormalni!).

Zostań (s)twórcą

Któż by nie chciał mieć zaczarowanego ołówka? Możliwości tworzenia rzeczy na zawołanie? A programowanie właśnie taką możliwość daje. W jednej chwili jest tylko pomysł, a kilkadziesiąt/kilkaset linii kodu później już coś jest. Coś działąjącego. Jeśli jeszcze nie w pełni funkcjonalnego to przynajmniej zalążek, prototyp narzędzia, aplikacji, serwisu. I już można zakrzyknąć jak szalony naukowiec (w zasadzie to jak szalony inżynier): "IT'S ALIVE!" i wybuchnąć diabolicznym śmiechem.

Tak! To my powołujemy byty, idee do życia, systematyzujemy i hierarchizujemy, nazywamy, nadajemy nowe znaczenia i ustalamy reguły. Zamykamy fragment świata w naszym kodzie, przejmując nad nim kontrolę. Całkowita wolność w kreowaniu, ograniczona jedynie naszą wyobraźnią (oraz czasem, wiedzą, umiejętnościami, użytym językiem i bibliotekami, mocą procesora...).

Baw się i ucz jak dziecko

Programowanie pozwala poczuć się znowu jak dziecko. Pamiętacie jak bawiliście się klockami, rysowaliście? Widzicie jak się bawią wasze dzieci? Ten stan zaaferowania, pełnego pochłonięcia w zabawie. Ciągłe eksperymentowanie i sprawdzanie nowych rozwiązań. Bez stresu, poczucia presji, że musi się udać, bez uczucia strachu przed pomyłką, bez poczucia winy, czy wstydu. Bez tych wszystkich negatywnych uczuć jakie powstrzymują dorosłych przed działaniem.

Programowanie pozwala zanurzyć się bez reszty w pracy nad kodem. Wszystko inne przestaje być ważne i człowiek zaczyna myśleć kodem, algorytmami, strukturami danych i wzorcami projektowymi. A w snach pojawiają się diagramy UML pokazujące jak zaprojektować najtrudniejsze elementy. Jak mistrz Zen pochłonięty do reszty w medytacji.

W programowaniu błąd jest czymś całkowicie normalnym i powszechnym. Nie ma praktycznie możliwości napisania czegoś bardziej skomplikowanego od Hello World bezbłędnie. Zawsze pojawi się jakiś błąd. Literówka, błąd logiczny, błąd w założeniu lub projekcie, nieprzewidziane początkowo zdarzenia lub warunki, czy zachowanie użytkownika. Ale nie trzeba się przejmować. Jesteśmy tylko my, nasz kod, kompilator, debugger i logi. Możemy do woli zmieniać i poprawiać kod aż będzie poprawny (lub przynajmniej akceptowalny).

Powiem więcej, część technik tworzenia oprogramowania (patrz TDD) wręcz zachęca do tego by całe pisanie kodu rozpoczynać od popełniania błędów. A przecież bez błędów nie ma efektywnej nauki. Każdy popełniony błąd zbliża nas do rozwiązania problemu. Każdy popełniony błąd to weryfikacja nowej hipotezy. Każdy popełniony błąd to nowa, zweryfikowana empirycznie wiedza pozwalająca pisać jeszcze lepszy kod.

Gonienie króliczka

Programowanie ma w sobie coś z filozofii wschodu. To ciągły rozwój i doskonalenie siebie oraz kodu. To ciągłe dążenie do celu, bez możliwości dotarcia do niego. To ciągłe dążenie do doskonałości, której osiągnąć się nie da. Zawsze jest jakiś błąd do poprawienia, jakaś funkcja do dodania, fragment kodu do zoptymalizowania, czy zrefaktoryzowania. Zawsze może być lepiej, szybciej, czytelniej, bardziej przenośnie, bezpieczniej.

I właśnie to jest niesamowicie pociągające. Ciągłe wyzwania, nieustający impuls do rozwijania się by móc jeszcze sprawniej wyrazić swoje myśli w kodzie.

Szarady

Jeśli ktoś nadal nie jest przekonany, dlaczego programowanie daje tyle radości, niech pomyśli o rozwiązywaniu krzyżówek, sudoku, zagadek, szarad. W końcu nic nie daje większej satysfakcji niż wygrana - znalezienie rozwiązania problemu, trudnego problemu. A programowanie to właśnie taka ciągła gra w tworzenie i rozwiązywanie problemów, coraz trudniejszych i bardziej skomplikowanych.

Poszukiwanie piękna

Na koniec coś, co dla osób nie mających styku z programowaniem, może być trudne do zrozumienia. Kod może być piękny. Tak samo jak piękny może być wiersz, książka, obraz, rzeźba czy muzyka. Piękne może być rozwiązanie skomplikowanego problemu w kilku linijkach zwięzłego kodu. Piękny może być sposób podejścia do całej klasy problemów. Piękne bywają algorytmy, wzorce projektowe. Trzeba tylko chcieć to piękno zauważyć.

środa, 10 lutego 2010, kosciak1

Polecane wpisy

  • Quake MDL Loader

    Cóż... Na starość człowiek geeczeje, a do głowy przychodzą różne głupie pomysły. I tak zamiast kończyć przygotowania do wydania nowej wersji Python Window Organ

  • PIL i pango + cairo - renderowanie tekstu w Pythonie

    Niedawno poproszony zostałem o pomoc w przygotowaniu fiszek (z ang. flashcards ). Zadanie wydawałoby się proste, cóż może być trudnego w wygenerowaniu plików gr

  • Python Window Organizer - wersja 0.2

    Moja aplikacja Python Window Organizer (w skrócie PyWO ) doczekała się nowej wersji! Zmiany w PyWO 0.2 Zmiana licencji na GPLv3 - zauważyłem, że python-xlib ,

TrackBack
TrackBack w tym blogu jest moderowany. TrackBack URL do wpisu:
Komentarze
2010/02/10 21:22:11
Napatrzyłem się w życiu na koderów (z demosceny). Znałem takich speców, że szczęka opada. Charlie siadał do assemblera i "z palca" walił długaśne programy, które działały od pierwszego uruchomienia. Razu pewnego widziałem, jak Fox i Eru pisali i poprawiali kod intra na papierze. Bez komputera. Wygrali wtedy compo.

Dla mnie niestety to programowanie składało się głównie z debuggowania, co ostatecznie sprawiło, że nie zostałem programistą. Choć kilka "dzieł" na koncie mam (jedno nawet w assemblerze) i nawet jedno wygrane scenowe compo (fake demem). ;)
-
2010/02/10 21:32:04
Dobry art :). Generalnie jestem zdania ze niektorym brakuje finezji i dlatego zajmuje sie grafika. Przy rysowaniu nowego layouta tez jest mnostwo zabawy :). Pozdrawiam pozytywnego ziomka

-
2010/02/10 21:45:28
KosciaKu, czy dla Ciebie tydzień bez głównej na wykopie to tydzień stracony? :P
-
2010/02/10 21:49:18
@ochman - na razie to dopiero trzecia notka na głównej w historii bloga.
Do osiągnięć Niebezpiecznika (których chyba każda notka trafia na główną) jeszcze mi trochę brakuje :-D
-
2010/02/10 21:50:37
Cholera toz to znaczy ze autor bloga ma parcie na wykop xD
-
Gość: Mecromon, *.adsl.inetia.pl
2010/02/10 22:17:14
Ja jako programista, zawsze porównuje programowanie do malowania obrazu, lub tworzenia rzeźby.
Programista to też artysta. Oczywiście, mimo że aspekt finansowy też się pojawia, jednak najważniejsza w programowaniu jest przyjemność z tworzenia oraz rozwiązanych problemów ( ja to nazywam łamigłówkami, ponieważ aby jakaś funkcja zwracała nam to co chcemy, to niekiedy trzeba naprawdę ostro użyć mózgownicy :) )

Pozdrawiam wszystkich programistów.
-
2010/02/10 23:06:17
Dobry wpis ;] Ładnie przedstawione programowanie, może się skusze i zacznę znów się tym bawić ;] A i ten box 'wykop efekt' w AdTaily.com wymiata xD
-
2010/02/10 23:12:29
Kosciak: zapraszamy do wstapienia w szeregi Niebezpiecznik.pl ;-)
-
Gość: krzysia, *.multi-play.net.pl
2010/02/10 23:27:05
Swietnie ujete - to sa dokladnie moje odczucia. Niestety zabawe czesto a w zasadzie prawie zawsze psuje presja czasu i pozostaje niedosyt ze mozna bylo cos zakodowac lepiej.
-
Gość: J., *.barbara.ds.polsl.pl
2010/02/11 02:01:58
A ja najbardziej w programowaniu lubię to, że mogę zmusić komputer - tą irytującą i uwielbiającą robić niemiłe niespodzianki maszynę - do zrobienia dokładnie tego, czego sobie życzę.
Pozdrawiam programistów obu płci ;)
-
Gość: rocichy, *.neoplus.adsl.tpnet.pl
2010/02/11 07:13:19
Do Mnie trafiło najbardziej te dzieci co układaja klocki i właśnie ja jestem takim dzieckiem :)
Również pozdrawiam wszystkich programistów.
-
Gość: 01, *.inqbator.poznan.pl
2010/02/11 09:07:56
kiedy AI zacznie kodowac pojdziecie z torbami:)
-
Gość: programista, *.124.6.180.szara.net.pl
2010/02/11 10:17:51
Ja najbardziej w programowaniu lubie zarobki;]
-
2010/02/11 10:56:26
Nie zgadzam się, od dawna się nie zgadzam:
tomash.wrug.eu/2009/03/28/programmer-is-not-a-poet.html
-
Gość: Henryk, *.chello.pl
2010/02/11 11:16:43
Piękne, ale dotyczy raczej programowania "sportowego". Takiej sztuki dla sztuki. Zawodowy programista ma deadliny. Ciągła presja czasu. Ciągłe kompromisy - pomiędzy pięknym i optymalnym kodem, a szybkimi łatkami i uproszczeniami. Dodatkowo często wiele problemów nie jest trudnych (rozwiązywanie tych trudnych daje najwięcej satysfakcji) - za to jest żmudnych - klient często życzy sobie w aplikacji całego mnóstwa różnych drobnych funkcji, każda z nich jest dziecinnie prosta do wykonania, ale zrobienie wszystkich i ich wzajemna interakcja, do tego przewidzenie i obsłużenie wszystkich możliwych "ścieżek klikania" użytkownika wydaje się czasem syzyfową i demotywującą pracą. Programowanie jest piękne - czasami. Odpowiadając jednemu z gości: zarobki? Hm, słyszałem, że admini zarabiają więcej, chociaż pracy mają o wiele mniej. Programiści nie mają życia. Nie mają na nie czasu. Zarobki w porównaniu z ilością pracy nie są aż takie dobre.
-
2010/02/11 21:54:21
Henryk, ale sportowiec też ma "deadliny", presję czasu, itd. ;)
-
Gość: hobby_developer, *.neoplus.adsl.tpnet.pl
2010/02/11 22:02:42
Uwielbiam programować, ta praca daje dużo satysfakcji. Niestety szkoda, że szkolnictwo ukazuje programowanie negatywnie, często tylko jako ukazanie możliwości rozwiązywania matematycznych zadań przez komputer. Wiele osób mogłoby się zainteresować programowaniem, ale gdy zastraszy się ich zadaniami matematycznymi i podchwytliwymi zagadkami typu "Co wyświetli ten program" w których jest nietypowy błąd (często niewidoczny w kodzie, tylko np. zależący od "cechy optymalizacji dokonywanej przez kompilator") to potem nie chcą mieć z programowaniem nic wspólnego i postrzegają programistów jako dziwnych ludzi. Niestety szkoła prawdziwego 'piękna programowania' nie ukaże ...
-
Gość: bg, *.wroclaw.mm.pl
2010/02/11 23:40:31
Szkoda tylko, ze rzeczywistosc jest nieco brutalna. Jest klient, jest termin, sa ciagle zmieniajace sie wymagania. Chcialoby sie zaprojektowac i zrobic piekny program. Aleza zwyczaj robote trzeba zrobic 'na wczoraj' i caly program sklada sie z brudnych hakow, no i ma nieco bledow.
-
2010/02/12 02:00:04
Moim zdaniem programowanie nie jest dość dochodowym interesem w polsce (no chyba, ze działasz dla siebie), jeśli pracujesz dla jakiejś firmy to korporacje za projekty biorą potężne pieniądze, a ty programisto dostajesz ziarenko z tego. Dlatego nie wybrałem programowania. Co innego zrobić swój projekt i sprzedać. Pozdrawiam nie programistów.
-
Gość: Maff, *.sm-rozstaje.pl
2010/03/08 17:42:33
dobry tekst, mnie wciąga zazwyczaj na całą noc. I najbardziej jara kiedy po 5h męczenia z kompilatora nie wyskakuje ani jeden warn a wszystko działa jak to miałem w głowie.
Pozdrawiać
-
Gość: deska, *.city-connect.pl
2010/03/09 20:28:09
Zaczęłam czytać ten tekst z nadzieją że mnie wreszcie zachęci do programowania ale okazało się że to bełkot jakiegoś kolejnego komputerowego geeka albo innego nerda. Programiści/informatycy tylko siedzą 24h przed kompem, mają nadwagę, nie myją się, ubierają się gorzej niż w latach 80-tych, nie potrafią rozmawiać z ludźmi lub wkurzają wszystkich swoja gadką. Taka jest prawda dla 80% programistów.
-
Gość: notaktak, *.szczecin.mm.pl
2010/08/07 11:40:47
"Gość: deska, kate.city-connect.pl

Zaczęłam czytać ten tekst z nadzieją że mnie wreszcie zachęci do programowania ale okazało się że to bełkot jakiegoś kolejnego komputerowego geeka albo innego nerda. Programiści/informatycy tylko siedzą 24h przed kompem, mają nadwagę, nie myją się, ubierają się gorzej niż w latach 80-tych, nie potrafią rozmawiać z ludźmi lub wkurzają wszystkich swoja gadką. Taka jest prawda dla 80% programistów"


Czy mi sie wydaje , ze Twoj chlopak jest takim wlasnie informatykiem/programista ?
-
2012/06/12 09:24:59
Ładnie napisane, podobnie myślę o programowaniu jak autor tekstu. Dziś już jako zawodowy programista jednak widzę że czasem rzeczywistość zabija pasję, gdy kolejny raz trzeba zmieniać coś co w naszej ocenie działało już idealnie, bo osoby z biznesu zamawiając soft źle nam to wytłumaczyli lub im się coś odwidziało. Tak na prawdę to pisząc jedynie dla siebie można mieć to zupełne poczucie wolności tworzenia, tylko że brakuje wtedy tej specyficznej radości gdy coś co stworzymy jest przydatne innym. Reasumując wolę jednak pisać dla innych, daje to dużo satysfakcji, również tej przeliczalnej.
-
2012/06/12 19:56:07
@Extern
Dlatego właśnie dobrze łączyć przyjemne z pożytecznym i rzeczy pisane dla siebie udostępniać innym.
-
Gość: kamil, *.koba.pl
2012/10/26 10:16:57
Fajnie piszesz. Zwięźle i ciekawie. No no.
-
2012/12/31 23:16:56
Dokladnie
Spis Treści
Kanały RSS
Add to Google
Add to Netvibes