В большинстве университетов, которые я проверил, дисциплина, наиболее точно называемая «компьютерная наука», - это прикладная наука, похожая на инженерные дисциплины; если вы занимаетесь этим, вы получаете «BS» или «MS». Степень CS Texas Tech была предложена Инженерным колледжем. Дисциплина, как преподают, в основном теоретическая; вы изучаете концепцию машин Тьюринга, DA / NDA и другие фундаментальные концепции, которые «повседневному» программисту не нужно постоянно греметь в своем черепе. Вы также получаете огромное количество высшей математики; степень Texas Tech CS, и я готов поспорить, что многие другие, в значительной степени, подадут вам младшего математика, чтобы пойти с ним. К этому большинство университетских следов степени добавляют здоровенную черту практического применения низкого уровня; Вы изучаете язык ассемблера, язык третьего поколения,
Тем не менее, большинство людей, которые пишут код для жизни, не являются «учеными-компьютерщиками»; они, строго говоря, «разработчики программного обеспечения» или (если добавить в анализ / проектирование) «инженеры программного обеспечения»; эта работа намного меньше аппаратного уровня (хотя вы должны знать основы этого), гораздо больше системного анализа, проектирования и простого кодирования. Многие университеты имеют разные пути только для этого; в Техасском технологическом институте это называлось «Управление информационными системами», и это была деловая степень (BBA / MBA). Этот трек был легче при высшей математике (то, что вы должны были знать об алгебре и дифференциально-интегральном вычислении, было сжато в два семестра «бизнес-математики» и не включал векторный / тензорный кальци, линейную алгебру и т. Д.), Гораздо тяжелее на финансовая математика (семестр по каждой статистике и финансам, с двумя по бухгалтерии и экономике). Легче в операционных системах, тяжелее в технологиях «стека», таких как базы данных, веб-серверы, сети и общее администрирование систем. Легче для языков низкого уровня, схемотехники и искусственного интеллекта, больше для языков 3-го и 4-го поколения, системного анализа и управления проектами. Я получил эту степень в Texas Tech, и к тому времени, как я ушел, у меня был, по крайней мере, семестр каждого из Java, VB, C # и веб-языков (HTML / CSS / PHP), плюс год OOA & D и различные другие курсы в управлении ИТ-проектами.
Что лучше в реальном мире? Я получил MIS BBA, мой брат получил CS BS, и мы оба работаем примерно на одном уровне зарплаты (с учетом стоимости жизни), как старшие инженеры-программисты. Ему пришлось выучить много требуемого OOA & D на работе, а также довольно быстро освоить C # / Java из своих базовых знаний C ++. Со своей стороны, я бы хотел, чтобы у меня было два семестра изучения концептуальных алгоритмов, которые он получил, когда я застрял на курсах по управлению бизнесом (да, MIS - это степень «Менеджмент», но я обнаружил, что 99% моих знаний о том, как управлять, а не управлять другими людьми, научился на примере).