在外部世界,程序员,计算机科学家,软件工程师和开发人员似乎都相似,但是对于以软件为生的人们而言,情况远非如此。任何一个程序员的能力和知识以及他们的工具(操作系统,语言,是的,首选的编辑器)的范围都非常广泛,多样性产生了软件中的许多亚文化-例如积极使用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)看到的在现实世界中取得的重大成就通常会使他们(过度)充满信心。但是大数据以及此类数据的分布式处理确实正在改变世界。
上面的示例绝不是完整,正确,正交或客观的。:)就是我亲眼所见,并提供了一些更广泛的问题的讨论和提纲。随时不同意!