Для внешнего мира программисты, программисты, разработчики программного обеспечения и разработчики могут показаться одинаковыми, но это далеко не так для людей, которые создают программное обеспечение для жизни. Возможности и знания любого отдельного программиста могут варьироваться очень широко, а также их инструменты (ОС, язык и, да, предпочтительный редактор), и это разнообразие порождает множество субкультур в программном обеспечении - как программисты, которые активно используют Stack Overflow и этот сайт, против многих других, кто этого не делает.
Мне любопытно услышать от других, с какими программными субкультурами они сталкивались, к которым они относились, которыми восхищались, не любили или даже создавали. Для начала я столкнулся с:
- Компании и разработчики под управлением Microsoft : весь их стек от Redmond, WA. Электронная почта это Outlook это электронная почта. Интернет - это IE и IIS. У них есть большие подшивки их подписки MS Developer Network, полные нескольких версий VB, .net, Visual Studio и т. Д. Избегает работы с оболочкой / командной строкой. Не понимаю, что за суета с открытым исходным кодом и все такое. MS-ориентированные компании, как правило, 9-5 и вполне корпоративные (движимые бизнес-менеджерами, а не программистами). В настоящее время (учитывая широкую доступность инструментов, не принадлежащих MS), это антитезис хакерской культуры.
- Старые люди из CS : они часто очень хорошо знают Lisp и Unix; иногда они могут сами написать полу-популярный Lisp или системную утилиту. Немногие, если таковые имеются, вещи «разработки программного обеспечения» являются новыми для них, и при этом они не впечатлены такими. Знать ссылки, историю и последствия высокого уровня языков программирования, таких как Lisp, C, Prolog и Smalltalk. Может быть горьким об итогах ИИ 80-х и 90-х годов. Склонны быть пользователями Emacs. Может печатать многострочные команды оболочки, не моргая глазом. Их совет может быть загадочным, но содержит золото, как только понял.
- Веб-разработчики новой школы : играли с компьютерами и видеоиграми, но часто начинали программировать только в конце 90-х или начале 00-х. Удобно с 1 до 1,5 скриптовых / динамических языков; думаю, что C и языки за пределами Ruby / Perl / Python являются ненужными / волшебными. Возможно, изначально рассматривал HTML как программирование. Склонны приобретать Mac и быть фанатичными / иррациональными. Используйте рамки больше, чем создавайте их. Часто с энтузиазмом относится к NoSQL и / или Ruby On Rails.
- Новая школа CS : много обучения статистике, байесовским моделям и умозаключениям; не говори «ИИ», говори «машинное обучение». Больше Java, чем Lisp, но также может быть опытным программистом на Haskell. Наблюдение за крупными реальными успехами экспертов в своей области (Google, финансы / кванты) часто делает их (чрезмерно) уверенными. Но большие данные и их распределенная обработка действительно меняют мир.
Приведенные выше примеры ни в коем случае не являются полными, правильными, ортогональными или объективными. :) Только то, что я видел лично, и предоставило, чтобы зажечь некоторое обсуждение и обрисовать в общих чертах вопрос. Не стесняйтесь не соглашаться!