Od czego zaczyna się większość kursów dowolnego języka programowania? Od nieśmiertelnego „Hello World”. Dobry początek? Niestety. A dalej nie jest lepiej…

To co teraz opiszę, mówię z perspektywy osoby, która jest „uczona informatyki” od blisko 7 lat. (4 lata technikum informatycznego, obecnie 3 rok informatyki na studiach). Przez te lata przewinęło mi się przez klawisze naprawdę sporo, różnych języków programistycznych czy skryptowych. I jeśli system nauczania naprawdę był skuteczny, obecnie wymiatałbym w: C++, Delphi, JAVA, PHP, ASP, Java Script, Action Script, ASP, Visual Basicu, Assemblerze i coś tam pewnie by się jeszcze znalazło.

Dużo osób uważa, że jak pójdzie na kierunek informatyczny to stworzą z niego od tak informatyka. Problem z tym zawodem jest taki, że… to tak nie działa. Nikt nie zrobi z Ciebie informatyka. Musisz sam tego chcieć i się tym zainteresować. Wybrać sobie niszę w której będziesz dobry. Aczkolwiek. Tutaj dochodzimy do sensu słowa „Informatyk”. Trochę drażniące jest, kiedy ktoś nazywa siebie informatykiem bo nauczył się HTMLa i CSSa. Informatyk, to gość, z którym da się podjąć dyskusję z niemal każdej dziedziny informatyki. Tak, że moim zdaniem, informatyk to gość (albo babka), który w jakimś języku coś umie zakodzić. Ale też nie straszna mu obróbka audio, video czy grafiki. Do tego umie coś powiedzieć o sieciach czy systemach operacyjnych.

Ale wróćmy do systemu nauczania. Czemu jest zły? Przez te kilka lat, na swojej drodze spotkałem jedynie dwóch facetów, którzy potrafili porządnie uczyć programowania. Nie było to klepanie za każdym razem „Hello World”, potem ify, for, while. Nie. Ci dwaj panowie nie przedstawiali nam nawet podstaw składni języka. Stawiali przed nami problemy, rzeczywiste lub mniej. I kazali sobie z nimi radzić, dając do dyspozycji wszelkie źródła. Może uszczegółowię:

  1. Technikum – Specjalizacja: Projektowanie Aplikacji Internetowych, języki: ASP.NET i Flex (Action Script 3.0).
    Na początku każdych zajęć stawiano nam problem. Dostawaliśmy krótką listę poleceń, które mogą się przydać, z krótkim komentarzem, jak działają. Nie było jednej słusznej drogi. Każdy pracował sam, tworząc własną ścieżkę. Prowadzący służył radą i pomocą, ale nic nie narzucał.
  2. Studia – Programowanie w JAVA.
    Tutaj na wstępie dostaliśmy projekt programu. Który miał ewoluować w czasie zajęć. Więc mieliśmy pisać tak, żeby było łatwo wprowadzać zmiany. Na zajęciach przeglądaliśmy kod jakiejś osoby i go komentowaliśmy. Rozpatrywaliśmy alternatywne rozwiązania.

Dlaczego te metody są dobre? Bo wprowadzają nas w życie. Symulują przyszłą pracę. Sami musimy zdobywać wiedzę, czy to z książek czy z internetu. Chodzi o jedno: osiągnąć postawiony cel. Tutaj warto zaznaczyć, jak bardzo bezwartościowe są np. kolokwia typu: „Napisz na kartce program”. Nie po to masz do dyspozycji dokumentację i IDE, żeby pamiętać każdą funkcję. Zwłaszcza jeśli to funkcja, której użyłeś raz w życiu, bo takie było polecenie na kolokwium.

Ale zacząłem od informatyki, a skupiam się na programowaniu. I poniekąd, tutaj mamy kolejny błąd systemu nauczania. Informatyka jest dziedziną wiedzy bardzo rozległą. Jednak dużo osób, idąc na ten kierunek jest już lekko „wyspecjalizowana”. Jeden wie, że chce tworzyć aplikacje mobilne, inny internetowy, trzeci być grafikiem, a czwarty administratorem sieci.

Będąc w dobrej wierze, powinno się tym pierwszym dać więcej zajęć z programowania czy projektowania interfac’ów. Kolejnemu więcej zajęć z różnego rodzaju grafiki, a ostatniemu najwięcej zajęć o sieciach i sprzęcie.

Jak to wygląda w praktyce? Mamy zatrzęsienie przedmiotów programistycznych i sieciowych. A jak została potraktowana grafika? Spędziliśmy kilka zajęć na obróbce zdjęć w Photoshopie, a resztę semestru robiąc rysunek techniczny w AutoCADzie.  W ogóle nie została poruszona tematyka grafiki 3D. Nikt nie ruszył wątku obróbki audio/video. Ktoś może powiedzieć że to bardzo niszowa tematyka. Fakt. Ale ze sztucznej inteligencji zajęcia były, a to jeszcze bardziej niszowe i trudno przyswajalne.

Najlepiej to wszystko obrazuje iluzja jaką są „przedmioty wybierane”. Gdzie ciężko wybierać coś pomiędzy swoich preferencji, bo przedmioty są bardzo podobne. Wybierając specjalizację w technikum, opcje były 4: Projektowanie Aplikacji Internetowych, Grafika Komputerowa, Administracja Sieciami Komputerowymi i Zarządzanie Bazami Danych. Można powiedzieć 4 główne odnogi informatyki. (Programowania zwykłego nie było, aczkolwiek był to przedmiot, którego mieliśmy najwięcej w toku nauczania). Czyli po przeszkoleniu ogólnym, każdy wybierał to co go najbardziej zainteresowało. Na studiach po 2 latach nauki podstaw wszystkiego, dalej uczymy się wszystkiego po trochę. Skupiając się na dwóch dziedzinach.

Z racji że szkoła nic nas nie może nauczyć, powinna pokazać wszystkie aspekty tej nauki, żebyśmy mogli się zainspirować i pogłębiać wiedzę w tym co nas najbardziej zainteresowało.

 

  • Budyniowy kisiel

    Bardzo dobry wpis. Niezapomniane laboratoria z Javy. Co do technikum nie mogę się wypowiedzieć, ale sądząc po opisie zajęcia musiały być bardzo kreatywne. Osobiście dodałbym jeszcze że pisanie programów na zajęciach, na kartkach lub na nie swoim sprzęcie i nie skonfigurowanym IDE że to najgorszy pomysł na laboratoriach/ćwiczeniach. I tak większość rzeczy robi się poza uczelnią, więc po co tracić czas.

  • AW

    Hello World może nie nauczy programować, ale czymś trzeba sprawdzić konfiguracje środowiska prawda ?

    • Racja. Aczkolwiek tekst nie neguje stosowania „Hello World”, jako starej, utartej konwencji do testowania środowiska. Ideą tekstu była nagana dla schematycznego, nieżyciowego i powtarzalnego nauczania dowolnych języków programowania. ;)