Temat: Freelancer 2,5k czy studia informatyczne?
Jeśli ktoś idzie na studia nauczyć się jakiejś technologii, to owszem.
Tyle, że studia to nauka wielu różnych rzeczy (jak to mawiali Rosjanie - "dla obszcziewo razwitija" - dla ogólnego rozwoju). Wielu z nich prawdopodobnie większość osób by nawet nie tknęło, np. metod wyszukiwania informacji (w tym tych ciekawych, choć wiekowych, jak metoda Gosha, Chowa czy Luma, które są świetną gimnastyką dla umysłu), czy algorytmów i struktur danych. Poza tym o wielu rzeczach człowiek zwyczajnie nie wie, albo zaczyna filozofować "ale po co mi takie podstawy, toż to archaizm, a ja jestem taki nowoczesny. Tutaj hi-tech, a ja mam się uczyć dzielenia liczb w zapisie ZU2?". Tam jest się do tego zwyczajnie zmuszonym, czy się chce, czy się nie chce. Nikt nie pyta, czy szanowny student ma życzenie rozpoznawać rozróżniać bramki logiczne czy planuje w przyszłości wykorzystywać praktycznie wiedzę poświęconą nieliniowym rejestrom przesuwającym. Ma się tego uczyć. A że przy tym jest wiele okazji do ruszenia głową, poszerzenia horyzontów - cóż, to dziś ma chyba coraz mniejsze znaczenie dla ludzi...
Weźmy takie programowanie PLC - ilu z nas, informatyków, programuje profesjonalnie PLC? 1 na 20? 50? Ilu z nas zabrałoby się za taką naukę? 1 na 100? Po pierwsze - nieśmiertelne pytanie "a po co mi to", po drugie - "a to jest coś takiego?", po trzecie - "eee, to zupełnie inne programowanie, asynchroniczne, błeee". A jednak zabawa z samochodzikiem i masą krańcówek, fotokomórek była zaje... frajdą, uczyła w ciągu tych kilkudziesięciu minut masy rzeczy, a jeszcze kiedy prowadzący zakazał stosowania liczników na rzecz samych styków (dla oszczędności pamięci), to dopiero była zabawa i burza mózgów. Człowiek wychodził czasem zmordowany, ale zadowolony, że "ogarnął" coś nowego.
Z drugiej strony - jeśli ktoś po prostu chce tworzyć strony WWW, to po co mu to wszystko? Poczyta parę książek, tutoriali, ściągnie soft - i nauczy się. Ja się tak uczyłem praktycznie każdej jednej technologii, jaką znam.
Tylko odnoszę wrażenie, że niewiele młodych, początkujących osób rozumie różnicę między napisaniem "stronki w html + css + pocięcie grafy" pod personalizowaną wizytówkę za 2k5 od napisania backendu dla serwisu internetowego czy REST/SOAPowego webserwisu, za którymi siedzą takie zagadnienia, jak:
- zaprojektowanie architektury systemy (to nie tylko narysowanie kilku tabelek i połączenie ich "takimi kreseczkami"), najlepiej jeszcze zgodnie z jakimś standardami, regułami projektowania systemów informatycznych, czy to w podejściu proceduralnym czy obiektowym,
- zaprogramowanie tego, co się zaprojektowało. Ale często to nie tylko bezmyślny CRUD "dodaj klienta do bazy", "zmień adres", ale także algorytmy - np. wyszukiwania dostępności zasobów, przeszukiwania zasobów, implementacja reguł decyzyjnych. Już nie wspomnę o tym, że istnieje spora różnica między "wygeneruj szkielet CRUD i powiąż z formatkami" a "wykonaj elastyczny system w podziale na warstwy"
- optymalizacja zapytań
- tworzenie czystego kodu i wykorzystanie wzorców architektoniczno-projektowych - co samo w sobie jest już niezłą łamigłówką.
I jeszcze jedno - studia wprowadzają do pracy zespołowej. Dzielenia ról, delegowania zadań, współodpowiedzialności za produkt (kolega zaimprezował i nie napisał modułu logowania? No sorry, nie ma takiego zlewania), utrzymywania czystego kodu (bo kolega z grupy potem nie skapuje, o co w tych naszych kodach biega), korzystania z repozytoriów kodu, dokumentowania pracy. Pewnie, że to nie to samo, w poważnej pracy, ale zawsze jakiś początek. Do tego pierwsze rygory i - pierwsi "nieżyciowi ludzie od laborek", zachowujący się czasem identycznie jak niejeden manager/kierownik/szef w prawdziwej pracy.
Ten post został edytowany przez Autora dnia 09.12.14 o godzinie 01:48