Tytuł Inżyniera Informatyka to tytuł zawodowy nadawany przez uczelnie wyższe po ukończeniu studiów inżynierskich i obronie pracy dyplomowej-inżynierskiej na kierunku Informatyka.
Jeżeli kogoś interesuje temat, lub sam się wybiera na takie studia to opiszę tutaj pokrótce materiał oraz jakie projekty realizowaliśmy na zaliczenie aby nabrać orientacji jaką wiedzę i umiejętności posiada (albo przynajmniej musiał posiadać) w czasie studiów Inżynier tego kierunku.
Studia kończyłem w 2015 roku i w ramach pomocy posłużę się suplementem z ocenami. Od tego czasu program nie powinien ulec większym zmianom. Czas trwania studiów to 7 semestrów.
Dobry naukowiec to osoba z oryginalnymi pomysłami. Dobry inżynier to osoba, która tworzy projekt wykorzystując jak najmniej oryginalnych pomysłów.
Freeman Dyson
Specjalność: grafika i animacja komputerowa
1. Algebra liniowa
Algebra liniowa to dział matematyki zajmujący się takimi konstrukcjami jak formy kwadratowe, macierze, wektory, iloczyn skalarny, przekształcenia liniowe itp. Na początku zderzenie z wyższą matematyką może być mało komfortowe (szczególnie dla kogoś kto tak jak ja miał trójkę z matematyki od pierwszych klas szkoły podstawowej do klasy maturalnej 😉 ) ale jak człowiek chce to wszystkiego się nauczy.
Algebra liniowa jest szalenie istotna w przypadku programowania grafiki i fizyki. Jej podstawy były konieczne do kolejnych przedmiotów matematycznych i przydały się na studiach magisterskich (optymalizacja i programowanie liniowe) dlatego warto poświęcić temu przedmiotowi wiele uwagi. Praktycznie umiejętności to mnożenie i transpozycja macierzy a także inne działania których już nie pamiętam.
2. Architektura systemów komputerowych
Bardzo ciekawy przedmiot w którym poznajemy budowę komputera i różnych architektur.
Rozumiemy różnicę pomiędzy architekturą mikroprocesorów RISC i CISC. Poznajemy architekturę von Neumanna i architekturę harwardzką. Potrafimy wyjaśnić w szczegółach jak działa komputer i poznajemy historię rozwoju komputerów. Poznajemy jak wyglądało programowanie w czasach komputerów PDP-11!
3. Fizyka
Fizyka jak fizyka… Niemal to samo co w szkole średniej tylko na wyższym levelu.
4. Podstawy informatyki
To był przedmiot o… Informatyce: dziedziny informatyki, historia,
Przeliczanie liczb w różnych systemach. Dziesiętny, binarny, ósemkowy, szesnastkowy. Dowiadujemy się czym się różnią dane od informacji. Oraz czym się różni wiedza od inteligencji i mądrości 🙂
Kompresja danych, szyfrowanie, przetwarzanie informacji – dla mnie bardzo ciekawy przedmiot.
5. Podstawy programowania
Programowanie w języku C. Programowanie w konsoli (tak jak w przypadku technikum) ale też na nieco wyższym levelu. Już była ingerencja w system – np. import i eksport plików. Programy miały działać ale w dalszym ciągu nie dochodziło do analizy wydajności czy złożoności obliczeniowej.
6. Statystyka
Kolejny przedmiot, który docenia się po czasie. Kwartyle, dystrybuanty, średnie, mediany, odchylenia standardowe, wariancje, kowariancje to terminy jakie będziemy mieli w małym palcu. Statystyka jest przydatna w kolejnych przedmiotach (np. w metodach probabilistycznych) a także przydaje się w życiu codziennym 🙂
7. Język angielski, BHP i poż.
To chyba standard na wszystkich kierunkach.
8. Algorytmy i złożności
Bardzo ciekawy przedmiot w któym uczymy się optymalizować kod. Tematem algorytmów jest między innymi sortowanie. Poznawaliśmy chyba każdy możliwy sposób sortowania elementów w tablicy (z wartownikiem bez wartownika, quick-sort, bąbelkowo itd…). Przedmiot mógł być zdany dopiero po wielokrotnym obejrzeniu i zapamiętaniu systemów tańca węgierskiej grupy folkowej:
Te wyświetlenia pod filmem są generowane przez studentów informatyki z całego świata 🙂
Potrafimy obliczyć złożoność dowolnego algorytmu oraz rozumiemy sens opłacalności i wykonalności (lub nie) danych obliczeń.
9. Analiza matematyczna
Analiza matematyczna to dział nauki zajmujący się między innymi rachunkiem różniczkowym. Poznamy takie struktury jak całki, funkcje zmiennej zespolonej czy granice. Dość trudne ale jakoś większość sobie poradziła na egzaminie.
10. Grafika i komunikacja człowiek-komputer
Zajęcia o dość rozległej tematyce. Zajmowaliśmy się tym jak działa grafika rastrowa i wektorowa a także jak działa ludzkie postrzeganie obrazu. Poznaje się takie pojęcia jak krzywe, krzywe Beziera, przestrzenie barw. Na zajęciach praktycznych wykonywaliśmy projekty w POV-Ray’u czyli programie umożliwiającym projektowanie grafiki 3D za pomocą kodu komputerowego.
11. Metody probabilistyczne
Dość podobny materiał do statystyki ale głównym tematem było prawdopodobieństwo. Poznaje się takie pojęcia jak rozkład normalny, rozkład t-studenta, rachunek prawdopodobieństwa, szeregi czasowe itp.
12. Podstawy elektroniki
Jak sama nazwa wskazuje, poznajemy obwody i jakieś podstawowe układy. Przydatne będą podstawy z fizyki na poziomie szkoły średniej.
13. Systemy operacyjne
Poznajemy zasadę działania najprostszych systemów operacyjnych. Szczegółowo poznajemy ich elementy. Sama teoria, test ABC sprawdzał wiedzę teoretyczną.
14. Bazy danych
Bardzo przydatny język w którym poznajemy tajniki baz danych a w szczególności język SQL. Relacje, normalizacja bazy danych, transakcje, zakleszczenia, model ACID to pojęcia które przewijają się non stop na zajęciach. W części praktycznej tworzyliśmy relacyjną bazę danych w Microsoft Access (z tego co pamiętam wykonywałem bazę sklepu z magazynem).
Opanowanie materiału pozwoliło mi się rozwijać pod kątem projektowania baz danych i dało mi możliwość wykorzystywania baz danych w każdej kolejnej aplikacji.
15. Języki i paradygmaty programowania
Kolejne zajęcia z programowania. Tutaj już mieliśmy C++ i wykonywaliśmy aplikacje okienkowe w Windowsie.
16. Matematyka dyskretna
Kolejny przedmiot matematyczny, w którym poznajemy logikę i jej prawa, teorię liczb oraz kombinatorykę. Bardzo ciekawy dział.
17. Podstawy elektroniki i miernictwa
Kolejny przedmiot o elektronice.
18. Technologie sieciowe
Poznajemy środowisko Unixowe.
Specjalizacja (grafika)
19. Elementy barwy i kompozycji w sztuce
Bardzo interdyscyplinarny kierunek, w którym część jest o designie, część o postrzeganiu barw i historii sztuki. Tworzyliśmy prezentacje na wybrany przez siebie temat. Ja np. wybrałem coś o Gestalt principles in UI design.
20. Inżynieria oprogramowania
Bardzo ciekawy przedmiot o tym jak projektować aplikacje dla biznesu. Jak zamieniać procesy biznesowe w konkretnej firmy w bazę danych i algorytmy.
Przedmiot tego typu przygotowuje do wdrażania i programowania dedykowanych aplikacji dla firm zewnętrznych, które mają niestandardowe potrzeby.
21. Systemy wbudowane
Programowanie płytek AVR Atmega w asemblerze. Jeden z najtrudniejszych przedmiotów do zaliczenia:

Poznajemy jak działa np. wyświetlacz LCD, i gniazda. Programujemy na niskim poziomie przyciski diody itp.
22. Sztuczna inteligencja
Zastosowania sztucznej inteligencji. Luźne pogadanki o grze w życie, mało z niego wyniosłem.
23. DTP i skład komputerowy
LaTeX i inne języki znaczników.
24. Grafika komputerowa
25. Podstawy psychologii
Luźne pogadanki o psychologii, socjologii kulturze itp. Dość ciekawe.
26. Ochrona własności intelektualnej
Luźne pogadanki i prawie autorskim i pokrewnych tematach.
27. Problemy społeczne i zawodowe informatyki
BHP, etyka i filozofia zawodu w jednym.
28. Języki internetowe
HTML, JavaScript, PHP. Przedmiot pchnął mnie w technologie back-endowe. Podstawy PHP pozwoliły mi się rozwijać w tym kierunku.
29. Języki obiektowe
Znowu programowanie. Tym razem C++ w wersji obiektowej. Poznajemy abstrakcje, dziedziczenie, szablony, polimorfizm itp. Na zaliczenie wykonałem jakąś aplikację w konsoli na temat figur geometrycznych.
30. Programowanie grafiki 3D
Programowanie w środowisku OpenGL.
31. Przetwarzanie obrazu
Dość hardcorowy przedmiot. Programowaliśmy filtry i efekty graficzne za pomocą kodu. Tutaj przydała się wiedza z algebry liniowej. Praktyczne wykorzystanie macierzy było chyba na każdych zajęciach.
32. Animacja w reklamie i grach
Projektowaliśmy grafikę w wybranej technologii. Ja wybrałem Autodesk 3DS Max Studio.
33. Programowanie w środowisku graficznym
Tworzyliśmy gry w silniku Unreal Engine. Mój projekt zaliczeniowy to mapka a’la CTF.
34. Programowanie midietów
Programowanie w środowisku Processing. Rysowanie grafiki wektorowej i jej animacja za pomocą kodu i funkcji matematycznych.
35. Wprowadzenie na rynek pracy
Odpowiednik podstaw przedsiębiorczości z technikum. Tworzenie CV i tego typu rzeczy.
36. Praca dyplomowa
Tutaj każdy wybiera co mu się podoba. Temat musi być zgodny ze specjalizacją. Z racji interdyscyplinarności wybrałem technologie webowe i tematem pracy był Responsive Web Design w WordPressie. Temat w tamtych czasach był świeży i nieoklepany. Stworzyłem prosty framework i napisany od podstaw szablon zintegrowałem z WordPressem.
Realizowany projekt był punktem wyjścia do oferowania własnych usług web designerskich i web deweloperskich. Po roku od zakończenia studiów zwolniłem się z etatu na rzecz własnej działalności i pracy jako freelancer.
Podsumowanie
Gdzie może pracować Inżynier Informatyki?
- programista (wszędzie)
- administracja (wszędzie)
- własny biznes
Czyli praktycznie tam gdzie technik ale też na wyższych stanowiskach w tym kierowniczych wymagających kreatywności i wyższych kompetencji.
Czy trzeba mieć skończone studia Informatyczne aby programować?
Nie. Większość z kolegów pracowała już podczas studiów. Firmy i korporacje biorą ludzi nawet po kursach. Na rozmowie kwalifikacyjnej trzeba dowieść, że ma się opanowane podstawy w konkretnych technologiach czy frameworkach i tyle… Można mieć nawet humanistyczne wykształcenie. Brak kierunkowego wykształcenia może być barierą na wyższych stanowiskach. Stąd wiele osób pracujących lub chcących pracować w IT decyduje się na studiowanie Informatyki na drugim stopniu nawet jeśli są licencjatami i inżynierami w innych zawodach.
Czy było warto?
W moim odczuciu bardzo. Poznałem technologie, do których sam bym nie dotarł. Studia uporządkowały mi pewne kwestie i umożliwiły rozwój na własną rękę łącząc pasję z freelancerską pracą zawodową. Mimo, że materiał programowania z pierwszych semestrów nie zdołał wyczerpać umiejętności jakich nabyłem w wieku 15/16 lat, to (biorąc pod uwagę pozostałe zajęcia) studia uważam za bardzo rozwojowe.
Jeżeli mocno interesujemy się w danej dziedzinie można być samoukiem i do końca życia racjonalizować sobie, że przecież tyle znanych osób nie ma studiów i osiągnęły sukces. Można też skończyć studia i poczuć się spełnionym w tej sferze życia. Jeżeli jesteś młodym człowiekiem pamiętaj, że zaprzepaszczenie okazji jest zazwyczaj boleśniejsze od największych porażek.
Oczywiście można się prześlizgnąć na trójkach i nie wynieść niczego. Można też krytykować system, że na studiach nie nauczymy się programowania a papier inżyniera nie daje gwarancji zarobków liczonych w dziesiątkach tysięcy na miesiąc.
Można też dociekać i rozwijać się w tematach poruszanych na zajęciach aby z biegiem czasu stać się ekspertem w swojej specjalności. Wybór grafiki i rozwijanie się w tematach programowania dla Internetu był jedną z lepszych decyzji jakie podjąłem w życiu. Pozwoliło mi to programować kreatywne interakcje i cuda wizualne jakie zawsze mi się podobały a umiejętności ich tworzenia bardzo imponowały. Przestałem się bać przetwarzania obrazu i programowania grafiki. Opanowanie podstaw i rozwój w tych dziedzinach pozwolił mi nabrać pewności w tworzeniu własnego front-endu i back-endu od podstaw. Od tej pory rozwijam się w tych dwóch dziedzinach i tworzę wartościowe aplikacje dla innych.
Studia inżynierskie umożliwiły mi dalsze kształcenie w Informatyce na poziomie magisterskim, które rozpocząłem po ponad dwuletniej przerwie. O tych studiach piszę w artykule: co potrafi Magister Informatyk.
Odpowiedz lub skomentuj