Wait, what?
Prawdopodobnie ukończyłaś/eś lub jesteś w trakie studiów budowlanych. Pozycjonujesz się jako inżynier budownictwa i dokładnie tak zawodowo widzi Cię Twoje otoczenie.
Eurokody, kosztorysy, WZ-tki, umowy, rzuty, przekroje, IFC’ki – to Twój chleb powszedni. Związek powyższych haseł z programowaniem wydaje się być równie odległy co Mars.
I tak dochodzimy do mojego rozumienia słowa “programista”, które zauważ, pozbawione jest doprecyzowania, wskazania jakiego języka używasz, czy zajmujesz się stroną wizualną czy logiką aplikacji.
Dla mnie programista to ktoś, kto potrafi rozwiązać lub znaleźć rozwiązanie problemu, kto jest w stanie zamienić ludzkie czynności na zbiór precyzyjnych instrukcji, kto potrafi zalgorytmizować problem.
Przypomnij sobie Twoje studia, spójrz na swoją pracę, niemal zawsze tworzysz lub wykorzystujesz reguły, algorytmy. Prześledź proszę niniejsze sytuacje:
- dostajesz wstępną geometrię obiektu, zakładane obciążenia, uwarunkowania środowiskowe. Po wykonaniu n-kroków wiesz jakie przekroje elementów są niezbędne, jaka klasa stali/betonu będzie odpowiednia, ile prętów trzeba włożyć w przekrój, żeby uniknąć scenariusza ‘Andrzej, to je*’,
- dostajesz wstępną dokumentację obiektu, wyłuskujesz z niej przyjęte gabaryty elementów, dopytujesz o szczegóły, zliczasz elementy, kalkulujesz za ile warto by wejść w ten temat.
Projekt po projekcie – podążasz podobnymi torami, na pewnym poziomie abstrakcji byłbyś w stanie wydzielić zasadnicze czynności, które są niezbędne do zakończenia zadania, jesteś w stanie zalgorytmizować Twój problem.
Prawdopodobnie robisz to w języku ‘ludzkim’, opowiadając Twoim nowym kolegom/koleżankom na czym polega praca, konsultując ze starszymi wyjadaczami czy podjęte przez Ciebie działania są odpowiednie. Tylko czy aby na pewno robisz to wyłącznie w języku ‘ludzkim’?
Excel
Porównaj proszę zestaw pustych komórek, które wyświetlają się po utworzeniu nowego pliku Excela z Twoim najbardziej zaawansowanym arkuszem do obliczeń/kosztorysowania. Ździebko inne, prawda? 🙂
Według mnie aktywne korzystanie z Excela jest pierwszym wyznacznikiem, że nadajesz się na programistę. Skoro na pewnym etapie doszedłeś do wniosku, że warto przenieść ręczne obliczenia porozrzucane na kilku kartkach A4 połączonych Twoim studenckim kalkulatorem Casio w ramy ustrukturyzowanego arkusza obliczeniowego to potrafisz algorytmizować problemy.
Aha, nie przejmuj się, że Twój arkusz potrafisz zrozumieć tylko Ty. Efekty pracy początkującego programisty zazwyczaj też takie są. Dopiero praca zespołowa niejako przymusza nas do wyjścia poza ramy własnych skojarzeń/przyzwyczajeń na rzecz dobrych praktyk.
Mathcad/SMath/Scilab/Matlab
Czyli zestaw mniej popularnych narzędzi, które jednak pojawiają się w różnych firmach budowlanych. Do jednego worka wrzuciłem całą rodzinę programów, jednak jeżeli miałeś/masz okazję pracować w którymkolwiek z nich to jesteś już o krok od wkroczenia na ścieżkę programisty. Każde z nich służy do instruowania procesora w Twoim komputerze jak powinny zostać wykonane obliczenia lub w jaki sposób mają zostać zaprezentowane ich wyniki.
W świecie idealnym powyższe programy powinny służyć do szybkiego prototypowania nowych pomysłów, algorytmów. Sprawny inżynier może z ich pomocą w stosunkowo krótkim czasie sprawdzić sensowność nowej koncepcji. Po pozytywnej pierwszej fazie warto zastanowić się co dalej, jedną z możliwości jest przejście na właściwe programowanie z wykorzystaniem jednego z dostępnych języków.
Grasshopper/Dynamo
Programowanie wizualne to stale rosnący trend ostatnich lat. Żeby zrozumieć fenomen tego podejścia polecam zapoznać się ze Scratch, którego uczą się uczniowe podstawówek.
Niesamowite możliwości testowania, generowania dawniej niemożliwych brył, spinania procesów przy pomocy bloków funkcyjnych – bajka, która w wielu inżynierskich przypadkach wystarczy, jednak w moim odczuciu ma istotne ograniczenia.
Warto odnotować fenomenalną pracę wykonywaną przez Krzysztofa Wojsława, który dzieli się wiedzą związana z Grasshopperem na stronach learngrasshopper.com oraz bimcorner.com. Drugim wartym polecenia źródłem Grasshopperowej wiedzy jest Marcin Woch, który prowadzi bloga: bimdigitz.com
Jeżeli korzystasz już z powyższych narzędzi to pewnie odczuwasz pewien niedosyt – wtedy świetnym krokiem jest wejście w ‘prawdziwe’ programowanie. Algorytmizować problem już potrafisz 🙂