Чому ступінь інформатики має значення для професійного програміста? [зачинено]


63

Я маю науковий ступінь з інформатики. Це було чудово для відкриття дверей, отримання роботи. Що стосується того, щоб допомогти мені в професійній галузі програмування на C # .NET (найпопулярніша платформа та мова в тій галузі, в якій я працюю, якщо не цілі Сполучені Штати, а також найпопулярніша ОС у світі), це навряд чи корисно. Чому, на вашу думку, це допомагає вам як програмісту у вашій професійній кар’єрі (поза носієм алгоритму prims, щоб справити враження на якогось інтерв'юера)?

У сучасній світовій адаптації швидкий розум, міцне спілкування, OO та основні навички дизайну дозволяють розробнику писати програмне забезпечення, яке прийме клієнт. Ці навички лише знімаються в програмі cs. На мій погляд, читати книгу C # на 500 сторінках від Wrox пропонує набагато корисніший набір навичок, ніж 4 роки курсів комп’ютерної математики. Багато хто не згоден. Отже, чому важливий ступінь інформатики?


59
"Інформатика - це не більше комп'ютерів, а астрономія - телескопи". - Edsger Dijkstra
Ерік Ліпперт

4
Запам’ятовування недостатньо. Потрібна освіта, щоб знати, як користуватися Reg Ex, і досвід, щоб знати, коли ним користуватися. Я б включив читання книг як частину освіти. Досвід, пов’язаний з роботою, рідко спонукає вас робити справи правильно.
Захарі Скотт

10
Має значення, коли у вас її немає
Aditya P

2
У мене також було 2,8, доволі середнє. Але нас здебільшого навчали C / Java та деякі матеріали з Інтернету, без C # речі. У будь-якому разі, я думаю, що CS - це «найкраща справа», тому що програми для чотирьохрічних CS не зовсім прості, і це показує, що ти можеш наполегливо працювати, щоб отримати ступінь. Чому це все одно має значення? це дає вам роботу!

1
@ luis.espinal Я сумніваюся у цій статистиці. Я сумніваюсь, що 70% всього коду знаходиться на C (подумайте про всі мовчазні Fortran, COBOL, PL1 та Rexx, які тікають далеко). До безлічі, безумовно, але переважна більшість я скептично ставлюсь. Вбудованих пристроїв дуже багато, але кількість вбудованих пристроїв нічого не говорить про оригінальне джерело. Після того, як він написаний для першого конкретного пристрою, його загалом добре для всіх наступних пристроїв; і, імовірно, багато використовується повторно для близьких похідних, чи то в тому ж рядку наступної редакції, чи в іншому рядку від того ж сімейства продуктів.
JustinC

Відповіді:


133

Чому ступінь інформатики ?:

  • Я працював з розробником, який зберігав тисячі елементів у HashTable, а потім лише перебирав значення. Він ніколи не звертався через хеш. Він, очевидно, не знав, як працює HashTable або чому ви використовуєте його - ступінь CS може допомогти у цьому.
  • Працюючи з регулярними виразами, людям, які зазнають основної теорії автоматичних машин та формальних мов, здається, простіше міркувати про те, що відбувається, і усунути неполадки в їх виразах - це може допомогти ступінь CS.
  • Розробник, що перебуває в школі, може негайно розкласти проблеми в різних парадигматичних наборах (OO, функціональні, логічні), тоді як новому розробнику, який не має ступеня, потрібен досвід, перш ніж вони зможуть зробити те ж саме.
  • Школи навчають обчислювальній складності. Недоступні розробники можуть відчути, що найкраще, але формальне розуміння іноді приємне, особливо коли пояснюють результати колезі.
  • Ступінь пропонує ознайомлення з багатьма моделями машини - апаратними засобами, ОС, загальними структурами даних, мережами, віртуальними машинами. З цими моделями, що знаходяться в глибині душі, простіше розробити уявлення, де проблема живе, коли щось піде не так. Знову ж таки, недипломні розробники будують ті самі моделі, але це потребує часу.
  • Експертні вказівки з будь-якої дисципліни можуть допомогти школяреві уникнути тупикових та пропущених тем. Читання чудове, але воно не замінює чудового вчителя.

Це не означає, що ступінь CS необхідний, щоб бути чудовим розробником. Навряд чи. Деякі з кращих розробників, з якими я працював, не мають ступеня. Ступінь дає вам початок запуску. На момент закінчення навчання ви (сподіваємось) написали неабияку кількість коду на різних мовах та середовищах для вирішення багатьох типів проблем. Це ставить вас на шляху до 10000 годин, необхідних для експерта.

Друга перевага полягає в тому, що вона показує роботодавцям, що ви можете взяти на себе зобов’язання до довгострокової мети та досягти успіху. В багатьох компаніях я вважаю, що це важливіше того, що ви дізналися.


4
+1 - Це має сенс. Настанови експертів, напевно, допомогли мені в тому, що я не визнаю. Мені все ще цікаво, чи 4 роки загальної освіти здобувають 4 роки досвіду роботи в галузі, якщо обидва розробники однаково мотивовані вчитися. Є певний рівень дисципліни, який я вважаю, що не мав раніше ступеня, що, безумовно, що-небудь розраховує.
P.Brian.Mackey

4
Вивчення належної термінології та проведення багато часу з іншими людьми, що вивчають той самий матеріал, також є користю, яка йде разом із цим дорогим папером.
саль

65
З іншого боку, я бачив людей із ступенем, які все ще не вдається пройти в більшості цього списку :)
Joel Gauvreau

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-shar-rutines" ...): P
Марк C

37

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

Отримати ступінь для мене надзвичайно вартувало; вона заплатила себе багато, багато разів і в доларах, і в задоволенні.

Це сказав, я досконало розумію вашу думку. Більшість людей, які програмують комп’ютери, мають роботу, яка не вимагає ступеня CS; Вони вимагають, скажімо, міцного досвіду на рівні громад та коледжів у практичному програмуванні, а також бути в курсі сучасних тенденцій галузі. І це добре. Вам не потрібна ступінь морської біології, щоб запустити успішний магазин акваріумів, і я думаю, що акваріумні магазини є приголомшливими. Але отримати роботу в Woods Hole надзвичайно важко, якщо все, що ти вмієш, це підняти золотих рибок.


(*) Я маю B.Math з прикладної математики та інформатики від Ватерлоо.


4
Я пам’ятаю, як один із моїх професорів з КС сказав щось, що лише 2% з вас фактично влаштуються на роботу, де вам належить регулярно займатися принципами інформатики .
red-dirt

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

1
Створення оригінальних досліджень у колегіальній обстановці, хоча, як правило, і незалежно від програми, рідко трапляється до того, як не виходить за період навчання, який називається бакалаврською програмою. Дослідження трапляються до цього, але, як правило, вивчення справді нового матеріалу зарезервовано для магістрів чи докторантури. Іншими словами, ви часто відволікаєтесь від відкриття, але до певного підкріплення того, що вже відомо. Доступні дослідження - це більше про процес дослідження, ніж про зростання будь-якого конкретного знання. Приватне дослідження має іншу мету.
JustinC

1
День, коли найкраща робота більше не потребує ступеня, - це день, коли університети більше не мають студентів для підтримки своїх програм.
P.Brian.Mackey

як часто Андерс використовує його;)
Метью Віт

22

Це важливо, оскільки технологія не залишається статичною. Інформатика - основа всіх цифрових технологій. Більшість програмістів-самоучків тривають рівно один технологічний цикл, оскільки їм не вистачає основ, щоб пережити серйозну зміну парадигми. Звичайно, є винятки з правила, але міцний фундамент в інформатиці значно збільшує шанси на виживання великої зміни парадигми.


4
Я не знав, що таке біт-твіделлер, поки не прочитав Coders At Work . Я здогадуюсь, що ви пережили зміну парадигми чи дві і говорите з досвіду. :)
Дейв Нілі

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

13
Я думаю, що ти це зрозумів саме назад. Програміст ніколи не вчиться. Програмісти-самоучки продемонстрували свою здатність здобувати знання без необхідності формальної обстановки, встановлених зовні термінів тощо. Це саме те, що потрібно, щоб пережити зміни на ринку.
Грязь

2
(продовження) Якщо ви говорите про зміну парадигми програмного забезпечення ... Що таке зміна парадигми? OOP не зовсім новий, як і функціональне програмування. Бази даних існують дуже давно. Номери з плаваючою комою стандартизовані з 1985 року (IEEE 754). Єдиний головний зсув, який я бачу, - це перехід на системи розподільної обробки (надзвичайно мережеві системи, що розширюють масштаб навпроти, та програми, що користуються багатьма основними апаратними платформами), і перехід до стандартизованого міжнародного набору символів (UTF-8); обидва вони насправді не охоплені компсі.
Еван Плейс

2
@Mud та Evan: Я здогадуюсь, що ви пропустили частину моєї публікації "Звичайно, є винятки з правила". Я припускаю, що ви обоє молоді та непідкупні. Ця динаміка буде змінюватися з віком. Я на полі вже понад тридцять років. Я спостерігав, як багато програмістів-самоучків спалахують після того, як стрес, який викликає виховання сім’ї, відображається на малюнку, і кількість часу, який треба засвоїти на власних підходах до нуля. Я б хотів вести цю саму розмову, коли ви обом досягнете 40
-річного

14

Це залежить, чим ти хочеш займатися. Якщо ваша мета в основному програмування ділового програмного забезпечення у великій мірі, де проблеми бізнесу та управління практичною складністю є найважливішою частиною, то так, ступінь CS не дуже допоможе. Якщо, однак, ваша мета - запрограмувати матеріали, де основна складність полягає у технічному завершенні, тоді ступінь CS є кориснішою. (Хоча я і не маю ступеня CS, тому я відчуваю себе великим лицеміром для цього, тому сміливо додайте "або самонавчання з предметів CS".)

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


Чому? CS - це питання вирішення складних проблем, незалежно від характеру проблеми. CS повинен бути корисним, навіть якщо ти взагалі нічого не програмуєш - це нащадок забутої, але все ж необхідної кібернетики.
SK-логіка

12

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

1 - Тому що інженери не є передньою частиною для підбору персоналу

Людські ресурси є. І хоча я малюю, як багато людей закочують очима, я кажу "дякую добру!" Що важливіше - ви дозволяєте інженерам робити речі (або ламати речі), або ви змушуєте їх розбиратися через 1000 тисяч резюме та робити 1000 тисяч інтерв'ю?

Отже, у нас люди з персоналу та кадрові люди перевіряють кандидатів до тих пір, поки ми не потрапимо до ключової групи, яку можуть перевірити інженери. Люди з персоналу з часом дізналися, що наявність ступеня CS є досить сильним показником того, що кандидат знає щось про розробку програмного забезпечення. Сподіваємось, вони також знають, що написання програмного забезпечення протягом 20 років є хорошим показником того, що кандидат може писати програмне забезпечення.

2 - Тому, що мати якусь систему щодо вивчення інформації про КС - краще, ніж ніхто

CS - це величезне поле, з яким потрібно знати багато. І це постійно змінюється. Сьогодні я можу з упевненістю сказати, що 75% курсових робіт у моєму підростанні стали неактуальними для моєї кар’єри. І що курсові роботи мого магістра з 5 років тому швидко знецінюються. Але коли я почав, я був радий, що заплатив великій установі, щоб навчити мене чомусь з організації комп’ютерів, мереж, хорошого інженерного процесу програмного забезпечення, об'єктно-орієнтованого дизайну, компіляторів та синтаксису / семантики основної мови програмування, яка на даний момент продається.

І я був радий, що опинився в умовах, коли комусь платили пояснити мені речі, коли проект книги / веб-сайту / коліни не був очевидним.

І я був радий, що мав доступ до лабораторії, де здоров’я комп’ютера та SDE не були моєю проблемою - я міг більш-менш зафіксуватися і зосередитись на невеликій частині проблеми, а не потрібно виправити всі інструменти, необхідні для вирішення проблема.

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

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

Ці речі, на мою думку, коштують більше, ніж будь-яка книга на цю тему, але це, звичайно, не все, кінець усім. Звичайно, я б не проти зауважити, що вищі навчальні заклади покращуються, і я вважаю, що приблизно через 10 років після закінчення навчання ступінь, який ви отримали спочатку, є менш важливим, ніж робота, яку ви робили з того часу.


12

Для мене причина в тому, що я знаю, що вони пройшли кілька грубих курсів, і не здалися. Деякі курси, такі як "Компілятори", "Структура даних", "Дискретна математика" (та інші), як правило, відмивали багато людей з програм CS. Ступінь CS означає, що ви багато працювали і платили ціну (довгі ночі, залучаючи програми до роботи), а не виходячи на розваги.


+1 - хаха, я не можу багато з цим посперечатися. Хоча я любив дискретну математику. Мав чудового професора, який робив багато вражень від Йоди.
P.Brian.Mackey

10

Для мене це питання мислення .

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

Типовим прикладом є проблема "Мандрівний продавець", коли ви знаєте, що вона 1) не відповідає загальній версії, тому вам доведеться спробувати всі можливості, окрім 2), що якщо ви знаєте більше про проблему, ви можете їх визначити в межах певний ліміт або скажіть, що ви знаєте, що зміна струму завжди довше AB + BC (що стосується відстаней, але не для цін), що дозволяє вирішити це за менший час.

Інший приклад - числовий аналіз, де вам потрібно знати, що для мінімізації числової неточності ви повинні підходити до своїх обчислень інакше, ніж математично прямий шлях. Це вимагає теоретичних знань, і навряд чи ви підберетеся, якщо вас явно не покусали.


9

Дійсно? Ого.

Отже, ви кажете мені, що навички C # та OOP є достатніми, і ви можете розробити власний алгоритм рандомізованого сортування та розшифрувати найтонші нюанси того, як впоратися з повними проблемами NP у реальному житті?

C # і OOP - це добре, але якщо ви намагаєтеся робити все, що є нетривіальним логічним дизайном, тоді вам потрібні основи інформатики.

Чувак, ти навіть не знаєш, який контейнер C # використовувати, якщо твої структури даних або навички алгоритмів не відповідають позначці.

Давайте рости зараз.


23
Легко там, тигр.
whatsisname

23
"розробити свій власний алгоритм рандомізованого сортування та розшифрувати більш тонкі нюанси того, як впоратися з проблемами НП у реальному житті", я не можу наголосити на достатній мірі того, скільки моєї щоденної роботи в реальному житті складається з цих занять .... / sarcasm
quentin-starin

4
Що я говорю, що 95% людей, з якими я працював і з якими працювали в минулому, витрачають близько 0 разів на розробку алгоритмів. Я витрачаю більшість свого часу, роблячи код більш стислим і легким для читання. Дуже мало часу витрачається на «тонші нюанси». Насправді, мені буде цікаво витратити трохи часу, принаймні на сортування робочого процесу на дошці ... щось, що я робив лише сам. Ви регулярно обговорюєте NP разом зі своїми колегами? Який ви працюєте, де вам потрібно писати власні сорти замість того, щоб використовувати функціональні мови програмування?
P.Brian.Mackey

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

7
Чому всі, здається, сліпо приймають припущення про необхідність офіційного навчального плану коледжу, щоб мати будь-які знання про поняття CS? Можливо, це невдача їх дедуктивних міркувань. Я думаю, їм потрібно більше курсів CS.
квентин-зірин

6

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

Класи, які не є просто алгоритмами та люб'язним пухом:

  • Компілятори
  • Операційні системи
  • VHDL / Вбудовані системи
  • Монтаж та мікроконтролери
  • Розробка програмного забезпечення

І, нарешті, клас, який вибив з мене лайно, це були лише алгоритми та структури даних - Штучний інтелект. Є речі, які, проходячи через систему університету, значно прискорять у процесі навчання, і я вважаю те, що пізніше було вивчено як безцінне, коли шукати роботу.


Яке ваше визначення "кодер" та "програміст"? На мій погляд, вони можуть бути однаковими і на відміну від "комп'ютерного вченого".
Марк C

Coder просто пише код, не обов'язково замислюється про різні парадигми дизайну чи обмінні процеси, які застосовні для вдосконалення коду. Програмісти насправді думають про код, який вони пишуть, і підходять до нього з точки зору зверху вниз, а не з коду знизу вгору.
Jeff Langemeier

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

Пристрасть не присвоюється ступенем. Це просто частина того, хто ти є.
P.Brian.Mackey

@ П. Бріан Іноді так трапляється, хоча ваша пристрасть присвоює ступінь і ще більше сприяє досягненню зазначеного ступеня.
Jeff Langemeier

4

На мою думку, якщо ви не претендуєте на посади "Computer-Science", будь-який ступінь, що передбачає зосередженість на навичках роботи з комп'ютером, є майже рівнозначним.

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

Зрештою, коли ви маєте певний досвід, ваш ступінь стає тестом на пропуск для рекрутера. Тобто, якщо ви здобули це не з вражаючої школи чи післядипломної освіти, це не так важливо, яким був ваш головний.


Один з найкращих програмістів - економіст, який працює виключно в Excel / VBA та R. Він зробив деякі дивовижні речі у відмінній формі.
саль

@sal Для написання речей в Excel та R не потрібно ступінь CS. Написання Excel або R, швидше за все, буде.
Альнітак

@alnitak - Для написання Excel або R також не потрібен ступінь CS. Ось такий сенс моєї відповіді та сал
JohnFx

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

@ bit-twiddler - це означає підтримувати чи спростовувати мою відповідь? Схоже, це підтримує моє остаточне твердження, що це важливо, якщо ви маєте післядипломну або велику школу.
JohnFx

4

для мене та багатьох моїх колег цього не було (жоден з нас не мав CS ступенів)


3

Добре, що тоді

Якщо ви пройшли наступні теми:

a. Архітектура та організація комп'ютерів

b.Програмне забезпечення

c.DBMS

д. Базова електроніка

е. Основна цифрова електронна схема

f.Мікропроцесор

g.Compiler Design

Чи вважаєте ви, що все вищезазначене - лише для формальності? Пам'ятайте вищезазначені моменти, що робить "хорошого програміста" "чудовим програмістом".

Пройдіть це, щоб прочитати про важливість електротехніки та електроніки


3

Маю науковий ступінь з інформатики. Це було чудово для відкриття дверей, отримання роботи. Що стосується того, щоб допомогти мені в професійній галузі програмування на C # .NET (найпопулярніша платформа та мова в тій галузі, в якій я працюю, якщо не цілі Сполучені Штати , а також найпопулярніша ОС у світі ), це навряд чи корисно.

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

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

Як ви думаєте, вони запрограмовані на C #?

Якщо ви справді вірите, що .NET або C # - найпопулярніші платформи у світі, ви можете повернутися до школи CS та попросити повернути гроші.

Чому, на вашу думку, це допомагає вам як програмісту у вашій професійній кар’єрі (поза носієм алгоритму prims, щоб справити враження на якогось інтерв'юера)?

Можливо тому, що в програмуванні є набагато більше, ніж в розробці базових динамічних веб-сторінок та корпоративних додатків? Для цього вам навіть не потрібен ступінь бакалавра, достатньо АА - я знаю, тому що я почав свою кар’єру програмування зі ступенем АА і повільно, але впевнено працював у КС, а потім працював у середній школі , працюючи штатним розробником .

Є вбудована розробка, є розробка драйверів пристроїв, є розробка операційних систем, є розробка алгоритмів, сигналів, комунікацій, мережевих протоколів, розробка двигуна бази даних, розробка файлової системи, розподілених обчислень, компіляторів. Не дослідження, а реальна робота в комерційних організаціях. Заборонивши природньо обдарованих, людина зазвичай не може зламати її в жодному з цих галузей промисловості без ступеня КС (іноді навіть із ступенем бакалавра).

Людина, яка отримує ступінь CS та приділяє їй увагу, знає це. Як тобі цього не зробити?

У сучасній світовій адаптації швидкий розум, міцне спілкування, OO та основні навички дизайну дозволяють розробнику писати програмне забезпечення, яке прийме клієнт.

ОО виникло через КС. І більшість людей, які думають, що вони роблять ОО, навіть не можуть зробити хорошої роботи. Просто погляньте назовні та подивіться на шалений стан програмного забезпечення (зокрема, у Java та .NET, не кажучи вже про PHP.) Твердий фон CS (або випускник якоїсь інженерії) не гарантує 100% хорошого розуміння ОО та аналітичні навички, але це, як правило, допомагає. Інакше, не маючи базового тла CS, зазвичай це червоний прапор, коли мова йде про ОО та аналітичні навички. У нас є достатньо емпіричних доказів у галузі, щоб підтвердити це твердження.

Ці навички лише знімаються в програмі cs.

Залежно від програми CS та залежно від студента. Принаймні для мене я бачив безліч хороших курсів з дизайну, аналізу OO, комерційних інструментів та практик, ми мали спільні курси з місцевими компаніями та стажуваннями, корпоративними проектами та дослідженнями, технічними написаннями. Вибачте, я не можу пов'язати чи зрозуміти це твердження.

На мій погляд, читати книгу C # на 500 сторінках від Wrox пропонує набагато корисніший набір навичок, ніж 4 роки курсів комп’ютерної математики.

Знову ж таки, залежно від роботи, яку ви виконуєте. Навіть на підприємстві я використовував свій CS, щоб фактично виправити речі або вдосконалити. Все, що стосується моделювання, архітектури, розподілених обчислень, безпеки та високої продуктивності, високої доступності та відмовостійкості. Я вивчив усі ці речі в CS.

Там немає нічого поганого у використанні книги Wrox , щоб отримати конкретний контекст , конкретної технологію набір навичок. Я сам так роблю. Але мій досвід роботи з CS дає мені контекст для роботи. Без мого досвіду роботи CS все, що я міг би зробити, - це програмування, кодування (що все, що я міг би зробити, коли на початку своєї кар'єри я мав тільки ступінь АА).

Багато хто не згоден.

Дивно, чи не так.

Отже, чому важливий ступінь інформатики?

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

Я впевнений у тому, що інструменти, які ви використовуєте для розробки C #, за цим стоїть хлопець CS.

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

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

У вас є ступінь CS, як ви не знаєте, що це таємниця.


TIOBE - це лайно для визначення кількості мови програмування. Це міра того, наскільки популярна дана мова в Інтернеті (за кількістю посилань), а не за написаними рядками коду.
Біллі ONeal

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

Якщо приймати його на додаток до інших показників (таких як пошук роботи та розробка типу товару), це допомагає оцінити тенденції використання технологій. Іншими словами, він корисний або марний залежно від того, для чого ви його використовуєте, як ви його використовуєте та з якими іншими показниками він поєднується.
luis.espinal

Моя думка, ви, здається, використовуєте цей індекс, щоб зробити заяву про використання мови програмування, а це не те, що цей показник вимірює. Я пропустив помилку, коли сказав, що написано LoC - але немає хорошого способу сказати "кількість написаного коду", що саме я мав на увазі. TIOBE - це конкурс популярності, і в цій гонці Java збирається підірвати всіх інших до тих пір, поки це буде linqua franca вступних курсів програмування. (Не тому, що це означає, що студенти нічого іншого не знають, а тому, що студенти зазвичай голосніші за професіоналів. (Тобто справді ваші)
Біллі ONeal

1

Є деякі основи, які я пам’ятаю, бачивши на моїх курсах CS, які часом були досить корисними. Процес Водоспаду та його кроки - це те, що я неодноразово використовував у своїй кар’єрі, дещо мінявся для Agile, де він не настільки жорсткий у кроках, але ті ж кроки є.

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


1

Я погоджуюся з моментом Thorbjørn Ravn Andersen щодо мислення. Це головне, що ви розробляєте з гарною навчальною програмою CS.

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


Є й інші предмети, до яких схильні вивчати лише спеціальні спеціалісти з комп'ютерної та комп'ютерної техніки, такі як організація комп'ютерів та архітектура комп'ютера. Навчання, як будувати комп’ютери за послідовною та комбінаційною логікою, робить одного кращим розробником програмного забезпечення, оскільки воно дає зрозуміти, що насправді відбувається всередині комп'ютера. Крім того, перші програмісти, які працюють з новим процесором, потребують розуміння таких понять, як ієрархічна пам'ять та введення / виведення, трубопроводи, блокові асоціативні кеші, блоки управління (мікрокодування та жорсткий провід) та різниця між скалярною та векторною обробкою.
біт-twiddler

Яким чином колегіальне вивчення CS забезпечить кращу експозицію, ніж у лабораторії, де це дійсно має значення з кваліфікованим наставником, який не тільки знає, як він повинен працювати та як він насправді працює?
JustinC

@bit Погоджено. Так, моя відповідь - скоріше гліб. Це було призначено саме тому.
Джордж Маріан

@justin Я не зовсім впевнений, що ти намагаєшся сказати. Скільки програмістів працюють у лабораторії, не кажучи вже про кваліфікованих наставників?
Джордж Маріан

@JustinC: Людина дізнається, як все працює в лабораторії (рівень техніків). Людина дізнається, чому все працює на комп'ютерних курсах організації та архітектури вищого рівня (інженерний рівень). Якщо ви придбаєте пару підручників коледжу вищого рівня з архітектури комп’ютера та організації комп'ютерів, ви побачите, що я маю на увазі.
біт-трейдлер

1

Написання

При розробці програмного забезпечення для підприємств важливо вміти писати код і писати . Під цим я маю на увазі: написання електронної пошти, звіти про помилки, технічні документи тощо. Як написання, так і кодування потрібна чіткість думки та відповідна економічність вираження.

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

Читання

Мій наставник стверджував, що він може судити розробників по прочитаному. В оригінальній публікації згадуються книги WROX. На мою думку, хтось із ступенем CS більше схильний шукати такі професійні ІТ-книги та мати змогу ефективно їх використовувати. Якщо ви можете впоратися з CLR , тоді можна обробити "Professional C #".

Математика

Математика розвиває логіку, доказ, суворість тощо, і побічним ефектом є те, що вона допомагає писати. Хоча для більшості бізнес-ІТ не потрібні інтенсивні математичні навички, людина, яка має ступінь CS, матиме її за потреби. Це набагато кращий спосіб пройти життя, ніж жити без нього, і дивуватися, що ви пропустили в школі.


1

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

Як програмісти, ми, очевидно, маємо можливість вчитися самостійно, це є необхідністю в нашій галузі. Я мушу сказати, що дуже радий, що пройшов програму CS. Мої професори були дивовижними і навчили мене зовсім небагато. Мої однокласники були дуже веселими людьми, і ми весело провели вечір у комп'ютерній лабораторії. По правді кажучи, я якось сумую за тими днями ......


1

Це все у здатності жити побіжно.

Якщо ви пропустите ступінь, вам, мабуть, доведеться засвоїти уроки дуже особистим чином (він же важкий). Відсутність ступеня не означає, що ви пройдете складніший шлях навчання шляхом спроб та помилок; однак ступінь гарантує вам потрапляння до скарбниці раніше отриманих знань, які доводилося заробляти іншим до пізньої ночі, розчарованих сеансів програмування і взагалі "робити це важким шляхом".

По-справжньому відмінна людина не відкине те, що інші визнали істинним, але натомість оскаржить це, поки вони не дізнаються обмеження знань, а потім пограє з «системою» щойно здобутих ідей, поки не зробить їх своїми. Це стоїть на плечах тих, хто прийшов раніше, і живе рішеннями минулих років, не потребуючи їх повторного відкриття.

Звичайно, людина, яка має ступінь інформатики, не завжди є кращим кандидатом. Є ті унікальні особи, яких привели до потоку, але (з якоїсь дивної причини) відмовляються пити з нього.


0

Мені 21 рік, який щойно закінчив бакалаврат CS. Я відчуваю, що як би ви велико не займалися програмуванням, якщо ви CS-клас, ви вже будете піддані різним сферам. Тож якщо ви хочете вивчати нові речі, ви не боїтесь досліджувати, навіть якщо це не має значення . Якщо ви фахівець з технології чи мови програмування, добре. Але я не думаю, що ви будете проявляти авантюрність і будете готові зазирнути в інші технології. Ось як ви забруднилися (і теж швидко). Ви не будете роздумувати, що те, що ви досліджуєте, не має значення, оскільки це не допоможе вам заробити гроші. (Ви вже вивчили багато неактуальних речей у своєму CS UG;)).
Саме пристрасть до CS, яку ви маєте після закінчення навчання, робить вас професіоналом програмного забезпечення.
Хтось згоден?


1
Ви не можете припустити, що комусь не буде цікаво "дивитись на інші технології" лише тому, що вони не мають ступеня CS. Це помилка.
Стівен Стрига

0

Добре, коли я вступив до CS, я думав, що вау, я справді хороший, як є, і я не збираюся тут нічого вчитися ... Через 5 років я лише навчився працювати як команда, і деякі речі від інженерії, яка відокремлює мене від того, хто може писати тільки код, і того, хто може думати, що він робить, перш ніж він кодує, коротше кажучи, це навчило мене думати, перш ніж я навіть набрав одну букву в своєму текстовому редакторі чи ідеї.


0

Отримати роботу з мовою з відкритим кодом це не означає присідання. Більшість компаній наймають на основі здібностей, а не кваліфікації та мов, таких як PHP, мають репутацію любителя, що загрожує тим, що люди можуть мати талант, не вивчаючи CS. Єдиний раз, коли це допомагає, якщо ви влаштовуєтесь на роботу з використанням .Net languages, оскільки більшість любителів не захоче роздавати тисячі за ліцензію, аби лише возитись у вихідні дні, отже, хтось, хто шукає першу роботу в 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.