Каковы некоторые известные / общие особенности развития? [закрыто]

10

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

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

Стивен Эверс
источник

Ответы:

18

На мой взгляд, есть две категории специализации:

  1. специализация в конкретной области программирования;
  2. или специализация в проблемной области.

Примеры темы программирования:

  • внедренный
  • графический интерфейс пользователя
  • Визуализация
  • тестирование

Тогда есть специализация в конкретной проблемной области, такой как

  • финансовый
  • научный
  • медицинская
  • Проблемной областью может считаться практически любая крупная отрасль

Я думаю, что это важное различие.

Никто
источник
4

Программирование встраиваемых систем (которым я занимаюсь более 30 лет) требует совершенно иного мышления, чем большинство других разработок программного обеспечения. Диапазон вычислительной мощности варьируется в широких пределах: от 8-разрядных микроконтроллеров, стоимость которых составляет 30 центов, до 32-разрядных микропроцессоров под управлением Linux или некоторых других распространенных ОС. В настоящее время я делаю проекты на обоих концах этого масштаба. Объем памяти кода на самых маленьких микросхемах может составлять всего несколько КБ, а объем оперативной памяти - всего несколько сотен байт. Среднесрочный 16-разрядный микропроцессор стоимостью 3 доллара может иметь 256 КБ памяти для хранения программ и 16 КБ ОЗУ.

Помимо ограниченных ресурсов памяти, одним из аспектов встроенного программирования, который отличается от других областей разработки программного обеспечения, является то, что программист часто имеет дело непосредственно с аппаратным обеспечением на уровне регистров - либо с самим микро, либо с периферийным устройством, подключенным к микро через последовательные шины, такие как UART, SPI или I2C. По этой причине встроенные микросхемы младшего класса обычно программируются на языке Си или ассемблере.

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

Из-за аппаратных аспектов разработки встраиваемых систем разработчики часто имеют некоторый опыт работы с электроникой. (У меня есть степени в EE и CS).

tcrosley
источник
1

Роль / команда разработчиков DBA существует, но не достаточно распространена или оценена.

Говоря о крупных магазинах, группа производственных администраторов баз данных может иметь несколько тысяч экземпляров SQL Server для управления и мониторинга, обеспечения аварийного восстановления, взаимодействия с группами SAN, сети и ОС и т. Д.

Кто там для команд разработчиков? Tuning? Индексы? Дизайн? Стандарты кодирования?

Говоря об этом, как сам администратор базы данных для разработчиков, я встречал множество клиентов-разработчиков, которые знают о базах данных больше, чем я ... :-)

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

ГБН
источник
0

Существует также различие в знании определенного типа программного решения, такого как любое из следующего:

  • Планирование ресурсов предприятия
  • Управление взаимоотношениями с клиентами
  • Система управления контентом

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

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

JB King
источник
Хм, я надеюсь на специальности, которые отличаются от их навыков реализации. Например, специалист по искусственному интеллекту не должен использовать C ++ / Prolog / любой другой язык. Веб-разработка, как мне кажется, в наши дни тесно связывает реализацию с технологиями (asp.net mvc! = RoR - переводимые знания - это в основном общее программирование и знание платформ)
Стивен Эверс,