W ten sposób dotarliśmy do końca kursu podstaw programowania dla nie-programistów. W pierwszej kolejności zapoznaliśmy się w nim z klasycznymi elementami budowy algorytmów i z najważniejszymi elementami notacji stosowanych we współczesnych językach programowania.
Dalej zostały omówione podstawowe typy danych prostych, a także najważniejsze typy złożone (listy i pliki) w zakresie umożliwiającym samodzielne z nich korzystanie. Nieco pobieżniej potraktowane zostały typy obiektowe; tu zakres zdobytej wiedzy wystarcza do tego, by w razie potrzeby samodzielnie ją pogłębiać w oparciu o literaturę, dokumentację i przykłady.
Zaznajomiliśmy się też z „zestawem przetrwania” składającym się z rozwiązań typowych zagadnień algorytmicznych, których opanowanie jest niezbędne przy tworzeniu nawet prostych programów.
Znajomość języka programowania Python, jaką wynosimy z rzetelnie wykonanych ćwiczeń, powinna pozwolić na samodzielne pisanie krótkich programów wspomagających przekształcanie danych. Nie będą to kompletne, samodzielne aplikacje. Przedstawiony materiał stanowi tylko wstęp do Pythona. Istnieją liczne konstrukcje językowe, o których nie wspomniano; nawet niektóre słowa kluczowe nie zostały objaśnione.
Kolejnym istotnym elementem kursu było korzystanie z bibliotek. Dzięki nim stał się możliwy dostęp do jednego lub więcej środowisk użytkowych. Dzięki nim kod Pythona może się komunikować z innymi programami, a także pełnić rolę integracyjną w projekcie angażującym kilka odrębnych środowisk.
Python został wybrany jako podstawowy język tego kursu, gdyż ma prostą składnię i dużo bibliotek, a jego środowisko wykonawcze nie jest związane z żadnym konkretnym systemem operacyjnym ani programem użytkowym. Warto jednak zachować świadomość, że rzecz, którą da się opisać za pomocą Pythona, bardzo podobnie będzie się dało opisać w wielu innych językach.
Nawet jeżeli poruszone zagadnienia wydają się trudne — a w istocie takie są — mimo wszystko zachęcam do refleksji nad nimi. Z drugiej strony, zagadnienia te są łatwiejsze, niż się z pozoru wydaje, gdyż u ich podstaw leży wiele zdroworozsądkowych obserwacji. Największa trudność polega na oderwaniu opisu działania od przedmiotu działania, co wiąże się z przejściem od „znaleźć i podać rozwiązanie” do „opowiedzieć jak rozwiązać”.
Nie jest przesądzone, że Państwo będziecie programować. Być może nikt Was nie będzie do tego zmuszać. W dużej mierze zależy od Was samych, czy zechcecie samodzielnie, bez odgórnego nakazu stosować w praktyce techniki, które poznaliście w ramach tego kursu.
Jeżeli tak — to gorąco zachęcam do budowania krótkich programów wyręczających Was w prostych, lecz uciążliwych rachunkach oraz w przekształcaniu danych.
Jeżeli nie — zachęcam do zastanowienia się nad przypadkami, w których napisanie kilkunastu wierszy kodu oszczędzi Wam kilkunastu godzin „pracy z komputerem”. Inwestycja intelektualna w umiejętności programistyczne może wtedy zaprocentować, mimo że „praca z komputerem” przy pierwszym kontakcie zdaje się lekka, łatwa i przyjemna.
Jeżeli mimo wszystko nie — wcale nie znaczy to, że czas nauki był stracony. Proceduralne i obiektowe spojrzenie na dane wykształca pożyteczne nawyki ich traktowania nawet wtedy, kiedy nie pisze się samemu kodu. Bo danymi z pewnością będziecie się nadal zajmować.
No i zawsze warto zastanawiać się, jak to robić lepiej, niż dotychczas…
W spisie ujęto odsyłacze do większości plików źródłowych z przykładami, zamieszczonych w obrębie całego dokumentu. Wykaz nie bierze pod uwagę krótkich przykładów będących integralną częścią tekstu.
while
(podrozdział 7.5.6.)easygui
(podrozdział 11.1.4.)easygui
(podrozdział 11.1.4.)sdxf
(podrozdział 11.6.1.)sdxf
(podrozdział 11.6.1.)comtypes
(podrozdział 11.6.3.)win32com.client
(podrozdział 11.6.3.)