Z tego wpisu dowiesz się:
- co łączy programowanie z twórczością artystyczną?
- dlaczego tworzenie aplikacji słusznie nazywane bywa sztuką?
Programowanie i sztuka? Mogłoby się wydawać, że nie ma bardziej odległych od siebie światów. W powszechnej opinii developer to zawód zarezerwowany dla umysłów ścisłych, którzy pracują w oparciu o utarte schematy. Czy w tej dziedzinie jest miejsce na otwarty umysł i inspirację kojarzone z twórczością artystyczną? Jak się okazuje – owszem. Paul Graham w swoim eseju „Hakerzy i malarze” wylicza podobieństwa tych dwóch profesji. Co najważniejsze, podstawą obserwacji stało się własne doświadczenie – autor jest bowiem jednocześnie programistą i artystą. Oto niektóre wspólne elementy, jakie udało mu się wskazać.
Rozpoczynanie pracy od pustego płótna
Punktem wyjścia pracy malarza jest płótno, na które przenoszona jest powstała w umyśle koncepcja. Wymaga to ogromnej kreatywności, umiejętności abstrakcyjnego myślenia i łączenia w wyobraźni różnych elementów, które razem stworzą spójną całość. Nie inaczej jest w przypadku programowania. Programista ma do rozwiązania konkretny, abstrakcyjny problem, który wymaga znalezienia rozwiązania a następnie zmaterializowania go w postaci kodu.
Nadawanie kształtu wstępnemu szkicowi
Obraz rzadko powstaje „od ręki”. Proces twórczy nie jest wyłącznie zapełnianiem wstępnego zarysu. Do efektu końcowego artysta zwykle dochodzi metodą prób i błędów, zamalowując i zmieniając jego elementy a czasem całkowicie odchodząc od pierwotnego zamysłu. Powstawanie aplikacji często wygląda podobnie. Droga od wstępnego szkicu do efektu końcowego bywa wyboista i łączy się z ciągłym poszukiwaniem nowych pomysłów, niejednokrotnie robieniem kroku w tył, refaktoryzacją a czasem po prostu wyrzuceniem wszystkiego i rozpoczęciem pracy od zera.
Czerpanie inspiracji od innych
„Dobrzy artyści kopiują, wielcy kradną” – te słowa przypisywane Picassowi można odnieść zarówno do twórczości artystycznej jak i programowania. W dziełach największych mistrzów malarstwa wyraźnie da się zauważyć oddziaływania i wpływy innych artystów. Czerpanie inspiracji od innych to również powszechna praktyka wśród programistów. Sprawdzenie, czy dany problem został już przez kogoś rozwiązany, często pozwala zaoszczędzić wiele dni lub tygodni pracy. Część koderów dzieli się również swoimi fragmentami kodu np. na GitHub chcąc poprawić dane elementy w oparciu o pomysły innych użytkowników.
Konieczność głębokiej koncentracji
Dlaczego developer ze słuchawkami na uszach to tak powszechny widok? Otóż programowanie wymaga ogromnego skupienia uwagi. Nie jest tajemnicą, że najlepsze rozwiązania skomplikowanych problemów przychodzą do głowy, kiedy jesteśmy w stanie głębokiej koncentracji a czas płynie niepostrzeżenie. Artyści również znani są z wchodzenia w strefę „flow”, podczas której spędzają godziny lub wręcz dni na nieprzerwanej pracy nad swoim projektem. Stworzenie arcydzieła wymaga czasu, niezależnie od tego, czy dotyczy to programowania czy twórczości artystycznej.
Programowanie kojarzy się głównie z analitycznym myśleniem, precyzją i naukowym podejściem. To jednak tylko część prawdy. W rzeczywistości przekucie pomysłu w kod wymaga również wiele kreatywności i innowacyjnego podejścia. Być może więc koderowi i artyście bliżej do siebie niż zwykło się uważać? W końcu nawet Leonardo da Vinci, oprócz swoich wielu twórczych profesji, był przecież jednocześnie inżynierem.