程序员

程序员似乎是天生带有撕逼属性的群体,最经典的论战大概是围绕编辑器和编程语言的。例如「vim和emacs谁才是最好的编辑器」「PHP是不是世界上最好的语言」「Java和C++程序员哪个工资高」如此问题,年年反复。 

技术的不断更新迭代,每年又会有新的技术加入到这个撕逼大战中来,比如「openstack」「docker」「Go」「Rust」等等,所以战争永远不会停息。而程序员们的撕逼和选择焦虑,也永远不会停歇,会随着新的目标的出现,延续着这些战火,像宗教一样传承给了一代一代的信众。 

大概二十年前开始,先是Java然后是C#就一次次被抬上C++替代者的位置,以至于今日的Go/Rust/D/Dart/Swift的信众都宣称要替代C++, 但是C++在市场依然承担着极其重要的位置。这些新品种的大多数都昙花一现,只有有强大商业推动和布道的才在特定领域成为佼佼者,比如Python/Ruby/Go/Swift。他们在某些领域占领了市场,并服务者各种流量水平的服务。也正是因为这些新技术的出现,降低了程序员的准入门槛。 

「没有目标」对于一个学习者来说是件可怕的事情,选定目标后,并站好阵营,在撕逼大战中维护自己,大概也不是一件太坏的事情。最坏的事情是一直在「目标选择」的焦虑中反复循环,一直在学习却一直在半途而废。大学时代,我曾经在选择「vim」还是「emacs」上焦虑了很久。最初的我的选择是「emacs」,因为用它编程似乎看起来「更酷」。花了大量的时间配置各种插件和快捷键,反复折腾,然而最终我并没有像黑客一样在黑色的屏幕上「啪啪啪」地快速编程。同样的经历在它的宿敌「vim」身上遭遇了一遍。而我真正熟练使用「vim」则是工作后有大量在开发机上编程。 

然而,又有大量的人却本末倒置执迷于「撕逼」本身,享受着工具带来的「虚荣感」。有一种似乎使用这些工具就「更牛」的错觉。没有「Maccbook Pro」和「HHKB」的程序员,大概和他们是没有太多共同语言的。他们对此津津乐道,为了在工具链的配置上让自己看起来更加「Geek」一点,他们劳心劳力,甚至不惜奋斗在「撕逼」第一线,大概是非要跟用「Thinkpad」「Windows」「Visual Studio」的人分出个高低来不可。争论当然不止是工具链本身,就连「缩进」是使用「2个空格」还是「4个空格」亦或是「一个Tab」,就有不同的大牛支持着不同的阵营。在知乎上就有轮子哥和老赵为首的微软党,也有整天以黑微软为乐「30岁了找了份Java开发工作月薪两万没过试用期被开除」的老赵真爱粉,实在是欢乐极了。 

选择编程语言则是更难的事情,有些派系认为底层的技术才是最根本的东西,所以他们大概会支持「C/C++」甚至「汇编」;有些派系则认为时代在进步,一切旧时代的产物终将被抛弃,他们热衷于新技术;还有些派系则认为背后的编程思想和计算机科学理论是最根本的而语言并不重要。大概是中国人从小就没有自己「做决定」的习惯,人生中的大多数选择都是父母和学校已经安排好的。面对这种选择,「焦虑」和「恐惧」可想而知,我们需要别人的首肯和支持。然而各种理论和学习路线都有「大牛」支持的情况下,这件事就变得更难了。 

我大概同意「更重要的是背后的编程思想和计算机科学的基础理论」这个观点,然而我并不反对对新技术的学习和尝试。「因循守旧」是可怕的,对于日新月异的技术领域尤其。对于一个新人来讲,选择任何一个编程语言或者技术方向,进行大量的实践和探索,都足够你找到一份谋生的工作。对于一个有经验的工程师,这种探索也是有益的,有助于我们吸收不同的设计思想和技术,思维也始终保持在时代的前沿。同时,加上过往积累的经验有助于我们判断他能否替代我们产品中的某些模块,能否提高生产力和性能。 

这几年开源社区大量优质的项目完善了互联网产品开发的各个环节的工具链,这也是为何这几年市场上突然出现了大量所谓的「全栈工程师」的基础。然而我从不认为能同时写安卓「app」,「Javascript」写前端页面,「Ruby」写服务端的人就是「全栈工程师」。一个优秀的工程师当然不该只掌握一门语言和一个工具,但是也不必追求「全栈」。一个服务端工程师的最基本的目标应该是做出高性能高并发高可用性的后台服务,这就需要了解除了编程语言以外的诸多模块比如缓存/消息队列/应用服务器/负载均衡等, 而不是什么都不求甚解时便去抢前端程序员的饭碗。当然,许多前端程序员也做着「JS」一统前后端江湖的美梦。我想,首先在自己核心的领域上获得核心竞争力是更重要的事情,之后再去拓展线路,才会得到应有的收益。 

「拖延症」则是目标选定后的另一个「大敌」,这几年我一直想在github上写出自己高star的项目来,然而这个计划一直被拖延着。甚至,已经有几个学弟在我的建议下,在github中创造了很多有意思的项目,并因此获得许多关注和工作机会。当然,一件事情如果没有持续的驱动,大概是很难完成的。 

对的,我只是说说,好多事情我也没做好。

via: 靖难