Nikomu nie trzeba tłumaczyć, że informatyka i budownictwo to dwa odległe światy. Budownictwo osadzone głęboko w fizycznych realiach budowy a programowanie w wirtualnej przestrzeni spojonej Internetem. Jednak czy aby na pewno programowanie tak bardzo różni się od projektowania budynków i konstrukcji? Eric Schmidt, były CEO Google, początkowo studiował architekturę. Na pytanie Tima Ferrisa o powód zmiany kierunku (podcast) odpowiedział:

„ I’ve always liked building things, I’ve always likeD structure and I have always been pretty analytical. What’s interesting about computer science, IT’s about scale, scale of systems and organizing systems. … It is all the same stuff! It is the same skilL set!”

Być może słyszałeś takie terminy jak programowanie obiektowe czy tworzenie klas w odniesieniu do programowania. Jeśli przyjąć pewną analogię pomiędzy terminami z programowania i budownictwa:

  • pojedyncze czynności projektowe to programowanie funkcji
  • projektowanie elementów to programowanie obiektów
  • projektowanie budynków to tworzenie całych aplikacji

Wszytko zaczyna mieć sens. Programowanie to nic innego jak konstruowanie systemów, w których należy kontrolować przepływ informacji. Dobry program to taki, który jasno rozwiązuje dany problem, jest wolny od błędów i przygotowany na każdą ewentualność. Podobnie z budynkami, mostami i wszelkimi innymi wytworami architektów i budowlańców. W tym przypadku zamiast informacji należy kontrolować przepływ, czy raczej przenoszenie, sił i obciążeń wynikających ze sposobu użytkowania. Dobrze zaprojektowany budynek to taki, który zapewni niezawodność i bezpieczeństwo użytkowników. All the same stuff!

Jak zacząć programować

Nauka programowanie może być równie przyjemna jak i nudna. Sam nigdy nie potrafiłem zainteresować się programowaniem kolejnego kalkulatora czy innymi standardowymi ćwiczeniami. To do Ciebie należy decyzja jak chcesz się uczyć. Można uczyć się podążając za dowolnym kursem na YouTube w wolnym czasie, można szukać drobnych możliwości automatyzowania tego co robisz na co dzień w pracy, można projektować swoją własną aplikację i uczyć się w trakcie. Wybór należy do Ciebie a internet jest pełen zasobów, które Ci pomogą niezależnie od obranej drogi.

Jeśli jeszcze studiujesz pomyśl nad tematem pracy inżynierskiej lub magisterskiej, która będzie wokół programowania. Przykład takiej pracy zajdziesz w naszym poście na temat sztucznej inteligencji, (link do postu). Jeśli w pracy spędzasz znaczną ilość czasu przed komputerem, pomyśl jak zautomatyzować tworzenie raportów z obliczeń czy usprawnić formatowanie dokumentów. Możliwości jest co nie miara.

Zainteresowanie branży informatycznej absolwentami innych kierunków technicznych z umiejętnością programowania istniało zawsze. Ostatnimi czas widać również rosnąc zainteresowanie branży budowlanej zastosowaniem programowania w projektowaniu. Oferty pracy jak Computational Designer, Architectural Technologist czy Architectural Technology Specialist nie są rzadkością. Wszystkie te role łączy jeden element. Tym elementem jest znajomość Dynamo i Grasshooper, które wykorzystują tak zwane programowanie wizualne. Jest to najprostsza forma programowania, która każdy łatwo zrozumie.

Uważam, że można wydzielić 3 poziomy zaawansowania w programowaniu na potrzeby budownictwa. Jednak to, od którego poziomu zaczniesz przygodę z programowaniem jest wciąż dowolne. Wydzielone 3 poziomy odnoszą się do „natychmiastowości” praktycznego zastosowania.

Programowanie wizualne – Dynamo i Grasshopper

Poziom pierwszy to programowanie wizualne. Wstawiasz bloczki, następnie łączysz wyjście z wejściem i tak od początku aż do wyniku. Zaletą tego rozwiązania jest prostota, która pozwala zacząć tworzyć wartościowe skrypty w pierwszych godzinach korzystania. Jednak programowanie wizualne może stać się czasochłonne i pracochłonne a przecież ostatecznie nie to jest istotą programowania. Programowanie ma zawsze na celu zwiększyć efektywność i dać czas na myślenie o ważniejszych zadaniach. Jeśli jeszcze nie widziałeś okna Dynamo to przykład z objaśnieniami znajdziesz poniżej:

Programowanie w Dynamo ma jeszcze jedną zaletę. Zaznaczając kilka węzłów i klikając PPM można je przekształcić w równoważny skrypt w Pythonie a następnie dopisać kilka dodatkowych funkcji lub pętli. Bardzo szybko nauczysz się podstaw Pythona samym przeglądaniem tak wygenerowanych skryptów.

Głównym powodem, dla którego Dynamo i Grasshopper cieszą się taką popularności jest możliwość spięcia kilku aplikacji w jedną całość i stworzyć z nich żywy organizm. Ten sam model BIM można użyć do obliczeń statycznych w innym programie. Dawniej, każda iteracja projektowa wymagała tworzenia osobnego modelu obliczeniowego, niemalże zaczynać od zera. Obecnie, w przypadku gdy występuje konieczność wprowadzenia zmiany projektowej wystarczy dokonać zmian w jednym modelu i ponownie aktywować wcześniej napisany skrypt. Dobrze napisany skrypt będzie służył również w innych projektach i stanie się częścią większej układanki.

Python i VBA – obecne wszędzie w budownictwie

Kolejny poziom zaawansowania to korzystanie i tworzenie własnoręcznie napisanych skryptów. Python to współczesny język programowania, który zyskał swoją popularność między innymi ze względu na prostotę. Czytanie programów napisanych w Python niemal niczym nie różni się od czytania teksu po angielsku. Virtual Basic for Applications, lub w skrócie VBA, to język zaimplementowany w pakiecie Office. Oba te języki często są podpięte do różnych inżynierskich aplikacji przez tak zwane API (Application Programming Interface). Umożliwia to sterowanie funkcjonalnością programu przy użyciu skryptów i kodu.

A co gdyby dało się nagrać to co robimy na komputerze i tworzyć z tego działające programy. Jest to możliwe! Word, Excel, Ansys to tylko kilka przykładowych programów które, pozwalają stworzenie tak zwanego macro przez nagrywanie klikanych czynności. W Wordzie znajdziesz tą funkcje z zakładce Developer:

Jest to mega wygodny sposób nauki, nagrywasz fragment powtarzalnej czynności, zapisujesz macro i przeglądasz wygenerowany kod. Teraz możesz dodać kilka dodatkowych funkcji i voilà: gotowy program. Zobacz poniżej jak w ciągu kilku sekund można stworzyć program, który wykona obliczenia projektowe dla wszystkich żelbetowych kolumn w hipotetycznym budynku. Wszystko co potrzebujesz to zestawienie parametrów projektowanych kolumn w tabelarycznej formie i podkładka w Excelu do projektowania kolumn. Dodaj do tego kilka statystyk i podsumowań w celu sprawdzenia poprawności i automat gotowy.

C# i .NET Framework – fundament cyfrowego budownictwa

Co kiedy już opanujemy Python i VBA? Większość aplikacji z jakich korzysta budownictwo bazuje na Windows. Można się kłócić, że Mac to lepszy system operacyjny, że to lepszy sprzęt. Tak czy inaczej, większość z nas pracuje z Windows.

.NET Framework to platforma programistyczna opracowana przez Microsoft. Technologia ta nie jest związana z żadnym konkretnym językiem programowania, a programy mogą być pisane w jednym z wielu języków – na przykład w C# czy Visual Basic. Zadaniem platformy .NET Framework jest zarządzanie różnymi elementami systemu: kodem aplikacji, pamięcią i zabezpieczeniami. Z praktycznego punktu widzenia, .NET jest to po prostu ecosystem, w którym będziesz pracował. Więcej na ten temat (.NET docs)

C# (czytaj C sharp) to język programowania, który jest częścią tego ecosystemu. W porównaniu do Python wymaga on o wiele więcej dyscypliny w organizowaniu kodu, ale za to wszystko jest pięknie zorganizowane i poukładane. To prawdopodobnie jedna z większych zalet przy tworzeniu większych aplikacji. Strona Microsoft jest najlepszym źródłem informacji na temat tego języka (C# docs).

Dlaczego akurat C#? Wspomniane wcześniej Dynamo i Grasshopper umożliwia tworzenie własnych rozszerzeń bazowej funkcjonalności oraz ich udostępnianie dla innych użytkowników. Wiele z nich zostało napisanych z wykorzystaniem C# a ich kod jest otwarty do wglądu przez innych użytkowników. W każdej chwili możesz zmodyfikować takie rozszerzenie lub wzbogacić jego funkcjonalność o swoje pomysły. Tak więc aby stać się architektem budowlanego oprogramowania, prędzej czy później przyjdzie Ci zmierzyć się właśnie z tym językiem.

Powiedz swoje pierwsze „Hello world!”

Decyzja jak zacząć należy do Ciebie. Samo ćwiczenie programowania kształtuje zmysł dostrzegania schematów w codziennej pracy. Z kolei, internet pełen jest zasobów i ludzi, którzy chętnie odpowiedzą na nurtujące Cię pytania. Szanse są, że znacząca większość trudności, które napotkasz zostały już rozwiązane i wytłumaczone na stackoverflow.com przez innych użytkowników.

Daj znać w komentarzu jak Ty wykorzystujesz umiejętności programowania w codziennej pracy. Czy Twoja praca wymaga programowania? A jeśli masz konkretny temat, który chciałbyś zgłębić w tym roku powiedz nam o tym. Może krótki filmik lub kurs online? Chcesz być na bieżąco? Zapisz się do naszego newslettera.

1 KOMENTARZ

  1. Bardzo ciekawy materiał (nie tylko ten na tym portalu).
    Paradoksalnie przy ogromnym zapotrzebowaniu na specjalistów IT…
    ogromnie brak jest specjalistycznych narzędzi,
    które można nawet samemu stworzyć.
    Jednak brak jest też dobrych wskazówek (tutoriali) jak to zrealizować
    a nawet tych, które pozwolą przełamać barierę : „nie no ja nie umiem”

    Bardzo dziękuję Mariuszowi a za jego pośrednictwem całemu zespołowi
    za Waszą pracę i wielorakość informacji zamieszczanych na tym portalu.

    Pozdrawiam 🙂

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię