EE vs Computer Science: влияние на подходы разработчиков, стили? [закрыто]

Существуют ли какие-либо систематические различия между разработчиками программного обеспечения (инженерами sw, архитектором, независимо от названия) с электроникой или другим инженерным составом по сравнению с теми, кто вступил в профессию с помощью компьютерных наук?

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

Мне интересно, попадают ли в профессии, занимающиеся разработкой программного обеспечения, из-за сильного знания флип-флопов, буферов тристата, времени нарастания времени и т. д., обычно приводит к четкому подходу к проблемам, менталитетам или превосходным навыкам при определенных специальностей и недостаток навыков у других, по сравнению с типами компьютерных наук, которые полны концепций, таких как абстрактные типы данных, ориентация объектов, нормализация базы данных, которые говорят о «замыканиях» на языках программирования - вещи, которые не имеют никакого смысла для паяльника толпа, пока они не освоят достаточно программирования.

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

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

11 голосов | спросил DarenW 31 +03002010-10-31T12:15:04+03:00312010bEurope/MoscowSun, 31 Oct 2010 12:15:04 +0300 2010, 12:15:04

5 ответов


5

Имея незначительный EE и основной CS, я работал с обеими группами в академическом плане. Я никогда не занимал должности, где я проектировал продукты стиля EE, но я много потреблял их для компаний с такими вещами, как ПЛК, и поэтому смог понять (с образовательного фона) то, что происходило хорошо , Поэтому я не могу сказать, что знаю 100% о поведении и характеристиках на рабочем месте, но я могу описать различия между ними: academic степень.

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

Люди SE имеют тенденцию к образованию слоев и разделению логики. Люди SE не возражают против раздутых проектов. Люди SE, как правило, ориентированы на математику. Они склонны думать в терминах уравнений и как решать проблемы из концепции шаблонов. Соединения более интуитивно понятны для этой группы, например, для работы с базами данных. Чем дальше вы идете, тем больше вы склонны видеть людей, которые свободно говорят с такими вещами, как «Функциональное программирование». Это просто не безопасный для человека EE.

Оба человека знают о таких вещах, как карты Карно, поэтому в этих областях много перекрытий. Сокращение логики, что-то типа.

Хорошо, так что это мой субъективный ответ. Надеюсь, что это поможет.

ответил jcolebrand 1 12010vEurope/Moscow11bEurope/MoscowMon, 01 Nov 2010 18:59:23 +0300 2010, 18:59:23
12

Если бы мне пришлось обобщить, вот что я имел в виду:

  • Инженеры (или просто EE) склонны делать лучше в «совершенстве маленького». Учитывая небольшую задачу программирования, они думают, что очень долго и трудно обо всех случаях краев, и, скорее всего, в конечном итоге создание куска программного обеспечения, который очень прочный. Обычно это связано с принципом «сверху вниз», потому что это то, к чему они привыкли в аппаратном обеспечении. Обычно это связано с использованием государственных машин, потому что они используются для их проектирования для аппаратного обеспечения, и он соответствует «большому дизайну». С другой стороны, они не думают о масштабируемости или ремонтопригодности.

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

Как я уже сказал, это мой обобщенный опыт. Это не так в каждом случае.

ответил Scott Whitlock 31 +03002010-10-31T18:27:07+03:00312010bEurope/MoscowSun, 31 Oct 2010 18:27:07 +0300 2010, 18:27:07
3

По моему опыту - типы EE, похоже, разрабатывают линейные программы, а не включают слои абстракции. Кажется, что типы CS кажутся удобными.

Нет комментариев о различиях в качестве или отсутствии.

ответил Paul Nathan 1 12010vEurope/Moscow11bEurope/MoscowMon, 01 Nov 2010 18:49:34 +0300 2010, 18:49:34
1

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

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

ответил FinnNk 31 +03002010-10-31T14:54:58+03:00312010bEurope/MoscowSun, 31 Oct 2010 14:54:58 +0300 2010, 14:54:58
1

Я начал с BSEE, пошел на работу по разработке логических схем для большой телефонной лаборатории R & D, и (это было около 40 лет назад), большинство из того, что я строил, в конечном итоге можно было сделать с помощью компьютерной программы. Поэтому я вернулся и получил степень MSCS.

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

Без моего опыта работы в CS я думаю, что у меня было бы больше проблем с пониманием более абстрактных понятий. Помимо множества разных языков ассемблера, я использовал C, C ++, C #, Pascal, Delphi, Perl, PHP и некоторые Lisp. В настоящее время я пытаюсь изучить Ruby и Python. Дизайн OO Мне очень удобно. Функциональное программирование Я пока (пока).

То же самое для баз данных. Я понимаю нормализацию. У меня проблемы с некоторыми из более эзотерических JOIN и избегайте их. Мне не очень нравится что-то, если я не понимаю, что происходит под капотом.

Я хочу иметь возможность «видеть», как компьютер будет запускать программу в моей голове.

ответил tcrosley 31 +03002010-10-31T21:20:05+03:00312010bEurope/MoscowSun, 31 Oct 2010 21:20:05 +0300 2010, 21:20:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132