Зовнішньому світу програмісти, комп'ютерні науковці, інженери програмного забезпечення та розробники можуть здатися схожими, але це далеко не так для людей, які створюють програмне забезпечення для життя. Можливості та знання будь-якого програміста можуть варіюватися в широких межах, а також їх інструменти (ОС, мова та так, бажаний редактор), і це різноманіття породжує багато субкультур у програмному забезпеченні - наприклад, програмісти, які активно використовують Stack Overflow та цей сайт, проти багатьох інших, хто цього не робить.
Мені цікаво почути від інших, до яких програмних субкультур вони стикалися, належали, захоплювалися, не любили або навіть створювали. Для початку я стикався:
- Компанії та розробники, керовані Microsoft : весь їхній стек - від компанії Redmond, WA. Електронна пошта Outlook - це електронна пошта. Мережа - IE та IIS. Вони мають великі в'яжучі підписки на свою мережу MS Developer, наповнені кількома версіями VB, .net, Visual Studio тощо. Уникайте роботи з оболонкою / командним рядком. Не бачите, у чому це суєта з відкритим кодом та таке. Компанії, орієнтовані на MS, мають тенденцію 9-5 та досить корпоративні (керуються менеджерами бізнесу, а не програмними особами). Сьогодні (зважаючи на широку доступність інструментів, що не належать до MS), це є антитезою хакерської культури.
- Люди зі старого шкільного віку : вони часто дуже добре знають 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 для нових шкіл : багато навчання статистиці, байесівським моделям та висновкам; не кажіть "AI", а "машинне навчання". Більше Java, ніж Лісп, але також можуть бути досвідченими програмістами Haskell. Бачити основні реальні успіхи експертів у своїй галузі (Google, фінанси / учасники) часто робить їх (над) впевненими. Але великі дані та розподілена обробка таких дійсно змінюють світ.
Наведені вище приклади аж ніяк не є повними, правильними, ортогональними чи об'єктивними. :) Якраз те, що я бачив особисто, і забезпечив розгорнуту дискусію та окреслення більш широкого питання. Не соромтеся погоджуватися!