Moja przygoda (epizody) z "programowaniem"

Tytuł dość specyficzny w swojej konstrukcji, ale nie chce urazić żadnego program...

2 years ago, comments: 9, votes: 111, reward: $4.24

work731198_1920.jpg

Tytuł dość specyficzny w swojej konstrukcji, ale nie chce urazić żadnego programisty oraz wyjść na kogoś, kto chwali się, jakim jest to Koderem przez duże K, bo nie jestem programistą, nawet programistą amatorem. Czasami coś popełnię dla własnej wygody i zabawy, a tekst ma skłonić przeciętnego Kowalskiego/Kowalską do powiedzenia "Hello world".

Młodzieńcze lata

kids2835430_1920.jpg
Za czasów licealnych i wcześniejszych nigdy nie myślałem o programowaniu, które nie leżało w kręgu moich zainteresowań. Wolałem wolny czas spędzać na czytaniu książek, słuchaniu muzyki, czy też graniu w gry, czyli typowe czynności dla nastolatka. O ile chciałem pisać książki na zasadzie młodzieńczych marzeń, to o programowaniu nawet nie myślałem.
Sprawa zmieniła się całkowicie na studiach, kiedy to byłem zmuszony programem studiów.

Studia

university105709_1920.jpg

Jak możecie się domyślić nie były to informatyka, ale wiadomo, że inżynier powinien być wszechstronny i nigdy człowiek do końca nie wie co mu się przyda w życiu. Niestety kurs był bardzo podstawowy i czego do dzisiaj nie mogę pojąć, to w ciągu dwóch semestrów pod dwoma różnymi nazwami przedmiotów, poznaliśmy dwa języki programowania Object Pascal i C++. Oba języki w środowiskach programistycznych z firmy Borland. Niestety założenia programu nauczania nie były ambitne, a i tak wielu z moich kolegów uważa te ćwiczenia za traumatyczne. Ćwiczenia były w dwóch sąsiadujących salach, posiadających nawet drzwi łączące bezpośrednio. Prowadzący zadawali zadanie i potem we dwójkę po jakimś czasie chodzili pokazywać sobie co lepsze kwiatki kursantów.
Oczywiście, z tego co pamiętam, o poznaniu jakiejś większej filozofii programowania i zrozumieniu istoty, jeśli człowiek sam nie poświęcił czasu, nie było mowy, a więc wiele nie wyniosłem i nadal gubię się w pojęciach dotyczących metod, klas, dziedziczenia, wskaźników etc. Po pierwszym semestrze nastąpił plot twist i swoim tempem poznawaliśmy, co to jest pętla w języku C++, jakbyśmy do znudzenia nie przerobili jej w Object Pascal.
Później jakbyśmy całkowicie zapomnieli, że uczyliśmy się programować. Dopiero na 2, czy też 3 roku pojawiły się metody numeryczne, których zwieńczeniem było napisanie programu obliczeniowego.
"Programowanie" pojawiało się również przy okazji programów takich jak matlab czy mathcad (tu mniej), gdzie po raz kolejny symulowaliśmy zjawiska fizyczne, modele matematyczne maszyn, układy sterowania.
Na automatyce pojawiły się sterowniki plc, które językiem drabinkowym niejednego przysporzyły o ból głowy.
Kończąc ten akapit warto odnotować, że całe to "programowanie" nie zniechęciło mnie tak do wyboru pracy magisterskiej, której znaczna część własnie sprowadzała się do programu matlab i powstał niejeden skrypt na potrzeby dyplomu.

Praca zawodowa

Nauka programowania bardziej była skierowane do osób, które chciały pozostać na uczelni, bądź trafić do jakiejś jednostki badawczej/rozwoju. Choć nigdy nie wie człowiek, co będzie robił i kiedy jeszcze coś się przyda. Moje obrane do tej pory ścieżki kariery zawodowej nie wymagają od pracownika posiadania umiejętności programowania.

office594132_1920.jpg

Praca zawodowa, poza najciekawszym, czyli wynagrodzeniem, uczeniem się nowych rzeczy i nowym wyzwaniami, przyniosła też znużenie przy powtarzających się i żmudnych czynnościach. Zestaw narzędzi, które oferuje pracodawca nie zawsze jest kompatybilny ze sobą albo programy nie są kombajnami i od początku do końca nie da się zrobić projektu w jednym.
W życiu projektanta chociażby pisemna forma oddania projektu, który zawiera opis techniczny, spis rysunków, spis materiałów, rysunki, a nawet nie raz kosztorys inwestorski, wymusza użycia wielu programów i nie raz żmudne tworzenie poszczególnych elementów.
Importowanie, zapisywanie w przenośnych formatach, kopiowanie, żmudne zmienianie w kilku miejscach po zamianach, taka czeka nas codzienność, jeśli nie chcemy tego ogarnąć w ciekawszy sposób.
Tu przychodzi z pomocą właśnie programowanie. Nie jakieś wysokich lotów, bo oparte na VBA, tudzież Autolisp, a gdzie diabeł nie pomoże można i jakiś skrypt do Autoit zastosować.
Gdy na mojej drodze pojawia się powtarzające się prawie codziennie zadanie, na kilkanaście klików i do powtórzenia wielokrotnie, to od razu myślę, żeby napisać jakiś skrypt, który mnie w tym wyręczy i powiem wam, że jeśli wciąż z danego rozwiązania korzystam i odejmuje mi on x czasu, to pomimo tego, że zajęło mi napisanie kodu czasami wiele godzin, to myślę, że było warto.

Przykład z życia wzięty

Programowanie może się przydać w najbardziej dziwnych okolicznościach. Trzeba po prostu chcieć, a potrzebne umiejętności przyjdą z czasem. Rozwiązanie większości problemów nie jest zazwyczaj trudne pod względem informatycznym, kod nie zawsze musi być wydajny, optymalny, przejrzysty, musi spełniać swoje zadanie. Oczywiście ktoś może powiedzieć, że to droga do donikąd, ale jeśli ktoś nie chce zmieniać źródła swojego utrzymania na programowanie, to po co mu dobra praktyka programowania?
Jakiś czas temu uczyłem się do uprawnień budowlanych i na kursie przygotowawczym dostałem zestaw testów jednokrotnego wyboru w postaci pliku doc. Osoba, od której otrzymaliśmy materiały, była starej daty i dla niej już sama zamiana kolejności odpowiedzi była nowym pytaniem i tak co roku uzupełniała plik o kolejne. W skrócie wielki miszmasz, który zniechęcał do uczenia. Rok wcześniej koledzy z tymi materiałami i po prostu wydrukowali całość i zasłaniali rubrykę odpowiedzi i ćwiczyli odsłaniając kolejne odpowiedzi. Spróbowałem po przeczytaniu pierwszego działu i jak po raz kolejny spotykałem te samo pytanie, które widziałem 2 pytania wcześniej traciłem zapał do nauki, a opasłe tomy czekały na przeczytanie.
Postanowiłem przenieść całość do Excela z zamiarem przeniesienia później całości na tablet, który działa pod windowsem, więc nie było problemu z kompatybilnością.
Napisałem prymitywne programy, które odsiały mi większość podwójnych pytań. Całość była projektowana pod tablet, a więc odpowiedzi udziela się po przez kliknięcie odpowiedniej komórki. Pytania można oznaczać kolorkami i można wybrane ukrywać/pokazywać . Najbardziej przydatną funkcją jest to, że gdy odpowie się źle, można przetasować pozostałe pytania z tym, na które źle odpowiedzieliśmy. Zresztą zainteresowanych zapraszam, na krótki filmik z pokazem całości, niestety tablet nie przetrwał próby czasu.

A teraz ty czytelniku

hand1923005_1920.png

Zastanów się, czy w swojej pracy, hobby nie mógłbyś zaoszczędzić sobie czas. Oczywiście nie ma nic na siłę, ale jeśli czynność jest powtarzająca się i praktycznie wykonujesz ją codziennie, czy nie lepiej zmarnować trochę czasu, żeby zaoszczędzić codziennie troszkę. Poza tym poza tymi kilkoma sekundami, a czasem nawet minutami zyskujemy wolność od powtarzającej się czynności, którą musimy wykonać niczym robot.

Co przyniesie przyszłość

Myślę, że niejeden kawałek kodu jeszcze napisze. Brakuje mi umiejętności pisania programów, które nie działają poza obrębem aplikacji. Poza tym nie raz, nie dwa chciałoby się czegoś więcej.
Pozamykam pewne projekty i chciałbym zacząć uczyć się programować w Python.
Właściwie cały czas waham się miedzy wcześniej wspomnianym Python'em a Java Script.
Za Pythonem przemawia możliwość użycia go do pisania modułów do programu Freecad, na które mam parę pomysłów.


Pytanie do panów, którzy w przeciwieństwie do mnie nie jedną klawiaturę już zużyli na napisanie programów. Jeśli chodzi o Steem, którą bibliotekę w Pythonie polecacie dla laika ;)?


Przypominam, że prowadzę akcję dogonić jeden cent. Dlatego ustawiam wynagrodzenie na 100% voting power.


Zachęcam do obserwowania profilu @herbacianymag