一名合格的程序员应该是什么样子
6 月 25 号,母亲打来电话,说妹妹的高考成绩离二本线差 9 分。我听完随口扔了一句,“在我的意料之中。”因为她平时的成绩也就在二本线上下徘徊。
这句话挺伤人的,尤其是对于高考失利的妹妹来说,她听完我的话,立马就哭了起来,情绪非常激动,质问母亲为什么要打电话告诉我(玻璃心)。
我参加高考了两次,两次都离二本差了 6 分,最后不得已上了大专——当时也陷入了人生的低谷,情绪很低落。一路走来,能体会到学历对于一个人的重要性,尤其像我这种从农村走出来,缺乏生意头脑,不善言谈,急于改变命运的人。
后来,我通过培训正式进入了程序员的行业,自认为是一名合格的程序员吧——把本职工作做得很好,对得起自己的薪水,在生活与工作之间也找到了平衡点。
鉴于我的“成功”——买了房、结了婚、生了娃、买了车、出了书,父母就打算让我妹也成为一名程序员。说实话,我也有这样的打算,还曾创作过《教妹学 Java》的系列文章。
程序员属于一个僧多粥少的群体,女性自然而然的会受到男性的照顾。因为在我做程序员的 8 年时间里,就无偿、自愿、主动地帮助过不少(此处不能用许多)程序媛。
不管怎么说,我是热爱“程序员”这个职业的,假如妹妹也有做程序员的意愿,那我这个做哥哥的就要给出 3 条真诚的建议了——这也是义不容辞的事情。
01、能够解决问题
我认为,作为一名合格的程序员,首先要具备的能力就是“阶段性”解决问题。
所谓的阶段性,指的是初级程序员解决初级问题,中级程序员解决中级问题,高级程序员解决高级问题。
记得有一名小伙伴在知识星球提问题说,“二哥,我有不到 1 年的工作经验,领导总让我看源码去解决问题,我看得头大,有什么好的建议吗?”
我只能安慰这名小伙伴说,“你的领导不是一名称职的领导啊。”看源码是一件好事,这是毋庸置疑的,但如果强迫 1 年工作经验不到的程序员去看源码解决问题就属于强人所难了——天赋异禀的除外。
说实话,在我 8 年多的职业生涯中,很少通过看源码解决问题。当然了,你可以指责我不是一名优秀的程序员,我接受,因为我的首要目标是做一名合格的程序员。
合格的程序员,有自己解决问题的手段,比如我的手段就是:
1)找度娘。
2)找谷歌。
3)在博客园问题社区提问。
4)在 CSDN 论坛提问。
5)在 Stack Overflow 提问。
6)找同事帮忙。
7)找领导帮忙。
8)在大牛的群里提问。
实在是解决不了,也不要熬夜通宵,哭天喊地,回家踏踏实实地睡一觉,没准第二天一早就想到了解决办法。
你可能会觉得我这话很玄乎,但我时常有这种感觉,第二天睁开眼的时候,突然就有一个叫“答案”的东西慢慢地从天花板上飘落下来,然后我就伸出双手接住了它。
怎么解释这种感觉呢?我也说不清楚,但有个英文单词似乎可以解释——“epiphany”,中文意思为“对事物真谛的顿悟”,我喜欢称之为“天启”(灵感来自于 X 战警)。
可以这么说,这 8 年来,我还没有遇到解决不了的问题(就是这么信誓旦旦)。随着年纪的增长、技术能力的提升,看源码也就不像年轻时那么痛苦——渐渐地,看源码成为了我解决问题最后的杀手锏。
02、一颗不是“玻璃”的心
不得不承认,年轻的时候,我的心非常非常的“玻璃”。把自己拿出来做例子,实在是情非得已啊。
把时间拨回到 7 年前,我当时还在苏州的一家日企工作。有一次,团队中的一名成员在使用 if
进行条件判断的时候,使用了 =
而不是 ==
,导致程序出现了严重的 bug,而作为 Team Leader 的我竟然没有在 Review 和测试的时候检出这个“见不得人”的 bug。
领导在日本出差,被日本人骂的狗血喷头;而我,被领导的越洋电话骂的狗血喷头。当时气不过的我,躲在厕所委屈得流泪,还伴随着难以抑制的抽噎声。
当时的画面现在依然记忆犹新。
现在想想,真没啥好哭的,自己的确负有一定的责任,被领导骂一骂出出气,也是再正常不过的事了。但那时候的“玻璃心”经受不住批评,哭过之后还闹着要换部门。
我劝你们忍住别笑啊。
初入职场时,我们不被领导当众训斥的概率几乎为零。如果这时候玻璃心作怪的话,几乎会毁掉我们的职业生涯。我庆幸自己当时没有换部门,因为领导出差回来后,还特意请我吃了一顿大餐;后来涨薪的时候还特意照顾了一下。
作为一名程序员,我们要懂得自嘲、自黑,懂得释放自己的压力,我现在觉得,敢于称呼自己为“码农”、“IT 民工”的程序员特别可爱,特别有勇气。
如果是现在的我,再因为少个 =
被领导训斥的话,我就敢肆无忌惮地说:“领导大人请息怒!写个 bug 咋地啦,小王同学又不是故意的,我现在去改一下,马上再发布一个版本;另外,下次 Review 的时候我一定再仔细一点。”
领导没准还会被逗笑。你看,不是玻璃心多好啊。
03、乐于分享
首先说一下我为什么乐于分享的原因:
- 作为知识的总结
- 作为备忘录
- 想帮助他人
- 建立个人品牌
说句实在话,我已经分享了数百篇文章,但这些文章并没有给我带来金钱上的直接利益。我之所以还在坚持,是因为我觉得未来有一天,我可能因此挣到一些钱;假如还挣不到的话,我在分享的过程中已经自我升华了。
很多程序员不敢分享的原因也很简单:
- 大牛已经分享过了
- 分享出来会不会被喷
- 技术深度不够
- 词不达意
- 没啥可分享的
再说句实在话,我在程序生涯的前 3 年时间里,也从来不分享。原因不外乎上面列的这几种。但当我从苏州回到洛阳后,自由时间一大把,没开始分享的那段时间里,除了打游戏就是看游戏攻略——游戏玩腻了,就觉得生活百无聊赖。
实在是不知道干啥,就开始读书,读完书,总觉得想说点啥,就开始在博客上分享读书笔记。写了一段时间后,竟然还有人阅读和评论;再加上公司也开始鼓励写博客(绩效奖),我就把工作当中解决 bug 的辛酸历程也分享了出来。
写着写着,我就发现了一个天大的好处:有些 bug 竟然在十天半月后重新跑出来吓我,但吓不着我了,因为之前的解决办法已经被我记下来了,按图索骥,轻松搞定。再也不用重新找解决办法,省掉大量的时间。
再写着写着,我发现写作水平也提高了(你可以翻看一下我以前写的文章,感受一下之前和现在之间的差距),所谓输出倒逼输入,技术功底也更扎实了,解决问题的知识库也更丰富了。如果稿费能再多点,就更完美了。
04、最后
我是一名极其普通的程序员,勉强算是合格,但和优秀的程序员相比,真的是自惭形秽。
但我总觉得自己身上有着某种特质,往好里说就是持之以恒的精神,尤其是在写作方面,我希望我的分享能够给你带来一点启发,那真是再好不过了。如果你真的从中得到了一点点益处,我会感到非常的高兴。
为了能够首尾相应,我还得透露一点我妹妹最新的情况,究竟是选择复读,还是上大专成为一名程序员(重复我当年的老路),她还在犹豫当中。如果你有更好的建议,还请和我交流交流。