最近和在华为就职的同学,聊了下近况,聊了关于生活和职业发展的规划,他说了一句让我印象很深刻的一句话,“除了魔法师,程序员可能是这个世界上我最喜欢的职业了。”从这句话中,我听出了他对程序员这份职业的热爱。我自己也入行程序员多年,深深地明白程序员这个职业中,各种各样的从业者都有,有的人很认真,有的人则不太认真。综合看来,真正热爱程序员这份职业的程序员,大多有以下八种魅力,或者说是特征。
1.对工作永远认真细心,充满激情
我想这是最能够体现一个优秀程序员的特征,而且不仅在计算机行业,这点适用于任何行业的优秀工作者。如果你真正关心你做的工作,不只是把它当做一个工作去应付,而是一个兴趣、一件对你有着莫大魅力的事情,这时你会从内心中催生使命感,想方设法把事情做好。好的程序员会一直保持着写代码的状态,每天花在工作上的时间都不低于8个小时,包括工作和空余时间。在编写项目和授业解惑两者之间,他们不会偏向任何一方。他们不会只是为了搞清楚某个东西的工作原理,而整天痴迷于新技术或新的编程语言,而是真正的去运用现有的技术解决当前的问题。
2.擅长利用互联网获取信息
对程序员来说,一项非常重要的技能就是解决问题的能力,解决未知问题离不了搜索引擎。很多比较偏的技术问题,通过谷歌搜索都可以在Github、StackOverflow中找到答案,因此程序员一般有很强的信息搜索能力和整合能力。而相反生活中有很多的伸手党,就留下自己的电子邮箱,让别人把所有的好资源全都发过去的人。很多问题百度查一下就可以了,但是他们自己不愿意去查找那些资料,美其名曰抱大腿,实际就是懒惰成性。程序员们更愿意自食其力。只需要别人提醒几个关键词,就知道该怎么找到相关资料。
3.坚持终身学习,与时俱进
绝大多数人的学习与进步,大多数都停留在大学毕业那天。步入职场后,脱了老师和学生的教学环境,也不用考试了,出于惰性,就开始拒绝更新自己的知识,不想去了解非自己专业领域的知识。而一旦有了老婆孩子,更加有借口推脱,不去学习了。而我见过的一些能力很强的程序员,几乎都有阅读的习惯,至少每个月会读完一本严肃的书籍,不断追求更多跨学科的知识。他们奉行的终身学习,坚持阅读和运动,极度自律。
4.基于逻辑思考而不是空想
人们似乎有一个共识,作为小孩子,思考问题天马行空,没有任何的逻辑性,但是大人会觉得这个小孩想象力非常丰富,思维非常活跃,这是个优点。但是如果作为成年人,说话前后逻辑不一致,前言不搭后语,我们会觉得这个人非常的幼稚可笑。因此,作为成年人很多时候不受约束的想象和思考,是没有什么价值。可能吃个饭的时间就能从原始人联想到人类演化史,再联想到灵长类动物的进化和人类的几千年历史。但是程序员吃饭的时候,更多的是思考自己的代码逻辑漏洞或者程序BUG,孜孜不倦的对自己的代码逻辑不断优化,提高程序的稳定性。
5.以严谨的语言描述问题和解决方案
之前看过一则小笑话,老婆给当程序员的老公打“下班顺路买一斤包子带回来,如果看到卖西瓜的,买一个。”当晚,程序员老公手捧一个包子进了家门。老婆怒道:“你怎么就买了一个包子?!”老公答曰:“因为看到了卖西瓜的。if看到卖西瓜的then买一个包子else买一斤包子!”从这个笑话中,可以看出大多数程序员的严谨是来源于计算机编程,程序思维的要求就是严谨,不能出错,相信没有一个人会喜欢用漏洞百出的应用程序。在日复一日的编程开发中,程序员身上沾染了程序的特性也就不奇怪了。
6.始终发挥出工匠精神,不放过可能的BUG
不管是系统初始设计的时候,还是系统后期维护的时候,都需要考虑各种使用场景以及应对方案,保留系统的扩展性,增加健壮性。因为一旦程序无法正常运行,客户便会上门投诉,要求把问题解决。程序员不发挥出工匠精神,最终坑的还是自己,外人会认为这段程序可能不是你写的,但是是你们程序员写的,因此很多时候,程序员需要“填坑”,而在填坑的过程中能见到工匠精神的背影。
7.直率地表达自己的想法,不惧权威
程序员之间的交流大多数是以代码和注释作为沟通的媒介,而一段代码,一个程序,它运行正常就是正常,有异常就是有异常,这是非常显而易见的。资深专家编写的代码不会比普通人更有效,一种不好的编写方式,不会因为人变多而变得更加好。因此,在编程领域,评价是相对客观的,编程者既不需要博取权威人物的青睐,也不需要媚俗,忠实的按照自己的想法表达和编写即可。
8.因时制宜,及时调整
由于计算机领域的知识层出不穷,知识迭代更新速度快,因此很多时候需要程序员们对当前技术进行取舍,或者寻找当前问题的最优解。而且程序员经常以乙方的身份出现,也需要按照甲方的需求,修改变动,迅速调整方向。因此程序员其实在工作中能很快地适应新的方向,调整自己的应对策略。
总结
当一个优秀的程序员,利用自己的业务时间,做自己感兴趣的项目、在创造新的的工具的时候,他非常容易进入心流的状态,而且还会不自觉的吸引周围人的注意,让人心生敬佩。优秀的程序员不会将计算机专业看做赚钱的工具,而是一种改变世界的手段,我想这应该就是造就一个伟大程序员的真正原因吧。对我们程序员而言,编程,意味着创造新的世界,加油!
(原创不易,如果喜欢请随手