前几天一位做市场的同事跑过来问,池老师,我有一位朋友,快30了,想转行写程序,您觉得有戏吗?我看了看满目疮痍的他说,如果是你就没戏。
30多岁转行做程序员当然可行,毕竟历史上存在一些大器晚成的案例,这些经过渲染和修饰的案例给在时间长河中苦苦挣扎的人们带来些许希望的火光,但那毕竟是火光,一阵风来过,也许就灭了。如果你真的热爱技术和编程,渴望通过自己的代码实现别人的想法,或自己的想法,为世界带来更美好的产品,那么任何时候学习编程都不晚,编程给你带来的好处绝不仅仅限于你的工作领域,关于这一点,你看看李笑来老师就可以了,有时候我觉得,他简直是个专业的程序员,兼产品经理。但是,如果你只是觉得程序员挣钱容易,那还是算了吧,因为程序员不轻松、不浪漫、不被人理解,也许,还很穷。
很多人羡慕程序员工作没几年就可以拿着看起来不错的薪水,但是,如果他们在未来的几年内技术水平没有突破性的提升,或者缺乏一点灵性和品味,那么可能在未来很长一段时间内,他们都会保持这个薪资水平,直到有一天,你不得不接受,比自己小五岁或十岁的程序员,也拿到了和自己一样薪酬。不是经常说程序员年薪百万吗?是啊,那是行业里的顶级程序员,他们为了让自己的水准达到这样的要求,经常要付出十年以上刻苦努力和练习,初春,寒冬,清晨,深夜,当你们去欧洲浪的时候,当你们去卡拉 OK 唱的时候,他们都在不停的 Practice,Practice……
大部分程序员看起来都很穷,即使是极为成功的程序员,如果你没有看到他的豪华座驾,你也会觉得对面这个带着眼镜玩手机的人是个屌丝。程序员对外在的东西鲜有追逐,鞋子、衣服,穿着舒服就够了,所以你会看到熟悉的格子衫,灰T恤,大裤衩,夹角凉鞋和永远的双肩背包,那个包,几乎是程序员的一切……偶尔见个红色耐克T恤,上书「Just do it」,抬头一看,哦,原来是罗老师。
不过,你们一定不要被程序员们的表象迷惑,他们有时候消费起来非常可怕,下死手,与宅女逛街相比毫不逊色。大部分程序员虽然对衣服不感兴趣,但是对电子设备往往缺乏免疫力,女生会花掉2万元换来一个 LV 包,程序员会花掉2万元买一台配备了 Retina 5K 显示屏的 iMac,然后双方都认为对方疯了。
事情一般是这样的,你工作了两年,写了很多代码,伴随的是没日没夜的加班,产品上线了,产品下线了,团队出发了,团队解散了,然后你会感到疲惫,生活没有希望,这样的日子什么时候是个头啊!你看了看破旧的 ThinkPad,对自己说,要不要买个 Mac 试试?然后你就有了一个 Mac,你突然发现了一个新世界,充满阳光和雨露,原来操作系统可以设计成这样……于是你觉得每过一段时间就需要阳光和雨露。你开始购买正版软件,不管多贵。你开始学习移动开发,你发现你需要两部手机,因为 iOS 和 Android 平台都值得学习。于是你有了一部 iPhone 和一部 Smartisan T1,后来你又有了 iPad 和 Kindle,然后很多硬件和软件都升级了,你有了好几台 Mac,移动的,台式的,好几部手机、平板和电子阅读器,一代的,二代的,好几代的。你的女朋友很迷惑(如果你已经有了女朋友),她会问,你买那么多手机、电脑和其他乱七八糟的东西干嘛?不都一样用嘛。你觉得很难解释,就说:你看这个新款有指纹识别功能,还有这个,从这边划入,就可以进行分屏操作……然后你的女朋友白了你一眼,默默的用你的信用卡刷了一个 LV 的包。
事情还没有结束,Google Glasses 走了,Kinect Box 来了,Oculus VR 还在路上,无人机已经飞起来了。「嗯,听说喷气背包能让人飞起来?要不要试试」,「我身体不好,去跑步了」。跑步应该需要一套好的装备才不会受伤,于是你把自己装配的比专业马拉松选手还酷,另外,你似乎还需要一块 Apple Watch。如果这个最初玩 Mac 的程序员———你,竟然鬼使神差迷上了单反,那将是一场更大的灾难,据说一个徕卡相机要8万多元,镜头就不要再提起……
需求是没有止境的,就像产品经理的需求一样。程序员们虽然挣得不少,但他们花的也多啊。所以,他们还是很穷,至少是看起来很穷……
另外,程序员在心理上也很「穷」,大部分情况下,与行业内其他角色相比,程序员地位都不是最高的,待遇不是最好的,连加班都不是最多的。最惨的情况是:哦,程序员只是我们实现想法的工具!程序员很少一战成名,当年百度贴吧风头最劲的时候,人们只知道这个互联网产品是一个叫做李明远的年轻人做的,没人知道前端工程师是谁,后端架构师是谁,即使你通过一己之力完成的技术架构抗住了每天数以亿计的流量,那又怎么样呢,没有用户知道嘛。什么时候会知道呢?当你去极客邦的 QCon 技术大会上讲「构建高并发系统之百度贴吧实战」的时候,大家才会知道,喔,原来也有你一份功劳呀,然后转身就去找李明远签名去了。
程序员比较烦的是半瓶子醋的技术领导,或自以为懂了点技术的产品经理。关于商业模式,关于产品,关于用户体验,每个人都可以头头是道的说两句,比如我曾经看到无数的用户要为锤子手机、App、云服务、官网、电商提各种建议,还有一些创业失败的年轻人觉得锤科最大的问题是战略和商业模式,愿意免费为老罗提供战略咨询,等等。这都可以理解,但是谈到技术,懂就是懂,不懂就是不懂,界线是很明显的。
有些产品经理与技术人员打交道多年,多少也了解了一些技术架构和实现思路,这时候与程序员们聊天就要非常小心了。如果你顺嘴溜达出一些开源技术和架构名词,程序员们就会围上来笑嘻嘻的说「哇,你很懂技术嘛」,这时你要赶紧装作一脸无知的样子说「我懂个屁啊,也就知道个概念,我特么连 Hello World 都不会写」,然后程序员们就会放下手里的板砖,安心去编程了。
和程序员交流的正确方式是什么?当一个程序遇到瓶颈的时候,大部分程序员会非常无辜的说,现在就是最好的解决方案,没有其他办法了。这时候别着急,拍拍他的肩膀温和地说,没事儿,你再想想,肯定有更好的解决办法。如果你本身就是做技术的,也可以提供一些实现思路供他参考。一般情况下。过一阵他就会喜滋滋的告诉你,I have a better idea!
选择了一个程序员,就去相信他!
最后,程序员们还会相互鄙视。文人相轻,程序员似乎也是如此。写汇编的鄙视写 C 的,写 C 的鄙视写 C++的,C++程序员鄙视 Java 和 C#,Java 和 C# 程序员相互鄙视,写 Python 的和写 Ruby 相互鄙视,写 Scala、JRuby、Clojure 的一起鄙视 Java 程序员。写静态语言的和写动态语言的相互鄙视,写前端的和写后端的相互鄙视,vim 程序员和 Emacs 程序员相互鄙视,然后一起鄙视使用 IDE 的程序员。
Go 语言程序员鄙视所有其他语言的程序员,所有其他语言的程序员都鄙视 PHP 程序员。PHP 程序员说,PHP 是世界上最好的编程语言,因为 Facebook 的扎克伯格也这么说的。
总是,程序员之间的鄙视链极其复杂,估计得用一个狗屁混沌理论才能描述出来,这能怪谁呢?只能怪我们自己了,谁让那些技术先贤们发明了这么多语言和技术框架却没有制定出一个美国宪法那样的规章制度呢?毫无疑问,这个鄙视链会继续持续下去,直到程序员这个职业消失的那一天。
程序员穷,累,苦逼,加班,可能还不被理解,公司领导甚至不知道你是干嘛的,一个正常人成为伟大程序员的几率估计比飞机失事也高不了多少,那么,为什么还有这么多年轻人前赴后继加入这个群体呢?我想,是这个时代把程序员们推上了风口浪尖,当你看到自己的代码奔跑在成千上玩台服务器上的时候,当你做的 App 运行在每个人的手机上的时候,你会觉得,一切都是值得的。
我是一个程序员,我喜欢这个职业!
写了这么多,我想知道,你还想当程序员吗?如果想,可以发邮件给我,我们来聊一聊。