czwartek, 13 kwietnia 2017

Budowanie wiary we własne siły

Mojej walce o nową wiedzę towarzyszą pewne przemyślenia. I to bardzo ważne przemyślenia. Ale najpierw zrobię taką małą retrospekcję ...

Kiedyś miałem marzenie nauczyć się pisać programy. Miałem kilka podejść do różnych języków. O ile dobrze pamiętam pierwszy był Turbo Pascal. Kilka lat później Delphi, jeszcze później Fortran (jak byłem jeden semestr na Warszawskiej Polibudzie). Ale wszystkie te 'nauki' kończyły się napotkawszy jakieś pierwsze problemy. Wszystko potęgował potężny brak wiary w siebie, który ciągnął się za mną odkąd pamiętam. Brakowało mi kogoś, kto by mógł powiedzieć, że coś co robię jest w miarę dobre i ma sens. Tak mijały długie lata, a ja zapomniałem o swoim marzeniu.

Czas przemijał, a i moje życie także było naznaczone zmianami. Pojawiły się dzieci, dom i całe mnóstwo obowiązków i problemów. Życie. Był rok 2016 ... lipiec ... wakacje na całego. A mój 11 letni syn dał czadu z graniem na komputerze. Było tak źle, że nie wiedzieliśmy co zrobić. Pomyślałem o jakimś programie, który by wyłączył kompa po zadanym czasie. Googlowałem temat, jednak bezskutecznie. I nagle wpadłem na extra pomysł - uznałem, że napiszę go SAM. Więc znowu Google i ranking języków programowania oraz fora różnej maści. Wybór padł na Pythona 3. I proces nauki się rozpoczął.

Udało mi się stworzyć timer a wyświetlanie czasu było na podstawie kodu chyba ze stackoverflow. Robił to co chciałem - wyłączał komputer po zadanym czasie. Później wymyśliłem zatrzymanie timera hasłem, więc zacząłem myśleć nad hasłem.



Ogólnie rzecz biorąc hasło nie było potrzebne, bo program dochodził do punku zero i wyłączał komputer. A pomysły z hasłem zostały jako oddzielne pomysły. Jeden z nich opublikowałem 13 marca. Drugi był bardziej wymyślny - generowało się hasło używając random (z małych i dużych liter oraz cyfr) następnie każdy znak był dowolnie (znowu random) kolorowany jednym z pięciu kolorów, i z tak powstałego ciągu hasłem były tylko żółte znaki. Fajne zadanie do którego musiałem poznać wyrażenia regularne. W międzyczasie napisałem malutki programik. Na załączonym obrazku widać co robił.



Z ręcznie wprowadzanej wartości brutto wyliczał wartości netto i vat dla poszczególnych stawek podatku. Kluczem do napisania tego programu była lambda. Zresztą wtedy bardzo spodobało mi się zagadnienie 'list comprehension' czyli sprowadzenie kilku linijek kodu do jednej linijki a lambda polega tym samym. Dla zainteresowanych link (http://www.secnetix.de/olli/Python/list_comprehensions.hawk).

Kolejnym pomysłem było przerobienie timera, o którym pisałem wcześniej. Przestał być używany zgodnie z zamierzeniem czyli wystartować timer wpisując czas, więc trzeba było pójść kroczek naprzód. Teraz komputer na sztywno uruchamia się dwa razy po 45 minut, a kolejne uruchomienia komputera wyłączają kompa po jednej minucie. Po co ta minuta? Bo czasem trzeba odpalić maszynę raz jeszcze i muszę mieć czas na zatrzymanie procesu wyłączenia.

Kolejnym istotnym pomysłem było wystartowanie w konkursie dla programistów "Daj się poznać". Bojąc się porażki zastanawiałem się do ostatniej chwili. Koniec końców zapisałem swój udział wraz projektem "Mistrz ortografii". Skąd pomysł? Synuś robił pracę domową i nagle zadał pytanie: Jak się pisze 'chytry' ? Zacząłem pisać program pełen nadziei i pomysłu jak by to miało wyglądać. Pomysł niemal na bieżąco ewoluował w mojej głowie, i bez jakiegokolwiek uporządkowania padł. I znowu, po raz kolejny już myślałem żeby się poddać, że nie dam rady, bo programowanie naprawdę nie jest takie proste. I na kilka dni dałem spokój. Po tym czasie zacząłem szukać innych rozwiązań, które pomogły by mojemu projektowi wstać na nogi. Już nawet znalazłem pewne rozwiązanie, ale usiadłem już tak na spokojnie do poprzedniego niewypalonego pomysłu ... i się udało. Ależ się ucieszyłem i z nowymi siłami powróciłem do pisania kodu. Wszystko oczywiście po godzinach, skracałem czas na sen do 3-4 godzin żeby coś popisać. Doszedłem tak do kolejnego problemu, ale nie załamując się za bardzo usiadłem, wziąłem kartkę i długopis i rozwiązałem problem. Gdy tylko udało mi się napisać co chciałem, z radości aż krzyknąłem :)


I na koniec podsumowanie:

Ktoś mógłby rzec, że Python jest językiem głównie skryptowym i że do programów okienkowych lepsze są inne języki. Ale ktoś kiedyś mi powiedział, że "ogranicza cię tylko twoja własna wyobraźnia co w Pythonie możesz zrobić".
 
Wraz z każdym sukcesem, z każdą linijką kodu, która robi to co chcę żeby robiła moja wiara w siebie rośnie. W końcu znalazłem sposób, żeby samemu powalczyć ze swoją największą słabością. I chociaż wiem, że daleko mi do profesjonalnych programistów to Bardzo Się Cieszę, Że Zacząłem Uczyć Się Programowania.

Zacząłem chociaż troszkę wierzyć w siebie :)




1 komentarz:

  1. powodzenia, też zacząłem z Pythonem3 i też wystartowałem w DSP :-)

    OdpowiedzUsuń

Is it to hard ?

Ogromna ilość czasu i energii potrzebna na pracę jaką wykonuję zastopowała troszkę moje postępy programistyczne. Wciąż chciałbym zawalczyć z...