程序员的立身之本可以从一下几个方面说起: 严谨细致、工作计划、记录和总结、编码规范。
严谨细致 —— 一种对人、对事、对自己都极为负责的态度。
为什么把严谨细致放到第一呢,因为这是一种对人、对事、对自己都极为负责的态度,这种态度将影响学习、工作、生活的方方面面,直至一生。有些人可能会说,不就是做个程序员吗?又不是造航母、造火箭、做精密仪器、或者给病人治病,就是写代码,还需要搞得那么严谨细致吗?难道真的是这样吗,至少我是不同意这样的观点!
出自《韩非子》的“慎易以避难,敬细以远大”,大意是说,谨慎地对待容易的事情,进而避免容易的事情变成难题,郑重的对待细小的事情,以免出现灾祸。其实就是古人对严谨细致的重视。记得毕业刚去公司,第一件事情,就是学习公司的严谨细致手册,公司愿意花人力、物力、财力那做一本小册子,并愿意投入时间来让新员工学习,可见其重要性。严谨细致就是认真的对待每一件事情,考虑周全,一步一个脚印的把事情做好,不放过每一个细节,把细小的事情做到极致。
怕就怕认真,怕就怕仔细,某些人大大咧咧,做事情粗心大意,学生阶段可能没什么,因为这个阶段犯错后所要承担的后果最轻的时候,但是工作后呢?如果你在腾讯或者阿里巴巴这样的大企业,你所写的每一行代码都会影响到上亿的用户;如果在写对账单的时候,少写了一个零了,那可能就是百万,千万的损失;如果因为自己粗心少写了一个括号,导致系统出现漏洞或者这个BUG查了一两个月呢。在学校的时候,每次考试,很多人会在不该丢分的地方丢分,不是因为不会做,而是粗心大意,如果就是因此少了几分而没有进入自己理想的大学,那将追悔莫及!
无论何事,都要认真对待,重视起来,即使是一件很简单的事情,即使是一场游戏。可能有很多玩游戏的朋友都有过这样的经历,一个完美的开局后,就心态就飞了,各种浪,后期被对面翻盘。认真起来,重视起来,这样才会去努力去思考一件事情的得失,进而有所提升。
认真仔细,进而少犯错,在公司将会赢得更多人的信任,老大有什么重要的事情,也愿意让你去做,同事有什么事情需要帮助,也愿意找你,因为你的行为和态度让别人很放心,这也将为自己赢得更多的机会!
严谨细致就是对自己的一种苛刻。其实能够作为程序员,智力上面都差不多,为什么别人做事情就能做得很好,而自己却不行了。很多时候就是少了对自己的严格要求,态度没有端正过来,觉得能做出来就行了,功能能做好就OK了。其实还有很多地方需要我们去做,代码写好后,是否自己已经review了?是否已经经过自己的初步测试了?哪些地方可以再优化一下?输入输出参数是否都进行了校验?异常是否都做了处理?异常是否都加了打印?是不是有更好的技术可以运用到项目中来?桌面的文档是否乱糟糟的没有整理分类?邮件是否已经归档?是否还有遗漏的文档没有写?完成本职工作,那是应该的,也是对公司应尽的责任,能够把本职工作以外的事情做好,那么就更能脱颖而出!细节决定成败,小事情如果能够做得很好,做到极致,那么将会比别人更优秀!
读书时代,每天的课程都是安排好的,只需要按照课程表和老师的安排进行,工作了不一样了,公司只会给出目标和需要的结果,却不会给出计划。只有目标是远远不够的,只有目标却没有计划,容易让人迷失在路上。目标是需要经过细化后才能知道是否是可实现的,怎么去实现,需要多久时间。每天为自己的工作排排计划,也是有助于以后个人承担项目做准备,如果自己的工作都管不好,怎么能去管理更大更复杂的项目呢!在公司,难免项目和事情众多,而且会经常被各种会议给打断,如果没有计划,很有可能就忽略了某些重要的事情,引来不必要的加班或者批评。
目标是需要经过细化分解的,就像项目需求一样,只有需求,是不知道怎么去实现的,是需要把需求分解为一个个的任务才行。而且工作计划需要和时间挂钩,这样才有紧迫感,也好评估工作进度和完成效率。为什么IT行业加班严重,一方面是由于事情比较多,会议众多,还有很大一部分是由于工作没有安排好,早餐9点上班,一来就打开电脑,看看邮件,刷刷新闻,看看微博,然后泡点茶,整点咖啡,差不多就10点多了,然后再去趟厕所和同事吹吹牛什么的,就快11点了,也差不多该吃午饭了。所以,很多工作都堆到了下午来完成,那怎么不加班呢?
工作中的计划,最好按天来做,提供一个模板:
计划安排(9:00 ~ 9:30)
xxx工作(xxx~xxx)
参加会议(xxx~xxx)
解决xxx问题(xxx~xxx)
回顾一天的工作(xxx~xxx)
--插入xxx会议(xxx~xxx)
给家人打电话
学习xxx(xxx~xxx)
写xxx学习或者总结文档(xxx~xxx)
最终完成的时间可能和安排有冲突,没有关系,只需要按照计划的去做就好了,而且计划也是可以随时修正的。
只会工作,不会记录和总结,那就真的成搬砖的了。
在工作中,我们会遇到各种问题,甚至有些问题整了很久才解决,短时间内可以很容易回想起来,但是时间久了呢,可能就忘记了,到年终总结的时候,都不知道自己干了些什么。记录,其实是我们工作中不可或缺的东西,俗话说“好记性不如烂笔头”说的就是这个道理。
平时工作生活中,都会遇到问题、困难、得失、突发奇想的想法、对某些事情的看法或者观点,这些都是我们丰富多彩的经历,如果都记录在文档中,随着时间的流逝,个人经历的增长,那么在工作中会越来越得心应手,因为我们不会因为遇到相同的问题,而不知道怎么解决,只需要翻翻该文档,就知道自己当初是怎么解决这个问题的。这个文档会变成工作中的调试宝典、个人经历手册。看看网上的牛人,哪一个不写博客,不写技术文档的,其实这也是提升自己的一种手段。
总结,是对我们所学知识的最好检验。
如果学习知识只有输入,没有输出,和没学有什么区别,特别是对于技术知识而言,技术知识最需要吃透的,学习的时候,都有这种感觉,觉得自己学会了,但是老感觉自己差了点什么,这个时候,就需要写总结了,通过总结,才知道我们在哪些知识点是没有吃透的。而且通过总结,也会反过来逼迫我们去学习,因为当知道自己无知了,这个时候是最有动力的。
总结也是锻炼我们表达能力、写作能力的一种方式。大部分人应该都不想一辈子只干技术,如果想提升自己,那么表达能力和写作能力是必不可少的,话说『干事的,比不过写PPT的』。平时做得再好,但是在关键的时候,写不出来,讲不出来,又有什么用,不是人人都能遇到自己的伯乐!
编码规范是很多程序员容易忽略的东西。因为在大多数程序员眼里,实现功能、完成任务是最大的目标,这也导致了很多程序员写的代码是一团糟,过一段时间回头看自己写的代码,往往不知道写的是什么,而且还会检查出一大堆问题。为什么会这样呢?因为忽视了编码规范的重要性。
编码规范是什么呢?编码规范是一种规则,也是个人的良好习惯。这种规则约束了我们在编码过程中应该注意的地方:文件结构、程序样式、命名规则、注释、表达式、括号、异常处理、打印等等(具体请参考林悦的 《高质量C/C++编程指南》 )。
很多人会觉得遵守这些规范,既浪费时间,也影响开发效率,这是不对的,编码规范是写出一份高质量代码的前提,也是作为程序员应当具备的基本素质。良好的代码风格,不仅仅是让自己以后方面阅读和审视自己的代码,也方便他人阅读理解。在公司一个系统的代码往往都是一个团队共同完成的,如果每个人都用自己的方式,不仅别人不好维护,也不好理解,更不利于沟通,而且还容易产生争执和冲突,这样反而影响了开发效率和进度。良好的编码风格,往往能减少错误。程序出错,往往不是逻辑错误,而是在一些简单的,让人忽略的地方出错。比如:输入参数没有判断导致程序运行异常;出错没有打印导致BUG很难定位;代码数字没有用宏替换或者定义为常量,导致修改的时候没有修改彻底,引起莫名其妙的问题;申请内存后忘记释放引起内存泄漏;编写函数的时候没有考虑到多线程,引起严重的问题。。。, 诸如此类的问题数不胜数。
那么怎么才能培养自己良好的编码习惯呢?那就是反复对照,反复修改。每次编写完代码后,就对照编程规则核对,看看是否有遗漏或忽略的地方,然后修改,再走读。刚开始可能很痛苦,但是通过这样反复长久的练习,要不了多久,自然而然就形成了习惯。