i**i 发帖数: 1500 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: Wardo (餐厅忙的时候客户端,否则服务端), 信区: Programming
标 题: 程序员的鄙视链 zz
发信站: BBS 未名空间站 (Wed Dec 17 12:06:34 2014, 美东)
作者: vinta.ws 博主
最近这几年在世界各地突然吹起了一股全民写程序的风潮,连美国总统欧巴马都在写
JavaScript 了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的
developer(所谓的 developer 就是「软件工程师」的比较潮的说法),想要提醒那些
想学习写程序的人一件重要的事:慎选你的第一个程序语言。
在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常
严重的,在程序设计的各个领域里都有着错综复杂的「鄙视链」。从程序语言、编辑器
、平台到 { 是写在 if 的同一行还是下一行,不同阵营的人都习惯鄙视来鄙视去。而
其中「你用什么程序语言?」更是大家最热衷的一条鄙视链,所以对于刚踏入程序设计
领域的初学者来说,万一程序语言选得不好,可是会一开始就落入鄙视链的底层啊。
软件工程师的鄙视链到底有多惨烈、多残酷呢?
http://mmbiz.qpic.cn/mmbiz/2A8tXicCG8ynAr4qteM9UvL8PdqM2XdHCXML
程序语言篇
懂 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、
Notepad++、Sublime Text 的工程师鄙视用 Windows 记事本的工程师。
用 Android Studio 或 IntelliJ IDEA 的工程师鄙视用 Eclipse 的工程师,用
Eclipse 的工程师鄙视用 NetBeans 的工程师。
程序代码用 space 缩排的工程师鄙视用 tab 缩排的工程师,用 tab 缩排的工程师鄙
视混用 space 和 tab 来缩排的工程师。
用 Git 或 Mercurial 的工程师鄙视用 Subversion 的工程师,用 Subversion 的工程
师鄙视用 Dropbox 来做版本控制的工程师,用 Dropbox 来做版本控制的工程师鄙视根
本不知道什么叫做版本控制的工程师。
知道 GitHub 的工程师鄙视不知道 GitHub 的工程师;在 GitHub 有 private repo 的
工程师鄙视为了免费的 private repo 而去用 BitBucket 的工程师。
用 Zsh 的工程师鄙视用 Bash 的工程师,用 Bash 的工程师鄙视用 Cygwin 的工程师
,用 Cygwin 的工程师鄙视用「命令提示字符」的工程师,用命令提示字符的工程师鄙
视用 GUI 接口的工程师。
用 IRC 的工程师鄙视用 HipChat 的工程师,用 HipChat 的工程师鄙视用 Slack 的设
计师和 PM。
用 reStructuredText 写文件的工程师鄙视用 Markdown 写文件的工程师,用
Markdown 写文件的工程师鄙视用 HTML 写文件的工程师,用 HTML 写文件的工程师鄙
视不写文件的工程师,然后用 LaTeX 写文件的工程师鄙视所有工程师。
用 Nginx 的工程师鄙视用 Apache 的工程师,用 Apache 的工程师鄙视用 IIS 的工程
师。
用 Spark 的工程师鄙视用 Hadoop 的工程师,用 Hadoop 的工程师鄙视用 Hadoop 处
理只有几 GB 数据的工程师,用 Hadoop 处理只有 1GB 数据的工程师鄙视用 NoSQL 的
工程师,用 NoSQL 的工程师鄙视用关系数据库的工程师,用关系数据库的工程师鄙视
用 Excel 的 PM。
用 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 键盘的工程师鄙视鄙视不知道 QWERTY 键盘是什么
的工程师,不知道 QWERTY 键盘是什么的工程师鄙视用手写板的设计师。
坐 Aeron 椅子的工程师鄙视坐普通办公椅的工程师,坐普通办公椅的工程师鄙视跟他
一样做普通办公椅的 PM,然后站着写程序的工程师鄙视坐 Aeron 椅子的工程师。
职场篇
搞硬件的工程师鄙视搞软件的工程师。
写 OS 的工程师鄙视写 Web 的工程师,写 Web 的工程师鄙视写 desktop application
的工程师。
后端工程师鄙视前端工程师。
工程师跟设计师互相鄙视。
信奉 Test-Driven Development 的工程师鄙视先写 code 再补 tests 的工程师,先写
code 再补 tests 的工程师鄙视不写 tests 的工程师,不写 tests 的工程师鄙视又
他妈乱改需求的 PM。
没有证照的工程师鄙视考了一堆证照的工程师。
上班穿休闲服的工程师鄙视上班穿西装的工程师,上班穿西装的工程师鄙视上班穿系服
的工程师。
—
如果你看了以上这些惨绝人寰的鄙视链之后,仍然没有击倒你想要学习 coding 的心,
那我必须提醒你一件最重要的事:先去交一个女朋友,再来学写程序;因为一旦你成为
软件工程师之后,就交不到女朋友了。 |
T******e 发帖数: 18290 | 2 为什么低级语言的鄙视高级语言?低级的人类!
【在 i**i 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 发信人: Wardo (餐厅忙的时候客户端,否则服务端), 信区: Programming : 标 题: 程序员的鄙视链 zz : 发信站: BBS 未名空间站 (Wed Dec 17 12:06:34 2014, 美东) : 作者: vinta.ws 博主 : 最近这几年在世界各地突然吹起了一股全民写程序的风潮,连美国总统欧巴马都在写 : JavaScript 了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的 : developer(所谓的 developer 就是「软件工程师」的比较潮的说法),想要提醒那些 : 想学习写程序的人一件重要的事:慎选你的第一个程序语言。 : 在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常
|
c*********r 发帖数: 2733 | |
d********f 发帖数: 43471 | 4 p h p
【在 c*********r 的大作中提到】 : 太假了。PHP是最好的语言!不服来辩~
|
z*****n 发帖数: 7639 | 5 艹,我真是人生赢家,发现自己在好几个食物链的上游:
用VIM,空格缩排,raspberry pi。。。
【在 i**i 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 发信人: Wardo (餐厅忙的时候客户端,否则服务端), 信区: Programming : 标 题: 程序员的鄙视链 zz : 发信站: BBS 未名空间站 (Wed Dec 17 12:06:34 2014, 美东) : 作者: vinta.ws 博主 : 最近这几年在世界各地突然吹起了一股全民写程序的风潮,连美国总统欧巴马都在写 : JavaScript 了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的 : developer(所谓的 developer 就是「软件工程师」的比较潮的说法),想要提醒那些 : 想学习写程序的人一件重要的事:慎选你的第一个程序语言。 : 在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常
|
i**i 发帖数: 1500 | 6 那好吧,给解释一下为啥
"1e1"=="10"
【在 c*********r 的大作中提到】 : 太假了。PHP是最好的语言!不服来辩~
|
z*****n 发帖数: 7639 | 7 1x10^1 = 10
matlab 里面也是这样吧。
【在 i**i 的大作中提到】 : 那好吧,给解释一下为啥 : "1e1"=="10"
|
z*********n 发帖数: 94654 | 8 哪个语言能分清圣诞节和万圣节?
以及圣诞节前夜和万圣节前夜?
【在 z*****n 的大作中提到】 : 1x10^1 = 10 : matlab 里面也是这样吧。
|
i**i 发帖数: 1500 | 9 "", 白加了?
【在 z*****n 的大作中提到】 : 1x10^1 = 10 : matlab 里面也是这样吧。
|
p*e 发帖数: 6785 | 10 生活处处是陷阱
【在 i**i 的大作中提到】 : "", 白加了?
|
|
|
z*****n 发帖数: 7639 | 11 这不正说明屁爱吃屁是个好语言?哈哈。
【在 i**i 的大作中提到】 : "", 白加了?
|
n*****t 发帖数: 22014 | 12 空格有神马资格鄙视 TAB 啊
【在 i**i 的大作中提到】 : "", 白加了?
|
z*****n 发帖数: 7639 | 13 眼神好。你不服?
【在 n*****t 的大作中提到】 : 空格有神马资格鄙视 TAB 啊
|
n*****t 发帖数: 22014 | 14 有种俩 TAB 缩进,用 notepad
【在 z*****n 的大作中提到】 : 眼神好。你不服?
|
A***x 发帖数: 83 | |
w*x 发帖数: 3456 | 16 弱问C#应该怎么读c pound, c hash还是c number? |
R***a 发帖数: 41892 | 17 c sharp
【在 w*x 的大作中提到】 : 弱问C#应该怎么读c pound, c hash还是c number?
|
i**i 发帖数: 1500 | 18 狗之类的coding guide要求用空格。用tab显着不够拽。
【在 n*****t 的大作中提到】 : 空格有神马资格鄙视 TAB 啊
|
n*****t 发帖数: 22014 | 19 Linux Kernel Coding Style
This is a short document describing the preferred coding style for the
linux kernel. Coding style is very personal, and I won't force my views on
anybody, but this is what goes for anything that I have to be able to
maintain, and I'd prefer it for most other things too. Please at least
consider the points made here.
First off, I'd suggest printing out a copy of the GNU coding standards, and
NOT read it. Burn them, it's a great symbolic gesture.
Anyway, here goes:
Chapter 1: Indentation
Tabs are 8 characters, and thus indentations are also 8 characters. There
are heretic movements that try to make indentations 4 (or even 2!)
characters deep, and that is akin to trying to define the value of PI to be
3.
Rationale: The whole idea behind indentation is to clearly define where a
block of control starts and ends. Especially when you've been looking at
your screen for 20 straight hours, you'll find it a lot easier to see how
the indentation works if you have large indentations.
Now, some people will
claim that having 8-character indentations makes the code move too far to
the right, and makes it hard to read on a 80-character terminal screen. The
answer to that is that if you need more than 3 levels of indentation, you're
screwed anyway, and should fix your program.
In short, 8-char indents make things easier to read, and have the added
benefit of warning you when you're nesting your functions too deep. Heed
that warning.
【在 i**i 的大作中提到】 : 狗之类的coding guide要求用空格。用tab显着不够拽。
|
i**i 发帖数: 1500 | 20 这个木有一定之规。我个人赞成两个空格。
This is a short document describing the preferred coding style for the
First off, I'd suggest printing out a copy of the GNU coding standards, and
Anyway, here goes:
Chapter 1: Indentation
【在 n*****t 的大作中提到】 : Linux Kernel Coding Style : This is a short document describing the preferred coding style for the : linux kernel. Coding style is very personal, and I won't force my views on : anybody, but this is what goes for anything that I have to be able to : maintain, and I'd prefer it for most other things too. Please at least : consider the points made here. : First off, I'd suggest printing out a copy of the GNU coding standards, and : NOT read it. Burn them, it's a great symbolic gesture. : Anyway, here goes: : Chapter 1: Indentation
|
|
|
h*****4 发帖数: 4219 | |
z*****n 发帖数: 7639 | 22 所以我说眼神好嘛。鄙视你们这些用8space tab的。。。
and
【在 n*****t 的大作中提到】 : Linux Kernel Coding Style : This is a short document describing the preferred coding style for the : linux kernel. Coding style is very personal, and I won't force my views on : anybody, but this is what goes for anything that I have to be able to : maintain, and I'd prefer it for most other things too. Please at least : consider the points made here. : First off, I'd suggest printing out a copy of the GNU coding standards, and : NOT read it. Burn them, it's a great symbolic gesture. : Anyway, here goes: : Chapter 1: Indentation
|
M******k 发帖数: 27573 | 23 我也用两个空格。。loser这么多年,今天终于扬眉吐气了。。。。
and
【在 i**i 的大作中提到】 : 这个木有一定之规。我个人赞成两个空格。 : : This is a short document describing the preferred coding style for the : First off, I'd suggest printing out a copy of the GNU coding standards, and : Anyway, here goes: : Chapter 1: Indentation
|
s*****i 发帖数: 3762 | |
H********g 发帖数: 43926 | 25 没关系,下面还有我们千老垫着。
【在 s*****i 的大作中提到】 : 猛然发现自己竟然在鄙视链的最底层
|
p****w 发帖数: 90 | 26 哈哈nn【在 imei (imei)的大作中提到:】n:【 以下文字转载自 Programming 讨论
区 】n:发信人: Wardo (餐厅忙的时候客户端,否则服务端), 信区: Programmingn:
标 题: 程序员的鄙视链 zzn:发信站: BBS 未名空间站 (Wed Dec 17 12:06:34 2014
, 美东)n:n:作者: vinta.ws 博主n:n……nn--n[发自未名空间Android客户端] |
A**n 发帖数: 1703 | 27 屁爱吃屁工程师?
【在 s*****i 的大作中提到】 : 猛然发现自己竟然在鄙视链的最底层
|
c****2 发帖数: 3640 | |
A******u 发帖数: 1279 | 29 吼吼,偶只用一个空格。眼神好,就这么任性!哦也
This is a short document describing the preferred coding style for the
First off, I'd suggest printing out a copy of the GNU coding standards, and
Anyway, here goes:
Chapter 1: Indentation
【在 n*****t 的大作中提到】 : Linux Kernel Coding Style : This is a short document describing the preferred coding style for the : linux kernel. Coding style is very personal, and I won't force my views on : anybody, but this is what goes for anything that I have to be able to : maintain, and I'd prefer it for most other things too. Please at least : consider the points made here. : First off, I'd suggest printing out a copy of the GNU coding standards, and : NOT read it. Burn them, it's a great symbolic gesture. : Anyway, here goes: : Chapter 1: Indentation
|