天天看点

逗比的程序员流派划分,你是哪派中人?

问题:程序员有流派吗?

问题:程序员有流派吗?

像成了名的剑侠 都有什么 拨刀流,二刀流,不知火流忍术。。。

没见哪个程序员高手 有什么流派的啊! 你能不能 瞎编几个 给我看看

copy派 ctrlCV流

回答者:觉浅,老程序员

第一种分法:

1.科班出身专业派

2.青鸟达内速成派

3.半路出家自学派

第二种分法:

1.GMFBAT派

2.普通公司派

3.自给自足派

第三种分法:

1.言必谈互联网逼格派

2.苦逼行业软件开发派

3.啥子都干过的杂货派

第四种分法:

1.扯起虎皮作大旗的公知派

2.请你去看我的书的专家派

3.谈风月不谈专业的八卦派

第五种分法:

1.年薪百万或挣美刀派

2.月薪15K我该去吗派

3.我挣多少关你鸟事派

我是33333

第六种分法:

1.高手都用Notepad写机器码派

2.VIM大法好Emacs也凑合派

3.VS/Eclipse真TM爽偷着乐派

第七种分法:

1.言必谈算法编译操作系统派

2.教科书上的从没用到过耶派

3.网上刷宝典面试题都会呢派

PS:感谢评论区诸位的集思广益,我略作整理附于分割线之后。

回答者:justjavac,迷津欲有问 http://github.com/justjavac

一天我路过一座桥,碰巧看见一个人想跳河自杀。我跑过去对他大喊道:“别跳,别死啊。”

“为什么不让我跳?”他说。

“因为还有很多东西值得我们活下去啊。”

“有吗?比如说?”

“呃……你做什么工作?”

“程序员。”

我说:“我也是!瞧,有共同点了吧。你是软件还是硬件?”

“软件。”

“我也是!PC 还是 Web?”

“PC。”

“我也是!Windows 还是 Linux 平台?”

“Linux。”

“我也是!那你使用 C 还是 C++?”

“C++。”

“我也是。1998 年的 C++ 98 还是 2011 年的 C++ 11?”

“2011 年的 C++ 11。”

“我也是。大括号写在后面还是写在下一行?”

“下一行。”

“去死吧!你这个异教徒人渣!”我一把将他推下桥去。

回答者:SimonS,修电脑的 顺便敲代码

转一个不瞎编的C++流派:

1.经典C++流:类是核心,例程多用C Runtime的,很少用模版,一般是正统教育的结果。

2.古典C流:基本上当C用,偶尔用用对象,不使用异常,喜欢怀旧。

3.MFC流:秉承MFC的风格,主要使用MFC/ATL对象和Win32 API,不喜欢STL,用很多的宏把IDE的语法提示模块折磨到崩溃。

4.Portable流:以C Runtime和STL为主要工具,使用类和模版,不跨平台毋宁死。

5.Functional流:以模版和STL为主要武器,大量使用函数式语言的设计方法,并号称这才是真正的C++。

6.Win32流:多使用全局函数,偏爱Win32 API,但不排斥C Runtime,通常喜欢轻量级的程序,所以身材也比较苗条。

7.Java流:全面使用Java的风格,不能容许任何全局成员,但允许使用STL的集合类,写很多叫Factory的类。

8.COM流:喜欢AddRef()和Release(),大量使用接口,隐藏一切可以隐藏的东西,诵经的时候要把上帝替换成COM。

9.戒律流:追求完美的C++程序,计较每一个const和throw(),极力避免不安全的cast,随身一定要带一本ISO C++手册。

10.混沌流:其程序无常形,无恒道,变幻莫测,吾不知其名。

回答者:李遥,A Programmer

1.靠强大的学习能力驾驭、组合各种强力工具(含编程系统、语言、库等)来解决问题的剑宗

2.靠理论能力对问题数学建模来解决的气宗。气宗往往不会用新式工具(是真的学不会、记不住),一般都是几十年如一日用一套自搭的半调子工具来解决所有问题。气宗往往也不特别擅长优化代码,不过他的方案能最大限度避免瓶颈

回答者:赖信涛,睡觉已经远超过一万小时,所以是睡觉方面…

逗比的程序员流派划分,你是哪派中人?

回答者:渔樵阿飞,微信公众号yuqiaoafei

搬运自笨熊不得不吐不的西方编程简史V1.1.3

当人类填饱肚子开始仰望星空的时候,编程的念头便萌芽了。

第一个有记载的编程家是古希腊的泰勒斯,他首先提出了“编程的本质是数据流“。

之后赫拉克里特阐述了“一个ALU不能同时执行两条指令”这一命题。

再之后巴门尼德详细地探讨了单线程和多线程之间的关系。

毕达哥拉斯学派提出了“万物皆树”,强调了树在数据结构中的中心地位。

启蒙时代的集大成者是柏拉图,他留下了《汇编篇》等名篇,但由于原始文档遗失,后世学者对于柏拉图使用的究竟是何种指令集争论不休。

他的学生亚里士多德成就更在其师之上,他提出一句名言,“吾爱吾师,吾更爱真值。”

古希腊编程时代结束于亚历山大大帝,他本人并不是一个编程家,但是他的《建筑的永恒之道》成为后世编程家的必读书目之一。

之后就是漫长的黑暗时代,而欧洲则被罗马帝国所统治,康斯坦丁大帝的XP大旗飘扬在世界各个角落。经院编程家整天在讨论“一个指针究竟能指向多少个天使”之类的细枝末节问题。

唯一值得一提的是阿拉伯势力的崛起,他们以新月为旗号,发明了C语言。而教皇乌尔班二世则发起了十字军东征,在新月之后加上两个十字,那就是C++的来历。

欧洲内部反XP势力也蠢蠢欲动,马丁路德首先发表了windows95论纲,猛烈抨击只有购买基督盒子(XBOX)头上才能出现光晕(Halo)的问题。

随之而来的是群星璀璨的文艺复兴时期,在意大利,薄伽丘发表了《时髦谈》(smalltalk),对后世动态语言产生了极大影响。而多才多艺的列奥纳多达芬奇的MONO LISP更是成为不朽经典。

技术的发展直接导致了大浏览时代的来临,由香料群岛输入的JAVA咖啡成为欧洲新的流行。

进入后启蒙时代,康德发表了《纯粹编程批评》,黑格尔发表了《小编程》,叔本华写了《作为意志和面向对象的编程》,尼采详细研究了软件工程之后写下了《悲剧的诞生》《流水线开发的黄昏》,瓦格纳受其启发创作了长篇歌剧《尼伯龙根的死循环》,描绘了北欧诸神开发Linux的过程。

英国方面,托马斯摩尔提出了以他名字命名的著名的摩尔定律,而法国达人笛卡尔提出了”我编故我在“的元编程思想。另外帕斯卡在编程语言上也占据了一席之地。然而这一切成就在伟大的伊萨克牛顿爵士面前都黯然失色,他的名字永远和苹果联系在了一起。

思想领域的各种思潮也影响到了工程实践,整个大陆风运动荡,著名的法国1789年重构成为后世效仿的模版。

进入20世纪,波普提出了”证伪主义“,强调了测试在软件开发中的重要地位,TDD从此兴盛。

而罗素则仔细研究了程序停机的不可判定问题,引发了第二次编程危机。他还留下了”编程的幸福来源于多态“之类的名言。

胡塞儿《对象学》将面向对象编程提高到了一个新的高度。

海德格尔发表了《存在与时间》,研究了对象的生存周期;而萨特的《存在与虚无》则使得自动垃圾回收从理论走向实践。

荣格的GIT无意识开了分布式版本管理之滥觞。

最后维特根斯坦总结到:”一切编程问题都可以归结为选取合适的编程语言。“

回答者:辛俊波,机器学习/数据挖掘/户外/摄影

摘自程序员的鄙视链:

1.程序语言篇

懂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 工程师。

2.工具篇

用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 的工程师。

3.OS篇

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

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

4.硬件篇

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

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

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

其实总结起来我觉得就两个流派一条鄙视链:

有女朋友的程序员鄙视没女朋友的程序员O(∩_∩)O~

继续阅读