Cześć, Habr!
Na kogo się uczyć? Czy pójść na studia informatyczne, czy rozwinąć umiejętności inżyniera oprogramowania? Te pytania są bardzo aktualne w dzisiejszych czasach.
A co wybierzesz ty?
Osoby, które dopiero zaczynają swoją drogę w branży IT i planują aplikować do jakiejś technicznej uczelni lub po prostu szukają programów edukacyjnych związanych z programowaniem, najczęściej napotykają na ogromną liczbę kierunków. Chodzi o to, że w każdym z tych kierunków przedmioty są podobne, zwłaszcza na 1. i 2. roku.
Dla przejrzystości podzielmy wszystkie kierunki na dwa obozy — to Computer Science i Software Engineering. Zasadnicza różnica polega na tym, że pierwszy kierunek jest bardziej elastyczny i lepiej zajmuje się fundamentalnymi zagadnieniami, a drugi ukierunkowany jest na bardziej praktyczne umiejętności tworzenia oprogramowania dla rynku. Niezależnie od tego, który z tych kierunków wybierzesz, ostatecznie zostaniesz programistą. Najprawdopodobniej po zakończeniu studiów lub w ich trakcie znajdziesz pracę, a to, w jakim sektorze rozwoju zostaniesz zatrudniony i na co będziesz mógł liczyć, zależy od kierunku, który wybierzesz.
W obu obozach na pierwszych 2-4 semestrach uczą się podobnych przedmiotów, takich jak algebra liniowa, analiza matematyczna, matematyka dyskretna i równania różniczkowe. Całą tę matematykę zazwyczaj przerabia się w obu obozach, ale w Computer Science dodaje się jeszcze jeden kurs matematyki dyskretnej i równania różniczkowe. Wspólnym elementem dla wszystkich kierunków jest wprowadzenie do ogólnej informatyki, a tutaj zaczynają się różnice. W kierunku Computer Science omawiają architekturę komputerów, teorię obliczeń algorytmów, struktury danych i ich analizę, jak działają programy oraz ich pisanie z wykorzystaniem klasycznych konstrukcji, systemów operacyjnych, kompilatorów i tak dalej. To oznacza większy zakres podstaw. Z kolei w Software Engineering omawia się projekty OOP, testowanie oprogramowania, podstawy systemów operacyjnych i tak dalej. Innymi słowy, obejmuje to naukę technik, aby student mógł korzystać z już gotowych rozwiązań i za ich pomocą rozwiązywać różnorodne problemy biznesowe. To wszystko zazwyczaj przerabiane jest w pierwszym roku nauki.
Na drugim roku studiów oba kierunki zaczynają zgłębiać przedmioty takie jak architektura komputerów i struktura systemów operacyjnych, jednak Inżynieria Oprogramowania omawia te zagadnienia w mniejszym stopniu. Jest to związane z tym, że przygotowuje się tam osoby, które będą miały niewielką styczność z tymi tematami. Od drugiego roku nauki, na Informatyce zaczyna się większy nacisk na mikroarchitekturę i rdzenie systemów operacyjnych, natomiast w Inżynierii Oprogramowania skupia się bardziej na interfejsach użytkownika, testowaniu, analizie oprogramowania, różnych metodach zarządzania itd. W szczególności, programowanie obiektowe jest dogłębnie omawiane w obu kierunkach, ponieważ ta paradygma programowania jest bardzo popularna w dzisiejszych czasach i trzeba o niej wiedzieć.
Na trzecim roku studiów Informatyka poświęca czas na naukę kombinatoryki, kryptografii, sztucznej inteligencji, podstaw programowania, grafiki 3D i teorii kompilacji. Natomiast w Inżynierii Oprogramowania zajmują się bezpieczeństwem systemów, sieciami i internetem, zarządzaniem oprogramowaniem oraz ogólnym zarządzaniem. Jednak w zależności od uczelni przedmioty te oraz ich zaawansowanie mogą się różnić.
Najważniejsze pytanie tej artykułu brzmi, który kierunek wybrać. To zależy od twoich preferencji. Jeśli chcesz być elastycznym i wszechstronnym inżynierem, powinieneś wybrać Informatykę. Jeżeli natomiast chcesz związać swoje życie z programowaniem i być zdolnym do tworzenia przydatnych programów dla użytkowników końcowych, Inżynieria Oprogramowania jest właśnie dla ciebie.

Podsumowując, chciałem powiedzieć, że na Informatyce nauczysz się rozwiązywać problemy i wymyślać eleganckie sposoby ich rozwiązania, natomiast w Inżynierii Oprogramowania staniesz się programistą biznesowym, który będzie w stanie zarządzać projektami, ludźmi i tworzyć aktualne oprogramowanie.
Źródło: habr.com
