Cześć ponownie,
nie jestem zbyt aktywnym użytkownikiem forum, a konto mam od 2012 roku i do tej naskrobałem aż 3 posty. Moje doświadczenie z programowaniem zacząłem w wieku 15 lat, kiedy od znaczne starszego kolegi pożyczyłem książkę o programowaniu. Udało się mi dobrnąć do napisania własnego kalkulatora, ale raczej było to na zasadzie przepisz. Nie miałem wtedy dostępu do internetu, a na to mogli sobie pozwolić ludzie z zasobniejszym portfelem. Niestety nie rozumiałem nic i nie miałem żadnego innego punktu odniesienia na temat programowania, a na moje pytania, co zrobić by się nauczyć - usłyszałem, że zacząłem za późno. Panowało przekonanie u mojego kolegi, że powinno się zacząć znacznie wcześniej np. od 8 bitowców, a dopiero potem ogarniać C/C++. Z perspektywy czasu to bym swojemu koledze zasadził konkretne OPR, a sobie kazał znaleźć innego mentora
W szkole średniej było troszkę lepiej. Zaczęliśmy od Visual Basica i na początku szło topornie, ale kiedy zacząłem coś rozumieć to my żeśmy kończyli temat z programowaniem. Sam sobie winien jestem, bo trochę olałem sprawę, a dopiero po otrzymaniu dopa na półrocze wziąłem się do roboty. Pod koniec drugiego półrocza zapaliła mi się lampa, o co z tym wszystkim biega i byłem jedną z dwóch osób, która chciała dalej kontynuować ten temat. Reszta klasy jechała na zasadzie CTRL+C/CTRL+V. Poszedłem do nauczyciela z pytaniem, czy będziemy coś jeszcze robić w przyszłym, ale niestety był to koniec.
Przyszły czasy studenckie, gdzie trochę liznąłem języka C/C++ na pierwszym semestrze, ale ciągle za mało rozumiałem. Czytałem dużo o tym, jak zacząć i co człowiek to opinia. O AVR usłyszałem w 2009 roku, kiedy na uczelni wybrałem się na kurs organizowany przez studentów. Udało się wówczas zaświecić diodą w symulatorze, ale co dokładnie robiliśmy to nie miałem pojęcia. Niestety, jak kurs się zaczął tak nagle się skończył. Obowiązki na uczelni sprawiały, że nie każdy miał czas na poświęcenie się tematowi. Zacząłem działać na własną rękę i zakupiłem książkę Mikrokontrolery AVR w praktyce, która podobno była dla początkujących. Nic z tego nie rozumiałem. Spojrzałem na listingi programów w ASM/C i sprawa była dla mnie oczywista. Temat nie do ogarnięcia. W tym samym czasie mieliśmy przedmiot architektura komputerów, który był dla mnie ciemną magią. Nie rozumiałem nawet pojęcia "wystaw flagę", bo na moje pytanie, co to znaczy prowadzący popatrzał z pogardą. Sprawa była prosta, ale język jakim mi tłumaczono zagadnienia nie był dla mnie zrozumiały. Czułem się, jak obcokrajowiec, który nie zna polskiego i musi szukać znaczenia tych słów w odpowiednim słowniku. Ponownie powtórka z szkoły średniej, gdzie materiał zacząłem rozumieć,gdy przyszła sesja.
Z języka C znałem niektóre podstawowe zagadnienia, jak zmienne, stałe, pętle, funkcje. Gorzej natomiast z wskaźnikami o których słyszałem od innych, jak one są trudne do zrozumienia i ile wysiłku trzeba poświęcić, by je zrozumieć. Ja, który miałem kłopot z zrozumieniem podstaw programowania, architektury komputerów itd., więc temat olałem i miałem nadzieję, że nie będę musiał z tego korzystać. Próbowałem coś nauczyć się z Symfonii C++, ale po zapoznaniu się z 1 tomem do połowy przerwałem, bo mi szło zbyt topornie. W sumie dzięki tej książce zaliczyłem podstawy programowania, ale zabrakło motywacji do dalszej nauki. W 2010 zbudowałem układ uruchomieniowy, który zaprojektował mój kolega z studiów, jako temat pracy inżynierskiej. Zbudowanie układu zajęło mi ok 2 tyg. Podchodziłem do tego z 4 razy, bo to było dość skomplikowane urządzenie, jak na pierwszą płytkę, którą miałem wytrawić, nawiercić otwory i polutować. Po zbudowaniu układu i programatora zaczęła się zabawa. Na początku szło super, bo umiałem diodami sterować, robić różne efekty, załączać buzzera itd. Przyszła pora na obsługę wyświetlacza 7-seg i tu się zaczęła jazda. Temat o przerwaniach przypomniał mój koszmar z architekturą komputerów, ale dorwałem kurs z EP i próbowałem to ugryźć. W końcu się udało i rozumiałem zasadę multipleksowania, ale nie umiałem tego przenieść na kod. Znowu trzeba było się zająć sprawami na uczelni, bo przez laborki nie miałem na nic czasu. Przyszedł czas na wybór pracy inżynierskiej i wybrałem temat oparty o mikrokontroler. Chciałem bardzo się tego nauczyć, więc uznałem, że mając to w temacie pracy inżynierskiej będę musiał to zrobić. Czas leciał, a ja próbowałem coś robić. Obsługa wyświetlacza HD44780 zajęła mi długo czasu ( nawet z bibliotekami p. Mirka ) i zniechęciło mnie to. Patrząc, jak inni sobie radzą, szczególnie mój kolega, który przeskoczył z AVR na STM32, obsługując wyświetlacz LCD z dotykiem, a ja mam problemy z obsługą HD44780. Postawiłem sobie pytanie. Czy może jestem za głupi na to, co chcę robić? Idzie mi to długo, szybko się zniechęcam po tym, jak mi nie wychodzi lub czegoś nie rozumiem. Pracę swoją robię dalej, ale jest to na zasadzie półrocznych impulsów. Złapię taki impuls i coś robię przez dzień, dwa, góra trzy i znowu odstawiam na półkę. Obecnie rozumiem trochę więcej z języka C, ale nie mam tyle w sobie samozaparcia. Gdy siadam do pisania kodu to w głowie mam pustkę.
Nie uważam się za jakiegoś głupca, ale dochodzę do wniosku, że nie wszystko jestem w stanie pojąć i zrozumieć. W tym przypadku padło na programowanie, które wydawało mi się fajne i dalej tak myślę, że jest. Bardzo fajnie jest czerpać radochę z własnoręcznie wykonanych urządzeń. Ciekaw jestem, jak wam nauka przychodziła. Chciałbym by ludzie, którzy mieli problemy z programowaniem napisali o własnych bojach. Ja póki co, próbuję wyrzucić z głowy stwierdzenie, że jestem na coś za głupi. Wiem, że takie myślenie może być bardzo destruktywne. Zacznę ponownie przygodę z AVR od czegoś prostszego, jak np obsługa termometru DS18B20, a potem może się znowu nakręcę i zrobię kolejne kroki w swojej pracy