Какие программные / программные субкультуры существуют? Что определяет их? К чему ты принадлежишь? [закрыто]

13

Для внешнего мира программисты, программисты, разработчики программного обеспечения и разработчики могут показаться одинаковыми, но это далеко не так для людей, которые создают программное обеспечение для жизни. Возможности и знания любого отдельного программиста могут варьироваться очень широко, а также их инструменты (ОС, язык и, да, предпочтительный редактор), и это разнообразие порождает множество субкультур в программном обеспечении - как программисты, которые активно используют 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, финансы / кванты) часто делает их (чрезмерно) уверенными. Но большие данные и их распределенная обработка действительно меняют мир.

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

limist
источник
1
«Lil» расплывчато, но звучит интересно.
Ладья
6
Я думаю, что ответы показывают одну вещь: вопрос состоит в том, чтобы провести четкие разделительные линии там, где их на самом деле нет. Мы имеем дело с примерно 5 ортогональными понятиями, каждое из которых является континуумом, и пытаемся разделить эту гиперплоскость на легко идентифицируемые дискретные группы. ИМО, это безнадежное начинание.
Джерри Гроб
3
@ Джерри Гроб - да, согласен. Не говоря уже о том, что некоторые ответы граничат с оскорблением некоторых «культур», ИМХО. Однако эти ответы хороши тем, что они показывают, что сегодня (программисты? Или, по крайней мере, это сообщество) думают о других сообществах, которые составляют даже часть этого (в небольшом проценте).
Ладья
@JerryCoffin Ну, сэр, есть люди, которые хотят использовать это слово «ортогонально», и те, кто не только потому, что он был популярен в стеке в последние десятилетия ...
Эрик Реппен,

Ответы:

12

Я бы считал себя частью группы систем реального времени . Есть некоторые характеристики «старой школы», но с меньшим акцентом на CS, больше на аппаратном обеспечении.

Архетип:

  • Имеет экспертные знания «С»
    • Имеет оригинальную копию K & R
    • Пишет на других языках, как если бы они были просто альтернативным синтаксисом для 'C'
  • Можно предсказать вывод ассемблера из их кода.
  • Можете прочитать принципиальную схему
  • Не знает, как писать код без «преждевременной оптимизации».
  • Довольно удобно с командной строкой.
AShelly
источник
Увлекательно, спасибо. Я встречался с некоторыми людьми из систем реального времени, но не работал в таком месте, поэтому не пытался охарактеризовать культуру. Я думаю, что многие из нас, программистов, назвали бы вас, ребята, «хардкорными». :)
limist
1
Я думаю, что это как любая другая дисциплина - есть жесткие "рок-звезды", и есть простые старые камни. (Я надеюсь, что я где-то между ними)
AShelly
2
Я тоже в этой группе. Большинство моих коллег «пришли» в это место из области электроники, но я «спустился» из-за того, что был разработчиком баз данных / приложений. Сейчас я чувствую себя очень комфортно в этой группе, и иногда мой другой опыт может принести другую полезную перспективу.
Вики
1
Кроме того, это может быть моим восприятием, но кажется, что женщины в этой группе даже реже, чем в некоторых других группах.
Вики
1
Ух ты - это описывает меня почти идеально, за исключением того, что я не только читаю принципиальные схемы, но и проектирую их. Работал над моей первой встроенной системой (в PL / M-86) в конце 1970-х годов.
tcrosley
6

Не забудьте программистов мэйнфреймов. Они тоже субкультура.

Тун Крижте
источник
1
Мне бы хотелось больше узнать о культуре мэйнфреймов; Я встречал очень мало людей, которые даже проводят много времени с мэйнфреймами, не говоря уже о том, чтобы регулярно их кодировать.
лимит
1
Это люди с приличной стрижкой и неотличимы от других людей в деловых костюмах. Им нравится Кобол. Для них нет системы, кроме системы / 360.
oosterwal
5

Я представляю одинокий контингент Delphi Devs до 30 лет. Наша группа мала, но наши сердца большие.

Питер Тернер
источник
Некоторые из моих коллег <30.
Мульт Крайте
2
Ну, скажите им, чтобы начать обмен стека, и мы можем поговорить о новых функциях, которые мы попросим старого Джонни Борланда реализовать после того, как вы умрете ;-)
Питер Тернер
4

Я предполагаю, что существует несколько культур, которые как-то живут вместе, а не борются и как-то трансцендентно:

  • Культура хакеров / открытых источников : делится кодом, использует настоящее имя или нет. Сосредоточены, вероятно, на небольших инструментах, которые решают одну проблему. Позволяет хаки в программе. Языки: C , Lisp , C ++ , Python . Вероятно, совпадает с вашими сотрудниками старой школы CS .
  • Академия : концентрация на алгоритмах и правильном подходе. Настоящее имя обязательно (оно все равно появляется на бумаге). Языки: Java , Haskell , ( F # ?)
  • Corportate : концентрация на растворах (вероятно, всего). Если с открытым исходным кодом указывать имя не нужно . Языки: Java , C # , VB.net , Ruby .
  • « Средняя школа »: это хорошо, если это работает, но это не обязательно. Концентрация на таких именах, как «SuperProgram 1.0 для Windows XP». (извините - я не нашел хорошего имени, но я имею в виду программистов, которые начали осваивать CS и не очень хороши в этом - по крайней мере, пока). Языки: PHP , VB , Ruby
  • Новая школа веб-разработчиков : как указано выше.

Обратите внимание, что:

  • можно смешивать культуры в организациях и в одном человеке. На самом деле это часто так.
  • Языки - ПРИМЕРЫ, и это, например, довольно большая группа «хакеров», работающих на C #. Это настоящая учеба, основанная на игре ассоциаций, поэтому, пожалуйста, не обижайтесь (да, я знаю, что на PHP написаны отличные программы с хорошей инженерной практикой и т. Д., Но, как правило, это первый язык для многих, кто не знаю, что такое, например, XSS)
  • Я не хотел никого обидеть по имени High School. Я имел в виду, что это часто первый шаг в программировании через эту культуру (и, надеюсь, не последний)
  • Изменить: Академия не означает, что человек в академии, а также в академии не означает, что кто-то принадлежит академии (несмотря на то, что он блестящий ученый / исследователь и т. Д.). Это означает, что он предпочитает инструменты, которые дают ясное, очевидно правильное решение, даже если ему не хватает производительности / занимает больше времени / ... Сходная корпоративная культура не эквивалентна корпорациям.

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

Мацей Печотка
источник
Я просто думал о сильном совпадении современной субкультуры CS / academia и программистов на Haskell. Немного поиграв с Haskell, я понимаю, почему он привлекает тех, кто обучается в области формальных наук (CS, математика), и действительно, я считаю, Haskell помогает видеть программирование на более высоком уровне.
Limist
Только Ява и Хаскель в Академии? А как насчет Fortran, C, C ++, R, MATLAB, * sh + awk (да, я знаю таких людей), Mathematica, Python, LabVIEW? Также Haskell, вероятно, следует заменить на «любой функциональный язык».
Барбекю
Это пример. Смещенные примеры. Как я уже отметил, языки НЕ являются культурно-специфическими. Также обратите внимание, что академическая культура не ограничивается академической, и не все в академической среде должны принимать академическую культуру. Хотя я согласен с тем, что Fotran / C / C ++ / R / Matlab / ... используются в научных кругах, они, по моему мнению, не имеют тесной связи с ним. * sh + awk определенно не академичен (поскольку культура - пользователь может работать в академии и быть блестящим ученым - это совсем другое дело0.
Мацей Пехотка
1
Я думаю, что вы идете к ученым информатики.
МБк
2

Я вроде как в лагере Alt.NET/old-school CS. Я работаю с технологией Microsoft (C # и т. Д.), Но я знаю, что вокруг меня целый мир, другие языки, алгоритмы, фреймворки, «все под капотом» и т. Д. Очевидно, не идеально, но это работа в ходе выполнения.

Адам Лир
источник
1
Толпа Alt.NET, безусловно, является субкультурой программирования и абсолютно отличается от описания Limist культуры, управляемой Microsoft (что для меня больше похоже на то, какой была эта культура десять лет назад, чем на то, чем она является сейчас).
Carson63000
2

Я не совсем согласен с этим утверждением о субкультуре MS: «Не понимаю, что такое шумиха с открытым исходным кодом и тому подобное - кроме того, кому нужно знать другой язык? В общем, я нашел такие места, чтобы 9-5 и вполне корпоративный (управляемый бизнес-менеджерами, а не программистами). Анти-тезис о хакерской культуре. " Я уже работал в двух магазинах .Net, и обстановка на самом деле была очень хакерской. Мы использовали много проектов с открытым исходным кодом в нашей работе. В моем варианте все зависит от того, с какими людьми вы работаете. Если они настоящие разработчики, они будут постоянно искать пути улучшения, расширяться. Какие технологии они используют, не имеет значения.

Не забывайте о субкультуре Agile Methodology, в которую входят разработчики из разных областей.

ysolik
источник
Да, Agile люди являются субкультурой для себя. Хорошая точка зрения. разработчик против инструмента, и, конечно, ваш опыт может сильно отличаться от моего. Из моей ограниченной выборки я просто обнаружил, что инструменты довольно сильно повлияли на создателей.
Limist
Я работал в магазине MS (и я мог бы даже быть фанатом), но менталитет, который я испытал, это «сначала посмотри на MS, если он бесплатный, то используй его. В противном случае, ищи все, что угодно, чтобы удовлетворить потребности». «.
Стивен Эверс
2

Я думаю, что есть какая-то золотая середина между Old School CS и веб-разработчиками New School .

Я бы традиционно считал себя «веб-разработчиком». PHP и Java и граждане первого класса для меня, наряду с правильным, смысловым, действительным HTML / CSS. Добавьте SQL, и вы получите надежный, хорошо округленный набор навыков.

Переместите новую школу в Script Kiddies и ребрендинг веб-разработчика .

Сценарий Kiddies - Люди с небольшим, если таковые имеются, «под капотом» знаниями о языке. Имеет тенденцию гуглить учебники, прежде чем слепо копировать / вставлять код на место. Обычно не полностью понимает синтаксис более чем одного языка.

Джош К
источник
2

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

Они:
- пишут программное обеспечение , которое может потреблять неограниченное количество процессорного времени, память и дисковое пространство , так что они заботятся (или , по крайней мере , попытаться помощь) производительности, либо с использованием вещи , как -O3, time, профайлеры, MemCheck и тратить часы более или менее случайное изменение кода для ускорения или бездумное применение некоторых мифических трюков к своим сценариям.
- используйте реальные цифры и знайте, что это достаточно сложно, чтобы существовала отдельная наука под названием «цифры».
- часто используют некоторые очень специфические языки программирования / библиотеки / программы и очень фанатичны в этом отношении; пламенные войны распространены, в основном из-за производительности.
- Назовите свои программы «кодами», чтобы подчеркнуть, что у них настолько запутанный пользовательский интерфейс, что только его создатели знают, как им пользоваться.
- обычно работают в Linux или, по крайней мере, используют PuTTY для подключения ssh к какой-либо рабочей станции / кластеру Linux.

МБк
источник
1
Да, я тоже в этом клубе. Этот список является хорошим началом для описания типичного физика высоких энергий (я имею в виду, изучает кварки, у которого не было слишком много кофе) или астронома, работающего с современными большими инструментами.
DarenW
1
И поскольку эта субкультура очень заботится о практической, воспроизводимой и предельной эффективности, они часто мало заботятся о большинстве вещей, происходящих в мире компьютерных наук, если только это не связано с параллельной обработкой, умными схемами кэширования, HPC и т. Д. ,
DarenW
@DarenW: Что вы имеете в виду, что они мало заботятся о мире информатики? Вы имеете в виду, что они не заботятся о хорошей практике программного обеспечения и тому подобное? Потому что я бы не согласился. Заботясь о производительности, не нужно отказываться от хороших принципов разработки программного обеспечения.
n1ckp
1

Я, вероятно, сочетание старших школьников CS и веб-разработчиков New-school : я изучал программирование, написав веб-сайты на PHP, Javascript и SQL, и сейчас учусь в университете, где все делается в командной строке и Emacs в UNIX.

gablin
источник
0

Считай меня, как парня из "старой школы". Я никогда не делал LISP хорошо, хотя. Emacs? Нет, viа set -o viв моей оболочке за меня спасибо.

Jé Queue
источник