Почему степень информатики имеет значение для профессионального программиста? [закрыто]


63

У меня есть степень в области компьютерных наук. Это было здорово для открытия дверей, получения работы. Помогать мне в профессиональной области программирования на C # .NET (самой популярной платформе и языке в той области, где я работаю, если не во всех Соединенных Штатах на руках самой популярной ОС в мире) - это вряд ли полезно. Как вы думаете, почему это помогает вам, как программисту, в вашей профессиональной карьере (не считая алгоритма начисления премий, чтобы произвести впечатление на интервьюера)?

В современном мире адаптация, быстрое мышление, сильная коммуникация, OO и фундаментальные навыки проектирования позволяют разработчику писать программное обеспечение, которое примет клиент. Эти навыки ограничены только в программе CS. На мой взгляд, чтение 500-страничной книги по C # от Wrox предлагает гораздо более полезный набор навыков, чем 4-летний курс обучения компьютерным бластерам. Многие не согласны. Итак, почему степень информатики имеет значение?


59
«Информатика не больше о компьютерах, чем астрономия о телескопах». - Эдсгер Дейкстра
Эрик Липперт

4
Запоминания недостаточно. Требуется образование, чтобы знать, как использовать Reg Ex, и опыт, чтобы знать, когда его использовать. Я бы включил чтение книг как часть образования. Опыт, связанный с работой, редко побуждает вас делать все правильно.
Захари Скотт

10
Это важно, когда у вас его нет
Aditya P

2
У меня тоже был 2,8, довольно средний. Но нас в основном учили C / Java и некоторым вещам в сети, No C #. В любом случае я думаю , что CS является «следующей лучшей вещью», потому что CS 4 программы года не совсем легко , и это действительно показывает , вы можете работать, чтобы получить степень. Почему это так или иначе имеет значение? это дает вам работу!

1
@ luis.espinal Я подвергаю сомнению эту статистику. Я сомневаюсь, что 70% всего кода написано на C (подумайте о всех тихих Fortran, COBOL, PL1 и Rexx, которые счастливо тикают). Множество, конечно, но в подавляющем большинстве я скептически отношусь. Существует много встроенных устройств, но количество встроенных устройств ничего не говорит об оригинальном источнике. Как только он написан для первого конкретного устройства, он обычно подходит для всех последующих устройств того же самого; и, по-видимому, много используется повторно для близких производных, будь то в той же строке более поздней редакции или в другой строке из того же семейства продуктов.
JustinC

Ответы:


133

Почему степень информатики ?:

  • Я работал с разработчиком, который хранил тысячи элементов в HashTable, а затем перебирал только значения. Он никогда не получал доступ через хеш. Он явно не знал, как работает HashTable или почему вы его используете - в этом может помочь степень CS.
  • При работе с регулярными выражениями людям, знакомым с базовой теорией автоматов и формальными языками, кажется, легче рассуждать о том, что происходит, и устранять неполадки в их выражениях - степень CS может помочь в этом.
  • Разработчик, только что пришедший из школы, может сразу же разобраться с проблемами в различных типах мышления парадигмы (ОО, функциональный, логический), в то время как новому разработчику без степени требуется опыт, прежде чем он сможет сделать то же самое.
  • Школы учат вычислительной сложности. Разработчики, не имеющие ученой степени, могут чувствовать, что лучше, но формальное понимание иногда приятно, особенно при объяснении результатов коллеге.
  • Диплом предлагает введение во многие модели машины - аппаратное обеспечение, ОС, общие структуры данных, сети, виртуальные машины. С этими моделями в глубине души легче выработать предчувствие, что проблема возникает, когда что-то идет не так. Опять же, разработчики без степени строят те же модели, но это требует времени.
  • Экспертное руководство по любой дисциплине может помочь ученику избежать тупиков и пропущенных тем. Чтение - это здорово, но это не заменит великого учителя.

Это не означает, что степень CS необходима для того, чтобы быть великим разработчиком. Едва. Некоторые из лучших разработчиков, с которыми я работал, не имеют степени. Степень дает вам быстрый старт. К тому времени, как вы закончите, вы (надеюсь) написали достаточное количество кода на разных языках и в разных средах для решения многих типов проблем. Это поможет вам продвинуться до 10000 часов, необходимых для того, чтобы стать экспертом.

Второе преимущество заключается в том, что он показывает работодателям, что вы способны достичь долгосрочной цели и добиться успеха. Я считаю, что во многих компаниях это важнее, чем вы узнали.


4
+1 - это имеет смысл. Экспертное руководство, вероятно, помогло мне способами, которые я не узнаю. Я все еще задаюсь вопросом, превосходит ли 4 года общего образования 4 года промышленного опыта, если предположить, что оба разработчика одинаково заинтересованы в обучении. Существует определенный уровень дисциплины, которого, как мне кажется, у меня не было до получения степени, что, безусловно, имеет значение.
P.Brian.Mackey

4
Изучение правильной терминологии и проведение большого количества времени с другими людьми, изучающими тот же материал, также являются преимуществами этого дорогого клочка бумаги.
Sal

65
С другой стороны, я видел людей со степенью, которые все еще терпят неудачу в большинстве из этого списка :)
Жоэль Говро

1
Ну и дела, они, возможно, слышали о теории графов тоже. Это может сделать разделение приложений на клиенты и серверы, сети, группы DAG и деревья немного проще.
Тим Уиллискрофт

3
@JustinC - Ваше утверждение «обладатели степеней, как правило, защищают их по любой причине, потому что они есть» - одна из основных причин, по которой я задал вопрос. Я видел эту слепую иррациональную защиту из первых рук. Противоположность также верна.
P.Brian.Mackey

87

Я ожидаю, что через 40 лет .NET и C # станут не более чем печальной кучей устаревшего кода в устаревших операционных системах.

Но фундаментальные концепции информатики будут такими же живыми, какими они были, когда Шеннон, фон Нейман, Кнут, Дейкстра, Хоар и другие выкопали их из формальной логики и математики ... более 40 лет назад.


28
+1 - очень верно, но через 40 лет мне наплевать.
P.Brian.Mackey

3
@ P.Brian.Mackey: Я предполагаю, что через 10 лет C # будет в пути, а через 20 лет это будет больше памяти, а через 30 лет потребуется седой старый кодекс археологов , Люди, которые связывают себя с данным набором инструментов, устаревают сами. Мне посчастливилось читать старые статьи по системному программному обеспечению с конца 1970-х и начала 1980-х годов. Из этих программных систем очень немногие находятся на современном радаре. Может быть 1 или 2 (Unix и Lisp). Хотя сегодняшняя база установки больше, я ожидаю, что подобное произойдет.
Пол Натан

4
@ P.Brian.Mackey Скажи, что ты будешь, но я планирую все еще пнуть через 40 лет, и через 80 лет, если у меня будет право голоса.
Мэтью Шарли

2
@Paul Nathan: Чтобы поддержать вашу точку зрения, некоторые фундаментальные основы программирования относятся к 1930-м годам (например, en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis ). Интересно, если / как мы будем писать код через 80 лет :)
phooji

3
@phooji (загрузить "legacy-c-sharp-рутины" ...): P
Марк C

37

Я использую почти все CS, которые я изучал в школе (*) каждый день на работе. Если вы хотите работать над дизайном языка программирования, поисковой оптимизацией, квантовым анализом или чем-то подобным, я полагаю, что вы могли бы сделать это без соответствующей степени, но кажется, что на работе нужно учиться очень много. Я не особенно высокообразован, учитывая мою работу; многие из моих коллег имеют докторские степени в области компьютерных наук, а некоторые из них были профессорами CS.

Получение моей степени имело огромное значение для меня; он много-много раз окупился и в долларах, и в удовлетворении.

Тем не менее, я полностью понимаю вашу точку зрения. Большинство людей, которые программируют компьютеры, имеют рабочие места, которые не требуют степени CS; им требуется, скажем, солидный опыт практического программирования на уровне сообщества и колледжа, а также соответствие текущим тенденциям в отрасли. И это нормально. Вам не нужно иметь степень по морской биологии, чтобы иметь успешный магазин аквариумов, и я думаю, что магазины аквариумов просто великолепны. Но очень сложно устроиться на работу в Вудс-Хоул, если все, что ты умеешь делать, это разводить золотых рыбок.


(*) У меня есть степень бакалавра по прикладной математике и информатике в Ватерлоо.


4
Я помню, как один из моих профессоров CS сказал что-то о том, что только 2% из вас действительно получат работу, где вы будете регулярно работать с принципами информатики .
красная грязь

15
@el fuser: Действительно; Теперь интересный вопрос, который, возможно, имеет отношение к этой дискуссии, заключается в том, является ли цель высшего образования просто подготовкой к определенной работе? Я не верю, что это так. Университеты не являются профессиональными школами; их функция заключается в том, чтобы создавать знания посредством исследований и подвергать студентов этой вселенной знаний. То, что это может дать студентам навыки работы, кажется мне побочным эффектом, а не целью. В Ватерлоо нам прямо сказали, что нас будут учить теории, а не практике.
Эрик Липперт

1
Создание оригинального исследования в студенческой среде, хотя, в целом и независимо от программы, редко происходит до окончания периода обучения, называемого программой бакалавриата. Исследования проводятся до этого, но, как правило, изучение действительно нового материала предназначено только для магистрантов или докторантов. Другими словами, вас часто уводят от открытия, но к некоторому укреплению того, что уже известно. Исследования старшекурсников больше связаны с процессом исследований, чем с ростом определенного объема знаний. Частное исследование имеет другую цель.
JustinC

1
День, когда лучшая работа больше не требует диплома, - это день, когда в университетах больше нет студентов для поддержки своих программ.
P.Brian.Mackey

как часто Андерс использует его;)
Мэтью Уайтед

22

Это важно, потому что технология не остается статичной. Информатика является основой всех цифровых технологий. Большинство программистов-самоучек проходят ровно один технологический цикл, потому что им не хватает основ, чтобы пережить серьезную смену парадигмы. Конечно, есть исключения из этого правила, но прочная основа в компьютерных науках значительно увеличивает шансы на выживание при значительном изменении парадигмы.


4
Я не знал, что такое чепуха, пока не прочитал « Кодеры на работе» . Я предполагаю, что вы пережили сдвиг парадигмы или два и говорите из опыта. :)
Дейв Нили,

3
Я не согласен. Легко получить доступ к ресурсам, которые обучают фундаментальным концепциям онлайн (и полезно получить возможность найти их самостоятельно). Например, academicearth.org/subjects/computer-science - хорошее место для начала. Подробная информация о новых архитектурных шаблонах находится в свободном доступе для изучения, см. Chromium.org/developers/design-documents/… . Часто свободно доступные материалы в Интернете гораздо лучше и современнее, чем вы ожидаете от местного колледжа.
Эван Плейс

13
Я думаю, что вы поняли это задом наперед. Программист никогда не заканчивает учиться. Программисты-самоучки продемонстрировали свою способность приобретать знания без необходимости формальных условий, установленных внешними сроками и т. Д., И это именно то, что нужно, чтобы пережить изменения на рынке.
Грязь

2
(продолжение) Если вы говорите о смене парадигмы программного обеспечения ... Какой сдвиг парадигмы? ООП не совсем новый, и не является функциональным программированием. Базы данных существуют уже очень давно. Числа с плавающей точкой были стандартизированы с 1985 года (IEEE 754). Единственный серьезный сдвиг, который я вижу, - это переход к системам распределенной обработки (чрезвычайно сетевым системам, которые масштабируются по сравнению с программами, использующими преимущества многих основных аппаратных платформ) и переходу на стандартизированный международный набор символов (UTF-8); оба из которых на самом деле не охвачены в compsci.
Эван Плейс

2
@ Грязь и Эван: я думаю, что вы пропустили часть моей публикации "Конечно, есть исключения из правил". Я предполагаю, что вы оба молоды и не обременены. Эта динамика будет меняться с возрастом. Я был в поле более тридцати лет. Я наблюдал, как разгораются многие программисты-самоучки после того, как в дело вступает стресс от воспитания семьи, и количество времени, которое нужно для изучения основ на собственном, приближается к нулю. Мне бы очень хотелось иметь такой же разговор, когда вы оба достигните 40
-летнего

14

Это зависит от того, что вы хотите сделать. Если ваша цель состоит в основном в программировании программного обеспечения для бизнеса в целом, где проблемы бизнеса и практического управления сложностью являются трудной частью, то да, степень CS не сильно поможет. Если, однако, ваша цель состоит в том, чтобы программировать вещи, в которых основная трудность связана с техническим аспектом, тогда степень CS более полезна. (Хотя у меня нет степени по CS, поэтому я чувствую себя большим лицемером за эти слова, поэтому не стесняйтесь добавлять «или самообучение по предметам CS».)

Я уверен, что есть много программистов, которые отлично справляются со сложностью, программируют в целом и решают общие бизнес-задачи, но были бы абсолютно потеряны, если бы вы попросили их написать распределитель памяти, или библиотеку параллелизма, или библиотека коллекций, или операционная система, или компилятор, и т. д. Я уверен, что в приличной степени существует и обратное. Оба имеют свое место и заслуживают уважения, но степень CS значительно больше помогает с технической стороны.


Почему? CS - это решение сложных проблем, независимо от характера проблемы. CS должен быть полезен, даже если вы вообще ничего не программируете - это потомок забытой, но все еще существенной кибернетики.
SK-logic

12

Я не думаю, что степень CS является абсолютным показателем того, что человек хороший разработчик программного обеспечения. Фактически, я начал свою карьеру в качестве программиста с математической степени, но с сильным уклоном в CS (математика и CS были включены в мою программу обучения). Я думаю, что есть две причины, почему это важно, в целом.

1 - потому что инженеры не передний край для найма

Людские ресурсы люди есть. И хотя я представляю, как многие люди закатывают глаза, я говорю: "Слава Богу!" Что важнее - что вы позволяете инженерам делать вещи (или ломать вещи), или вы заставляете их сортировать 1000 резюме и делать 1000 интервью?

Таким образом, у нас есть сотрудники отдела кадров и сотрудники отдела кадров проверяют кандидатов, пока мы не попадем в ключевую группу, которая может быть проверена инженерами. Сотрудники отдела кадров со временем узнали, что наличие степени CS является довольно сильным показателем того, что кандидат знает кое-что о разработке программного обеспечения. Надеюсь, они также знают, что написание программного обеспечения в течение 20 лет является хорошим показателем того, что кандидат может писать программное обеспечение.

2 - Потому что иметь какую-то систему обучения CS лучше, чем ничего

CS - это огромное поле с большим количеством информации. И все время меняется. В эти дни я могу с уверенностью сказать, что 75% курсовых работ в моем старшекурснике стали неуместными для моей карьеры. И что курсовая работа моего магистра 5 лет назад быстро обесценивается. Но когда я начал, я был рад, что заплатил крупному учреждению за то, что он научил меня кое-чему о компьютерной организации, сетях, хорошем процессе разработки программного обеспечения, объектно-ориентированном дизайне, компиляторах и синтаксисе / семантике основного языка программирования, который в настоящее время продается на рынке.

И я был рад, что это было в среде, где кому-то платили, чтобы объяснить мне вещи, когда проект книги / веб-сайта / круга не был очевидным.

И я был рад, что у меня был доступ к лаборатории, где здоровье компьютера и SDE не были моей проблемой - я мог более или менее зафиксировать и сосредоточиться на небольшой части проблемы, а не исправлять все инструменты, необходимые для решения проблема.

И хотя курсы явно не учат хорошему общению, я думаю, что единственный способ научиться этому - работать в командах, которые являются основной частью многих ведущих учебных заведений, предлагающих степени CS.

И график с частыми отзывами (например, оценки и экзамены), которые позволяют мне узнать, действительно ли я понял, что меня учили.

В моем сознании эти вещи объединяются, чтобы стоить больше, чем любая книга на эту тему, но это, конечно, не все, конец всем. Безусловно, есть вещи, которые я не прочь бы увидеть, как улучшаются высшие учебные заведения, и я думаю, что примерно через 10 лет после окончания учебы степень, которую вы получили изначально, менее важна, чем работа, которую вы проделали с тех пор.


12

Для меня причина в том, что я знаю, что они прошли некоторые грубые курсы и не сдались. Некоторые курсы, такие как «Компиляторы», «Data Struct», «Discrete Math» (и другие), как правило, вымывали многих людей из программ CS. Имея степень CS означает, что вы работали и заплатили цену (длинные ночи получать программы для работы), а не выходить для удовольствия.


+1 - лол, я не могу много спорить с этим. Хотя я любил дискретную математику. Был великий профессор, который сделал много впечатлений от Йоды.
P.Brian.Mackey

10

Для меня это вопрос мышления .

Ваше мышление определяет, как вы будете подходить к данной проблеме, и позволяет вам рассмотреть более широкий спектр возможностей, чем те, которые не изучены в концепциях.

Типичным примером является проблема «коммивояжера», когда вы знаете, что она 1) является NP-полной для общей версии, поэтому вам нужно попробовать все возможности, кроме 2) что, если вы знаете больше о проблеме, вы можете приблизиться в пределах определенное ограничение или сказать, что вы знаете, что AC всегда длиннее, чем AB + BC (что справедливо для расстояний, но не для цен), что позволяет вам решить его за меньшее время.

Другой пример - числовой анализ, в котором вам нужно знать, что для минимизации погрешности чисел вы должны подходить к своим вычислениям иначе, чем математически прямолинейно. Это требует теоретических знаний и вряд ли будет подхвачено, если вы не были явно укушены им.


9

В самом деле? Ух ты.

Итак, вы говорите мне, что навыков C # и OOP достаточно, и вы можете разработать свой собственный алгоритм для рандомизированной сортировки и расшифровать тончайшие нюансы, как справляться с NP-полными проблемами в реальной жизни?

C # и ООП - это хорошо, но если вы пытаетесь сделать что-то, что является нетривиальным логическим дизайном, тогда вам нужны основы компьютерных наук.

Чувак, ты даже не будешь знать, какой контейнер C # использовать, если твои навыки работы со структурами данных или алгоритмами не на должном уровне.

Давайте расти, сейчас.


23
Полегче, тигр.
whatsisname

23
«Придумай свой собственный алгоритм рандомизированной сортировки и расшифруй тончайшие нюансы того, как справляться с NP-полными проблемами в реальной жизни». Я не могу не подчеркнуть, сколько моей повседневной реальной работы состоит из этих видов деятельности .... / сарказм
Квентин-старин

4
Я хочу сказать, что 95% людей, с которыми я работаю и с которыми работал в прошлом, тратят почти 0 раз на разработку алгоритмов. Я провожу большую часть своего времени, делая код более лаконичным и легким для чтения. Очень мало времени тратится на "более тонкие нюансы". На самом деле, мне было бы интересно потратить немного времени, по крайней мере, на сортировку рабочего процесса на доске ... то, что я делал только сам. Вы регулярно обсуждаете NP вместе со своими коллегами? В какой области вы работаете, когда вам нужно писать собственные сортировки вместо реализации функциональных языков программирования?
P.Brian.Mackey

3
@ P.Brian.Mackey: Разработка программного обеспечения - это профессия. Сколько разработчиков программного обеспечения работает в вашей организации, которые старше 50 лет? По мере старения разработчика программного обеспечения степень CS может означать разницу между тем, чтобы иметь работу и быть безработным. В настоящее время я имею степень бакалавра и магистра в области компьютерных наук, но в конце семидесятых я получил начальное образование в этой области в военно-морских и технических школах. Все ребята, с которыми я служил, которые не удосужились получить степень CS после ухода из армии, больше не в поле.
bit-twiddler

7
Почему все, кажется, слепо принимают предположение о том, что формальная учебная программа CS для колледжа необходима для того, чтобы иметь какие-либо знания о понятиях CS? Может быть, это провал их дедуктивного мышления. Я думаю, им нужно больше курсов CS.
Квентин Старин

6

Я полагаю, что вы действительно не слишком увлекались этой степенью, просто взяли то, что вам нужно, и ушли, или пошли в школу, которая смотрела на специализацию CS как на «программистов», а не «программистов». Кроме того, некоторые из моих лучших / любимых классов "CS" - это те, которые - по крайней мере, в моем университете - находятся на факультете электротехники. Мое знакомство с различными архитектурами и стилями было очень важным, и моя степень способствовала этому в «контролируемой» среде.

Классы, которые не просто алгоритмы и приятный пух:

  • Составители
  • Операционные системы
  • VHDL / встраиваемые системы
  • Сборка и Микроконтроллеры
  • Программная инженерия

И, наконец, класс, который выбил из меня все дерьмо, это были только алгоритмы и структуры данных - Искусственный интеллект. Есть вещи, которые пройдут через университетскую систему, что значительно ускорит процесс обучения, и я считаю, что то, что было изучено, неоценимо при поиске работы позже.


Как вы определяете слова «программист» и «программист»? Для меня это может быть то же самое, и в отличие от "ученого".
Марк С

Кодер просто пишет код, не обязательно думая о различных парадигмах дизайна или мыслительных процессах, которые применимы для создания лучшего кода. Программисты на самом деле думают о коде, который они пишут, и подходят к нему сверху вниз, а не снизу вверх.
Джефф Лангемайер

Какое у вас определение "код обезьяны" и "программист"? Программист может придумать способы решения проблемы, которую не могут получить деньги за деньги ...
Coyote21

Страсть не награждается степенью. Это просто часть того, кто вы есть.
P.Brian.Mackey

@ P.Brian Иногда бывает так, что ваша страсть присуждает вам степень, и она еще больше стимулируется достижением этой степени.
Джефф Лангемайер

4

Мое мнение таково, что, если вы не подаете заявление на должность «Компьютерная наука», любая степень, которая подразумевает фокус на компьютерных навыках, в значительной степени эквивалентна.

На самом деле, многие из знакомых мне программистов получили степень в совершенно другой дисциплине. Лучшие программисты, которых я знаю, имеют ученые степени в области строительства, лингвистики, экономики и финансов.

В конце концов, когда у вас есть некоторый опыт, ваша степень становится тестом на провал для рекрутера. То есть, если вы не получили его во внушительной школе или в аспирантуре, не имеет большого значения, какой была ваша специальность.


Один из лучших программистов - экономист, работающий исключительно в Excel / VBA и R. Он сделал несколько удивительных вещей в Excel.
Sal

@sal Написание вещей в Excel и R не требует степени CS. Написание Excel или R, скорее всего, будет.
Альнитак

@alnitak - Для написания Excel или R также не требуется степень CS. Это своего рода точка моего ответа и сала
JohnFx

@JohnFX: Я закончил с отличием на латыни одну из двадцати лучших программ по КС в США, и только эти учетные данные заставляют меня войти (у меня также есть MSCS из другой авторитетной школы). Я начал работать в этой области в качестве зачисленного компьютерного оператора и программиста прямо из средней школы. Я получил начальную подготовку по компьютерным системам и разработке программного обеспечения в ВМС США и Агентстве национальной безопасности; поэтому я работал в поле без BSCS в течение ряда лет. Все, что я могу сказать, это то, что когда я закончил BSCS, это было буквально, как небеса разошлись.
bit-twiddler

@ bit-twiddler - это значит поддержать или опровергнуть мой ответ? Похоже, что это поддерживает мое последнее утверждение, что это имеет значение, если у вас есть аспирантура или известность.
JohnFx

4

для меня и многих моих коллег это не имеет (ни у кого из нас не было степеней CS)


3

Хорошо тогда как насчет

Если вы прошли следующие предметы:

Архитектура и организация компьютера

б.инженерия программного обеспечения

c.DBMS

Базовая электроника

е. Базовая цифровая электронная схема

f.Microprocessor

g.Compiler Design

Как вы думаете, все вышеперечисленное просто для формальности? Помните, что приведенные выше пункты делают «хорошего программиста» «отличным программистом».

Пройдите через это, чтобы прочитать о важности предметов электротехники и электроники


3

У меня есть степень в области компьютерных наук. Это было здорово для открытия дверей, получения работы. Помогать мне в профессиональной области программирования на C # .NET (самой популярной платформе и языке в той области, где я работаю, если не во всех Соединенных Штатах на руках самой популярной ОС в мире ) - это вряд ли полезно.

70% + кода написано на C (поскольку встроенных устройств больше, чем приложений высокого уровня). Согласно популярным поискам работы, таким как игра в кости или индекс TIOBE, Java является наиболее популярным языком программирования для предприятия (так как фоновых серверов Unix / Linux больше, чем серверов Windows). Существует больше смартфонов и планшетов (вычислительная платформа будущее) под управлением некоторого варианта Linux или Mac OS, кроме Windows, запрограммированного на все, кроме C # или .NET.

Посмотрите на свой роутер дома, посмотрите на свой мобильный телефон, посмотрите на компьютер в своем автомобиле, посмотрите на волнующуюся микроволновку дома, на контроллеры в вашей домашней системе кондиционирования, внутри вашего телефона и на рабочий факс и принтер / сканер. Посмотрите на количество компьютеризированных устройств (число которых превышает количество систем Windows).

Как вы думаете, они запрограммированы на C #?

Если вы действительно уверены, что .NET или C # являются самыми популярными платформами в мире, вы можете вернуться в свою школу CS и попросить возмещение.

Как вы думаете, почему это помогает вам, как программисту, в вашей профессиональной карьере (не считая алгоритма начисления премий, чтобы произвести впечатление на интервьюера)?

Может быть, потому, что в программировании гораздо больше, чем просто разработка динамических веб-страниц и корпоративных приложений? Для этого вам даже не нужна степень бакалавра, достаточно AA - я знаю, потому что я начал свою карьеру программиста со степени AA и медленно, но верно работал в CS, а затем работал в аспирантуре , работая полный рабочий день в качестве разработчика. ,

Есть встроенная разработка, есть разработка драйверов устройств, есть разработка операционных систем, есть разработка алгоритмов, сигналов, коммуникаций, сетевых протоколов, разработка ядра базы данных, разработка файловой системы, распределенные вычисления, компиляторы. Не исследования, а реальная работа в коммерческих организациях. Исключая естественно одаренных, обычно невозможно взломать его в любой из этих областей промышленности без степени CS (иногда даже не со степенью BS).

Человек, который получает степень CS и обращает на это внимание, знает это. Как получилось, что нет?

В современном мире адаптация, быстрое мышление, сильная коммуникация, OO и фундаментальные навыки проектирования позволяют разработчику писать программное обеспечение, которое примет клиент.

ОО возникла из-за CS. И большинство людей, которые думают, что они делают OO, не могут даже сделать хорошую работу. Просто взгляните наружу и посмотрите на дрянное состояние программного обеспечения (в частности, в Java и .NET, не говоря уже о PHP.) Знание основ CS (или степень в некотором роде разработки) не гарантирует 100% хорошее понимание ОО. и аналитические навыки, но это обычно помогает. OTH, отсутствие базовых знаний по CS обычно является красным флагом, когда дело доходит до OO и аналитических навыков. У нас достаточно эмпирических данных в отрасли, чтобы подтвердить это утверждение.

Эти навыки ограничены только в программе CS.

В зависимости от программы CS и в зависимости от студента. По крайней мере, для меня я видел множество хороших курсов по дизайну, анализу ОО, коммерческим инструментам и практикам, у нас были совместные курсы с местными компаниями и стажировки, проекты и исследования, финансируемые корпорациями, техническое письмо, как вы это называете. Извините, я не могу связать или понять это утверждение.

На мой взгляд, чтение 500-страничной книги по C # от Wrox предлагает гораздо более полезный набор навыков, чем 4-летний курс обучения компьютерным бластерам.

Опять же, в зависимости от работы, которую вы делаете. Даже на предприятии я использовал свой CS, чтобы на самом деле что-то исправить или улучшить. Все это включает моделирование, архитектуру, распределенные вычисления, безопасность и высокую производительность, высокую доступность и отказоустойчивость. Я изучил все это в CS.

Нет ничего плохого в том, чтобы использовать книгу Wrox, чтобы получить набор навыков, зависящий от контекста и технологии . Я делаю это сам. Но мой опыт работы с CS дает мне контекст для работы. Без моего опыта работы с CS все, что я мог бы сделать, это программировать, кодировать (это все, что я мог сделать, когда у меня была только степень АА в начале моей карьеры).

Многие не согласны.

Удивительно, нет.

Итак, почему степень информатики имеет значение?

Как вы думаете, кто придумал google, hadoop, cassandra или высокопроизводительные движки баз данных? Как вы думаете, кто пишет ядро ​​ОС Windows? Как вы думаете, кто программирует любимые инструменты, которые вы используете для разработки C #.

В одном я уверен, что в инструментах, которые вы используете для разработки на C #, за этим стоит парень из CS.

Нужна ли вам степень CS или нет, зависит от типа работы, которую вы делаете, от типа работы, которую вы хотите выполнять, от типа работы, на которую вы способны.

На предприятии и в веб-разработке много работы, не требующей степени CS. Я даю это. Я также знаю, что мир программирования намного шире, чем просто эти две области, причем многие области (большинство из них на самом деле) требуют степени CS или более.

У вас есть степень CS, как вы не знаете, что это загадка.


TIOBE - это дерьмо для определения того, сколько используется язык программирования. Это показатель популярности данного языка в Интернете (по количеству ссылок), а не по количеству написанных строк кода.
Билли Онил

Из-за специфических языковых особенностей LOC не имеет отношения к языкам программирования и, следовательно, не может использоваться для измерения использования языков программирования в разных отраслях. А популярность языкового поиска в интернете служит частичным показателем глубины и интереса использования (или его отсутствия) ... если вы знаете о неизбежном смещении. Сам по себе ** индекс TIOBE ничего не значит - только дурак будет думать иначе; и только дурак подумает, что это то , что я излагаю.
luis.espinal

Когда он используется в дополнение к другим показателям (таким как поиск работы и разработка типа продукта), он помогает оценить тенденции использования технологий. Другими словами, он полезен или бесполезен в зависимости от того, для чего вы его используете, как вы его используете и с какими другими показателями он сочетается.
luis.espinal

Моя точка зрения заключается в том, что вы, кажется, используете этот индекс, чтобы сделать заявление об использовании языка программирования, а это не то, что этот индекс измеряет. Я неправильно сказал, что написал LoC - но нет хорошего способа сказать «количество написанного кода», что я и имел в виду. TIOBE - это конкурс популярности, и в этой гонке Java сразит всех остальных до тех пор, пока это будет linqua franca вводных курсов по программированию. (Не потому, что это означает, что эти студенты больше ничего не знают; а потому, что студенты, как правило, громче, чем профессионалы. (Т. Е. Действительно)
Billy ONeal

1

Есть некоторые основы, которые я помню, когда видел в своих курсах по CS, которые иногда были весьма полезны. Процесс «Водопад» и его этапы были тем, что я неоднократно использовал в своей карьере, с некоторыми вариациями для Agile, где он не столь жесток в пошаговом режиме, но есть те же этапы.

Навыки решения проблем и различные алгоритмические эвристики также могут быть полезны иногда. Есть кое-что, что можно сказать о косвенных преимуществах степени CS. Например, изучение того, как обосновать ответ, чтобы показать, почему что-то правильно, является лишь одним из немногих навыков, которые я усовершенствовал в университете, но я не уверен, насколько очевидным будет то, что это преимущество в конце программы.


1

Я согласен с мнением Торбьерна Равна Андерсена относительно мышления. Это главное, что вы разрабатываете с хорошей учебной программой CS.

Это в основном сводится к пониманию таких вещей, как структуры данных и алгоритмы. Не то, чтобы вы не могли выучить это самостоятельно, но хорошая учебная программа по КС обеспечит лучшую экспозицию.


Есть и другие предметы, которые, как правило, изучают только специалисты в области компьютерных технологий и компьютерных технологий, такие как организация компьютеров и архитектура компьютеров. Изучение того, как строить компьютеры из последовательной и комбинационной логики, делает человека лучшим разработчиком программного обеспечения, поскольку дает представление о том, что на самом деле происходит внутри компьютера. Кроме того, первые программисты, работающие с новым процессором, должны понимать такие понятия, как иерархическая память и ввод-вывод, конвейеры, ассоциативные кэши с установленными блоками, блоки управления (микрокодированные и аппаратные), а также разница между скалярной и векторной обработкой.
немного крутил

Как коллегиальное изучение CS обеспечит лучшую экспозицию, чем в лаборатории, где это действительно важно с квалифицированным наставником, который знает не только, как он должен работать и как он на самом деле работает?
JustinC

@bit Согласен. Да, мой ответ довольно бойкий. Это должно было быть так по причине.
Джордж Мариан

@ просто я не совсем уверен, что ты пытаешься сказать. Сколько программистов работает в лаборатории, не говоря уже о квалифицированных наставниках?
Джордж Мариан

@JustinC: каждый узнает, как все работает в лаборатории (технический уровень). Вы узнаете, почему все работает на курсах по организации компьютеров и архитектуре высшего уровня (инженерный уровень). Если вы купите несколько учебников для колледжей высшего уровня по компьютерной архитектуре и организации компьютеров, вы поймете, что я имею в виду.
немного крутил

1

Пишу

При разработке программного обеспечения для предприятий жизненно важно уметь писать код и писать . Под этим я подразумеваю: написание электронной почты, отчетов об ошибках, технических документов и т. Д. Как написание, так и написание кода требуют ясности мышления и соответствующей экономии выражения.

Между двумя разработчиками программного обеспечения, я держу пари, что тот, кто имеет степень бакалавра наук в солидном университете (сильная программа CS и требует факультативных дисциплин в области гуманитарных наук), обладает обоими навыками. (Правда, это не гарантия: люди из гуманитарных наук могут быть хорошими программистами и писателями высшего уровня; многие выпускники CS - это машины кодирования, которые не могут писать и т. Д.)

чтение

Мой наставник утверждал, что он может судить разработчиков по тому, что они читают. Оригинальный пост упоминает книги WROX. По моему мнению, кто-то, имеющий степень CS, с большей вероятностью будет искать такие профессиональные книги по ИТ и сможет эффективно их использовать. Если кто-то может обрабатывать CLR , то он может обрабатывать "Professional C #".

математический

Математика развивает логику, доказательство, строгость и т. Д., И побочным эффектом является то, что она помогает писать. Хотя большинство бизнес-ИТ не требует интенсивных математических навыков, человек со степенью CS будет иметь его в случае необходимости. Это гораздо лучший способ прожить жизнь, чем жить без нее и удивляться, что вы пропустили в школе.


1

Я думаю, это действительно зависит от качества программы CS, которую вы прошли. Я знаю, что вы имеете в виду, большая часть кода, который я пишу ежедневно, является просто стандартным VB.Net, получает данные с SQL Server, помещает их в форму, сохраняет их обратно в базу данных, делает некоторые отчеты. Вымойте, промойте, повторите. (Иногда очень скучно) Программа CS, которую я прошел, помимо того, что она охватывала теорию и фундаментальные знания, научила многим практическим вещам. Мы охватили такие области, как разработка программного обеспечения, проектирование баз данных и управление проектами. Изучение языков программирования было простым делом, а дизайн и методология создания программных систем - это то, что я позаимствовал из своего опыта в колледже. Нам давали проекты, основанные на реальных проблемах, иногда даже разрабатывая программные системы для других отделов кампуса.

Как программисты, мы, очевидно, имеем возможность учиться самостоятельно, это необходимо в нашей области. Я должен сказать, что очень рад, что прошел программу CS. Мои профессора были потрясающими и научили меня совсем немного. Мои одноклассники были очень веселыми людьми, и мы провели много веселых вечеров в компьютерной лаборатории. Честно говоря, я скучаю по тем дням ......


1

Все дело в способности жить под присмотром.

Если вы пропустите диплом, вам, вероятно, придется выучить уроки очень личным образом (или трудным путем). Отсутствие ученой степени не означает, что вы пойдете трудным путем обучения методом проб и ошибок; тем не менее, степень гарантирует вам доступ к сундуку с сокровищами ранее полученных знаний, которые другие должны были заработать поздними ночами, разочарованными сессиями программирования и, как правило, «делая это трудным путем».

По-настоящему превосходный человек не откажется от того, что другие считают правдой, а вместо этого оспорит это, пока не узнает ограничения знаний, а затем поиграет с «системой» вновь полученных идей, пока не сделает их своими. Он стоит на плечах тех, кто пришел раньше, и живет решениями прошлых лет, не открывая их заново.

Конечно, человек со степенью информатики не всегда лучший кандидат. Есть те уникальные люди, которых привели в поток, но (по какой-то странной причине) отказываются пить из него.


0

Мне 21 год, который только что закончил бакалавриат. Я чувствую, что как бы вы ни были хороши в программировании, если вы выпускник CS, вы уже будете знакомы с различными областями. Так что если вы хотите изучать новые вещи, вы не боитесь исследовать, даже если это не имеет значения . Если вы являетесь экспертом в области технологий или языка программирования, хорошо. Но я не думаю, что вы будете предприимчивы и захотите заняться другими технологиями. Вот как ты пачкаешься (и быстро тоже). Вы не задумаетесь о том, что то, что вы исследуете, не будет иметь значения, поскольку это не поможет вам заработать деньги. (Вы уже изучили много не относящихся к делу вещей в своей CS UG;)).
Это страсть в CS, которую вы испытываете после выпуска, делает вас профессионалом в области программного обеспечения.
Кто-нибудь согласен?


1
Вы не можете сделать предположение, что кому-то не будет интересно «изучать другие технологии» только потому, что у него нет степени CS. Это заблуждение.
Стивен Стрига

0

Ну, когда я вошел в CS, я подумал, что вау, я действительно хорош, и я не собираюсь ничего учить здесь ... Через 5 лет я только научился работать в команде, и некоторые вещи короче говоря, от разработки, которая отделяет меня от кого-то, кто может писать только код, и кого-то, кто может думать о том, что он делает до того, как он кодирует, - это научило меня думать, прежде чем я даже напишу одну букву в своем текстовом редакторе или ide.


0

Для получения работы на языке с открытым исходным кодом это не означает присед. Большинство компаний принимают на работу, основываясь на способностях, а не на квалификации, а языки, такие как PHP, имеют репутацию хобби, что говорит о том, что люди могут иметь талант, даже не изучая CS. Единственное время, которое помогает, если вы получаете работу с использованием языков .Net, так как большинство любителей не хотят выкладывать тысячи за лицензию только для того, чтобы возиться с ними по выходным, следовательно, кто-то ищет первую работу в C #, вероятно, будет только 2-3 года опыта.

Конечно, коммерческий опыт является действительно ценным, поскольку он демонстрирует вашу способность доставлять качественный код в установленные сроки.

В заключение, он дает вам интервью для работы с языками без открытых источников.


0

Степень в колледже или университете означает, что вы учились и обладаете некоторыми знаниями в области CS, базовых предметов, необходимых для работы в реальном мире, даже если вам приходится изучать другие предметы самостоятельно.

Кроме того, когда ИТ-рекрутер должен найти Soft. Dev., И 500 претендентов отправляют свое резюме, и им нужно опросить, по крайней мере, 50 из них, имея степень в вашем резюме, помогает как рекрутеру, так и вашим шансам получить работу.

(от разработчика программного обеспечения, который изучал некоторые HHRR)


0

Возможно, это не очень помогает, но теперь, когда я изучил ассемблер и все необходимые знания, я чувствую себя более полным программистом, и я уверен, что это случится снова, когда я пойду в университет. Я имею в виду, что я в основном использую C или VB, мне не нужно знать, что такое состояние ожидания для выполнения моих программ, но просто знать, что происходит за моим кодом, здорово! А знания помогают вам писать лучше, быстрее и более понятный код. Степень информатики дает именно те знания, которые необходимы для написания хорошего кода, на мой взгляд.


0

Программная инженерия сегодня - экспериментальная наука, а не прикладная математика.

Степени информатики подчеркивают алгоритмы, сколько из вашей повседневной работы включает в себя реализацию или даже использование новых алгоритмов и структур данных?

Что включает в себя работу со слоями фреймворков и утечек абстракций? Сколько стоит попытаться определить, что на самом деле делает какой-то API, а не то, что подразумевают документы? Сколько стоит тестирование и как решить?

Несмотря на это, степень по физике или химии намного лучше, чем запоминание Кнута.


0

Это важно, потому что у рекрутеров есть индикатор того, что вы не совсем понимаете, что вы должны делать, но это не обязательно означает, что вы действительно знаете, что делаете, или делаете это технически удобным способом.

Есть замечательные люди со степенями, которые любят то, что они делают, и действительно хорошие программисты, и есть также идиоты со степенями, которые действительно плохие программисты и даже не знают некоторых основ. Есть замечательные люди без степеней, которые могут разрабатывать что угодно (программное обеспечение для бизнеса / компиляторы / операционная система), и есть идиоты без степеней, которые не знают, как правильно использовать хеш-таблицу.


0

Абсолютно правильно, степень информатики не имеет большого значения; Вот почему ваш единственный выбор - получить инженерное образование.

При собеседовании с кандидатами различного происхождения, единственная черта, которая выделяется среди кандидатов, не имевших никакой степени, заключается в следующем: отсутствие технических навыков общения и отсутствие дисциплины. Это фундаментальные черты, усвоенные при получении любой научной степени (я бы даже сказал, если бы получил степень инженера).

При большинстве равных условий (и один раунд собеседований часто приводит к «примерно равным» кандидатам), я бы нанял человека с дипломом инженера сначала, вторым по информатике и третьим без степени. Тем не менее, есть способы сделать вещи очень неравными в сравнении, так что каждый может победить даже тех, кто имеет родословную - но это отдельный вопрос, не так ли?


-1

Для программиста ... это немного (кроме, как вы сказали, открытия дверей для интервью).

Для работы в CS (исследования, анализ алгоритмов, формальное изучение языка и дизайн). Вы вряд ли узнаете эти вещи в любой другой нематематической программе.

// Отказ от ответственности: моя степень в области ИТ, поэтому мне пришлось вернуться на все эти другие курсы для выполнения в моей области работы.


-1

У меня есть степень, связанная с компьютером. То, что помогло мне получить мою первую компьютерную роль, было то, что год 3 был местом работы в качестве ИТ-администратора. Я рекомендую схемы трудоустройства в рамках образования.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.