阅读更多

6顶
1踩

非技术

转载新闻 软件工程师的鄙视链

2014-12-15 15:54 by 正式编辑 cao345657340 评论(16) 有9564人浏览
摘要:在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常严重的,在程序设计的各个领域里都有着错综复杂的「鄙视链」。

【编者按】软件工程师、程序员、码农一直是IT圈中最被人津津乐道的主角,在该圈子里,文人相轻的现象可是非常严重的,在程序设计的各个领域里都有着错综复杂的「鄙视链」。本文转载vinta.ws,该文作者是一名台湾程序员,下面一起来看看台湾程序员眼中软件工程师的鄙视链。

最近这几年在世界各地突然吹起了一股全民写程序的风潮,连美国总统欧巴马都在写 JavaScript 了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的 developer(所谓的 developer 就是「软件工程师」的比较潮的说法),想要提醒那些想学习写程序的人一件重要的事:慎选你的第一个程序语言。

在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常严重的,在程序设计的各个领域里都有着错综复杂的「鄙视链」。从程序语言、编辑器、平台到 { 是写在 if 的同一行还是下一行,不同阵营的人都习惯鄙视来鄙视去。而其中「你用什么程序语言?」更是大家最热衷的一条鄙视链,所以对于刚踏入程序设计领域的初学者来说,万一程序语言选得不好,可是会一开始就落入鄙视链的底层啊。

软件工程师的鄙视链到底有多惨烈、多残酷呢?

程序语言篇

懂 Functional Programming 的工程师鄙视老是把设计模式挂在嘴边的工程师,老是把设计模式挂在嘴边的工程师鄙视会说「你这样写就不 OO 了啊」的工程师,会说「你这样写就不 OO 了啊」的工程师鄙视会说「哈?什么物件导向?不是把重复的 code 写成一个 function 就好了吗?」的工程师,会说「哈?什么物件导向?不是把重复的 code 写成一个 function 就好了吗?」的工程师鄙视把同一段 code 到处复制贴上的工程师,把同一段 code 到处复制贴上的工程师鄙视 PM。

写静态语言的工程师鄙视写动态语言的工程师。

写组合语言的工程师鄙视写 C 语言的工程师,C 语言工程师鄙视 C++ 工程师,C++ 工程师鄙视 Java 和 C# 工程师,Java 工程师和 C# 工程师则互相鄙视,而 C# 工程师又鄙视 Visual Basic 工程师和会把 C# 念成「C 井」的工程师,会把 C# 念成「C 井」的工程师则鄙视认为 HTML 是一种程序语言的设计师。

用Python 3的工程师鄙视还在用 Python 2 的工程师,用 Python 2 的工程师鄙视遇到 UnicodeEncodeError 的工程师。

写 iOS的工程师鄙视写 Android 的工程师,写 Android 的工程师鄙视写 Windows Phone 的工程师。

有Swift 一年经验的工程师鄙视有 Objective-C 五年经验的工程师,写 Objective-C 的工程师鄙视用 PhoneGap 包装成 native app 的工程师。

用 React.js的工程师鄙视用 AngularJS 的工程师,用 AngularJS 的工程师鄙视用 jQuery 的工程师,用 jQuery 的工程师鄙视用 Vanilla JavaScript 的工程师,用 Vanilla JavaScript 的工程师鄙视 IE 的使用者。

会用 debugger 的工程师鄙视用 assert 的工程师,用 assert 的工程师鄙视只会 print () 的工程师;用 console.log () 来 debug 的工程师鄙视用 alert () 来 debug 的工程师。

写 Ruby on Rails 的工程师鄙视所有使用其他语言的工程师。

什么?你说 Ruby?Ruby 只是 Ruby on Rails 的一套框架,才不是什么程序语言呢!

所有的工程师都鄙视 PHP 工程师

工具篇

用 text editor 的工程师鄙视用 IDE 的工程师。

用 Vim 的工程师鄙视用 Emacs 的工程师,用 Emacs 的工程师鄙视用 Vim 的工程师,无论是用 Vim 或 Emacs 的工程师都鄙视所有用其他编辑器的工程师;用 Atom、Notepadd++、Sublime Text 的工程师鄙视用 Windows 记事本的工程师。

用 Android Studio 或 IntelliJ IDEA 的工程师鄙视用 Eclipse 的工程师,用 Eclipse 的工程师鄙视用 NetBeans 的工程师。

用 Git 或 Mercurial 的工程师鄙视用 Subversion 的工程师,用 Subversion 的工程师鄙视用 Dropbox 来做版本控制的工程师,用 Dropbox 来做版本控制的工程师鄙视根本不知道什么叫做版本控制的工程师。

用 Zsh 的工程师鄙视用 Bash 的工程师,用 Bash 的工程师鄙视用 Cygwin 的工程师,用 Cygwin 的工程师鄙视用「命令提示字元」的工程师,用命令提示字元的工程师鄙视用 GUI 介面的工程师。

用 IRC 的工程师鄙视用 HipChat 的工程师,用 HipChat 的工程师鄙视用 Slack 的设计师。

用 reStructuredText 写文件的工程师鄙视用 Markdown 写文件的工程师,用 Markdown 写文件的工程师鄙视用 HTML 写文件的工程师,用 HTML 写文件的工程师鄙视不写文件的工程师,然后用 LaTeX 写文件的工程师鄙视所有工程师。

用Docker来部署server 的工程师鄙视用 Ansible 或 Puppet 来部署 server 的工程师,用 Ansible 或 Puppet 来部署 server 的工程师鄙视用 Fabric 来部署 server 的工程师,用 Fabric 来部署 server 的工程师鄙视手动 SSH 的工程师。

OS 篇

用 Mac OS X 的工程师鄙视用 Linux 的工程师,用 Linux 的工程师鄙视用 Windows 的工程师。

用Debian的工程师瞧不起用 Ubuntu 的工程师,用 Ubuntu 的工程师瞧不起用非 LTS 版本的 Ubuntu 的工程师。

硬件篇

用 MacBook Pro Retina 的工程师鄙视用 MacBook Air 的工程师,用 MacBook Air 的工程师鄙视用 ThinkPad 的工程师,然后用 Raspberry Pi 的工程师鄙视用 MacBook Pro Retina 的工程师。

用 Dvorak 键盘的工程师鄙视用 Mac 键盘的工程师,用 Mac 键盘的工程师鄙视用 QWERTY 键盘的工程师,用 QWERTY 键盘的工程师鄙视用手写板的设计师。

坐 Aeron 椅子的工程师鄙视坐普通办公椅的工程师,坐普通办公椅的工程师鄙视跟他一样做普通办公椅的 PM,然后站着写程序的工程师鄙视坐 Aeron 椅子的工程师。

职场篇

搞硬件的工程师鄙视搞软件的工程师。

写 OS 的工程师鄙视写 Web 的工程师,写 Web 的工程师鄙视写 desktop application 的工程师。

后端工程师鄙视前端工程师。

工程师跟设计师互相鄙视。

信奉Test-Driven Development 的工程师鄙视先写 code 再补 tests 的工程师,先写 code 再补 tests 的工程师鄙视不写 tests 的工程师,不写 tests 的工程师鄙视又他妈乱改需求的 PM。

没有证照的工程师鄙视考了一堆证照的工程师。

上班穿休闲服的工程师鄙视上班穿西装的工程师,上班穿西装的工程师鄙视上班穿系服的工程师。

---

如果你看了以上这些惨绝人寰的鄙视链之后,仍然没有击倒你想要学习 coding 的心,那我必须提醒你一件最重要的事:先去交一个女朋友,再来学写程序;因为一旦你成为软件工程师之后,就交不到女朋友了。

P.S.

有在用 GitHub 的朋友一起来交流交流。

本文转来自:vinta.ws
来自: vinta.ws
6
1
评论 共 16 条 请登录后发表评论
16 楼 balzaczyy 2015-01-10 19:39
最后一句的意思是有女朋友的工程师鄙视所有其他工程师吧
15 楼 fantao005x 2014-12-17 17:04
我总是说除我自己会的语言之外的其他语言真高端~~因为我不会,所以觉得高端
14 楼 dsjt 2014-12-17 17:02
写组合语言的工程师鄙视写 C 语言的工程师,C 语言工程师鄙视 C++ 工程师,C++ 工程师鄙视 Java 和 C# 工程师,Java 工程师和 C# 工程师则互相鄙视,而 C# 工程师又鄙视 Visual Basic 工程师和会把 C# 念成「C 井」的工程师,会把 C# 念成「C 井」的工程师则鄙视认为 HTML 是一种程序语言的设计师。
13 楼 未老先胖 2014-12-17 09:48
先挣到钱娶到媳妇才是正理,哪有时间互相鄙视来鄙视去的。。。
12 楼 kuchaguangjie 2014-12-16 22:41
无聊...
11 楼 sfw0807 2014-12-16 18:16
亮点在最后一句!
10 楼 wangning1125 2014-12-16 16:41
鄙视个几把,能赚钱才是王道,一切带有语言优越感的人都是幼稚的人。
9 楼 mangguo 2014-12-16 15:49
nodejs鄙视一切语言开发
8 楼 补魔党 2014-12-16 14:01
我没有鄙视所有使用其他语言的工程师。
7 楼 MrLee23 2014-12-16 11:21
不错,用搞笑的方式给初学者一个发展的路线建议,赞!
6 楼 cplusplusworker 2014-12-16 10:44
所有的工程师都鄙视 PHP 工程师。 
5 楼 Tyrion 2014-12-16 10:00
组合语言是个什么东东
4 楼 lonelyawolf 2014-12-16 09:52
图灵鄙视所有搞计算机的...
3 楼 诶服阿尔 2014-12-16 09:37
哈哈哈我觉得IE使用者才是鄙视链的最底端
2 楼 sswh 2014-12-16 08:44
1 楼 e241138 2014-12-15 23:32
文中好多地方让我会心一笑:)

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • matlab求矩阵的行列式的代码-nmatrix:通过SciRuby的Ruby的稀疏线性代数库

    matlab求矩阵的行列式的代码 矩阵 用于Ruby的快速数值线性代数库 描述 NMatrix是用于Ruby的快速数值线性代数库,具有密集和稀疏的矩阵,主要用C和C ++编写。 它是SciRuby项目的一部分。 NMatrix的灵感来自田中正宏(Masahiro Tanaka)。 安装 要安装最新的稳定版本: gem install nmatrix - - pre 但是,您将需要首先使用CBLAS(到的C接口)进行安装。 可以找到详细的说明。 NMatrix的要求是: ATLAS,最好搭配CLAPACK() 支持C ++ 0x或C ++ 11的GCC或clang版本 Ruby 1.9.2+ 1.3.5(用于I / O) 如果要获取最新的(开发)代码,通常应该执行以下操作: git clone https://github.com/SciRuby/nmatrix.git cd nmatrix/ bundle install bundle exec rake compile bundle exec rake repackage gem install pkg/nmatrix-0.1.0.r

  • every_ruby_talk_ever:当我刚开始使用Ruby时,我疯狂观看了会议演讲,以求进步。 这是我的一些注意事项。

    every_ruby_talk_ever:当我刚开始使用Ruby时,我疯狂观看了会议演讲,以求进步。 这是我的一些注意事项。

  • Ruby:线性代数解法 LeetCode简单题 1037. 有效的回旋镖

    Ruby:线性代数解法 LeetCode简单题 1037. 有效的回旋镖

  • 程序员的数学动画演示程序使用-ruby小白入门

    毕设搞完了! 在此系列记录学习《程序员的数学--线性代数》系列的随笔,在此参考的博客: https://www.runoob.com/ruby/ruby-installation-windows.html https://blog.csdn.net/weixin_38468077/article/details/101062057 -------------------------------------------------------------------------------------

  • 【从几何角度理解---线性代数Linear algebra】特征向量与特征值

    同上,线性性质暗示着一点,处在它所张成的对角线上的其他任何一个向量 ,也仅仅倍拉伸为原来的2倍。对于上述矩阵,以上两向量就是拥有这一特殊性质它们张成的空间里)的向量。因此,在x轴上的任何其他向量都只是被拉伸为原来的3倍,它们也留在了。发生线性变换之后,该向量依旧停留在它张成的直线上,并未发生旋转。发生线性变换有许多的特征向量,多到能选出一个张成全空间的集合,,在变换汇总也留在自己张成的空间里,最终被拉伸为原来的2倍。特征值为负,意味着这个向量被反向,并压缩为原来的1/2。

  • 程序员的线性代数环境配置(Ruby+Gnuplot+Maxima+xlispstat)

    mac环境下配置: 1.ruby语言配置(程序设计语言) 下载链接:mac +https://macromates.com 2.Gnuplot(绘图工具) 下载:https://www.macports.org/install.php https://www.macports.org/install.php https://blog.csdn.net/u014293324/article/det...

  • 线性代数——线性组合、线性空间、基底

    目录 线性组合 线性空间 基底 线性组合 线性组合就是关于向量的加法和向量的数乘的组合运算,即: au⃗+bv⃗au→+bv→a\vec u + b \vec v 线性空间 线性空间就是,若干个向量通过线性组合所得到的一个集合。 以下用两个向量的线性组合为例,更多的向量也可类推。 1. u⃗,v⃗两向量不共线.u→,v→两向量不共线.\vec u,...

  • 线性代数学习框架

    第一章 行列式 1 .1二阶、三阶行列式 1.2  n阶行列式   排列与逆序的定义 p4   n阶行列式的定义 p7    行列式的两个重要特点:其一,行数等于列数(这一点与矩阵不同,矩阵行数与列数可能相等,也可能不相等,若相等,又叫做n阶矩阵或n阶方阵); 其二,行列式是一个确定的值; 1.3 行列式的性质 p12      转置不变、交换变符号、数k乘以某行等于数k乘此行列式

  • 线性代数常用基本知识 (含向量和矩阵范数<Matrix or vector norm>)

    1. 行列式 1.1 二阶行列式 1.2 三阶行列式

  • Python之数据分析(Numpy的子模块:线性代数模块linalg、傅里叶变换模块fft)

    文章目录一、线性代数模块(linalg)1、矩阵的逆2、矩阵的线性解3、特征值与特征向量4、奇异值分解与广义逆矩阵二、傅里叶变换模块(fft) 一、线性代数模块(linalg) 1、矩阵的逆 矩阵的逆:inv()该逆矩阵的前提必须是方阵 numpy.linalg.inv(A) import numpy as np # 创建一个矩阵 A = np.mat('1 2 3; 5 6 7; 9 8 5') print(A) # 用linalg下的inv求A的逆矩阵 B = np.linalg.inv(A) pr

  • Ruby矢量和矩阵数学库:NArray

    NArray is an Numerical N-dimensional Array class. Supported element types are 1/2/4-byte Integer, single/double-precision Real/Complex, and Ruby Object. This extension library incorporates fast calcul

  • Qt开发笔记之线性代数:线性代数矩阵以及Eigen库的介绍、编译和使用

    原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/84339214 线性代数矩阵以及Eigen库的介绍、编译和使用 前话 研究Fec算法,需要使用到矩阵基本知识,主要包括加法、减法和乘法,先重温矩...

  • 如何理解“线性代数”?

    线性代数究竟有什么现实意义?矩阵又是什么呢?矩阵之间的运算是代表什么呢?很多人在学校修完线性代数依旧不明白这些问题,所以,我觉得,应该从理解其本质出发,再去学习这门课。这里仅提供几个理解线性代数本质的文章或回答。博主反复看过好几遍,加深平常学习中对矩阵的理解。本文仅供学习参考,如有侵权或疑问,请联系博主。线性代数的本质 https://www.52ml.net/13425.html如何理解代数中的

  • 矩阵特征值和特征向量的理解

    摘自《线性代数的几何意义》 我们知道,矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度都大多不同的新向量。在这个变换的过程中,原向量主要发生旋转、伸缩的变化。如果矩阵对某一个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值。 实际上,上述的一段话既讲了矩阵变换特征值及特征向量的几何意义(图形变换)也讲了其物

  • android手机应用源码Imsdroid语音视频通话源码.rar

    android手机应用源码Imsdroid语音视频通话源码.rar

  • 营销计划汇报PPT,市场品牌 推广渠道 产品 营销策略tbb.pptx

    营销计划汇报PPT,市场品牌 推广渠道 产品 营销策略tbb.pptx

  • JavaScript_超过100种语言的纯Javascript OCR.zip

    JavaScript

Global site tag (gtag.js) - Google Analytics