P-Programowanie

Studia nie uczą programowania

Ostatania modyfikacja: 8 lutego 2018, kategoria: Studia i praca

Istnieje wiele sposobów na osiągnięcie sukcesu w IT. Jednym z najpopularniejszych sposób wejścia do branży jest ukończenie studiów informatycznych. Jest to bardzo dobry start na rynku, jednak wielkie zastrzeżenia można mieć do samej metodyki. Czego można spodziewać się po ukończeniu studiów? W artykule skupię się przede wszystkim na nauce programowania.

Studia nie nauczą Cię programowania

Programowanie, tak jak cała branża IT, rozwija się tak szybko, że nikt nie jest w stanie umieć wszystkiego. Co kilka miesięcy lub lat powstają nowe wersje języków programowania oraz nowe platformy. Niektóre są podobne do poprzednich, inne całkowicie przebudowane. Zmienia się także sposób podejścia do planowania poszczególnych rozwiązań i architektur systemów informatycznych.

Aby nie trzymać Cię w niepewności, napiszę na samym początku: studia informatyczne nijak nie nauczą Cię programować. Piszę to z pełną świadomością jako zawodowy programista i absolwent studiów informatycznych. Nieważne, jak renomowaną uczelnię wybierzesz, czy będzie to uczelnia publiczna czy prywatna, czy studia dzienne czy zaoczne. Jakie są tego przyczyny?

Hermetyczne środowisko profesorów

Problem z uczelniami wyższymi leży w hermetycznym środowisku akademickim. Wykładowcy akademiccy nie zdobywają doświadczenia zawodowego przy komercyjnych projektach, nie spędzają nad programowaniem 8h dziennie. Oprócz tego ogranicza ich rama programowa i struktura narzucona przez Ministerstwo Nauki i Szkolnictwa Wyższego. Wszelkie technologie nauczane na studiach są totalnie przeterminowane i bezużyteczne.

Dosłownie nikomu nie radziłbym w dzisiejszych czasach zaczęcia nauki programowania od języka C++. O ile był on dawniej sławny, o tyle teraz jest bezużyteczny. Ciągle chętnie używają go programiści niskopoziomowi, embedded i elektronicy. Nie nadaje się on natomiast do nauki i projektów komercyjnych. Istnieje wiele nowszych języków wysokiego poziomu, które pozwolą nauczyć się programować szybciej i efektywniej.

C++ jest natomiast stałym bywalcem każdej uczelni wyższej. Czarna konsola napawa niechęcią, wielu mechanizmów w C++ brakuje, a z kolei z wielu się już nie korzysta (bo są lepsze rozwiązania).

Brak możliwości zatrudniania programistów

Przez deficyt na rynku pracy programistów ciągle brakuje. Stąd biorą się dzisiaj ich wysokie zarobki. Żadna uczelnia wyższa nie jest w stanie zatrudnić doświadczonego programisty do prowadzenia wykładów lub ćwiczeń. Co ciekawe, jest to spowodowane względami finansowymi, ale także – jak wspomniałem wcześniej – hermetycznym środowiskiem akademickim. Każdy dba o swoją posadę i nikomu nie byłoby na rękę, gdyby jeden z przedmiotów wziął ktoś „spoza” uczelni.

Jaki jest tego efekt? Na wykładach z C++ wykładowca nie umie wytłumaczyć, do czego służą wskaźniki. Nie umie znaleźć sytuacji praktycznej, w jakiej dałoby się je wykorzystać. Później nie dość, że studenci uczą się archaicznego języka, to słuchając o wskaźnikach czują się jak w kosmosie. Oczywiście, podkreślam, nie chodzi o nieumiejętność wytłumaczenia wskaźników. Wykładowcy akademiccy przeważnie bardzo dobrze umieją teorię, ale w przekazywaniu wiedzy liczy się też otoczka.

Bardzo sucha teoria

Na studiach poznaje się bardzo wiele teoretycznej wiedzy, bez jakichkolwiek przykładów jej wykorzystania. Nauka wzorców projektowych, algorytmów, metodyk wytwarzania programowania przebiega płynnie, ale student nawet nie wie, po co się tego uczy. Oczywiście ta wiedza kiedyś się przyda, jednak w momencie studiowania jest jej za dużo i jest zbyt niepoukładana.

Dobry student po dobrej uczelni, wkraczając na rynek pracy programistów, jest początkowo bezużyteczny. Potrzebuje dużo czasu i opieki doświadczonego programisty, aby móc coś sensownego tworzyć.

Praktyka? Projekty na studiach

Jeżeli zastanawiasz się, dlaczego na studiach informatycznych nie ma więcej praktyki, od razu odpowiem – jest. Istnieją duże przedmioty nazywane „projektami semestralnymi”, które pochłaniają w sylabusach ogromne ilości godzin i są poświęcone właśnie praktycznemu wykonywaniu jakichś programów.

Problem z projektami jest natomiast taki, jak w pierwszych akapitach tego artykułu:

  • prowadzą je wykładowcy z wiedzą sprzed 5-10lat
  • prowadzą je wykładowcy bez doświadczenia zawodowego
  • studenci nie mogą z nikim kompetentnym skonsultować architektury i fundamentów projektu
  • prowadzący je wykładowca kompletnie nie ma czasu dla studentów, grupy są za duże, a czasu za mało

Efektem tych zajęć są totalnie „słabo wykonane systemy”. Bez żadnych wzorców projektowych, mechanizmów, rozwiązań architektonicznych. Pełne instrukcji warunkowych, które są później bohaterami zabawnych memów w branży IT. Wszystkie projekty są pisane w PHP. Oczywiście bez żadnej dodatkowej platformy, bez wspomnienia o wzorcu MVC. Po prostu zwykłe instrukcje PHP powplatane w kod HTML, często przechowujące informacje w plikach tekstowych.

Przykład z moich studiów, którego doświadczyłem. Profesor od programowania polecił napisać w C++ grę w kółko krzyżyk. Był to projekt semestralny, od prowadzącego nie dostaliśmy żadnej instrukcji ani nakierowania. Efekt? Nikt nie zastosował algorytmu minimax, każdy oddał projekt z 400-stoma instrukcjami warunkowymi obsługującymi każdą możliwą kombinację kółka i krzyżyka na planszy.

Takie projekty nie dość, że nic nie dają, to utrwalają bardzo złe nawyki.

Niechlubna para C++ i PHP

Para języków C++ i PHP to ta podstawowa, poznawana na studiach informatycznych. Jeżeli przeglądnąć fora internetowe, to właśnie w tych językach jest powrzucanych setki „programów studenckich” będących plątaniną instrukcji warunkowych. Autorzy postów przeważnie proszą o dopisanie czegoś, bo brakuje do zaliczenia. W innym wypadku pytają czemu program nie działa; w kodzie brakuje wcięć, czasem średników czasem jakieś klamerki.

Wielu studentów, kończąc uczelnie wyższą, wie że:

  • programy dekstopowe to te pisane w C++
  • strony internetowe to te pisane w PHP i HTML

Na tym wiedza się kończy. Na studiach nikt nie porusza nic innego. O JavaScriptcie panuje przekonanie takie jak w książkach z 2003 roku, czyli że nie powinno się tego używać. Strona z JavaScriptem to nie jest prawdziwa strona. JavaScript służy tylko do tworzenia kalendarzy i zegarków.

Tymczasem mało kto wie, że obecnie JavaScript jest najczęściej używanym językiem na świecie, a od 2008 roku przeżywa bardzo silny rozwój. Mało kto wie, że stronę można zrobić w czymś innym niż PHP, że aplikacji internetowych nie robi się już w modelu request-response tylko na reużywalnych asynchronicznych komponentach. Mało kto wie, że w wielu dziedzinach odchodzi się od aplikacji desktopowych i wprowadza się aplikacje internetowe i chmury.

Dlaczego o tym piszę w dość agresywnym tonie? Po prostu, ludzie kończąc studia nagle dowiadują się, że istnieje 20 języków programowania, a do każdego około 5-20 platform programistycznych. Z czego na studiach poznali te, które nie są już używane.

Czy warto studiować?

Artykuł niesie proste przesłanie: studia jeszcze z nikogo nie zrobiły programisty. Jeżeli chcesz być programistą, warto skończyć studia informatyczne, ale pamiętaj, dzięki nim nie staniesz się programistą. Być może ukierunkujesz się na wiele aspektów, o których nie miałeś pojęcia. Ale nic poza tym.

Studia warto skończyć. Jak wspomniałem wcześniej, wiedza teoretyczna ze studiów przyda się w dalszej ścieżce zawodowej. Więcej na ten temat opisałem w artykule dlaczego warto studiować informatykę? Jeżeli masz możliwości (przede wszystkim te finansowe), bez wątpienia skończ studia. Jeżeli chcesz nauczyć się programować, przeczytaj następny akapit.

Jak nauczyć się programowania

Do nauki programowania potrzeba tylko jednego: chęci i wielu godzin ćwiczeń. Doskonałymi źródłami wiedzy są książki oraz kursy internetowe. Wybierz jakiś język, który jest aktualnie na topie i po prostu zacznij. Rankingi języków (czyli popularność i opłacalność) na stan dzisiejszy dostępne są w internecie.

Mylisz się jeżeli sądzisz, że to co napisałem to lanie wody albo pusty akapit. Programowanie zmienia się tak szybko, że jeżeli nie umiesz uczyć się sam, to nie jest to zawód dla Ciebie. W programowaniu nie ma przerwy, nie ma najmądrzejszych. Trzeba ciągle poszerzać swoją wiedzę i być na bieżąco. Jeżeli spoczniesz na laurach i zasiedzisz się w jednej technologii na 2 lata, to możesz być do tył względem rynku.

Jestem też sceptyczny, jeżeli chodzi o „szkoły programowania”. Mimo że być może dają efekty, to jest to strata kasy. Wydasz dużo kasy, nauczysz się technologii X, a za jakiś czas i tak będziesz musiał sam nauczyć się nowej technologii Y. Do tego trybu ciągłego poszerzania wiedzy trzeba się przyzwyczaić – inne dziedziny nauki nie są tak dynamiczne.

Uwaga! Wybierając kurs, wybierz ten najnowszy! Tak jak studia, tak jak całe programowanie, tak samo kursy i książki szybko się dezaktualizują. Przykładowo: ucząc się JavaScriptowej platformy Angular na dzień dzisiejszy musisz znaleźć kurs Angular2. Kursy Angular1 sprzed 2 lat są już totalnie zdezaktualizowane, a technologia jest martwa. Jeżeli wydasz pieniądze na książkę Angular1 (inna nazwa AngularJS), wydasz pieniądze w błoto. Co śmieszne, Angular1 i Angular2 nie są do siebie ani troszeczkę podobne, wiedzy z jednego nie da się wykorzystać w drugim (za pół roku pojawia się natomiast Angular5 :)) Potwierdza to konieczność ciągłego procesu nauki, od którego nie ma ucieczki.

Możesz raz nauczyć się fizyki lub matematyki, następnie uczyć tego przedmiotu w szkole średniej i sobie żyć. Nie da się natomiast raz nauczyć programowania i zasiąść w strefie komfortu w jakimś projekcie. Projekty informatyczne mają do siebie to, że ich czas życia jest dość krótki.

Wnioski

Wniosków po tym artykule może być wiele. Nie chcę, abyś pomyślał, że nie warto studiować! Chcę, abyś wiedział, że studia nie nauczą Cię programowania. Jeżeli chcesz programować zacznij sam, już teraz. Naucz się uczyć się samemu. Zainwestuj w dowolne, aktualne źródło wiedzy i ćwicz.

Studia nie są niezbędne do nauczenia się programowania. Deficyt na rynku jest tak duży, że programistami zostaje coraz więcej osób, które ze studiami informatycznymi nie mają kompletnie nic wspólnego.

Użytkownik Adrian napisał:

29 września 2017


Ogólnie to się zgadzam, a że mam jeszcze doświadczenie jako asystent to coś dopiszę.
Jednym z większych minusów na studiach są przedmioty nie związane z kierunkiem, jest ich całkiem dużo, gdyż część jest wydziałowych a część narzucona z ogólnej puli: np wf albo przedmioty humanistyczne.
Na studiach inżynierskich to jeszcze jakoś wygląda, natomiast na magisterskich to się studiuje nie wiadomo co z małą domieszką informatyki.

Jeśli chodzi o zaplecze – nie ma się co oszukiwać, bo godzina zajęć to 35zl brutto i w tym jest też przygotowanie zajęć. Nikt z prowadzących nie będzie robił Code Review projektów, tym bardziej że teraz grupa projektowa nie liczy 15 a 30 studentów…

Laboratoria 15 albo 30h – dużo się nie zrobi, tym bardziej jak zajęcia trwają 2h, co i negocjacji jakby był blok 5-8h, ale to nie w Polsce.

Niemniej jednak na studiach można się dużo nauczyć poza studiami – samokształcenie + praktyka

Komentarz został wyróżniony

Użytkownik Adam napisał:

01 października 2017


Ja uważam, że studia informatyczne niosą ze sobą dużą wartość. Nie chodzi tu o wiedzę jaką z nich wyciągniesz, ale o inne umiejętności. Przede wszystkim na studiach uczysz się pracować w zespole i uczysz się studiować, a nie tylko przyswajać wiedzę. Studia poniekąd zmuszają do tego, żeby samemu poszukiwać własnej drogi. Ja np. dopiero poznając inne języki programowania, niż Java, w której programuję, zrozumiałem, że to jest to co chcę robić. Ale wiedza na temat innych języków przydaje mi się w pracy. W naszym teamie w Codete jesteśmy dzięki temu w stanie porozmawiać ze wszystkimi, a nawet pomóc ;)

Użytkownik Paulina napisał:

13 października 2017


Pracuję już od kilku lat w IT i widzę, że wielu specjalistów IT jednak posiada studia, chociaż znam też takich programistów, którzy studia zaczęli, ale już ich nie skończyli. Jeśli chcemy sobie odpowiedzieć na pytanie, czy studia są wymagane – to patrząc na ogłoszenie dla programistów, nie ma takich wymogów, ważne jest przede wszystkim doświadczenie i kompetencje. Podczas rekrutacja zawsze są testy, które sprawdzają poziom wiedzy programisty. Samo studiowanie to ciekawy rozdział w życiu, ale jeśli jesteśmy w stanie sami zmobilizować się do nauki, informatyka jest naszą pracą, to myślę, że warto uczyć się samemu + szukać fajnych staży dla początkujących programistów.

Użytkownik Wojciech Wróbel napisał:

18 października 2017


Stek bzdur :)
Prywatna uczelnia – Wyższa Szkołą Biznesu w Dąbrowie Górniczej zatrudnia w głównej mierze praktyków – osoby, które albo piastują wysokie stanowiska w firmach zw. z branżą informatyczną albo sami je prowadzą.

Poza tym… jestem początkującym i raczkującym programistą, ale C++ jak najbardziej się nadaje do rozpoczęcia przygody. Jest mocno wyeksploatowany, co za tym idzie jest sporo roznego rodzaju proadnikow itd. Jeżeli ogarniesz C++ możesz się pobawić elektroniką co zawsze zadowala oko, a jak przebijesz się już przez ten siermierżny bądź co bądź język, masz solidne podstawy. Ja z C++ przerzucam się na Jave i rozumiem cholernie dużo rzeczy.

Fakt faktem, studia nie naucza programowania, ale studia nie nauczą niczego, jeżeli nie poświęcisz trochę czasu gałęzi, która Cie interesuje.
Moja uczelnia przynajmniej pokazała mi frameworki i co w ogóle da się stworzyć. Jestem tylko na studiach zaocznych ale po 2 miesiącach studiow, w ktorych zjazdy mam co 2 tygodnie, umiałem więcej rzeczy, niż po 1,5 roku studiów na Politechnice śląskiej.

Użytkownik Igor napisał:

06 listopada 2017


Hej, więc ja podzielę się swoimi wrażeniami. W tym roku ukończyłem studia informatyczne, przez cały okres studiów przechodziłem z wielkim bólem, że mi to nie potrzebne (jako fanatyk webmasterki od bardzo młodych lat) i że równie dobrze mógłbym zacząć coś porządnego robić bez studiów. Jednak po pewnym czasie, a właściwie tak niedawno dotarło do mnie, że studia to nie tylko nauka programowania, „niepotrzebna” matematyka i wiele niepotrzebnych przedmiotów ale studia to przede wszystkim rozwój na wielu innych płaszczyznach które występują podświadomie. Studia rozwijają kompetencje miękkie, uczą komunikacji z innymi osobami, „kombinatoryki” – no bo przeciez trzeba jakoś wykombinować aby zaliczyc przedmiot, można zdobyc fajne kontakty na przyszłość, wystąpień publicznych i wiele wiele rzeczy ktore nie sa jakoś mocno zauważalne. Dziś jestem dumny ze jednak przeszedłem przez studia a nie poszedłem od razu jako 20latek na programiste gdzie faktycznie miałbym umiejętności duzo większe pod wzgledem programowania ale być moze za parę lat gryzła by mnie mysl czy moze przypadkiem nie lepiej by bylo gdybym poszedł na studia a nie już X lat ciągle robie prawie to samo.

To z pewnością temat który wiele osób powie A a drudzy powiedzą B ale moim zdaniem studia to nie jest strata czasu. Do pracy mozna iść zawsze, na studia niby też ale wiadomo jak to jest w wieku 30+.
Pozdrawiam

Komentarz został wyróżniony

Użytkownik Leszek Lewandowski napisał:

27 listopada 2017


Witaj,
przeczytałem Twój artykuł i mam kilka uwag. Pierwszy i podstawowy błąd Twojego artykułu to całkowita sugestywność. Chodzi o to, że nie próbowałeś w żaden sposób przeanalizować problemu, a tym bardziej zbadać czy trend dotyczył tylko Twojej uczelni czy każdej innej. Ze swojej subiektywnej strony odniosłem początkowo takie same wrażenie na starcie mojej kariery programistycznej. Jednakże im bardziej ta kariera się rozwijała, tym częściej sięgałem do notatek ze studiów. I tak przedmioty, które uważałem kiedyś za kompletnie niepotrzebne okazały się zbawieniem jak chociażby zarządzanie jakością, inżynieria oprogramowania i co najważniejsze (wielkie podziękowania dla dr hab. Danuty Nowickiej) statystyka matematyczna oraz matematyka dyskretna. Jeszcze na studiach uważałem te przedmioty za całkowitą stratę czasu, teraz uważam, że programista bez inżynierii oprogramowania, jakości systemów informatycznych czy też analityki proceduralnej, będzie zwykłym rzemieślnikiem, ale nigdy dobrym architektem, team leaderem czy też kierownikiem zespołu, gdyż te przedmioty nie zmieniają się tak szybko jak język programowania, ale uczą czegoś więcej, czegoś co z czasem bardzo się przydaje. Pozwolę sobie odnieść się również do pozostałych przedmiotów, jak sieci komputerowe czy nawet coś tak abstrakcyjnego jak marketing lub ekonometria. Otóż zadaniem uczelni nie jest z Was zrobić specjalisty w każdej dziedzinie nauki, ale przygotować Was merytorycznie na jak największą ilość problemów, z jakimi możecie się spotkać, dać solidny fundament, na którym możecie budować dalszą przyszłość. Obecnie jako kierownik zespołu, od razu widzę różnicę w podejściu do projektu przez magistrów i przez „techników”. Znam wielu doskonałych rzemieślników, ale żadnemu nie powierzyłbym póki co całej architektury dużego systemu.
Aha, i C++ choć jest dosyć słabym językiem biznesowym, jest doskonałym językiem akademickim. Bez wahania stwierdzę – znasz podstawy C++, znasz podstawy 80% języków programowania. Jest to język trudny, ale ideą stosowania właśnie C++ jest nauczenie myślenia w sposób, jaki myśli programista, do tego pień języka nie zmienia się tak często, jak we wspomnianym wstępie, dlatego jest idealny na start. Po za tym nie każdy absolwent informatyki musi być programistą, ale każdy absolwent informatyki musi wiedzieć czym jest programowanie.
Reasumując: artykuł jest niestety zbyt subiektywny, nie poparty rzetelnymi faktami, zbyt ogólnie argumentowany. Temat jest trudny lecz dla mnie 3/10 głównie przez podejście do tematu.
Pozdrawiam
Leszek Lewandowski

Komentarz został wyróżniony

Użytkownik Marcin napisał:

27 stycznia 2018


Co do C++, to nawet sam jego twórca nie traci czasu na porównywanie go z innymi technologiami. Ma on swoje cechy, które czasem są zaletami a czasem wadami. Stosowanie na siłę jakiejś technologii (nieważne, czy nowej, czy starej) jest chyba znane jako antywzorzec złotego młotka. Duża kontrola nad pamięcią pozwala tworzyć aplikacjie o lepszej wydajności, ale projektowanie ich jest trudniejsze. Języki nowsze z odśmiecaczami są może „łatwiejsze” w pisaniu. Tyle, że to działa chyba tylko w niskoobciążonych i prostych systemach biznesowych. Potem okazuje się, że aplikacja PHP obsługiwana przez interfejs www każe czekać na reakcję może 20 sekund. Albo spróbujcie przetwarzać obrazy cyfrowe w Javie. „Inteligentna” maszyna Javy będzie usłowała zaalokować ileśtam milionów obiektów na jeden obraz po czym wszystko się wywali. Dla porównania, C++ zaalokuje jeden blok pamięci w ułamku sekundy. To są różne filozofie. W C++ trzeba najpierw się napocić, jak się uda to mamy spokój. Języki z polepszaczami często odwlekają problemy na potem. Nawet jak aplikacja jest dobra, to i tak np. będzie się rozwijać, wymagania wzrosną, przybędzie funkcjonalności. I co wtedy? C++ nie ma wodotrysków do wszystkiego, ale przy umiejętnym użyciu może zmiażdzyć konkurencję biznesową, Problemem stają się tylko koszty. Dlatego C++ pracuje biznesowo tam, gdzie są większe pieniądze. W wysokowydajnych grach 3D stał się standardem. W czym napisać aplikację GUI, która łączy obliczenia numeryczne z grafiką 3D? Bazę danych? Przeglądarkę www? Kompilator? Obliczenia rozproszone? Dziwnym trafem C++ się tam sprawdza, pomimo długoletniej obecności języków „biznesowych”. Może na studiach informatycznych wykładowcy nie zajmują się biznesami i wolą konkrety? W każdym bądź razie także tam sięgają macki organizacji popularyzujących języki biznesowe, technologie Microsoft, Java, C# i co tam kto woli. Komu się spodoba, ten będzie wiedział, czego się uczyć do życia. Swoją drogą, poważne opanowanie jakiegokolwiek języka jest chyba niemożliwe na jakichkolwies studiach. Jest tyle możliwych zastosowań, tyle wariantów i odmian. Nie da się nauczyć wszystkiego.

Komentarz został wyróżniony

Użytkownik Maciej napisał:

07 lutego 2018


Po przeczytaniu tego artykułu również odczułem chęć wypowiedzenia się o swojej uczelni oraz o mojej „przygodzie” z programowaniem. Otóż przed pójściem na Politechnikę Śląską swoją przygodę z programowaniem zacząłem w technikum również na kierunku informatycznym. To tam zapoznano mnie (uwaga!) z Pascalem, a następnie z C i C++. Zajęcia z programowania trwały 2 lata. Wtedy programowanie w ogóle mnie nie kręciło. Teraz mnie to śmieszy, ale przez te dwa lata nie wiedziałem jak używa się pętli while, ani nie rozumiałem for’a w forze – nie chciałem zrozumieć. Była to kwestia zarówno lenistwa jak i nauczyciela.
Postanowiłem jednak nie kończyć przygody z informatyką i poszedłem na polibude. Na I semestrze uczyłem się czystego C – w domu po studiach robiłem drobne programy z tematów, które miały obejmować nadchodzące laborki; choć niechętnie. Na wykładach w pierwszym semestrze byłem może z 3 razy. W II semestrze korzystaliśmy z C/C++ – to była katorga. Nie chodziłem na żadne wykłady z programowania bo uznawałem je za stratę czasu (dalej tak mam). Nie potrafiłem zrozumieć nawet treści zadań. Do dziś pamiętam laborki kiedy przeczytałem na ekranie słowo „Hermetyzacja”. Po któryś laborkach, za które dostawałem po 0/1/2/3 punkty postanowiłem znowu uczyć się w domu (olać wykłady!). Na necie znalazłem mnóstwo informacji więc się uczyłem i uczyłem. Na kolejnych labkach nadrabiałem punkty, poznając co tydzień nowe zagadnienia programując w domu. To był ten czas kiedy programowanie zaczęło mi się podobać. Coraz częściej sięgałem do internetów w poszukiwaniu nowych zagadnień. Dopiero wtedy programowanie stało się bardziej zabawą niż obowiązkiem zaliczenia przedmiotu. Miałem bardzo wymagającego doktora, wyczulonego wręcz na jakość kodu. Zawsze na laborkach potrafił powiedzieć coś ciekawego – a to z kolei zachęcało mnie do dalszej nauki. W ||| semestrze programowliśmy interfejs użytkownika – WinAPI – okropna strata czasu, chociaż mimo wszystko dowiedziałem się jak to wygląda „głebiej”. W |V semestrze spotkałem się pierwszy raz z JAVA, C# i WinSock’iem.
Po spotkaniu z JAVA i C# oczy mi zabłysnęły – te języki były banalne po tej całej męczarni z c/c++. Oczywiście mówię teraz o podstawach. Wykłady z języka C# były pierwszymi, na które chodziłem regularnie, oprócz tego uczyłem się w domu korzystając z neta (a jakże by inaczej). Właściwie to na wykładach uczyłem się tego, co już nauczyłem się sam w domu, ale c# wciągnął mnie na tyle, że chciałem poznać każdy zakamarek tego języka i zagłębiam się do dziś. Na V semestrze prowadzone były zajęcia z programowania równoległego (c++), ale tu z kolei wystarczyły pliki wrzucane na platforme przez wykładowcę. Niestety na studiach nie poznalem GIT’a i wzorców projektowych, ale sam z netem nadrobiłem zaległości.

Moja subiektywna ocena: uważam, że studia wskazują Ci różne kierunki o których mogłeś nigdy wcześniej nie słyszeć bądź mogły wydawać się zbyt trudne do ogarnięcia lub po prostu pokazały ci pozytywne aspekty danej dziedziny. Potrafiły przełamać moje lenistwo. Uczenie się języków niskopoziomowych również ma sens – mimo, że można się kłócić, że to strata czasu bo poniekąd sam mam takie odczucie – poznajemy jak to wszystko wygląda od środka. W języku C świetnie można wytłumaczyć na czym polega rezerwacja pamięci oraz jak działa wskażnik na mallocu. Znając podstawy C i C++ żaden inny język nie jest straszny. Faktem jest to, że praktycznie sam nauczyłem się wszystkiego w domu, ale studia pomogły mi zdobyć tą wiedzę wskazując to czego powinienem się nauczyć. Pomijam fakt o nauce innych przedmiotów. Kolejnym atutem jest ten głupi papierek, dzięki któremu można przebić papierowy sufit. Nie wierzę, że studia potrafią nauczyć programowania na laborkach/projektach semestralnych. Jeśli nie pisze się w domu własnych projektów nie wykorzystuje się zdobytej wiedzy. Zresztą kiedy rozglądałem się za pracą to nieraz widziałem w wymaganiach „wyksztalcenie wyższe” – w korpo jak i w januszopolu.

Komentarz został wyróżniony

Użytkownik Rafał napisał:

16 lutego 2018


Ludzie o co tyle szumu. Przecież człowiek napisał swoje zdanie. Każdy przecież może mieć swoje. Artykuł mooże sugestywny ale dobrze się go czyta i jest w nim sporo prawdy.

Użytkownik Bartek napisał:

27 lutego 2018


Bardzo często zarzucasz innym, że piszą/opowiadają kompletne bzdury, przy czym sam robisz to samo. C++ jest językiem, który w zasadzie jako jedyny może być wykorzystywany w środowiskach, gdzie liczy się optymalizacja i szybkość działania. Nie sądzę, żeby na przykład GameDev przeszedł na jakiś inny język. Bardzo optymalne podstruktury i również pisane są w c++, tak samo jak środowiska algorytmiczne, gdzie głównym założeniem jest szybkość działania. Nie ma co tu dużo mówić, najbardziej popularne dziś języki (mam na myśli java/c# .net) są zdecydowanie wolniejsze od c++ i wbrew pozorom, c++ może jeszcze zawojować kawał rynku. Oczywiście jest on dużo trudniejszy, niż pozostałe i ciężej w nim szybko napisać duży projekt – co jest zrozumiałe, bo obecnie nie do tego on służy. Zapominasz też o tym, że umiejąc c++ przesiadka na jave/.net z potrzebnymi frameworkami zajmie Ci miesiąc. Natomiast przesiadka z javy na c++ to już spore wyzwanie. Sam jestem programistą .net, jednakże to ludzie, którzy klepią w c++ są uznawani za „elitę” koderów. Dlatego też nie rozumiem, dlaczego tak bardzo jedziesz po tym języku. Nie wszyscy chcą być korpo java-klepaczem kodu – nie oszukujmy się, tego może się nauczyć każdy. Prawdziwe wyzwania zaczynają się tam, gdzie trzeba naprawdę uważać na zasoby i optymalizacje – czym 90% developerów nie musi sobie zaprzątać głowy przy obecnych technologiach.

Użytkownik Karol napisał:

27 lutego 2018


@Bartek
Optymalizacja i szybkość działania to obecnie w software developmencie NISZA. Zrób krótki research rynku. Ilu potrzeba programistów C++ a ilu od Javy/C#? O webówce już nawet nie wspomnę, ponieważ wygryza ona wszystko dookoła. Zamiast starać się wygrać wojnę na argumenty której nie wygrasz (ani nikt inny), lepiej byłoby ustalić kompromis aby uczyć tego na co jest obecnie największe zapotrzebowanie na rynku. Przede wszystkim iść z duchem czasu. Nie mam nic przeciwko podstawom programowanie w języku C++. Problem natomiast pojawia się wtedy, kiedy C++ jest Twoim jedynym językiem na studiach. Nigdzie „bardzo nie zjechałem tego języka”.

Użytkownik Igor napisał:

24 lipca 2018


Wszystko prawda z tym, że na studiach nie do końca chodzi o to by zdobyć konkretną wiedzę, studia przede wszystkim mają za zadanie doprowadzić do rekonfiguracji hardwerowej mózg, mózg który dopiero potem niczym procesor dzięki któremu UMYSŁ po oprogramowaniu może wykonywać bardziej skomplikowane zadania.

Osoby zainteresowane odsyłam do artykułu pt „Mobilność intelektualna a muzyka klasyczna”, wystarczy wpisać w googlach, na końcu artykułu jest ikonka pdf – polecam w nią kliknąć i się zastanowić. Być może osoby znajdą tam wskazówki dzięki którym będą mogły być jeszcze lepszymi informatykami – do czego namawiam.

Adresu strony nie podaję bo z reakcjami bywa różnie, natomiast namawiam na wyszukanie artykułu w googlach i proszę nie zapominać kliknąć w pdf.

Użytkownik Mariusz napisał:

10 września 2018


Studia to ciężki temat ze względu na przestarzałe programy nauczania. Niestety nie rozwijają się one wraz z rynkiem przez co uczymy się masy zbędnych rzeczy. Jeśli chce się być dobry w programowaniu trzeba to ćwiczyć tak samo jak z graniem w piłkę. Ciężka praca przybliża do sukcesu a nie predyspozycje :)

Użytkownik Pawel napisał:

13 września 2018


Studia niewiele uczą ale warto na nie iść. Wprowadzają dyscypline, musisz zrobić projekty i zaliczyć egzaminy. Chcesz być lepszy od innych studentów, to jest motywacja! Na studiach dziennych masz czas i energie na nauke, olewasz przedmioty zbędne i ładujesz wszystko w programowanie.Pracując nie masz siły i czasu na nauke, jest już tylko praca i odpoczynek po niej. Jednak tego C czy C++, Sql uczą a to jest podstawa aby zacząć działać. Znając C++ z marszu programujesz w javie itp. Niestety praktycznych rzeczy sie tam nie nauczysz, wykładowcy rzadko sie dzielą wiedzą o ile ją mają.

Użytkownik Stronywuwuwu - pozycjonowanie napisał:

25 września 2018


Nawiązując do tytułu. Studia wiele mi pomogły. Nie wszyscy coś zyskują na uczelni. W moim przypadku było to pozyskanie nowych i wartościowych znajomości. Pomogły mi one rozwinąć skrzydła. Z początku myślałem, że umiem bardzo dobrze programować i po co mi w ogóle te studia. Ale postrzeganie tego samego kodu przez innych moich znajomych było dla mnie otwarciem nowej drogi. Każdy z nich nauczył mnie czegoś wartościowego. Do dziś mam ze wszystkimi kontakt i razem współpracujemy. Co do samej nauki programowania wszystko zależy od samej uczelni. Jeśli naprawdę zależy Ci na nauce to nie wybieraj byle czego, niech to będzie uczelnia z tradycjami, coś naprawdę dobrego.

Podsumowując jeśli chodzi o samą naukę programowania to więcej wyniosłem chodząc na nauki pozalekcyjne, różne kluby programistów czy zawody. Fajnie wchodzi nauka jeśli się dobrze przy tym bawisz a nie stresujesz na zajęciach :)

No i faktem jest, że na rynku pracy nie brakuje ofert dla programistów. Co raz więcej robią za nas maszyny a przecież ktoś je musi programować :)

Zachęcam Cię do zostawienia komentarza!

Ilość znaków: 0