어떤 프로그래밍 / 소프트웨어 하위 문화가 존재합니까? 그것들은 무엇을 정의합니까? 어느쪽에 속합니까? [닫은]


13

외부 세계에서는 프로그래머, 컴퓨터 과학자, 소프트웨어 엔지니어 및 개발자가 모두 닮은 것처럼 보일 수 있지만 생계를 위해 소프트웨어를 만드는 사람들에게는 그렇지 않습니다. 모든 단일 프로그래머의 능력과 지식은 도구 (OS, 언어 및 예, 선호하는 편집기)뿐만 아니라 매우 광범위 할 수 있으며 다양성은 스택 오버플로를 적극적으로 사용하는 프로그래머와이 사이트, 하지 않는 더 많은 사람 대.

다른 사람들이 그들이 만나거나, 속해 있거나, 감탄하거나, 싫어하거나 심지어 만들었던 소프트웨어 하위 문화권을 듣고 싶습니다. 우선, 나는 다음을 만났다 :

  • Microsoft 중심의 회사 및 개발자 : 전체 스택은 WA의 Redmond에서 가져 왔습니다. 전자 메일은 Outlook이 전자 메일입니다. 웹은 IE와 IIS입니다. VB, .net, Visual Studio 등의 여러 버전으로 가득한 MS Developer Network 구독의 큰 바인더가 있습니다. 셸 / 명령 줄 작업을 피합니다. 오픈 소스와 관련된 소란이 무엇인지 보지 마십시오. MS 중심의 회사는 9-5 세이며 상당히 기업적인 경향이 있습니다 (소프트웨어 사용자가 아닌 비즈니스 관리자가 주도 함). 오늘날 (MS 이외의 도구를 광범위하게 사용할 수 있음), 이것은 해커 문화의 대립입니다.
  • 구식 CS 사람들 : 그들은 종종 Lisp와 Unix를 매우 잘 알고 있습니다. 때로는 세미 인식 Lisp 자체 또는 시스템 유틸리티를 작성했을 수도 있습니다. "소프트웨어 엔지니어링"이 새로운 것이거나 그러한 것들에 감명받지 않은 경우는 거의 없습니다. Lisp, C, Prolog 및 Smalltalk와 같은 프로그래밍 언어의 참조, 히스토리 및 상위 레벨의 의미를 알 수 있습니다. 80 년대와 90 년대의 AI 결과에 대해 쓰라린 수 있습니다. Emacs 사용자 인 경향이 있습니다. 눈을 깜박이지 않고 여러 줄로 된 쉘 명령을 입력 할 수 있습니다. 그들의 충고는 암호로 할 수 있지만 한 번 이해 한 금이 들어 있습니다.
  • 뉴 스쿨 웹 개발자 : 컴퓨터와 비디오 게임이 자라 났지만 90 년대 후반이나 00 년대 초에 프로그래밍을 시작한 경우가 종종있었습니다. 1 ~ 1.5 스크립트 / 동적 언어로 편안합니다. C와 Ruby / Perl / Python 이외의 언어는 불필요하거나 마술 적이라고 생각하십시오. HTML을 처음에는 프로그래밍으로 간주했을 수 있습니다. Mac을 구입하고 그것에 대해 광신적이거나 비이성적 인 경향이 있습니다. 빌드하는 것보다 프레임 워크를 사용하십시오. NoSQL 및 / 또는 Ruby On Rails에 대해 지나치게 열정적입니다.
  • 뉴 스쿨 CS : 통계, 베이지안 모델 및 추론에 대한 많은 훈련; "AI", "기계 학습"이라고 말하지 마십시오. Lisp보다 Java는 많지만 전문가 Haskell 프로그래머 일 수도 있습니다. 해당 분야의 전문가 (Google, 금융 / 채무자)가 실질적인 성공을 거둔 경우 종종 자신감을 갖게됩니다. 그러나 빅 데이터와 그에 대한 분산 처리는 실제로 세상을 변화시키고 있습니다.

위의 예는 결코 완전하거나 정확하거나 직교 또는 목적이 아닙니다. :) 내가 개인적으로 보았던 것, 더 넓은 질문에 대한 토론과 개요를 촉발하기 위해 제공했습니다. 동의하지 않습니다!


1
'Lil'애매하지만 흥미있는 것 같습니다.
Rook

6
대답은 한 가지를 보여줍니다. 질문은 실제로 어디에도 명확한 구분선을 그리려고합니다. 우리는 약 5 개의 직교 개념 (각각 연속체)을 다루고 있으며 초평면을 쉽게 식별 할 수있는 개별 그룹으로 나누려고합니다. IMO, 그것은 절망적 인 노력입니다.
Jerry Coffin

3
@Jerry Coffin-예, 동의합니다. IMHO는 일부 답변이 일부 "문화"에 대해 공격적이라는 점은 말할 것도 없습니다. 그러나 이러한 답변은 오늘날의 (프로그래머? 또는 적어도이 커뮤니티) 다른 커뮤니티에 대해 어떻게 생각하는지 보여주는 방식으로 훌륭합니다.
Rook

@JerryCoffin 글쎄, "직교"라는 단어를 사용하려는 사람들과 최근 수십 년 동안 스택에서 인기가 있었기 때문에 그다지 좋아하지 않는 사람들이 있습니다.
Erik Reppen

답변:


12

본인은 Real-Time Systems 그룹의 일부라고 생각 합니다. 일부 '올드 스쿨'특성이 있지만 CS에 중점을 두지 않고 하드웨어에 더 중점을 둡니다.

원형

  • 'C'에 대한 전문가 지식
    • K & R 원본
    • 마치 'C'의 대체 구문 인 것처럼 다른 언어로 작성
  • 코드에서 어셈블러 출력을 예측할 수 있습니다.
  • 회로도를 읽을 수 있습니다
  • '조기 최적화'를 수행하지 않고 코드를 작성하는 방법을 모릅니다.
  • 커맨드 라인에 매우 편안합니다.

감사합니다. 감사합니다. 나는 실시간 시스템 사람들을 만났지만 그런 곳에서 일하지 않았기 때문에 문화를 특성화하려고 시도하지 않았습니다. 많은 프로그래머들이 여러분을 "하드 코어"라고 부를 것 같습니다. :)
limist

1
나는 그것이 다른 학문과 같다고 생각합니다. 하드 코어 "바위 별"이 있으며, 오래된 오래된 바위가 있습니다. (내가 어딘가에 있기를 바랍니다)
AShelly

2
나도이 그룹에 속해 있습니다. 대부분의 동료들은 전자 공학 배경에서이 장소로 올라 왔지만 데이터베이스 / 앱 개발자가되어서 내려 왔습니다. 나는 지금이 그룹에서 매우 편안하고 때로는 다른 배경이 다른 유용한 관점을 가져올 수 있습니다.
Vicky

1
또한 내 인식일지도 모르지만이 그룹에서는 다른 그룹보다 여성이 더 드물게 느껴집니다.
Vicky

1
와우-이것은 회로도를 읽을뿐만 아니라 회로도 디자인한다는 것을 제외하고는 거의 완벽하게 설명합니다. 1970 년대 후반에 첫 번째 임베디드 시스템 (PL / M-86)에서 작업했습니다.
tcrosley

6

메인 프레임 프로그래머를 잊지 마십시오. 그들도 하위 문화입니다.


1
메인 프레임 코더 문화에 대해 더 많이 듣고 싶습니다. 정기적으로 코딩하지 않고 메인 프레임으로 많은 시간을 보내는 사람은 거의 없습니다.
limist

1
이들은 존경받는 이발을 가진 사람들이며 비즈니스 정장을 입은 다른 사람들과 구별 할 수 없습니다. 그들은 COBOL을 좋아합니다. 그들에게는 system / 360 이외의 시스템이 없습니다.
oosterwal

5

나는 30 세 미만의 델파이 데브의 외로운 우파를 대표합니다. 우리의 코커스는 작지만 우리의 마음은 큽니다.


내 동료 중 일부는 <30입니다.
Toon Krijthe

2
글쎄, 스택 교환을 시작하라고 말하고 오래된 Johnny Borland가 나중에 죽은 후에 구현하도록 요청할 새로운 기능에 대해 이야기 할 수 있습니다. ;-)
Peter Turner

4

나는 어떻게 든 함께 살기보다는 싸우고 어떻게 든 초월한 여러 문화가 있다고 생각합니다.

  • 해커 / 오픈 소스 문화 : 코드 공유, 실명 사용 여부. 한 가지 문제를 해결하는 작은 도구에 집중했을 것입니다. 프로그램 내 해킹을 허용합니다. 언어 : C , 리스프 , C ++ , 파이썬 . 아마 당신의 올드 스쿨 CS 사람들 과 겹칩니다 .
  • 학계 : 알고리즘에 집중하고 올바른 방식으로 일을합니다. 실명은 필수입니다 (어쨌든 종이에 나타남). 언어 : Java , Haskell , ( F # ?)
  • Corportate : 용액에 집중 (아마도 모든 것). 이름제공하는 오픈 소스라면 필요하지 않습니다 . 언어 : 자바 , C # , VB.net , 루비 .
  • " 고등학교 ": 작동하지만 상품 일 필요는 없습니다. "Windows XP 용 SuperProgram 1.0"과 같은 이름에 집중합니다. (죄송합니다-좋은 이름을 찾지 못했지만 CS를 마스터하기 시작했고 아직 잘 모르는 프로그래머를 의미합니다). 언어 : PHP , VB , 루비
  • 신학교 웹 개발자 : 위와 같습니다.

점에 유의하시기 바랍니다:

  • 조직과 개인의 문화를 혼합하는 것이 가능합니다. 사실 자주 그렇습니다.
  • 언어는 이며 C #에서 작동하는 꽤 많은 "해커"그룹입니다. 그것은 실제 연구와 관련된 협회의 게임이기 때문에 화 내지 마십시오. 예를 들어 XSS가 무엇인지 알 수 없음)
  • 고등학교 이름으로 다른 사람을 화나게하고 싶지 않았습니다. 나는 종종이 문화를 통해 프로그래밍을 시작하는 첫 단계라고 생각했다.
  • 편집 : 학계 는 사람이 학계에 있다는 것을 의미하지 않으며 학계에 있다는 것이 누군가가 학계에 속한다는 것을 의미하지는 않습니다(교활한 과학자 / 연구원 등에도 불구하고). 그것은 성과가 부족하거나 시간이 오래 걸리더라도 명확하고 정확한 솔루션을 제공하는 도구를 선호한다는 것을 나타냅니다. 유사성 회사 문화는 회사에 평등하지 않습니다.

나는 현재 대부분 아카데미아 (수동)에 약간의 영향을 미치는 오픈 소스라고 생각합니다.


나는 현대 CS / 아카데미아 하위 문화와 Haskell 프로그래머의 중복이 심각하다고 생각했습니다. Haskell로 약간 놀아 본 후에, 나는 그것이 공식 과학 (CS, 수학)을 훈련받은 사람들에게 어필하는 이유를 알 수 있으며 실제로 Haskell이 더 높은 수준에서 프로그래밍을 보는 데 도움이된다는 것을 알게되었습니다.
limist

학계에서 Java와 Haskell 만? Fortran, C, C ++, R, MATLAB, * sh + awk (예, 그런 사람들을 알고 있습니다), Mathematica, Python, LabVIEW는 어떻습니까? 또한 Haskell은 아마도 "모든 기능 언어"로 대체되어야합니다.
mbq

그것들은 예입니다. 나쁜 예. 내가 언급 한 바와 같이 언어는 NOT 문화 별. 또한 학계 문화는 학계에만 국한되지 않으며 학계의 모든 사람이 학계 문화를 수용 할 필요는 없습니다. 나는 Fotran / C / C ++ / R / Matlab / ...이 학계에서 사용된다는 것에 동의하지만 그들은 내 마음에 그것과 강한 연관성을 형성하지 않습니다. * sh + awk는 확실히 비 학계입니다 (문화-사용자가 학계에서 일하고 교묘 한 과학자가 될 수 있음) – 그것은 완전히 다른 것입니다.
Maciej Piechotka

1
나는 당신이 컴퓨터 과학 학자들을 향해 가고 있다고 생각합니다.
mbq

2

나는 Alt.NET / 구식 CS 캠프에 있습니다. 저는 Microsoft 기술 (C # 등)과 함께 일하고 있지만 제 주변에는 다른 언어, 알고리즘, 프레임 워크, "기초 아래에있는 물건"등이 있습니다. 완벽하지는 않지만 분명히 효과가 있습니다. 진행 중입니다.


1
Alt.NET 군중은 분명히 프로그래밍 하위 문화이며, Microsoft 중심 문화에 대한 limist의 설명과는 완전히 다릅니다 (이 문화는 10 년 전의 문화보다 현재와 비슷합니다).
Carson63000

2

저는 MS 하위 문화에 대한이 진술에 전적으로 동의하지 않습니다. "오픈 소스의 소란이 무엇인지 모르고 다른 언어를 알아야하는 사람은 누구입니까? 일반적으로 그러한 장소를 찾았습니다. 9-5와 꽤 회사 적 (소프트웨어 사용자가 아닌 비즈니스 관리자가 주도) 해커 문화의 반 논문. " 나는 지금까지 두 개의 .Net 상점에서 근무했으며 환경은 실제로 해커와 매우 비슷했습니다. 우리는 작업에 많은 오픈 소스 프로젝트를 사용했습니다. 내 선택에 따라, 그것은 모두 함께 일하는 사람들의 종류에 달려 있습니다. 그들이 진정한 개발자라면 지속적으로 개선 할 수있는 방법을 찾아 나갈 것입니다. 그들이 사용하는 기술은 무관합니다.

다양한 배경을 가진 개발자를 통합하는 Agile Methodology 하위 문화를 잊지 마십시오.


예, 민첩한 사람들은 그들 자신의 하위 문화입니다. 좋은 지적. 개발자와 도구를 비교하는 것은 물론 내 경험과는 상당히 다를 수 있습니다. 한정된 샘플링으로 도구가 제조업체를 상당히 형성한다는 것을 알았습니다.
limist

나는 MS 상점에서 일했고 (그리고 심지어 팬보이 일 수도있다), 내가 경험 한 사고 방식은 "MS를 먼저보고, 무료 인 경우 먼저 사용하십시오. "
Steven Evers

2

Old School CSNew School Web Developers 사이에는 약간의 중간 점이있을 것으로 생각 합니다.

나는 전통적으로 자신을 "웹 개발자"라고 생각합니다. 적절한 시맨틱하고 유효한 HTML / CSS 와 함께 PHP와 Java 및 일류 시민 . SQL을 던지면 강력하고 둥근 기술 세트가 있습니다.

이동 새로운 학교스크립트 꼬마 들아 와 리 브랜딩 웹 개발자를 .

스크립트 키디 -언어에 대한 "정말적인"지식이 거의없는 사람들. 코드를 맹목적으로 복사 / 붙여 넣기 전에 튜토리얼을 위해 Google로 검색합니다. 일반적으로 둘 이상의 언어 구문을 완전히 이해하지 못합니다.


2

컴퓨터에 대한 연구가 아니라 컴퓨터를 사용하여 연구하는 학업.

그들은 :
- CPU 시간의 제한 수량을 소비 할 수있는 소프트웨어를 작성하고, 메모리 및 디스크 공간들이 관심 (또는 관리에 적어도 시도에서)의 성능, 그래서 하나 같은 재료를 사용하여 -O3, time프로파일, memcheck, 그리고 더 많거나 적은 시간을 보낼 코드를 임의로 변경하여 속도를 높이 거나 신화적인 속임수를 스크립에 적용합니다.
-실수를 사용하고 "숫자"라는 별도의 과학이 존재할 수있을 정도로 까다 롭다는 것을 알고 있어야합니다.
-종종 매우 특정한 프로그래밍 언어 / 라이브러리 / 프로그램을 사용하며 그것에 매우 열광적입니다. 화염 전쟁은 일반적으로 주로 성능에 관한 것입니다.
-프로그램을 "코드"라고 부릅니다. 사용자 인터페이스가 난독 화 된 사용자 인터페이스를 강조하여 제작자 만 사용 방법을 알 수 있습니다.
-일반적으로 Linux에서 작동하거나 최소한 PuTTY를 사용하여 일부 Linux 워크 스테이션 / 클러스터에 ssh하십시오.


1
그래, 나도이 클럽에있어 이 목록은 전형적인 고 에너지 물리학 자 (즉, 커피를 많이 먹지 않은 쿼크 연구) 또는 현재의 대형기구로 작업하는 천문학 자에 대한 설명을 시작하기에 좋습니다.
DarenW

1
그리고이 하위 문화는 실용적이고 반복 가능하며 극도의 효율성을 매우 중요하게 생각하기 때문에 병렬 처리, 영리한 캐싱 체계, HPC 등과 관련이없는 한 컴퓨터 과학 분야에서 진행되는 대부분의 작업에는 거의 신경 쓰지 않습니다. .
DarenW

@DarenW : 그들이 컴퓨터 과학 세계에 대해 거의 관심이 없다는 것은 무엇을 의미합니까? 그들이 좋은 소프트웨어 관행 등에 관심이 없다는 것을 의미합니까? 내가 동의하지 않기 때문입니다. 성능에 대한 관심은 훌륭한 소프트웨어 엔지니어링 원칙을 포기할 필요가 없습니다.
n1ckp

1

아마도 구식 CS 사람들뉴 스쿨 웹 개발자 의 조합 일 것 입니다 : PHP, Javascript 및 SQL로 웹 사이트를 작성하여 프로그래밍을 배웠으며 현재 UNIX의 명령 프롬프트 및 Emacs에서 모든 것이 수행되는 대학에 다니고 있습니다.


0

'올드 스쿨'녀석으로 나를 세어보세요. 그래도 LISP를 잘하지 못했습니다. 이맥스? 아니, vi그리고 set -o vi내 껍질 나를 당신을 감사하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.