查看原文
其他

【老万】程序员护发秘籍

老万 老万故事会
2024-08-23

小时候,父亲看我做作业,一边用手抚摸我的头发,一边慈爱地说:小勇,你要展劲读书,长大了做个发光的人。


昨天晚上,给儿子辅导功课,挠自己的头,捋下来一把头发。我突然明白了父亲的期望,默默地说:爸,我做到了。


看到这里,大家可能已经清楚了:我是一个程序员。


如果天底下有什么不证自明的事,那就是做为一个群体,演艺圈爱出渣男,程序员爱掉头发。


关于程序员的头发,老万送给大家诗词各一首:


《梦中偶得 · 咏毛》


少年不识毛不易,

知天命始盼毛宁。

无计可使毛延寿,

三毛已逝意难平。


《虞美人 · 写码》


少年写码课堂上,

黑发多且长。

壮年写码小楼中,

青丝渐稀,

断雁叫西风。


而今写码夕阳下,

发已岌岌也。

悲欢离合总无情,

一任 bug 薅毛到天明。


其实出渣男和掉头发这两件事情虽然是一般规律,但并非铁律,经过努力是完全可以打破的。比如自宫可以有效避免成为渣男,而且不易复发。


今天老万就结合自己的悲惨经历分享一下程序员养发护发的技巧。虽然没有多少成功之经验,却有不少失败の教训。如果大家用心体会,少踩一些坑,多留一撮毛,就算是达到我的目的了。


从根子上说,掉毛是因为压力大,内分泌失调造成焦虑。程序员最大的压力,来自职场不顺,达不到老板的期望或者自己的期望。所以我们今天抛开具体的技术问题,专门讲一讲亘古不变的职场人性。


~~ 我的教训 ~~


这些年,老万最大的教训就是曾经用战术上的勤奋掩盖了自己战略上的懒惰。


老话说:(例如 X 东方)男怕入错行;(例如 X 力宏)女怕嫁色狼。当然,现在男女一样了,都怕入错行。进入一个前途乌亮的夕阳行业,会让你逆水撑船,多干几百年。所以,要想清楚现在的工作能给你带来什么长久的好处。


这个行业是会越来越好还是越来越糟?你能通过这个项目学到什么新的技能?这些技能在未来社会能用来屠龙还是宰狗?这些问题,比你挣多少钱重要得多。除非,你已经进入职场晚期随时准备撒手人寰。


我的战略懒惰,表现在初入职场那些年没有主动管理自己的上司,以为自己把工作做好就行了,职业发展上司自然会替我考虑。后来我发现,你不提要求,上司就当你没有这个要求。


职业规划应该是每个人工作的重点。解决一个具体的技术问题,完成一个重大的项目,那都是次要的问题。主次不分清,就会因小失大。


我有几年就顾着埋头拉车,因为要解决的技术问题对我来说很有趣。但是老板没有感觉到我有在职场上升的意愿,也就没有在这方面帮助我,把当技术领导的机会都给了别人。直到我觉得气氛不对,做出了要离开项目组的决定,老板才恍然醒悟,许我优厚的条件,让我按照自己想做的方向去发展。要是我早和老板协商,也不至于蹉跎两年岁月。


公正地说,老板对我这样也是可以了。毕竟他要负责的事情很多,不可能为每个手下都鞠躬尽瘁死而后已。尤其是在我歌这样的大厂,很多老板不是专业的经理人,而是代码写得好升上去的。他们对如何帮助下属做好职业规划并没有很多的经验。而且他们本身也有繁重的研发任务,要求他们身兼数职是不现实的。这时候,只能自力更生,同时催老板上进,让他多为自己着想。


注意我不是要大家向老板伸手要待遇。升职和待遇应该是工作做好之后的自然结果,不是前提。老板最讨厌的,就是小王八字还没做出一撇就急不可待地提出要升职,在自己还是一只鸡的时候活出了凤凰的感觉。


~~ 写多少代码算好 ~~


每个职业的人都应该掌握好自己吃饭的工具。比如说你和 X 力宏一样是个音乐人,那就应该每天练琴,巩固自己的肌肉记忆,到需要的时候可以一触即发,完美呈现。


程序员使用的编程语言和工具就相当于乐手的乐器,要做到曲不离口拳不离手,每天坚持写代码。一天不练自己知道,三天不练同行知道。


我现在虽然在带团队,平均每年自己贡献十万行代码不在话下,一天不提交四五个 CL(change lists)就不舒服。如果开了一天会,一定要在空隙写一些代码才感觉这一天没有白过。只有这样,我才能保持自己的技术敏锐度。


有人说当领导了还自己写代码是不是捡了芝麻丢了西瓜?当然我不会不分轻重见码就写。通常我会写两种代码:


  1. 别人不能写的。

  2. 别人不愿写的。


有些任务,需求紧迫技术含量高。团队里面其他人还没有成长起来,交给他们一时半会还搞不定,但是拖下去又会带来很大的问题。这时候我会一顿操作先把问题解决了再说,然后安排团队学习理解,下次他们就自己会干了。同时这也能带给自己多巴胺,还保证自己跟团队交流的时候能够获得他们的尊重,而不是纸上谈兵指手画脚惹人厌烦。


别人不愿写的,指的是那些脏活累活。我身先士卒解决这些问题,就可以给团队腾出时间让他们解决更有趣的问题,提升他们对工作的满意度。同时我也做一个好榜样:只要人人都献出一点爱,世界会变成美好的人间。


当然这种事我自己是干不完的,也会分配给组员们。但任何时候老板不能只想着把漂亮活留给自己,把擦屁股留给别人。


我给新人的建议是:主动多找机会写代码。不要等老板给你布置任务,你自己看到不爽的事,顺手就把它修理了。一开始会很慢,但是多做就快了。


~~ 交流能力为什么重要 ~~


开会的时候,经常听到新手发言条理混乱,不着重点,让你替他着急。但他自己可能还没有觉得这是一个问题,觉得把活儿干了就行了。


其实,在职场中很少有自己单干一件事情,跟别人完全没有关系的时候。多数情况是你做的活会影响到别人的工作。你不把你的进度讲清楚,遇到困难不及时跟人沟通,就会拖别人的后腿。反之,如果你被别人拖了后腿之后只会默默祈祷或者关门骂娘,不去主动解决问题,工作自然就不能高速推进。


表达能力的提高不是一蹴而就的。建议大家除了日常写代码,也多练练文字写作。比如开个公众号、微博。实在不行从朋友圈发文开始做起,隔三差五总结一下近期思考的结果,输出自己的职场经验和新长的见识。这样既帮助了别人,也锻炼了自己,一举两得。最后受益最多的还是自己。


表达能力不到位也会反映到代码质量上。我多次说过,文章写不好的人,代码肯定也是一团糟。


好的代码不是写得聪明的代码,是写得清楚明白的代码。要让人一看就明白你想要达到什么目的。这样如果程序里有一个 bug,很容易就会被识别出来。如果写代码的人不晓得怎么把意图表达清楚,就会留下一堆别人看不懂、不敢改、无法维护的代码,你的祖宗十八代也会得到同事的热情问候。


要提高自己的代码水平,无它,唯手熟尔。带着目的去修炼。数量和考量,两者都是必要条件。我没见过写码不到十万行的高手,也没见过无脑重复炼成的达人。结合自己的工作,多读一读代码规范和前辈的经验之谈,才能快速进步。


~~ 如何提升自己的能见度 ~~


有人跟我说:老万,我觉得我工作挺卖力的,项目难度也大。我给公司做出了很大的贡献,就是没有人知道。这种情况怎么办呢?


酒好也怕巷子深,不吹太傻太天真。做了工作,一定要让别人看见。当然,不能随时吹嘘自己 - 这样只会招人反感。但是,在你工作开始前,要主动和老板沟通,告诉他你想解决一个什么问题,准备怎么解决,考虑了哪些备用方案。做完之后,告诉老板效果如何,后续有哪些注意事项。只要你客观公正,简明扼要,老板会对你这种主动沟通的做法深表赞同。因为你说的这些都是他关心的内容。你讲清楚了,就省得他自己费时费力去找答案。你的主动性也会给他留下很好的印象。


同样,同事之间也需要主动去沟通。比如说你做了一个工具或者改进了一个模块,可以让大家工作更高效。如果你不去做推广,就相当于是做研发不做市场。你不能指望别人主动花时间去学习你的神器,得努力降低别人应用你成果的成本。这时候,前面讲到的文字功力就非常重要了。


我做谷歌 C++ 测试系统的时候,各种花式推广。比如我会每周分析谁是潜在用户,然后给他们发小广告。我还写了几篇文章,贴到厕所蹲坑前给大家洗脑。此外还做了几次技术报告,发展了一批热心用户帮我义务宣传,终于把这个系统做成了公司的缺省配置。


~~ 如何向老板争取更大的项目 ~~


很多人都觉得自己有经天纬地之才,就等公司重用了。


真正的人才,大部分公司肯定是愿意委以重任的。如果公司的环境是嫉贤妒能,我劝你早点把老板炒了。


但是,在要求更大的责任和更重要的项目前,先要看看自己过往的成绩。如果你是老板,会有信心地把项目交给你吗?


自己每做完一件事情,给结果打打分:问题解决得怎么样,解决方案是临时的还是长期的,后续维护的代价有多大,系统稳定性如何,用户反馈如何?


如果你自己满意了,跟领导沟通看他是不是也同样满意。如果他的想法不同,说明你们俩的认知出现了偏差,需要及时纠正。有可能是领导有误解,也可能是你自己自视过高。


如果碰上外行领导内行,经理不能理解你的贡献,那么尽早跳槽。如果经理的本身是懂行的,有可能是你自己不能客观看待自己。


每个人对自己的工作都是最了解的。对别人的工作往往会因为了解不够而看轻,觉得换了你肯定做得更好。但老板站得高看得远,可能会得出跟你不一样的结论。对自己的判断要持保留态度,才能虚心听取别人的意见快速进步。


向老板要项目和职权应该是循序渐进的。根据自己以前工作的成绩,提出能够挑战自己但也不超出能力范围太多的工作安排。这也是老板喜闻乐见的 - 帮助你成长符合他的利益。你成长起来了,可以分担更多的担子,产出更多,何乐而不为。


如果在交出漂亮的成绩单之前就贸然请缨重要的项目,老板只能认为你缺乏判断能力,恐怕对自己的事业会起到相反的作用。


~~ 如何写好述职报告 ~~


不会写述职报告,你就失败了80%。


程序员不是文科生,很多人写作都不是强项。这在职场是件很要命的事情。


有的公司是老板说了算,你只要把工作做好了,让懂行的老板看在眼里记在心里,职场发展就一帆风顺了。但这是把自己的命运交在别人手里,殊不可取。


更多情况是老板要管理一堆下属。即便他对你的能力赞许有加,不代表他能记得你做过的所有重要事情。要全面客观地反映自己的贡献,唯有自己练就过硬的写作本领。


当然,述职报告不是网文,不能搞吸引眼球的标题党。那样会死得很难看。


报告应该清楚表达你的意思,不煽情,不造谣,不夸大自己的贡献。吹牛是很容易被识破的。一旦被识破,你这个人的信用就完了,说啥人家也不信了,得不偿失。


那么在述职报告中最需要表达清楚几个意思呢?每个公司文化不同,侧重点也不同,但大多应该包括以下几点:


  1. 这个项目要解决什么问题。

  2. 这个项目为什么重要,对公司有什么影响。

  3. 这个项目为什么难搞。

  4. 你在其中的贡献是什么。

  5. 你表现了什么样的领导力。


把这些问题讲清楚了,读报告的人会很感谢你。


如果你每天忙于具体工作,到了写述职报告的时候就会发现千头万绪,需要花很多时间整理经历,还可能会遗漏很多重要情况。


而且,到了业绩考核的时候再来考虑写报告,说明你可能没有提前做规划。那么这段时间的工作方式方向可能都是错的,恐怕很多力气都白费了。


好的做法是每次评估之后马上和老板做一次沟通,搞明白在下一个阶段的努力方向,让老板在力所能及的情况下给你创造发展的条件,对你在此期间的绩效期望达成共识。


某智者说过:专注,就是对自己想做的事说不。平时要管理好自己的冲动,不要被琐碎的事情占据了大量的时间。比如你可以每天早上花 15 分钟考虑一下当天的工作,选好两三个当天可以完成的小目标。然后不要轻易转移注意力去做别的事情。如果有人请你做计划外的事,除非是特别紧急重要的,你都留到第二天再考虑。不要来一个请求解决一个请求 - 这样你会疲于奔命,惟有泪千行。


做好日常的记录。建议大家建一个文档记录自己的主要贡献。每次做完一项工作,就把它加入到文档中。


花时间熟悉一下述职报告的格式和内容要求。比如说你在升职的时候需要提供的一些干货(你审阅过的文档,写的设计,做的会议记录,修理过的重要 bugs,等等这些审查人需要考察的资料)都需要你日积月累地整理好。


重要的决定要形成文字。比如你和某个组讨论一个合作的问题,达成共识之后请马上发邮件确认,以防日后记忆偏差。而且没有参加会议的其他同事也能利用到你们讨论的结果。在升职的时候,条理清晰的会议记录也可以证明你的贡献。


很多新人常犯的错误就是述职报告里写了很多这个项目如何重要,但是却让人看不清楚他个人在其中的作用。殊不知如果有你没你都一样,不管这个项目多伟大,你的作用还是等于零。


一定要在讲清楚项目重要性基础上讲清楚你对项目产生了什么影响。比如:因为你设计实现的负荷分配算法,系统某核心模块的吞吐性能提高了 250%,在客户三季度业务增长 190% 的情况下,系统没有崩溃。这样,再配合同事评语对你的印证,和你的设计文档和代码提交记录作为证据,你的贡献就清楚多了。


最后祝大家灵活应用程序员护发技巧,在职场顺风顺水,少走弯路少踩坑,多出成果多留发。咱们下次再见!


~~~~~~~~~~


猜你会喜欢:

~~~~~~~~~~


关注老万故事会公众号:

本公众号不开赞赏不放广告。如果喜欢这篇文章,点个在看,转发给朋友就是对老万的最大支持。谢谢大家🙏

继续滑动看下一个
老万故事会
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存