Z tego wpisu dowiesz się:
- co mają ze sobą wspólnego kompozytor i koder?
- dlaczego wielu programistów to muzyczni pasjonaci?
Kompozytor i programista? Na pierwszy rzut oka trudno wyobrazić sobie bardziej odległe od siebie zawody. Tymczasem tworzenie muzyki i kodowanie mają więcej wspólnych cech niż mogłoby się wydawać. Nie bez powodu wśród programistów jest tylu melomanów a wielu z nich potrafi również grać na jakimś instrumencie. Znanych jest także wiele przykładów profesjonalnych muzyków, którzy skuszeni finansowymi perspektywami (lub zmuszeni koniecznością płacenia rachunków), z powodzeniem „nawrócili się” na kod. Jakie zatem części wspólne mają te dwie, na pozór tak różne, dziedziny?
Solidne podstawy teoretyczne
Zarówno tworzenie muzyki jak i programowanie nie są możliwe bez solidnej teoretycznej bazy. W przypadku kompozytora będzie nią świetna znajomość notacji muzycznej, koder z kolei musi dobrze poznać ogólne zasady rządzące programowaniem. Tylko postępowanie według tych ogólnie przyjętych reguł sprawi, że poszczególne elementy kompozycji lub kodu będą ze sobą współpracować i staną się zrozumiałe dla innych. Tak jak źle skonstruowana struktura akordu stworzy dysonans, tak program napisany bez dbałości o reguły będzie pełen bugów.
Budowanie czegoś większego z małych elementów
O wielkości kompozytora świadczy m.in. precyzyjne dopracowanie każdego akordu. Nie da się stworzyć arcydzieła bez żmudnego wyćwiczenia podstaw, takich jak skale czy appreggio. Podobnie, aby być świetnym koderem trzeba spędzić wiele czasu upewniając się, że każdy najmniejszy element programu jest poprawnie i elegancko zakodowany. Zarówno w przypadku programisty jak i twórcy muzyki, małe fragmenty, z których niczym z klocków budowane jest dzieło, często decydują o tym, jakiej jakości będzie finalny produkt.
Zdolność do całościowego widzenia skończonego dzieła
W obu tych dziedzinach niewielkie elementy służą budowaniu większej całości, której obraz zarówno kompozytor jak i koder muszą stworzyć w swojej głowie. Łatwo przewidzieć, jak wyglądałby finalny efekt pracy pierwszego z nich, gdyby nie potrafił wyobrazić sobie, jak będą brzmieć razem muzycy sekcji poszczególnych grup instrumentów, zanim jeszcze usłyszy ich na żywo. Podobnie programista przystępując do pracy musi oczami wyobraźni widzieć swoje dzieło w całości.
Wypadkowa pracy indywidualnej i zespołowej
Wbrew stereotypowym wyobrażeniom zarówno piszący muzykę jak i programy niewiele mają wspólnego z ekscentrycznymi samotnikami. Owszem, indywidualny aspekt pracy w obu tych przypadkach jest niezwykle istotny, jednak kompozycja muzyczna tworzona bez współpracy z tymi, którzy będą ją wykonywać to wyłącznie sztuka dla sztuki. Podobnie jest z programowaniem. Nie bez powodu od koderów współcześnie oczekuje się rozwiniętych umiejętności komunikacyjnych. Zwykle bowiem są oni częścią wieloosobowych zespołów i oprócz wykonywania samodzielnej pracy, ich codzienność stanowi współpraca z użytkownikami, testerami, projekt managerami itd.
Biegłość techniczna
Nowe technologie, wkraczające w kolejne dziedziny naszego życia, nie ominęły również muzyki. Coraz częściej instrumentaliści poszukujący nowych brzmień i dźwięków muszą posiadać niemałą wiedzę techniczną, umożliwiającą im korzystanie choćby z coraz bardziej zaawansowanych wzmacniaczy czy mikserów. Z kolei samo tworzenie muzyki za sprawą szeregu narzędzi, jakie oferują najnowsze technologie, w coraz mniejszym stopniu przypomina komponowanie z epoki Mozarta, za to coraz bliżej mu do… programowania.
Oczywiście stwierdzenie, że wszyscy programiści mają warunki do tego, aby zostać muzycznymi wirtuozami, a każdy absolwent Akademii Muzycznej może osiągnąć mistrzostwo w kodowaniu to zbyt daleko idący wniosek… Mimo wielu wspólnych obszarów, trudno odmówić tym dwóm dziedzinom znaczących różnic. Trudno jednak nie zgodzić się z faktem, że dobre programowanie jest sztuką, z kolei czym innym jest zapis nutowy, jeśli nie rodzajem kodu?
Macie w swoim otoczeniu programistów – muzyków? Zgadzacie się z tezą, że tym dwóm dziedzinom szczególnie do siebie blisko?