存在哪些编程/软件亚文化?是什么定义了它们?你属于哪一个?[关闭]


13

在外部世界,程序员,计算机科学家,软件工程师和开发人员似乎都相似,但是对于以软件为生的人们而言,情况远非如此。任何一个程序员的能力和知识以及他们的工具(操作系统,语言,是的,首选的编辑器)的范围都非常广泛,多样性产生了软件中的许多亚文化-例如积极使用Stack Overflow和此站点的程序员,与更多的人没有。

我很想知道其他人所遇到的,属于,钦佩,不喜欢甚至创造的软件亚文化。对于初学者,我遇到了:

  • Microsoft驱动的公司和开发人员:他们的整个堆栈来自华盛顿州雷德蒙德。电子邮件就是Outlook。网络是IE和IIS。他们拥有MS Developer Network订阅的大型装订程序,其中包含VB,.net,Visual Studio等的多个版本。避免使用Shell /命令行。看不到开源之类的大惊小怪。以MS为中心的公司通常是9-5,并且完全是公司(由业务经理而不是软件人员驱动)。如今(鉴于非MS工具的广泛使用),这是黑客文化的对立面。
  • 老式的CS人士:他们对Lisp和Unix非常了解;有时,他们可能自己写了半流行的Lisp或系统实用程序。很少有(如果有的话)“软件工程”对他们来说不是新鲜事物,也没有给他们留下深刻的印象。了解Lisp,C,Prolog和Smalltalk等编程语言的参考,历史和更高层次的含义。对于80年代和90年代的AI结果可能会感到痛苦。倾向于成为Emacs用户。可以键入多行shell命令而无需眨眼。他们的建议可以含糊不清,但一旦被理解,就会包含金。
  • 新学校的Web开发人员:随着计算机和视频游戏的发展,他们通常只是在90年代末或00年代初才真正开始编程。适应1到1.5种脚本/动态语言;认为C / Ruby / Perl / Python之外的语言是不必要/不可思议的。最初可能将HTML视为编程。倾向于购买Mac,并对它狂热/不理性。使用框架多于构建框架。对NoSQL和/或Ruby On Rails常常过于热情。
  • 新派CS:大量的统计学,贝叶斯模型和推理训练;不要说“ AI”,不要说“机器学习”。Java比Lisp多,但也可以是Haskell专业程序员。他们所在领域的专家(Google,金融/ Quant)看到的在现实世界中取得的重大成就通常会使他们(过度)充满信心。但是大数据以及此类数据的分布式处理确实正在改变世界。

上面的示例绝不是完整,正确,正交或客观的。:)就是我亲眼所见,并提供了一些更广泛的问题的讨论和提纲。随时不同意!


1
“ Lil”含糊不清,但听起来很有趣。
鲁克

6
我认为答案表明一件事:问题是试图在真正没有界限的地方划出清晰的界线。我们正在处理约5个正交的概念,每个概念都是一个连续体,并试图将超平面划分为易于识别的离散组。海事组织,这是无望的努力。
杰里·科芬

3
@杰里·科芬-是的,同意。恕我直言,更不用说一些答案对某些“文化”具有冒犯性。但是,这些答案很好,它们可以显示当今的(程序员?或至少是这个社区)对其他社区的看法,这些社区甚至构成了该社区的一部分(占很小的一部分)。
鲁克

@JerryCoffin先生,有些人想使用“正交”一词,而不仅仅是因为近几十年来它在堆栈中非常流行……
Erik Reppen 2014年

Answers:


12

我认为自己属于实时系统小组。有一些“老派”特征,但较少关注CS,而更多关注硬件。

原型:

  • 具有“ C”的专业知识
    • 拥有K&R的原始副本
    • 用其他语言编写,就好像它们只是“ C”的备用语法一样
  • 可以根据他们的代码预测汇编器输出。
  • 可以阅读电路图
  • 不做“过早优化”就不知道如何编写代码。
  • 对命令行相当满意。

令人着迷,谢谢。我遇到了一些实时系统人员,但是没有在这样的地方工作过,所以没有尝试刻画这种文化。我认为我们许多程序员会称你们为“硬核”。:)
limist 2010年

1
我认为这与任何其他学科一样-有坚硬的“摇滚明星”,也有普通的古老岩石。(我希望我介于
两者

2
我也参加这个小组。我的大多数同事都是从电子工程学的背景“走到”这个地方的,但是我从成为数据库/应用程序开发者“走到”这个地方。不过,我现在在这个小组中非常自在,有时我的不同背景可能会带来不同的有用观点。
Vicky

1
同样,这可能是我的看法,但是感觉像这个群体中的女性比其他群体中的女性还要稀少。
Vicky

1
哇-这几乎可以完美地描述我,除了我不仅要阅读电路图,而且还要设计电路。在1970年代后期,我在第一个嵌入式系统(PL / M-86)上工作。
tcrosley

6

不要忘记大型机程序员。他们也是亚文化。


1
我很高兴听到有关大型机编码器文化的更多信息。我见过的很少有人甚至花很多时间在大型机上,更不用说定期编写大型机了。
limist 2010年

1
这些人的发型都很受人尊敬,与其他穿着西装的人没有区别。他们喜欢COBOL。对于他们来说,没有其他系统是system / 360。
oosterwal

5

我代表30岁以下的Delphi Devs的寂寞队伍。我们的核心小组很小,但是我们的心却很大。


我的一些同事是<30
香椿Krijthe

2
好吧,告诉他们开始堆栈交换,我们可以谈谈新的功能,在您死了之后,我们将要求老约翰尼·波兰德实现;-)
Peter Turner,2010年

4

我猜想,存在着几种文化,它们以某种方式并存,而不是战斗,并以某种方式超越:

  • 黑客/开源文化:共享代码,是否使用真实姓名。可能专注于解决一个问题的小型工具。允许程序内黑客。语言:CLispC ++Python。可能与您的老式CS人群重叠。
  • 学术界:专注于算法和以正确的方式做事。真实姓名为必填项(无论如何仍显示在纸上)。语言:JavaHaskell,(F#?)
  • 适当:专注于解决方案(可能是所有解决方案)。如果是开放源代码,则不需要给出名称。语言:JavaC#VB.netRuby
  • 高中 ”:它能工作,但不是必须的。专注于“用于Windows XP的SuperProgram 1.0”之类的名称。(对不起-我还没有找到好名字,但是我的意思是那些开始精通CS但不擅长CS的程序员-至少现在还没有)。语言:PHPVBRuby
  • 新学校Web开发人员:如上所述。

请注意:

  • 有可能在组织和个人中混合文化。实际上,经常这样做。
  • 这些语言是“ 示例”,例如,有大量使用C#的“黑客”。真正的学习更多是协会游戏,所以请不要冒犯(是的-我确实知道有很多用PHP编写的优秀程序具有良好的工程实践等,但是对于许多不熟悉它的人来说,它往往是第一语言。不知道XSS是什么)
  • 我不想冒犯高中生的名字。我的意思是,这通常是通过这种文化进入编程的第一步(希望不是最后一步)
  • 编辑: 学术界并不意味着一个人也处于学术界,也并不意味着某人属于学术界(尽管是科学家或研究人员等)。这表明他更喜欢提供清晰,显然正确的解决方案的工具,即使该工具缺乏性能/需要更长的时间/也是如此。相似企业文化并不等同于企业。

我认为我目前主要是开放源代码,受到学术界(被动)的轻微影响。


我只是在考虑现代CS /学术界亚文化和Haskell程序员之间的严重重叠。在与Haskell进行了一些接触之后,我可以看到为什么它吸引那些接受过正规科学(CS,数学)培训的人们,并且确实,我发现Haskell有助于从更高层次上看编程。
limist 2010年

学术界中只有Java和Haskell吗?关于Fortran,C,C ++,R,MATLAB,* sh + awk(是的,我认识这样的人),Mathematica,Python,LabVIEW呢?Haskell也应该用“任何功能语言”代替。
mbq 2010年

这些就是例子。偏向示例。如前所述,语言不是特定于文化的。还请注意,学术文化不仅限于学术界,并非学术界的每个人都必须拥护学术文化。虽然我同意在学术界使用Fotran / C / C ++ / R / Matlab / ...,但在我看来,它们并没有与之形成牢固的联系。* SH + AWK是definitly非学术界(如文化-用户可以在学术界工作,是璀璨的科学家-这是完全不同的thing0。
马切伊Piechotka

1
我认为您正在走向计算机科学领域的学者。
mbq 2010年

2

我有点在Alt.NET/守旧派CS阵营中。我使用的是Microsoft技术(例如C#等),但我知道周围有一个世界,其他语言,算法,框架,“内幕”等,显然不完美,但这是一件工作进行中。


1
Alt.NET人群绝对是一种编程亚文化,完全不同于limist对Microsoft驱动的文化的描述(对我来说,这听起来更像是十年前的文化,而不是现在的文化)。
Carson63000

2

我并不完全同意有关MS亚文化的说法:“不了解开源的大惊小怪,这是怎么回事-此外,谁需要了解另一种语言?通常,我发现这样的地方9-5,相当公司化(由业务经理而非软件人员驱动)。黑客文化的反论点。”。到目前为止,我已经在两家.Net商店工作过,而且环境实际上非常像黑客。我们在工作中采用了许多开源项目。在我的选择中,这完全取决于与之共事的人的类型。如果他们是真正的开发人员,他们将不断寻找改进的方法,进行扩展。他们使用什么技术是无关紧要的。

不要忘记敏捷方法论亚文化,它融合了来自不同背景的开发人员。


是的,敏捷人员是他们的亚文化。好点再。开发人员与工具的比较,当然您的经验可能与我的经验完全不同。通过有限的抽样,我发现这些工具对制造商的影响很大。
limist 2010年

我曾在一家MS商店工作过(甚至可能是一个狂热的粉丝),但我所经历的心态是“先看MS,如果它免费,然后使用它。否则,请寻找任何东西来满足需求。”
史蒂文·埃弗斯

2

我认为Old School CSNew School Web Developers之间会有一些中间立场。

传统上,我会认为自己是“ Web开发人员”。PHP和Java,以及我的头等公民,以及适当的,一致的,有效的 HTML / CSS。投入SQL,您将拥有强大而全面的技能。

New School迁移到Script Kiddies并重新命名Web Developer

脚本小子Script Kiddies) -几乎不了解该语言的人。在盲目地将代码粘贴/粘贴到适当位置之前,请先向Google寻求指导。通常不能完全理解一种以上语言的语法。


2

使用计算机而不是计算机研究的学者。

他们:
-正在编写的软件,它可以使用的CPU时间的无限量,内存和磁盘空间,所以他们关心(或者至少尝试护理)的性能,无论是通过使用这样的东西-O3time,廓线仪,MEMCHECK,并花费数小时或多或少随意更改代码以加快速度,或者不加思索地将一些神话般的技巧应用于其笔迹。
-使用实数并知道它很棘手,因此可以存在一个单独的名为“数字”的科学。
-经常使用一些非常特定的编程语言/库/程序,并且对此非常狂热;火焰战争很常见,主要是关于性能。
-将其程序称为“代码”以突出显示它们的用户界面非常混乱,因此只有其创建者才知道如何使用它。
-通常在Linux上工作,或至少使用PuTTY SSH到某些Linux工作站/群集。


1
是的,我也在这家具乐部。该清单是描述典型的高能物理学家(我是说夸克,没有喝太多咖啡)或使用当前大型仪器工作的天文学家的一个很好的开端。
2010年

1
而且,由于这种亚文化非常关注实用,可重复和极高的效率,因此它们通常不关心计算机科学世界中发生的大多数事情,除非它与并行处理,聪明的缓存方案,HPC等有关。 。
DarenW

@DarenW:您是什么意思,他们不太关心计算机科学世界?您是说他们不关心良好的软件实践等吗?因为我不同意。关心性能并不需要您抛出良好的软件工程原理。
n1ckp 2010年

1

我可能是老派CS人员新派Web开发人员的组合:我通过使用PHP,Javascript和SQL编写网站来学习编程,现在正在上大学,在UNIX下,这些操作都是在命令提示符和Emacs中完成的。


0

把我当成“老派”家伙。但是,我从来没有很好地完成过LISP。埃马克斯?不,viset -o vi在我的壳,我谢谢你。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.