Prostota - Edsger Dijkstra

Prostota jest wielką zaletą

Prostota jest wielką zaletą, ale wymaga ciężkiej pracy, aby ją osiągnąć, i edukacji, aby ją docenić. Co gorsza, złożoność lepiej się sprzedaje.”

Edsger Dijkstra


Niedawno Boiling Frongs wypuścili nowe, fajne nagranie.

Sentencja jest zwięzła i gdyby się nad nią dłużej zastanowić, niesie za sobą olbrzymią ilość treści. Cała prelekcja jest bardzo dobra, a niżej linkuję do fragmentu który szczególnie mi się spodobał.

Boiling Frogs 2021 Jacek Lempart – Realizuj projekty oparte na pasji

If you’re good at the debugger it means you spent a lot of time debugging. I don’t want you to be good at the debugger.

Robert C. Martin

Mózg rządzi, czyli poziomy abstrakcji cz. 2

Kilka lat temu natrafiłem na bardzo ciekawy tekst na temat poziomów abstrakcji w komputerze. Dzisiaj przeczytałem równie ciekawy tekst na temat poziomów abstrakcji w postrzeganiu świata przez mózg człowieka.

Rzeczywistość kontra percepcja.

Rozejrzyj się dookoła. Wydaje Ci się świat takim, jakim jest? W filmie Matrix główny bohater może wybrać niebieską pigułkę i pozostać w wyimaginowanym świecie lub czerwoną i podążyć za białym królikiem to znaczy poznać świat rzeczywisty. Neo postanawia sprawdzić, jak głęboka jest królicza nora. Wybiera czerwoną pigułkę.

Przenosiny do prawdziwego świata okazały się złym wyborem. Nasz wyimaginowany świat jest od niego lepszy.

Już w starożytności filozofowie głowili się, skąd możemy wiedzieć, że to, co widzimy, istnieje naprawdę. Czym jest rzeczywistość? Jeśli mamy na myśli to, co możemy poczuć, wywąchać, posmakować i zobaczyć wówczas rzeczywistość to jedynie impulsy elektryczne interpretowane przez nasz mózg.

Do świata rzeczywistego mamy dostęp wyłącznie poprzez zmysły. To trochę tak jakbyśmy znaleźli się w skórze Neo. Rozumiemy, że to, co oko nam nie pokazuje, to uniwersalna jedyna właściwa odpowiedź na pytanie o prawdziwy świat a mózg za pomocą informacji napływających od zmysłów prezentuje nam jedynie jego spersonalizowany obraz. Ten obraz nazywamy percepcją lub postrzeganiem.

Nordenger Kaja „Mózg rządzi. Twój niezastąpiony narząd”

 

SMARTER czyli definicja celu według Prince2

„Prince 2” pozwolił mi trochę inaczej spojrzeć na definiowanie i osiąganie celów. Metodyka ta w swojej definicji dokonuje jasnego rozróżnienia między CELEM, a KORZYŚCIAMI związanymi z osiąganiem danego celu.

Uważam, że wielu z nas często popełnia ten błąd, że zamiast wyznaczać sobie cel, który będziemy osiągać wyznaczamy sobie korzyść jaką chcemy mieć. Łatwo się domyśleć, że od samego chcenia jakiejś korzyści ona sama się nie pojawi. Należy najpierw osiągnąć cel, w wyniku, którego odetniemy kupony z korzyściami.

Continue reading →

Poziomy abstrakcji

Kilka lat temu, ucząc się programowania w języku C++, natknąłem się na ten tekst.

„Komputery są jedynie urządzeniami elektronicznymi. Nie mają pojęcia o oknach czy menu, nie znają programów ani instrukcji, a nawet nie wiedzą nic o zerach i jedynkach. W rzeczywistości jedyne zmiany, jakie zauważają, to zmiany napięcia mierzonego w odpowiednich punktach układów elektronicznych. Nawet to jest dla nich pewną abstrakcją: w rzeczywistości elektryczność jest tylko wygodną intelektualną koncepcją dla zaprezentowania działania cząstek subatomowych, które z kolei są abstrakcją dla czegoś innego.”

„C++ dla każdego” Jesse Liberty

 

Szybciej, wolniej, wolniej

Poniższy fragment książki jest brutalną prawdą, esencją strasznej zarazy panującej w firmach, która z zimną krwią wyniszcza wszystko, co jej stanie na drodze.

Systematyczne lekceważenie planowania i projektowania prowadzi do rozwoju w cyklu „szybciej, wolniej, wolniej”.

Wygląda to mniej więcej tak:

  1. Błyskawicznie dostarczasz wersję 1.0, pisząc cały kod na kolanie.
  2. Budujesz wersję 2.0, na bieżąco rozwiązując problemy stwarzane przez uciążliwy bałagan w kodzie.
  3. Wraz z kolejnymi wersjami rozwiązywanie problemów ze starym kodem „na bieżąco” sprawia, że bałaganu przybywa, a praca staje się coraz wolniejsza. Wyrzyscy stopniowo tracą wiarę w system, programistów i całą sytuację, w której się znaleźli.
  4. Gdzieś w okolicach wersji 4.0 zdajesz sobie sprawę, że nie wygrasz. Zaczynasz rozważać opcję przepisania systemu od podstaw.

„Refaktoryzacja do wzorców projektowych” Joshua Kerievsky

Continue reading →

Znajomość wzorców projektowych

„Jeżeli nie znasz wzorców, prawdopodobieństwo stworzenia wielkiego, wspaniałego projektu jest na pewno mniejsze. Wzorce projektowe mają uchwycić pewną mądrość. Korzystanie z zasobów mądrości jest zawsze pożyteczne.”

„{…}, wzorzec jest jednocześnie rzeczą, która pojawia się w świecie rzeczywistym, i regułą, która mówi nam, jak stworzyć taką rzecz. Jej zaprojektowanie i zbudowanie należy do nas. Jest to zarówno proces, jak i rzecz; zarówno opis rzeczy, która żyje własnym życiem, jak i opis procesu, który prowadzi do jej powstania.”

„Refaktoryzacja do wzorców projektowych” Joshua Kerievsky