真心祝愿你:需求不再被砍,回家可以偷懒,能力交口称赞,偶遇真爱不晚。用技术改变世界的你们,值得更多的美好!
前言
最初的程序员节是一个俄罗斯官方节日,即每年的第256天(2^8)。在中国,从2014年起,每年10月24日(2^10)定义为程序员节。也许,程序员节是唯一一个与数字紧密相关的节日,也许,这也体现了这个节日的内涵:数字、代码、简单、重复。
程序改变世界,至今已经有几十年了,但真正进入普罗大众的生活,应该是从2007年移动智能手机的应用开始,越来越多的人开始关注程序和程序员。
但一提到程序员,也许很多人脑海里还是会出现这样一些词语:格子衫、牛仔裤、代码、与计算机恋爱,木讷、不善言辞,等等。“世界上有10种人,一种是有妹纸的,一种是懂二进制的。”程序员被标签化。人们关注“程序员”似乎更多地还在于“浮”,并没有“沉”。事实上,当我们在这里谈论“沉”的时候,所指的不一定是坠落、失败、滑铁卢,而是沉潜、坚守、虚室生白。
于是,我们特别采访了来自不同行业的数位资深程序员,他们或一直是程序员,或曾经是程序员,他们懂代码也努力去学习懂妹纸,他们都见证了近20年来信息时代的变迁,并呈现了时代在他们每个人身上的印记。
我们从如何定义自己、生活的改变、工作坚持、技术理想等方面进行对话,举重若轻,力求突破平面标签,完成程序员的立体画像,毕竟生活是立体的,也许丑陋与美丽齐飞、痛并快乐,但也要活得很优雅。
当然,对话,并不仅限于此……
您如何向不了解程序员的人,介绍和定义程序员这个群体?如何为自己画像?
您认为程序员身份给您生活带来的最大改变是什么,从优势和局限两方面来看?
工作中出过那些糗事,是否想过放弃,如何坚持下来?
印象最深的程序员或者工程师是什么样?影响最大的工作经历是什么?工作中遇到的奇葩事有哪些?
工作、生活、人际交往方面,什么是您自己的舒适区?您认为,程序员面对的比较大的压力有哪些?是否一直在突破您的舒适区?
对技术的持续热爱,最根本是基于想拥有改变世界的能力,还是基于对生活和家庭的爱?您的技术理想是什么?
大胡子
姜志辉,系统架构师、资深讲师。
定义程序员这个群体,程序员这个群体,更喜欢和电脑生活一起。因为你们人类太复杂。我是这个群体里少数更喜欢和人类沟通的物种。有可能是基因的原因。可以用颜值搞定的事,一般我不使用智力。
乔布斯说,每个人都应该花一点时间学习编程。我认为他是对的。如果你掌握了最先进的生产工具,那往往意味着你拥有更高的生产力。这个角色给我带来的逻辑思维深入骨髓。毕竟每天和if…else…、Given…When…Then…打交道。玩“杀人游戏”时,你往往是最早被干掉的那个。因为你的推导能力太强了。大脑太强大有时候不是好事。如何和妹子谈恋爱一直是这个工种难以攻克的难题。
工作中出现的糗事太多了。好在我一直用的是闪存,完事了就释放了。好的“垃圾回收机制”能够帮你把那些负能量及时清理掉。有了“异味”,及时“重构”就好。每天临睡前做个冥想,清理一些木马程序。这样你的系统一直是崭新的。
印象最深的程序员或者工程师,比如,比尔盖茨。我更欣赏能够将程序和商业结合在一起的人。09年的时候,我决定结束项目转做产品。之前几年的项目比较成功,所以决定转做互联网产品,干票大的。也搞个几千万什么的。后来失败了,挺惨。那件事提醒我,我可以写出漂亮的代码,但不知道如何写的正确。
工作、生活、人际交往都是我的舒适区。但我的女朋友并不这么认为,她认为我在生活方面有很大的进步空间。我觉得她说的对。我一直在突破自己的舒适区,这是我的标签。我之前还在咱们的网站上做过一次直播,说的就是如何突破自己的舒适区。有时间大家可以翻出来看看。那篇文章的题目是:《一个跨界程序员:不务正业的这几年,我如何让自己的收入翻了十倍》。
我之前真的想改变世界来着。后来放弃了。我改变不了世界。我没有那个能力。我相信有人有,但那个人不是我。我更喜欢享受生活。沏杯茶,点根香,放点音乐,写段代码。有人愿意听你吹吹牛X,足矣。
肖力
中联易云运维总监,云技术社区创始人, 曾在盛大游戏、金山西山居负责系统运维工作有15年工作经验,10年游戏行业运维经验,5年KVM虚拟化运维经验,有40款游戏虚拟化项目成功实施经验。维护有微信订阅号:云技术实践。著有《深度实践KVM》一书,《Ceph手册》中文版译者之一。
定义IT工程师这个群体,这个问题在移动互联网之前,解释的时候确实比较费劲,我干脆就说自己是修电脑的,反正简单PC问题也能解决。随着移动互联网的普及,我一般这样介绍,手机为什么能24小时联网,必然要通过一套系统,一批设备来支持,IT工程师就是做套系统的研发和维护,IT工程师就是互联网的建设和维护者。
IT工程师身份带来的最大改变是,即使不从事IT行业,我想我依然会热爱读书,这一点不会变化。IT行业给我带来的最大的变化是接受新鲜事物非常快,思想开放,因为IT这个行业发展变化非常快,必须保证不停的接收新的理念,从各个角度去考虑问题。
当然也有局限性,我大学的专业是化学工程,我也非常喜欢化学,选择了IT,就不能选择化学了。
工作中出过糗事不少,任何IT工程师成长过程中肯定都有血泪的教训,曾经也造成损失。但是放弃从来没有想过,总结经验教训,在继续。一直支撑我前行的主要是兴趣,完成一项任务的成就感,带来的喜悦。在技术方面充满了人类的智慧,IT这个行业魅力无穷。
身边喜欢IT,喜欢技术,全身心投入的人经常能碰到,经常有人有精彩的想法,能带给我惊喜,这样的人我往往印象都很深刻,天下IT工程师一家人,技术是大家共同的语言。
影响最大的工作经历是我在盛大游戏做虚拟化的时候,2009年我们在游戏行业虚拟化已经开始生产环境使用,算是互联网行业起步比较早的,当时资料非常少,都是靠到国外网站找英文资料,偶尔还看点源代码,这个阶段感觉提升很快,充满新问题,充满了未知世界的探索,反过来,通过博客,通过个人的订阅号,通过写书,也将自己的一些经验逐步反馈出来,让大家少走点弯路,感觉非常不错。
我一直是做运维的,运维强调的就是稳定,奇葩的事情是运维的灾难吧,但是有时候会做做白日梦,比如自己通过漏洞控制了全世界所有的云主机,掌握了巨大的计算资源,然后用这个资源去挖比特币。
我的舒适区就是看美剧或者写技术文章。IT工程师面对比较大的压力有很多,生活和人际交往大家面临的问题都差不多,比如房价。IT工程师工作上的压力也很多,比如长时间不能解决的技术难题,时间非常紧急的任务,工作就是一个一个难题的解决的过程,在这个过程中获得能力和经验,然后获得乐趣。
我一直认为,需要不断的突破自己的舒适区,如果在这个环境中,基本没有挑战了,也意味这自己没有成长,这时候必须给自己新的挑战。
做技术工作的,大都认为难题都是技术问题,可以通过技术手段解决。改变世界从来没有想过。就是纯粹喜欢技术,一方面技术能带给我乐趣,一方面还能养家糊口,我觉得非常满足。
教主
杨永林,人称“教主”,8年前端开发经验,原新浪微博前端技术专家,现任链家网前端总架构师。长期研究Web访问性能优化和前端框架搭建。教主说,10几年前,有一个猫扑猥琐男,被大家称为猫扑猥琐神教教主,而他本人长得像这个人,所以被为“教主”。如果大家还记得,互联网ps文化就是从猫扑开始的。
定义程序员这个群体, “一群奇怪的家伙,对一些乱七八糟的符号有宗教式的膜拜,可以轻易的拿走你的隐私信息,甚至银行密码,会数码巫术。”基本上怎么解释他们都不理解,所以我一般会说的特别夸张,然后补一句:“修电脑收费。”对自己这类人画像的话:普通人类,对逻辑有偏执,喜爱数码产品,喜爱探究原理。
程序员身份,实际上也没带来啥变化,因为我没体会过毕业后不是程序员的人生啊。可能赚不了什么钱比较穷吧。我不认为程序员是什么特殊群体,很多码农自己觉得自己特殊而已。有时还特意强化这种特殊。优势是:人缘会好吧,别人都觉得程序员很nice,不太容易受骗,这个群体比较理性。局限是:我真的不会修电脑。
工作中问题肯定出过很多,不过工作这么多年没出过高级别故障,大错应该是没有的,非说糗事,酒后差点打了项目经理算吗?其实我对遇到困难,要放弃,咬牙坚持这个思考路线不是特别熟悉。如果这是你喜欢做的事,不太可能有要放弃的想法呀。如果工作要你咬牙坚持才能挺过困难,我觉得还是换一份自己喜欢的工作干吧。
印象最深的程序员应该是那种面对陌生领域毫无畏惧,通过分析学习,总能解决问题的那种。影响最大的工作经历自然是在微博的经历,我参与了一个产品从初创到成熟的全过程,终生难忘。我还真想不起来有什么奇葩的事情,什么事情都是有原因的,理解了也就不觉得奇葩了。
熟悉的领域、熟悉的环境、熟悉的人是我的舒适区,我不太善于和比较内向的人打交道,因为我特别害怕冷场,觉得很尴尬。我没觉得程序员有什么特有的压力,生活中的压力跟别人也都是一样的,有人说编程领域变化快学习压力大,但其它领域其实也都这样啊,我们处在一个变革的时代,本身也没什么技能能使用一辈子的,转型总是痛苦的,但每个人都要经历。
我一直也在试图突破自己,比如技术上,我曾经尝试过做一段时间的真正的后端开发(不是全栈那种),生活上我也参加一些原来不熟悉的活动,比如最近一年多,我一直接受crossfit的健身训练,认识了很多其他领域的朋友,这种改变开阔了我的眼界,可能有一天我会选择去做一个健身教练,阿里已经有一个程序员转型做健身教练了。
我一直的观点是,希望我所做的事能让世界变得美好一点,在工作的早些年我会对做一个什么样的技术很在意,很喜欢解决技术问题带来的那种爽快的感觉,这些年我更希望是通过技术手段解决现实中的问题而不单单是技术问题,我们看那些伟大的公司无一不是用极佳的产品改变着这个世界,所以我的技术如果能让公司的产品变的更好得服务与社会,那我一定会去做的。
李智慧
李智慧,宅米 CTO,前 NEC 项目主管,阿里巴巴技术专家,IBM 咨询经理,Intel 大数据工程师;开发过 ERP,写过防火墙,做过网站架构,搞过数据库,带过团队,创过业,申请过几个分布式系统专利,为 Apache Spark 贡献过一点代码;写过一本书《大型网站技术架构:核心原理与案例分析》,被若干高校选为计算机类专业教材。
定义程序员这个群体,粗略估计,中国职业程序员人数大概在数百万,接近千万的样子。在北上广早高峰的地铁上,与你摩肩接踵的人里面,几乎必定至少有一个是程序员。软件开发是一个普通的职业,程序员一个普通的群体,和其他职业人群没有区别。
我本科学电子技术,硕士学汽车技术,我的这些同学中,只有我从事专业软件开发工作,在我看来,我认识的专业程序员和我的电子工程师同学,汽车工程师同学在非专业领域之外没有任何区别。程序员只是一个普通的职业群体,妖魔化或者神圣化程序员都是不科学的。
然而,软件技术和其他工程技术又有不同。程序员不会造汽车,但是可以让汽车自动驾驶;程序员不是管理、财务专家,但是可以让管理、财务自动化;程序员不是档案图书管理专家,但是可以让世界所有的文件图书瞬时检索、即时阅读;程序员不会建商场开超市,但是能让全世界的买家卖家在同一个地方交易。短短几十年,软件变得几乎无处不在,彻底改变了人们的生活工作方式。
程序员就像魔法师,让一切东西变得不一样,让习以为常的东西变得神奇。程序员就像造物主,造出一个超级图书馆,全人类的信息都存储其中;造出一个超级大市场,全人类都能在其中交易;造出一个超级游乐中心,全世界的人都能在其中游戏。
所以程序员是平凡的,但是程序员的工作是非凡的。程序员每天做着普通的事情,但是一不小心就改变了世界。
我觉得从事职业软件开发工作彻底改变了我,一些职业习惯对我的影响重大而深远。
在对待外界事物方面,因为软件开发需要解决特定的业务问题,而一个表面的问题背后会隐藏着根本的问题,这种思考问题背后的问题的习惯,让我对事物产生一些独立的看法,减少人云亦云的情况。
在日常生活中,我也习惯思考:我们究竟在做什么,为什么这么做,而不会仅仅因为别人也这么做就从众随行。这么做的结果有好有坏,有时候因为不从众也吃了一些亏,哈哈。但是总的说来,这个过程是蛮开心的,有自己的想法,能按自己的想法做事本身就是一件开心的事。
因为软件开发技术变化比较快,时间长了,内心中就会产生一切都会变这种念头。这种念头对生活的影响也有好有坏,好处是认识到这个世界是动态发展的,社会、个人都在不断改变,不会僵化地对待周围的人和事,也不会僵化地对待自己,让自己保持持续学习和进步,对周围一切保持好奇,对改变和变化不会觉得没有安全感。
坏处是,有时候太乐观了,以为变化总是往好的方向变化,以为变化会很快到来,但是其实不是的。
总之,我很感谢计算机和软件开发的前辈,天才般地开创了这样一次技术革命,让我能够有幸参与其中。
哈哈,工作中捅过的篓子,出过的糗事太多了。项目实施期间,用客户公司的邮件服务器玩游戏宕机,导致上市集团内部通讯中断;自以为是,在项目中用新技术,导致项目延期;个人膨胀,坚持错误方案,导致项目失败。还有很多,各种bug带来的各种灾难,可以说能活到现在,还能继续从事软件开发工作,真的要感谢曾经合作过的同事、客户、老板不杀之恩。
所以我一直有个观点,程序员的收入部分不但包括公司支付的薪水福利,还包括公司因程序员工作失误而带来的损失,这些损失是公司给程序员交的学费。几乎每个大牛程序员都是公司大量学费交出来的。程序员们找工作的时候不但要关注可见的工资收入,还要看看公司是否愿意给你试错的机会,这些机会有可能是数以百万千万人民币计的。
刚开始做程序员的时候,参与一个信息管理软件的开发,基本就是一些数据增删改查的操作,拷贝粘贴代码就可以了。写了大概一年多,非常迷茫,教课书上写的那些高大上的算法原理一个用不上,技术难度比自己自学编程时练手的小程序都差好几个档次,软件开发原来不过如此,程序员不过如此,那是我第一次想要放弃从事专职软件开发的工作。
后来换了工作,遇到一些同事,他们不拷贝粘贴代码,用一些我当时不懂后来知道是设计模式的编程技巧,简直惊为天人,重新拾回对编程的兴趣。
这个经历对我后来的工作生活产生很大影响,每次迷茫的时候,我总是在想,更高的高手在哪里?他们是怎么做事的?一旦有机会能和更高的高手共事,我就总是腆着脸混进去,鞍前马后打个杂,只为能跟高手学个一鳞半爪。
我是一个典型的宅男,自己和自己呆在一起是最舒服的状态。如果一群人聚在一起,没有特定的任务,只是休闲聚会,我在其中会觉得特别累。如果无所事事,我宁愿自己跟自己无所事事。但是如果一旦有个目标或者任务,有问题需要解决,我的状态就会立刻不同,满血复活。
我喜欢宅,更喜欢挑战,所以我觉得我的舒适区就是我的挑战区,而挑战总是那个你拿不准是不是能搞定的事,每一次搞定以后都会导致下次挑战的难度更大一点,最后就是导致舒适区随着挑战区的变化不断被突破。
前面说过,程序员和其他工种并没有不同,面对的基本生活工作压力是一样的。唯一的区别就是软件开发技术变化更快一点,必须快速学习才能跟上。这个特点对年轻程序员是一个利好消息,可以通过努力学习弥补经验的不足,没有各种陈旧的包袱需要你背,也很少所谓的前辈对你指指点点说三道四。
阻挡在你和成功之间的只有努力和天赋。如果你想通过自己的努力实现人生价值,欢迎加入程序员的行列。
惭愧的很,我对编程的热爱,既不是想拥有改变世界的能力,也不是基于对生活和家庭的爱,就是简简单单的喜欢编程。只需要一台电脑,不需要依赖任何其他东西,我想什么,就能编出什么,对不对好不好,我立刻就能看到,如果愿意,我可以分享给全世界,我就是喜欢这种感觉。
我还记得自己刚开始自学编程的时候,编的第一个程序,当程序执行成功输出结果的时候,我泪流满面,感觉自己进入了一个新的世界,这个世界只有我,我就是这个世界唯一的主人。所以当我编程的时候,我其实就已经拥有一个世界了,如果我在自己的世界中做的一些事,不小心改变了我们大家共同拥有的这个世界,我也会很开心很荣幸。
NULL(注:此段是匿名采访)
18年软件开发相关工作经验,10年以上项目和团队管理经验。擅长底层技术架构、团队建设、软件工程、软件研发咨询,以及全球软件团队协作管理。对高性能、高可用性、分布式、高并发,以及大规模数据处理系统有一些经验和心得。喜欢关注底层技术平台和互联网行业应用。
定义程序员这个群体。
1、一般情况下,最好低调一些。有非技术圈的人问我,你是做什么的,我说我是写软件的,然后,就没有下文了。哈哈。可能对于非技术圈的人来说,他们认为的懂电脑的人通常来说,能帮上他们的就是帮他修修电脑和手机,高级点的就是让你帮他们做个网站,整个网店,或是整个微信公众号什么的。
另外,很多人关注的是我工作的公司,和我的公司是做什么的,如果你的公司在做的事情和他们的日常生活很有关系,基本上来说,他们会把你当成那个公司的客服。
所以,更多的时候,最好还是少说自己是个写软件做技术的。嘿嘿嘿……
2、找到合适的场景介绍。如果程序员要对非技术圈的人介绍和写义自己,那么需要找到合适的上下文。
在过去的一年中,我给很多公司做了技术咨询方面的事,绝大多数来找我的,都是因为自己的服务扛不住业务推广带来的流量,或是觉得自己的技术团队的工程上有很多问题,想来找我解决这些问题。
在这些时候用自己的行动和能力帮助他们,会得到更好的效果。当你解决完问题后,通来说,我收获的不单单只是用户的赞许,也有用户主动给我的经济上的丰厚的报酬,当然,这个时候你再和他们谈程序员是什么样的人,应该怎么尊重技术,他们不但会频频点头,也会非常想迫切的了解程序员和技术。这个时候才是全面介绍技术和程序员的最佳时机。
3、用类比来介绍。我发现,很多非技术的人都会觉得技术人员很普通,他们就觉得做技术的就是随便找个人来写写代码罢了,没什么大不了的,对于这样的思维方式,我能够理解他们为什么会这样想,所以,我一般会用一些比喻和他们介绍。
第一,公司刚起步时,业务不复杂,就像盖个3层楼的小房子,或是在10米宽的河上架桥,随便找个农民工工程队就可以帮你干了。但是,你们的业务发展的越来越快,现在你们的业务就像是你要盖个50层楼的房子,或是在几百米宽的河面上造桥,这就不是一般人能干的事了,那么你就需要非常严谨的工程能力的人了。
第二,在面对一些人并不了解什么样的技术用什么样的工程师时,我会这么解释:有的工程师是修飞机或是修汽车的,有的是修个自行车的,有的则做造火箭的。老实是,我是修飞机和修汽车的,而你们现在要解决的问题是怎么修自行车,找我浪费了。
第三,对于一些人认为请到技术牛人就可以解决所有的问题时,我一般都会用足球来做类比。我会说,这就好像足球一样,不是说,如果把梅西或C罗这样的球星请到某中超的球队来,并不代表那支的球队就能成为世界一流强队了,很大程度上,有很可能是把梅西和C罗费了。最重要的不是请人,而是你的公司的体制里有没有工程师文化。
今天,所有的行业都和计算机有关系,无论是什么样的公司,什么样的业务,都会用到计算机和软件,所以,从事程序员这一行让我真真切切的感觉到了计算机技术迅猛发展的的整个过程,完全就是站在时代的风口上。
除了有比较不错的经济回报之外,还让我被动地去了解了很多的行业,比如:金融、零售、医疗健康、教育、通信、汽车、广告营销、体育、…… 人的一生很难去经历这么多不同的行业,但是程序员这里,我算是都经历了很多。
优势有很多,我重点说三个:
程序员是有创造能力的群体,所以,优势就是我想做点什么东西,就可以动手开始做了,不求人,动手能力比较强的人,通常来说,都是很想法,创新意识比较强的人。
写程序通常来说是一件逻辑性很强的事(当然,那些搬砖堆功能的活儿不算),所以,程序员的的逻辑性一般来说都不会差。经过了20多年的程序生涯,我现在在跟很多公司的产品经理,业务人员和创始人的一些观点PK中,基本上来说,可以很容易的说服他们使用更好的方案。
写程序的人相对于其它人比较单纯和实在,性格都是老老实实,踏踏实实的。不像那些油腔滑调的销售人员。在与人相处中,与程序员相处可能是是这世界上最简单的事了。
程序员的局限就是情商低,不善言谈,爱较真,而且喜欢在技术上打压别人。这方面的情商的确算得上奇葩了。
工作中出过糗事。刚入行的时候,做银行,代码的bug造成了比较大的故障,导致那个城市银行的全部网点关门,这是最惨痛的一次经历。从那天后,就养成了两个习惯:一是严谨的习惯、二是拼命学习的习惯。
我最难受的日子,毕业两年时放弃了单位的分的房子,不顾家人朋友同学同事的全面反对,从银行出来,去了上海,不但遇到了互联网泡沫,所有的互联网公司都在倒闭,而且一个公司都面试不过。
这段时间是我人生中最难的时光。但我从来没有想过要放弃。因为,我从银行出来的目的就是为了经历这个时代最刺的变革,所以,苦逼也是一种经历,心里面只想着要不断的学习和提升自己,才能进入到大公司里去经历那些最刺激的事情。
老实说,所谓“坚持下来”对于我来说是因为我“回不去了”,因为从银行出来的时候,完全不理家人朋友同学同事劝告,还信誓旦旦地说自己没问题,而出去后就直接傻逼掉了,所以,谈不上什么坚持不坚持,完全就是自己把自己逼上了一条不归路。
如果人到了一条不归路上,你还有能咋办,所以,除了坚持还能干什么?
今天,我又放弃了N多的非常不错的工作offer,把自己继续往“作死”的路上逼——创业。只因为,人生苦短,不忘初衷,我还有24岁那年一样,经历那些不同的刺激的事是我最大大的渴望。
职业经历中印象最深的程序员主要还在亚马逊和阿里巴巴里见过。在美国亚马逊接触过几个Principle SDE,吸引我的是他是丰富的知识和非常的严谨的思维方式,更是他们的智商,见过,才明白为什么美国人发明出了这么多的技术和模型。
老实说,和他们聊的越多,自己就越伤感,感觉自己的这辈子永远也无法达到他们那样的水平,让我感到人生灰暗了很多。而在阿里巴巴,看到了很多工程师真的是太有热情了,工作起来非常拼命且不知道死活。
如果你要问我最对我的影响最大,那应该是亚马逊。虽然里面和其他公司一样也有非常糟糕的沟通困难的大公司病,但是这家公司的很多管理和工程经验,解决了我心中很多困扰我多年的困惑和疑问,当你知道骨感的现实很这样那样的不好时,你的心中是焦虑的,而当你见过好的东西后,焦虑被消除的感觉真是很爽快的。
奇葩的事太多了,罗列几个:
在做银行项目的时候,因为我动作比较快,每天的工作都能提前完成,然后,我就看一些技术书,领导对我说,上班的时候不要看与工作无关的书,这样会影响别的人工作。
在某大型互联网公司,因为一个运维人员误操作导致了大的故障,高层处理这个技术故障时,让相关责任人去抄写这个公司的《XX悟道》第X章两万字,下周二交上来。
在某大型互联网公司,该公司禁止员工6点钟去食堂吃晚饭,在内网里,员工说,下午5点半饿了,早点吃晚饭也可以早点回来工作,结果该公司的创始人直接回复——“你晚吃半小时,你会死啊!”
有时候,我觉得,很多公司高管最奇葩的行为就是一定要把员工变成傻瓜他们才会管理。
我知道这个问题想问什么,似乎舒适区并不好似的。所以,我想反过来回答这个问题,什么才是舒适区,以及如何进入舒适区。
工作上来说,我最不舒适的地方就是在不断的做自己熟悉的事,虽然每次都可以按时按量的完成工作,可能得到很多高层的表扬,但是心里是慌的。最舒适的地方就是做那些比较难的有挑战的事,这样会让我觉得有成长的感觉,觉得自己随时都可以找到更好更不错的工作。
生活上来说,最不舒适的地方就是没有一群志同道合的人,在老家,对很多人来说,生活很舒适,但对我来说非常不舒适,因为能交流的人实在是太少了,我需要很努力很努力才能和他们交流起来。而在北京,成本也高,污染也严重,交通也很堵,我也没有户口,但是我还是喜欢呆在北京,因为这里有一群和我一样喜欢技术的人。
人际交往方面,我比较不舒适的是和三类人交际,一类是江湖味太重太油的人,另一个是体制内的人,还有一类是外企里目中无人装逼过度的假洋鬼子,虽然什么样的人我都能扯上两句,但是,我骨子里实在是和这类人交流不在一起。我最喜欢的还是那些能够给我带来新思路的人,比如90后的年轻人,硅谷的人,或是那些有梦想的创业者。
对我来说,刚入行的时候,最想的是能进到大公司去经历那些有价值有意思的事,所以,压力是成如何成长为一个能力强的人,然后随着自己的成长,压力转变成如何解决一些很难的技术难题,现在对我来说,压力最大的是,如何成为一个合格的创始人。
人的成长来自于痛苦和艰难,只有痛苦和艰难才会让人分化成两种人,一种是更快的lose掉,或是更快死掉,另一种则是能找到方法突围出去。所以,要么尽快成长,要么尽快死掉,痛快一些,这样,自己会更容易找到自己的舒适区,因此,我会经常把自己的工作和生活变得动荡一些,这样我才会进入到我所喜欢的舒适区。
对技术的热爱,是基于,我认识到我正好生在一个变革的时代,也学对了专业,选对了路,简直是太幸运了,所以,不能浪费了这种幸运。
改变世界太夸张了,能造福社会就不错了。况且,我现在已经正在老去,人到中年,留给我可以折腾的时间不多了,我对技术其实没什么理想,我就是想按正确的方式去做事,只是现在的社会比较浮躁,所以,很多不正常的事都成了正常,而正常的事,都成了理想。
我现在在创业,我想做一个完全与众不同的公司(当然,还得是一个挣钱的公司),但一定是个不一样的公司,因为如果我做的公司和别人差不多,那么我还不如加入别的公司得了。还更因为,我就想去经历那些刺激和有意义的事,社会上现有的我都经历过了,要经历更有意思有意义的,只有自己的创造了。
现代的程序员似乎成了加班的代名词,的确非常辛苦。我以前也苦逼过,那时在给银行做项目,封闭式开发,工作是从周一到周六,从早上9点到晚上10点,连续干了一年。老实说,我实在是受不了这样的工作方式。所以,当时工作了几个月后,我觉得这样的干法跟本不行,于是我停下来开始寻找一种不被动的工作方式,
一方面,我开始尽量的把一些代码重构成比较通用的扩展性和重用性比较高的代码,虽然花了不少时间,项目在一开始也有所延期,也被领导骂,但是,我明白,我宁可短期被骂,我也不愿意长期地累下去。所以,后面我就越来越快,快到上班的8小时不用用完就把需求做完了。
另一方面,我对需求要问,为什么要做这个需求,做这个需求有多大的收益。这个对于理解需求和未来的变化很有帮助,有时候,问着问着,这个需求就没了。
最后,我发现有个很难搞定的事。那就销售人员在和用户签单的时候,就已经把开发人员卖了,为了签单,本来要做半年的事,他们承诺只需要两个月。所以,我从15年前,我就决定了,坚决不去这种销售驱动或是运营驱的公司。这也是我这十多年来基本没有开发过与业务功能相关的东西,基本上都是在做底层基础架构或是技术产品方面的东西。
今天,互联网公司的程序员加班非常严重,我看基本上是如下原因:
其一,公司的业务方面抓不住重点,什么都想要,乱试错。
其二,技术团队为了赶工,只能用一些粗糙的甚至有缺陷的方案,导致上线后问题多多,于是,前有需求要完成,后有问题要解决,再头堵,完全就是恶性循环。
其本上来说,如果一个公司的员工像个牲口一样,那么这个公司基本上来说,基领导层很有可能像牲口一样的思考或行事。我觉得程序员在这样的环境下是不会有什么前途的,我的建议是要么自己跳出来改变,要么就离开。
程序员其实可以干很长时间的,关键是你有没有找到一个正向的循环,如果天天都是在干重复的苦逼的工作,你会很快失去兴趣的,但是如果每天都在成长,都在收获成就感,那么,你干起来就会越来越有兴趣的。
所以,对任何一个职业,如果你想长时间的做下去,你需要有正向的反馈和循环。这来源于一个人的成长感和成就感。而人的成长感来自于——你掌握了更多更好的技能和知识,成就感来自于——你用这些技能和知识解决了别人不能解决的问题。
所以,如果你要在一个职业上越干越有劲,你就需要能解决别人不能解决的问题,你要能解决别人不能解决的问题,你就需要学习更多的东西。当然,你也要有机会能找到那些问题,这就需要有更多的机会,而更多的机会则来源于你的可能性,而你的可能性还是来自你的能力,而你的能力来自于不断的学习和实践。
技术更新的确很快,不过有很多东西是不变的。比如:任何应用上的技术,比如语言,不管是C/C++,Java,Go,C#,Python,无论是怎么样,最终都跑不掉要调用操作系统的系统调用,所以,无论是I/O线程模型,还是网络通信,完全都跑不掉操作系统的模型。所以,如果能深入到操作系统的系统调用这一层,那么上层的技术基本上就全部被打通了,这就是为什么要打好基础的原因。
我能跟得上完全是因为我的基础打的比较好,所以,学习新技术也越来越快,基本不费太多事了。同样我也有反例,比如,我的算法和数学的基础没有打好,所以,在大数据方面,我也就完全跟不上了。所以,关键还是打好基础。
结语
在此,谢谢被采访程序员们无私快乐的分享!
最后,祝每位程序员,程序员节快乐!
大咖说1024程序员节特别企划:
六六对话20年驾龄老司机:「如何成为一个高产出的优秀程序员?」
今晚八点半,我们陪你一起过好这个程序员节!