Какво ще изберете?

Здравейте, Хабр!

Какво ще изберете? На кого да учим? Да учим компютърни науки или да усвояваме умения за софтуерни инженери? Тези въпроси са много актуални в наши дни.

А какво ще изберете вие?

Хората, които току-що започват своя път в IT сектора и се подготвят да кандидатстват в технически университет или просто търсят обучителни програми по програмиране, често се сблъскват с огромно количество направления. Същността е, че в всяко от тези направления предметите са подобни, особено през първите два курса.

За ясност, нека разделим всички направления на два лагера - Computer Science и Software Engineering. Основната разлика е, че първото направление е по-гибко и там се изучават по-добре основните принципи, докато второто е насочено към по-практически умения за разработване на софтуер за пазара. Независимо от избраното направление, в крайна сметка ще станете програмист. Вероятно след или по време на учението ще започнете работа и именно секторът на разработка, в който ще се включите, ще бъде определен от избраното направление.

В двата лагера през първите 2-4 семестъра се изучават подобни предмети, като линейна алгебра, математически анализ, дискретна математика и диференциални уравнения. Цялата тази математика обикновено се изучава и в двата лагера, но в Computer Science се добавя още един курс по дискретна математика и диференциални уравнения. Общото за всички направления е въведението в общите компютърни науки, а тук започват и разликите. В Computer Science се обсъждат архитектура на ЕВМ, теория на изчисление на алгоритми, структура на данни и тяхния анализ, как работят програмите и как могат да се пишат, използвайки класическите конструкции, операционни системи, компилатори и така нататък. Тоест обхваща се по-широк фундамент. От своя страна, в Software Engineering се разглеждат дизайн на ООП, тестване на софтуер, основи на операционни системи и така нататък. С други думи, обхваща се изучаването на техники, така че студентът да може да учи как да използва вече готови решения и с помощта им да решава различни бизнес задачи. Всичко това обикновено се изучава през първата година на обучение.

След това, още на 2-ра година, и двете направления започват да изучават предмети като архитектура на компютърни системи и структура на операционни системи, но Software Engineering се запознава с тях на по-повърхностно ниво. Това се дължи на факта, че там подготвят хора, които ще имат малко общо с тези предмети. От втори курс нататък в Computer Science се акцентира повече на строежа на микроархитектурата и ядрото на ОС, а в разработката на софтуер се поставя по-голямо внимание на потребителските интерфейси, тестването, анализа на софтуера, различни мениджърски методики и т.н. В частност, ООП се изучава в двете направления доста задълбочено, тъй като тази парадигма на програмиране е много популярна в наше време и се изисква да се познава.

През 3-та година на обучението в Computer Science се изучават комбинаторика, криптография, изкуствен интелект, основи на разработката на софтуер, 3D графика и теория на компилаторите. А в Software Engineering се учат системна сигурност, мрежи и интернет, управление на софтуер и общ мениджмънт. Но в зависимост от университета, тези предмети и задълбочаването им може да варира.

Вероятно, най-важният въпрос в тази статия остава въпросът къде е по-добре да се насочите. Тук всичко зависи от вашите предпочитания. Ако искате да бъдете много гъвкав и универсален инженер, то трябва да се запишете в Computer Science. А ако искате да свържете живота си с разработката на софтуер и да можете да създавате полезни програми за крайни потребители, то Software Engineering е точно за вас.

Какво ще изберете?

В обобщение, исках да кажа, че в Computer Science ще ви научат да решавате задачи и да измисляте елегантни начини за решаване на тези задачи, а в Software Engineering от вас ще направят бизнес програмист, който може да управлява проекти, хора и да създава актуален софтуер.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster