Jakie są subkultury programowania / oprogramowania? Co je definiuje? Do którego należysz [Zamknięte]

13

Dla świata zewnętrznego programiści, informatycy, inżynierowie oprogramowania i programiści mogą wydawać się tacy sami, ale nie jest tak w przypadku ludzi, którzy tworzą oprogramowanie na życie. Umiejętności i wiedza każdego programisty mogą mieć bardzo szeroki zakres, a także ich narzędzia (system operacyjny, język i tak, preferowany edytor), a różnorodność ta powoduje powstawanie wielu podkultur w oprogramowaniu - takich jak programiści, którzy aktywnie korzystają z przepełnienia stosu i tej witryny, w porównaniu z wieloma innymi, którzy tego nie robią.

Z ciekawością słyszę od innych podkultur oprogramowania, które napotkali, do których należą, podziwiali, nie lubili, a nawet stworzyli. Na początek napotkałem:

  • Firmy i programiści napędzani przez Microsoft : cały ich stos pochodzi z Redmond w stanie Waszyngton. E-mail to Outlook to e-mail. Sieć to IE i IIS. Mają duże segregatory swojej subskrypcji MS Developer Network pełne wielu wersji VB, .net, Visual Studio itp. Unika pracy z powłoką / wierszem poleceń. Nie rozumiem, o co w tym kłopot z open source. Firmy zorientowane na MS zwykle mają 9-5 lat i są dość korporacyjne (kierowane przez menedżerów, a nie ludzi oprogramowania). W dzisiejszych czasach (biorąc pod uwagę szeroką dostępność narzędzi innych niż MS) jest to przeciwieństwo kultury hakerów.
  • Oldschoolowi ludzie CS : często bardzo dobrze znają Lisp i Unix; czasami sami napisali półpopularne Lisp lub narzędzie systemowe. Niewiele, jeśli w ogóle, „inżynierii oprogramowania” jest dla nich czymś nowym i nie jest to pod wrażeniem. Poznaj referencje, historię i implikacje wyższego poziomu języków programowania, takich jak Lisp, C, Prolog i Smalltalk. Może być zgorzkniały, jeśli chodzi o wyniki AI w latach 80. i 90. Zwykle są użytkownikami Emacsa. Może wpisywać wieloliniowe polecenia powłoki bez mrugnięcia okiem. Ich rada może być tajemnicza, ale zawiera zrozumiałe złoto.
  • Nowoprzybyli twórcy stron internetowych : bawili się z komputerami i grami wideo, ale tak naprawdę dopiero zaczęli programować pod koniec lat 90. lub na początku 00. Wygodny z 1 do 1,5 językami skryptowymi / dynamicznymi; myślę, że C i języki poza Ruby / Perl / Python są niepotrzebne / magiczne. Być może początkowo uważano HTML za programowanie. Zdobądź komputer Mac i bądź fanatyczny / irracjonalny. Używaj ram bardziej niż je buduj. Często zbyt entuzjastycznie nastawiony do NoSQL i / lub Ruby On Rails.
  • New-school CS : wiele szkoleń w zakresie statystyki, modeli bayesowskich i wnioskowania; nie mów „AI”, mów „uczenie maszynowe”. Więcej Javy niż Lisp, ale mogą też być ekspertami programistami Haskell. Widząc duże sukcesy w świecie rzeczywistym ekspertów w swojej dziedzinie (Google, finanse / kwanty) często sprawia, że ​​są (nadmiernie) pewni siebie. Ale duże zbiory danych i ich rozproszone przetwarzanie naprawdę zmieniają świat.

Powyższe przykłady w żadnym wypadku nie są kompletne, poprawne, ortogonalne ani obiektywne. :) Właśnie to, co widziałem osobiście, i pod warunkiem, aby zainicjować dyskusję i zarys szerszego pytania. Nie zgadzaj się!

limist
źródło
1
„Lil” jest niejasne, ale brzmi interesująco.
Rook
6
Myślę, że odpowiedzi pokazują jedną rzecz: pytanie próbuje wytyczyć wyraźne linie podziału tam, gdzie tak naprawdę nie ma. Mamy do czynienia z około 5 pojęciami ortogonalnymi, z których każda stanowi kontinuum, i staramy się podzielić tę hiperpłaszczyznę na łatwe do zidentyfikowania odrębne grupy. IMO, to beznadziejne przedsięwzięcie.
Jerry Coffin
3
@Jerry Coffin - tak, zgadzam się. Nie wspominając już o tym, że niektóre odpowiedzi graniczą ofensywnie w stosunku do niektórych „kultur”, IMHO. Odpowiedzi te są jednak miłe, ponieważ pokazują, co dzisiejsi (programiści? A przynajmniej ta społeczność) myślą o innych społecznościach, które stanowią nawet część tej (w niewielkim stopniu).
Rook
@JerryCoffin Cóż, proszę pana, są ludzie, którzy chcą używać tego słowa „ortogonalny” i tacy, którzy nie tylko dlatego, że był popularny na stosie w ostatnich dziesięcioleciach ...
Erik Reppen

Odpowiedzi:

12

Uważam się za część grupy Real-Time Systems . Istnieją pewne cechy „starej szkoły”, ale mniej skupia się na CS, więcej na sprzęcie.

Archetyp:

  • Ma specjalistyczną wiedzę na temat „C”
    • Ma oryginalną kopię K&R
    • Pisze w innych językach, jakby były tylko alternatywną składnią „C”
  • Potrafi przewidzieć dane wyjściowe asemblera na podstawie ich kodu.
  • Potrafi odczytać schemat połączeń
  • Nie wie, jak napisać kod bez „przedwczesnej optymalizacji”.
  • Jest całkiem wygodny w linii poleceń.
AShelly
źródło
Fascynujące, dziękuję. Spotkałem ludzi z systemami czasu rzeczywistego, ale nie pracowałem w takim miejscu, więc nie próbowałem scharakteryzować kultury. Myślę, że wielu z nas programistów nazwałoby was „twardymi”. :)
limist
1
Myślę, że to jak każda inna dyscyplina - są twarde „gwiazdy rocka” i są zwykłe stare skały. (Mam nadzieję, że jestem gdzieś pomiędzy)
AShelly
2
Też jestem w tej grupie. Większość moich kolegów „przyjechała” do tego miejsca z wykształcenia inżynierskiego, ale „sprowadziłem się” do tego, że jestem programistą baz danych / aplikacji. Teraz czuję się bardzo dobrze w tej grupie i czasami moje różne pochodzenie może przynieść inną użyteczną perspektywę.
Vicky
1
Może i to może być moja percepcja, ale wydaje się, że kobiety są w tej grupie jeszcze rzadsze niż w niektórych innych grupach.
Vicky
1
Wow - to opisuje mnie prawie idealnie, tyle że nie tylko czytam schematy obwodów, projektuję też obwody. Pracowałem nad moim pierwszym systemem wbudowanym (w PL / M-86) pod koniec lat siedemdziesiątych.
tcrosley,
6

Nie zapomnij o programistach komputerów mainframe. Są też subkulturą.

Toon Krijthe
źródło
1
Z przyjemnością dowiem się więcej o kulturze koderów komputerów mainframe; Spotkałem bardzo niewielu, którzy spędzają dużo czasu z komputerami mainframe, nie mówiąc już o ich regularnym kodowaniu.
limist
1
Są to ludzie z poważnymi fryzurami i są nie do odróżnienia od innych osób w garniturach biznesowych. Lubią COBOL. Dla nich nie ma innego systemu niż system / 360.
oosterwal
5

Reprezentuję samotny kontyngent Delphi Devs poniżej 30. Nasz klub jest mały, ale nasze serca są duże.

Peter Turner
źródło
Niektórzy z moich współpracowników mają
mniej niż
2
Cóż, powiedz im, żeby zaczął wymianę stosów i możemy porozmawiać o nowych funkcjach, o które poprosimy starego Johnny'ego Borlanda, aby wdrożył je po śmierci ;-)
Peter Turner
4

Sądzę, że istnieje kilka kultur, które w jakiś sposób żyją obok siebie, a następnie walczą i są w jakiś sposób transcendentne:

  • Haker / kultura Open Source : dzielenie się kodem, używanie prawdziwej nazwy lub nie. Skoncentrowany prawdopodobnie na małych narzędziach, które rozwiązują jeden problem. Umożliwia włamania w programie. Języki: C , Lisp , C ++ , Python . Prawdopodobnie pokrywa się z twoimi old-schoolowymi ludźmi CS .
  • Academia : koncentracja na algorytmach i robienie rzeczy we właściwy sposób. Prawdziwe imię to musi (i tak pojawia się na papierze). Języki: Java , Haskell , ( F # ?)
  • Corportate : koncentracja na roztworach (prawdopodobnie wszystkiego). Jeśli open source, podanie tej nazwy nie jest konieczne . Języki: Java , C # , VB.net , Ruby .
  • High School ”: dobra, jeśli działa, ale nie musi. Koncentracja na nazwach takich jak „SuperProgram 1.0 dla Windows XP”. (przepraszam - nie znalazłem dobrego imienia, ale mam na myśli programistów, którzy zaczęli opanowywać CS i nie są w tym dobrzy - przynajmniej jeszcze). Języki: PHP , VB , Ruby
  • New School Web Developers : jak wyżej.

Proszę to zanotować:

  • możliwe jest mieszanie kultur w organizacjach i w pojedynczej osobie. W rzeczywistości często tak jest.
  • Językami są PRZYKŁADY i jest to na przykład dość duża grupa „hakerów” pracujących na C #. To bardziej gra w skojarzenia, więc nie obrażaj się (tak - wiem, że istnieją świetne programy napisane w PHP z dobrą praktyką inżynierską itp., Ale dla wielu osób, które nie używają języka pierwszego) wiesz, co to na przykład XSS)
  • Nie chciałem obrazić nikogo z imienia High School. Miałem na myśli, że często jest to pierwszy krok do programowania za pośrednictwem tej kultury (i mam nadzieję, że nie ostatni)
  • Edycja: Academia nie oznacza, że ​​dana osoba jest w środowisku akademickim, a bycie w środowisku akademickim nie oznacza, że ​​ktoś należy do środowiska akademickiego (pomimo tego, że jest błyskotliwym naukowcem / badaczem itp.). Oznacza to, że preferuje narzędzia, które dają jasne, oczywiście poprawne rozwiązanie, nawet jeśli brakuje mu wydajności / zajmuje więcej czasu ... Podobnakultura korporacyjna nie jest równoważna z korporacjami.

Myślę, że obecnie jestem głównie Open Source z niewielkim wpływem Academia (pasywny).

Maciej Piechotka
źródło
Właśnie myślałem o dużym nakładaniu się współczesnej subkultury CS / academia i programistów Haskell. Po odrobinie zabawy z Haskellem, rozumiem, dlaczego przemawia do osób z wykształceniem nauk formalnych (CS, matematyka), i rzeczywiście, Haskell pomaga w programowaniu z wyższego poziomu.
limist
Tylko Java i Haskell w środowisku akademickim? Co z Fortranem, C, C ++, R, MATLAB, * sh + awk (tak, znam takich ludzi), Mathematica, Python, LabVIEW? Również Haskell należy prawdopodobnie zastąpić „dowolnym językiem funkcjonalnym”.
mbq
To są przykłady. Przykłady BIASED . Jak zauważyłem, języki NIE są specyficzne dla kultury. Należy również pamiętać, że kultura akademicka nie ogranicza się do środowisk akademickich i nie wszyscy w środowisku akademickim muszą przyjmować kulturę akademicką. Chociaż zgadzam się, że Fotran / C / C ++ / R / Matlab / ... są używane w środowisku akademickim, nie mają one silnego związku z tym w moim umyśle. * sh + awk jest zdecydowanie nieakademickim (jako kultura - użytkownik może pracować w środowisku akademickim i być genialnym naukowcem - to zupełnie coś innego.
Maciej Piechotka
1
Myślę, że zmierzasz w kierunku informatyków.
Mbq
2

Jestem trochę w obozie Alt.NET/old-school CS. Pracuję z technologią Microsoft (C # itp.), Ale zdaję sobie sprawę, że wokół mnie jest cały świat, inne języki, algorytmy, frameworki, „rzeczy pod maską” itp. Oczywiście nie idealne, ale to praca w trakcie.

Adam Lear
źródło
1
Tłum Alt.NET jest zdecydowanie subkulturą programistyczną i absolutnie różni się od limistycznego opisu kultury opartej na Microsoft (co dla mnie brzmi bardziej jak ta kultura była dziesięć lat temu niż jest teraz).
Carson63000,
2

Nie do końca zgadzam się z tym stwierdzeniem na temat subkultury stwardnienia rozsianego: „Nie rozumiem, o co tyle zamieszania z open-source i tak dalej - poza tym, kto musi znać inny język? Ogólnie, znalazłem takie miejsca 9-5 i dość korporacyjne (kierowane przez menedżerów biznesowych, a nie ludzi oprogramowania). Anty teza kultury hakerów. ”. Pracowałem już w dwóch sklepach .Net, a środowisko było bardzo podobne do hakerów. W naszej pracy wykorzystaliśmy wiele projektów typu open source. W mojej opcji wszystko zależy od rodzaju ludzi, z którymi współpracujemy. Jeśli są prawdziwymi programistami, będą nieustannie szukać sposobów na ulepszenie, rozszerzenie działalności. Jakie technologie wykorzystują są nieistotne.

Nie zapomnij o subkulturze Agile Methodology, która obejmuje programistów z różnych środowisk.

ysolik
źródło
Tak, zwinni ludzie są dla siebie subkulturą. Dobra uwaga re. programista kontra narzędzie, i oczywiście twoje doświadczenia mogą się bardzo różnić od moich. Na podstawie mojego ograniczonego próbkowania stwierdziłem, że narzędzia dość mocno kształtowały twórców.
limist
Pracowałem w sklepie dla MS (a może nawet jestem fanboyem), ale mentalność, której doświadczyłem, to „najpierw spoglądaj na stwardnienie rozsiane, jeśli jest za darmo, to skorzystaj z niego. . ”
Steven Evers
2

Wydaje mi się, że między Old School CS a New School Web Developers znajdzie się coś pośredniego .

Tradycyjnie uważałbym się za „programistę WWW”. PHP i Java oraz obywatele pierwszej klasy, wraz z odpowiednim, sympatycznym, poprawnym HTML / CSS. Rzuć SQL, a będziesz mieć solidny, dobrze zaokrąglony zestaw umiejętności.

Przenieś nową szkołę do Script Kiddies i rebranduj Web Developer .

Script Kiddies - ludzie z niewielką, jeśli w ogóle, „pod maską” znajomością języka. Zwykle google dla samouczków przed ślepym kopiowaniem / wklejaniem kodu na miejsce. Zazwyczaj nie rozumie w pełni składni więcej niż jednego języka.

Josh K.
źródło
2

Pracownicy naukowi, którzy prowadzą badania przy użyciu komputerów, a nie badań na temat komputerów.

One:
- piszesz oprogramowanie, które można spożywać nieograniczonej ilości czasu procesora, pamięci i dysk przestrzeń tak dbają (lub przynajmniej spróbować opieki) świadczenia, albo za pomocą takich rzeczy -O3, time, profilowania, memcheck i spędzają godziny mniej lub bardziej losowo zmieniając kod, aby uzyskać przyspieszenie lub bezmyślnie stosując mityczne sztuczki w swoich pismach.
- używaj liczb rzeczywistych i wiedz, że jest to wystarczająco trudne, aby istniała osobna nauka o nazwie „numeryczna”.
- często używają bardzo specyficznych języków programowania / bibliotek / programów i są bardzo fanatyczni; wojny płomieniowe są powszechne, głównie o wyniki.
- nazywają swoje programy „kodami”, aby podkreślić, że mają tak zaciemniony interfejs użytkownika, że ​​tylko ich twórcy wiedzą, jak go używać.
- zwykle działa na Linuksie lub przynajmniej używa PuTTY do ssh do niektórych stacji roboczych / klastrów Linux.

mbq
źródło
1
Tak, też jestem w tym klubie. Ta lista jest dobrym początkiem opisu typowego fizyka wysokich energii (to znaczy, badania kwarków, nie wypił za dużo kawy) lub astronoma pracującego z obecnie dużymi instrumentami.
DarenW
1
Ponieważ ta subkultura bardzo dba o praktyczną, powtarzalną i ekstremalną wydajność, często nie dba o większość rzeczy, które dzieją się w świecie informatyki, chyba że ma to związek z równoległym przetwarzaniem, sprytnymi schematami buforowania, HPC i innymi .
DarenW
@DarenW: Co masz na myśli, że nie dbają o świat informatyki? Czy masz na myśli to, że nie dbają o dobrą praktykę oprogramowania i tym podobne? Ponieważ nie zgadzam się. W trosce o wydajność nie musisz wyrzucać dobrych zasad inżynierii oprogramowania.
n1ckp
1

Prawdopodobnie jestem kombinacją Old-School CS i New-school web developers : Nauczyłem się programowania, pisząc strony internetowe z PHP, JavaScript i SQL, a teraz uczęszczam na uniwersytet, gdzie wszystko odbywa się w wierszach poleceń i Emacsie w systemie UNIX.

gablin
źródło
0

Uważaj mnie za faceta ze starej szkoły. Jednak nigdy nie robiłem LISP dobrze. Emacs? Nah, via set -o viw swojej skorupy dla mnie dziękuję.

Jé Queue
źródło