Czy dobry programista może jednocześnie być dobrym pisarzem?

1

...bo jeśli nie, to nie można zrobić doskonałej gry z gatunku "story rich" jako one man team, trzeba co najmniej programisty i scenarzysty ;P

Nie ale poważnie, zastanawiam się, czy naprawdę te dwa zajęcia nie wymagają zupełnie przeciwnego, kurczę brakuje mi słowa po polsku :( "mindsetu".

No bo tak. Jeśli chodzi o programowanie, no to mamy chyba taką paradoksalną zależność, że im pilniej stosujemy się do jak najbardziej rygorystycznych i jak najbardziej ograniczających zasad pisania kodu ("Clean Code" i inne takie tam), to tym lepsza jest jakość kodu i tym bardziej wynikowy program jest elastyczny. Wszelkie nowinki, wszelki luz podczas pisania są jak najniemilej widziane. Toż to czysty cowboy coding przecież.

Czy można w ten sposób napisać powieść? Komiks? Scenariusz do filmu, gry? Można. Ale to będzie wtedy rzemiosło. Czyli, jakość nie wyjdzie raczej ponad dostateczną.

Jeśli natomiast by się chciało napisać coś naprawdę dobrego... a, to trzeba umieć połączyć ogień i wodę. Tak - struktura, logika, porządek są ważne. Ale nie mniej ważna jest zabawa formą, kreatywność, twórcze łamanie konwencji, itp. Aha, czyli dokładnie to, co w programowaniu prowadzi do "unmaintanable mess".

W pisaniu kodu ważny jest porządek, porządek, porządek. W pisaniu fabuły ważny jest twórczy chaos i twórczy bałagan, zrównoważony z porządkiem. W pisaniu kodu "twórczy chaos" jest czymś tak niemile widzianym, że należałoby całkowicie wyczyścić swój umysł zeń.

W pisaniu kodu należy redukować złożoność. Na ile to możliwe, byleby tylko nie zacząć łamać reguł, bo niektóre z nich niestety z konieczności dodatkową złożoność wprowadzają (dependency injection vs strukturalnie prostsze obiekty globalne i statyczne na ten przykład). W fabułopisarstwie złożoność, byle z głową, nierzadko wręcz sama podnosi jakość.

Zatem... te dwa zajęcia wymagają... przeciwnych cech osobowości? Przeciwnego sposobu myślenia? Umiejętności, których mistrzowskie opanowanie wyklucza się wzajemnie?

Uff... I tak udało mi się pokazać na forum swoją zdolność do dziwnych rozważań i dzielenia włosa na czworo ;P

Nie ale poważnie, co o tym temacie można sądzić?

4

A czy dobry kucharz może być dobrym kierowcą?

0

Czy dobry programista może być dobrym inwestorem?

6

Mam wrażenie że nie wiesz kim jest programista, ani kim jest pisarz.

Dobry programista zna zasady pisania czystego kodu i wie też, że należy je czasem nagiąć, albo i w ogóle złamać.
Co do pisania fabuły - zadziwiające, jak często ten chaos o którym wspominasz to domena słabych fanficów których nikt poza autorami nie czyta. Jakieś wstawki o wietrze goniącym spienione fale to znak słabego warsztatu, nie twórczego nieładu.

Ot taki Another World - gra uznawana za bardzo "artystyczną", zarówno pod względem fabuły jak i prezentacji - została stworzona przez dwie osoby - muzyka i człowieka od całej reszty. Warto dodać, że to było w czasach gdy nie istniały frameworki do tworzenia gier, co tym bardziej jest imponujące.

2

Nie znam się na pisarstwie, ale "W pisaniu fabuły ważny jest twórczy chaos i twórczy bałagan, zrównoważony z porządkiem." wydaje mi się podejrzane i że mimo wszystko oprócz chaosu występuje
porządek i struktura: https://www.nownovel.com/blog/novel-structure-writing-tips/, https://www.coursera.org/specializations/creative-writing (chyba, że to masz na myśli wspominając o "rzemiośle" ? )

1

Kiedyś gry pisały o wiele mniejsze zespoły, tak jak wspomniał @wartek01 i niektóre z tych gier do tej pory zachwycają fabuła, ludzie grają w nie nadal przecież nie z uwagi na kiepską grafikę ;)
Co do bycia dobrym pisarzem to wielu programistów pisze fachowe książki lub artykuły które czyta się z przyjemnością, pisarze fikcji mogliby się od nich uczyć

3
GN napisał(a):

A czy dobry kucharz może być dobrym kierowcą?

To jest trochę inna sytuacja - kierowca oraz kucharz są całkowicie z innych bajek.

Natomiast OP ma trochę racji - sposób pisania w przypadku pisania tekstów oraz kodu jest całkowicie odmienny.

Pisząc programy starasz się być zwięzły, przekazywać myśli w sposób prosty, bez zbędnych ozdobników, niepotrzebnych wstawek itp., skupiasz się na samym sednie problemu,

W wypadku literatury jest wręcz przeciwnie. Jakbyś wziął dowolną książkę, która ma np. 250 stron i pousuwał z niej wszystkie "opisy przyrody" oraz ozdobniki, miejsca opisujące rozterki bohatera, fragmenty budujące nastrój itp, to samej "czystej" akcji miałbyś może z 20 stron.

Tylko nie sądzę, żeby ktoś chciał czytać książkę napisaną w stylu:

Wszedł do biura. Ona tam była. Przywitali się. Po krótkiej rozmowie zaczęli się całować. Potem wyszli na zewnątrz. Padał deszcz, ale ogólnie było ładnie. Chodnik się błyszczał, ponieważ był mokry. Niebo w kolorze #7a9ce1, lekko zachmurzone wisiało nad nimi i obserwowało każdy krok, kiedy szli razem w kierunku południowego wschodu"

2

W pisaniu kodu ważny jest porządek, porządek, porządek. W pisaniu fabuły ważny jest twórczy chaos i twórczy bałagan, zrównoważony z porządkiem.

Jak to czytam, to szczerze wątpię, czy kiedykolwiek napisałeś jakiś program, jak również czy napisałeś chociaż opowiadanie...
W pisaniu kodu nader często najpierw mam chaos, który w trakcie prac zmienia się w większy chaos, by w efekcie na koniec ogarnąć i zmniejszyć ogólny chaos. Prawie nigdy jednak chaos nie zostaje wyeliminowany całkowicie.

Za to jeśli chodzi o "twórczy chaos i twórczy bałagan", tak potrzebny w tworzeniu fabuły, to IMHO to nie jest chaos. Twórczy chaos oznacza porządek, który dla osoby postronnej wygląda jak chaos, bo nie zna całości. Jeśli po skończeniu książki wciąż masz wrażenie chaosu, oznacza to prawdopodobnie, że przeczytałeś kiepską książkę i po jej skończeniu czujesz się źle i nie chcesz nigdy do niej wracać.

1

Mój kod jest jak dobra powieść kryminalna - trup ściele gęsto, wszyscy są podejrzani a na końcu okazuje się że sprawcą był główny bohater (czyli ty mój drogi czytelniku!) :D

0

Zalazy co dla kogo znaczy dobry w tym ujeciu. Przyklad:

https://pl.wikipedia.org/wiki/Andy_Weir

Albo jeden z moich ulubionych pisarzy, wprawdzie nie informatyk, ale umysl scisly. Obstawiam ze nie mialby problemow z wejsciem do naszej branzy gdyby chcial:

https://pl.wikipedia.org/wiki/Marek_S._Huberath

0

W pisaniu powieści nie ma żadnego chaosu. Trzeba sobie wszystko ustalić i usystematyzować, najpierw stworzyć zarys potem to rozwijać o kolejne elementy. Chaotycznie można napisać co najwyżej jakiś fragment rozdziału, mini opowiadanko, ale nigdy nie będzie to nic porządnego. To ciężka umysłowa praca. Trzeba być mocno skoncentrowanym i wiedzieć co robić i co chce się stworzyć. Nic nie wyłania się samo z "chaosu". Myślisz, że A.Sapkowski stworzył by tak duży, rozbudowany i skomplikowany świat przygód Wiedźmina gdyby pracował w chaosie? Myślisz, że Adam Mickiewicz napisałby kilkusetstronową epopeję trzynastozgłoskowcem będąc roztrzepańcem? Nie ma opcji. Stworzenie takiego dzieła wymaga dużej dyscypliny.
Dobrego ciekawego pisania można też się nauczyć tak samo jak programowania.

0

Moim zdaniem na poziomie podstawowym i programista, i autor mogą wydawać się podobni w tworzeniu dzieła od strony koncepcyjnej. Gdy wchodzimy na wyższe poziomy abstrakcji / rozmiaru dzieła, widać różnicę – ale jedynie w tym, że programista (architekt systemu już?) koncentruje uwagę na trochę innych rzeczach niż autor powieści. A może na tych samych? Nigdy nie pisałem powieści. Architektem systemu też nie byłem.

A może… może chodzi o to tzw. myślenie analityczne? Choć wydaje się, że i tu jest coś podobnego u pisarzy-artystów (pisarzy-rzemieślników). Sam już nie wiem. Może pisarze częściej korzystają z intuicji? Może raczej: z tej intuicji, którą większość rozumie? Dziwne to.

Weźmy wiersze. Wiersze to nie powieści. Przy wierszach czasem można powiedzieć: tak, chaos. Autor sam nie do końca wie, skąd się to mu wzięło. Przyszło, to zapisał. Może to bardziej chodzi o poezję z tym chaosem?

0

To nie jest związane z chaosem czy nieporządkiem a bardziej ze specyficznym stanem świadomości. Większość z nas wie co to jest "dotknięcie Boga" przy paleniu zioła czy spożyciu nadmiernej ilości alkoholu. W tym jesteśmy podobni - im bardziej "inny" jest nasz stan świadomości tym bardziej jesteśmy kreatywni i doskonalsi w tym co robimy. Jesteśmy szamanami - każdy z nas właściwego boga. To przywilej i zagrożenie dla istoty duszy. Stąpajcie więc ostrożnie nowi adepci sztuki tajemnej!

PS: Dlatego warto zadbać o to by mieć w rodzinie lekarza albo chociaż farmaceutę :]

0

im pilniej stosujemy się do jak najbardziej rygorystycznych i jak najbardziej ograniczających zasad pisania kodu ("Clean Code" i inne takie tam), to tym lepsza jest jakość
kodu i tym bardziej wynikowy program jest elastyczny. Wszelkie nowinki, wszelki luz podczas pisania są jak najniemilej widziane. Toż to czysty cowboy coding przecież.

Nie. Ja bym powiedział, że zasady trzeba najpierw zrozumieć, żeby je w ogóle stosować. Stosowanie zasad bezmyślnie "bo ktoś tak kazał" jest niemądre (no może poza rzeczami typu formatowanie, bo to i tak nie ma znaczenia czy będą tabulatory czy spacje).

Z drugiej strony, jak zrozumiesz zasady pisania kodu (np. SOLID, DRY i inne pierdółki), to zorientujesz się, kiedy i w jakim stopniu można je łamać.

No, nawet autor książki Clean Code pozwala sobie czasem na luz:
https://8thlight.com/blog/uncle-bob/2015/06/30/the-little-singleton.html

tym lepsza jest jakość kodu

Co to jest ta mistyczna jakość kodu? Nie widziałem jeszcze większego projektu, który by był idealny i nie miał w sobie miejsc, gdzie by było spaghetti. A jednak takie projekty działają, spełniają swoje założenia (oczywiście jakaś rozsądna jakość kodu jest potrzebna, mnie osobiście wkurza spaghetti, ale z drugiej strony nadmierne dążenie do "lepszej jakości kodu" to zwykła dewocja).

W pisaniu kodu ważny jest porządek, porządek, porządek. W pisaniu fabuły ważny jest twórczy chaos i twórczy bałagan, zrównoważony z porządkiem.

Przecież żeby był porządek musi być najpierw chaos. Często jest to chaos ukrywany. W Gicie tego czasem nie widać, bo ludzie squashują commity, albo w ogóle nie commitują tego, co się działo zanim napisali jakiś moduł. Git ci nie pokaże, że ktoś przesiedział ileś dni kombinując, myśląc, eksperymentując, debugując. Git pokaże ci często tylko to, co zamyka taska, przechodzi testy i nie psuje builda.

No i każdy większy projekt i tak będzie miał w sobie mnóstwo chaosu. Czasami jest to chaos szkodliwy, spaghetti powodujący opóźnienia w projekcie, a czasem jest to naturalny nieszkodliwy chaos, który po prostu musi się tam czasem znaleźć. Naturalny etap w rozwoju projektu.

W pisaniu kodu należy redukować złożoność. Na ile to możliwe, byleby tylko nie zacząć łamać reguł, bo niektóre z nich niestety z konieczności dodatkową złożoność
wprowadzają (dependency injection vs strukturalnie prostsze obiekty globalne i statyczne na ten przykład).

To zależy czy bardziej ci zależy w danym momencie na prostocie czy na elastyczności. Nie ma wcale dogmatu, że "zasad nie należy łamać". Zawsze coś się gdzieś łamie, trzeba po prostu się zastanowić co, kiedy i gdzie. Nawet zachowując wszystkie zasady i tak łamie się pewną zasadę. A mianowicie istnieją zasady "Done Is Better Than Perfect" albo "Make it work, make it right, make it fast" czy "Move fast and break things" czy YAGNI które przez perfekcjonizm chamsko złamiesz.

1
wartek01 napisał(a):

Jakieś wstawki o wietrze goniącym spienione fale to znak słabego warsztatu, nie twórczego nieładu.

No cóż, zgadzam się - kicz. Ale co powiesz o tym?

By inserting the barrel of an arruginated male key in the hole of an unstable female lock, obtaining a purchase on the bow of the key and turning its wards from right to left, withdrawing a bolt from its staple, pulling inward spasmodically an obsolescent unhinged door and revealing an aperture for free egress and free ingress.

który programista tak by pisał kod?

yarel napisał(a):

mimo wszystko oprócz chaosu występuje
porządek i struktura

Przecież sam o tym pisałem. oprócz.

aurel napisał(a):

Za to jeśli chodzi o "twórczy chaos i twórczy bałagan", tak potrzebny w tworzeniu fabuły, to IMHO to nie jest chaos. Twórczy chaos oznacza porządek, który dla osoby postronnej wygląda jak chaos, bo nie zna całości. Jeśli po skończeniu książki wciąż masz wrażenie chaosu, oznacza to prawdopodobnie, że przeczytałeś kiepską książkę i po jej skończeniu czujesz się źle i nie chcesz nigdy do niej wracać.

Hmm... Bruno Schulz? Nie-Boska Komedia?

Tak, jest tam porządek. Ale ten porządek jakoś przeplata się z chaosem. Chaosem robionym z głową.

Jak by to powiedzieć, co mam na myśli... Weźmy las. Jak się go posadzi "od linijki", no to mamy szkółkę leśną, drzewka posadzone równiutko, wyrównane do siatki, metr odstępu. Wygląda paskudnie.

Las rośnie naturalny. Czy drzewa są równiutko? absolunie nie! entropia jest wyraźnie większa, mamy tu trochę chaosu... ale tak, oczywiście, jak zacznie się to badać, to odkryje się tam jakiś szczególny rodzaj porządku. Niemniej, jest to zupełnie inny porządek niż w przypadku szkółki leśnej. I wyraźnie jest więcej chaosu, mimo wszystko.

Silv napisał(a):

Moim zdaniem na poziomie podstawowym i programista, i autor mogą wydawać się podobni w tworzeniu dzieła od strony koncepcyjnej. Gdy wchodzimy na wyższe poziomy abstrakcji / rozmiaru dzieła, widać różnicę – ale jedynie w tym, że programista (architekt systemu już?) koncentruje uwagę na trochę innych rzeczach niż autor powieści. A może na tych samych? Nigdy nie pisałem powieści. Architektem systemu też nie byłem.

Ja wiem? Może.

Ale mimo wszystko upierałbym się w jednym.

Dobra powieść (w kontrolowany sposób!) narusza konwencje obowiązujące w gatunku. Nazywa się to "nowatorstwem". Mało tego, dobra powieść zaskakuje czytelnika i (w kontrolowany sposób) narusza konwencje ustalone przez siebie samą. Mało tego, w dobrej powieści nie wszystko jest oczywiste, do wielu jej elementów czytelnik musi dotrzeć sam, rozwikłując fabułę. W kryminałach jest to najbardziej oczywiste. Był taki cytat, którego nie pamiętam, więc z konieczności muszę go przedstawić własnymi słowami: Dobra książka to taka, która nieważne, ile razy ją przeczytasz, zawsze ma ci coś więcej do powiedzenia.

A w kodzie? Nie należy łamać konwencji, ani obowiązujących ogólnie, a już tym bardziej ustalonych przez projekt, chyba, że się nie ma innego wyjścia; Wszystko winno być, na ile to możliwe, oczywiste dla osoby czytającej.

0

A w kodzie? Nie należy łamać konwencji, ani obowiązujących ogólnie, a już tym bardziej ustalonych przez projekt, chyba, że się nie ma innego wyjścia; Wszystko winno być, na ile to możliwe, oczywiste dla osoby czytającej.

Ja na to odpowiem tak - książka musi być tak napisana, żeby czytający ją zrozumiał. Jeśli czytelnicy książki nie rozumieją, to generalnie kiepsko.

0

Moja odpowiedź tak może, podobnie jak to już w historii bywało, że wielu naukowców całkiem nieźle posługiwało się słowem pisanym. Ale robili to głównie do szuflady.
Znam co najmniej dwóch programistów którzy piszą tak że chce się czytać i ich twórczość wciągnęła mnie mocniej niż np Tokarczuk.

1
GN napisał(a):

A czy dobry kucharz może być dobrym kierowcą?

Są zawody które łączą dwie umiejętności w jednej osobie. Np. hydraulik. Jest wiele filmów o tym.

1 użytkowników online, w tym zalogowanych: 0, gości: 1