Programowanie
Z tym programowaniem to też jest całkiem ciekawa historia. Pisałem już, że praktycznie od dziecka tworzyłem jakieś proste programy, używając BASIC-a w Commodore, czy później pisząc skrypty dla znajomych. Przełom jednak nadszedł w 1999 roku, kiedy rozpocząłem naukę w informatycznym Policealnym Studium Zawodowym o specjalizacji "Systemy Zarządzania Relacyjnymi Bazami Danych". Uczyliśmy się tam "wytwarzać" programy w najbardziej wówczas popularnych językach, tj. Pascalu i Clipperze (do dziś zastanawiam się czemu nie w C++, czy asemblerze), a edukację wieńczyła obrona samodzielnie napisanego dużego programu zaliczeniowego. Szkołę tę ukończyłem z całkiem niezłym wynikiem i zanim dostałem pierwszą pracę, zdążyłem napisać szereg różnych ciekawych aplikacji użytkowych, choćby wspomniany wcześniej program do kopii rejestrów systemu Windows 95/98/Me w Pascalu*.
W 2004 roku nastąpił przełom i otrzymałem zatrudnienie w MPK Łódź. Początkowo byłem zwykłym serwisantem, lecz dyrektor Zakładu Informatyki szybko dostrzegł moje umiejętności i przeniósł mnie do działu programistów, gdzie zaangażowany zostałem w pracę nad potężnym i złożonym centralnym systemem dla Nadzoru Ruchu (część tworzona była w Clipperze/Alasce, a część w Delphi). Nauczyłem się tam bardzo wielu technik programistycznych oraz fachowego podejścia do wytwarzania profesjonalnego oprogramowania i jego wersjonowania. Trwało to dwa lata.
W tym jednak miejscu kończy się moja zawodowa praca programisty. Moje życie potoczyło się tak, iż dalsza moja kariera to przede wszystkim systemy, sieci i serwery. Niemniej jednak, jak się okazuje, na każdym kroku wykorzystuję umiejętności programistyczne, chociażby do skryptów automatyzujących (CI/CD) i archiwizujących.
Tak wygląda moja wiedza i umiejętności w tej dziedzinie:
Języki skryptowe:
Dziedzina |
Poziom wiedzy |
---|---|
batch |
[zaawans.] |
vbs |
[zaawans.] |
powershell |
[dobry] |
bash/sh |
[dobry] |
python |
[podstawy] |
Automatyzacja |
[średni] |
git |
[średni] |
svn |
[średni] |
Jenkins |
[podstawy] |
Stash |
[podstawy] |
Maven |
[podstawy] |
Hudson |
[podstawy] |
Ansible |
[podstawy] |
Puppet |
[podstawy] |
Chef |
[podstawy] |
Kubernetes |
[podstawy] |
Języki programowania:
Dziedzina |
Poziom wiedzy |
---|---|
Delphi/Pascal |
[zaawans.] |
Clipper |
[zaawans.] |
html/css |
[dobry] |
php |
[średni] |
Visual Basic |
[podstawy] |
C/C++/C# |
[podstawy] |
Nie byłoby programowania bez baz danych, a więc:
Dziedzina |
Poziom wiedzy |
---|---|
MS SQL: |
[zaawans.] |
optymalizacja |
[dobry] |
administracja |
[zaawans.] |
backupy |
[zaawans.] |
MySQL/MariaDB: |
[zaawans.] |
optymalizacja |
[dobry] |
administracja |
[zaawans.] |
backupy i odzyskiwanie dużych zbiorów |
[zaawans.] |
klastry (NDB, InnoDB) |
[średni] |
SQLite |
[zaawans.] |
Firebird |
[dobry] |
DBase |
[zaawans.] |
Visual FoxPro |
[dobry] |
PostgreSQL |
[dobry] |