总有一天,当硬盘里代码堆积如山;当笔记里文字成海。要做的是删掉那些所谓的金科玉律,将这些东西养成习惯深入骨髓;删掉那些经验积累,因为你已经能洞察这些东西背后的道理和原因;
当某天你觉得你已经能够轻松的应对工作的时候,切勿忘记,工作是为了更好的生活,这才是最简单的道理。
前言
高中的时候,老师教训一个学生说:我教了二十年书,第一次碰到你这样的学生。学生不甘示弱的回答:你是教了二十年书还是教了一天书重复了二十年?
工作至今,我一直拿这段句话来提醒自己不要虚耗光阴。如果人生不能积累一些什么;经历一些什么;改变一些什么,真的和咸鱼没有什么分别。
从事软件设计快十年了,这其中踩过的“坑”越多,越会感觉这段经历的重要。如果没有这段经历,我想我也同当年那个学生说的,我不过是写了一天的代码而重复了十年。
很多新人问我,老手和新手同样是写代码,差别在哪?差别就在这经年的历练。
择业
我是学通信工程出身的,并非计算机专业科班,走上这条道路并非由我自主选择。有句话叫做“天才也怕入错行”,我能进到现在这个行业可以说是幸运也是必然。
说幸运是因为毕业时非常迷茫,根本不知道自己能做什么,恰巧有个公司的招人标准几乎是为我量身定制的,于是就走上了这条道路;说是必然是因为我虽然对软件设计并不是最感兴趣的,恰恰是自己所有技能里最擅长的。
之所以把择业看的很重要,是因为如果不能对自己的职业感兴趣,就会如同盲人一样看不到自己工作中的细节,俗称“不走心”;但是如果仅仅是感兴趣却不擅长也不行,那就是有力使不上。人生难得圆满,往往感兴趣和擅长两难全。
如果实在难以选择,还是选最擅长的。毕竟兴趣可以培养,祖师爷没赏那口饭吃,光凭努力并不能改变某些事实。
入门
如果没记错的话,应该是比尔盖茨说的,大意是软件从业者的编程习惯在刚入门的前两年已经养成,之后就很难改变了。这恰恰是我入门学到的最重要的一课。
什么是好的编程习惯,随便一说就能拉出一个很长的单子。但真正区分高手和新手的是,对这种习惯的重视和身体力行。
我所带过的实习生中,有很多命名规则、注释和格式刚开始都是一团糟。为此我苦口婆心的说过,也曾怒骂过,但效果寥寥,所以他们暂时做不成什么东西。说说一个好的编程习惯有多重要,举几个例子。
例子1:某单位软件出问题,需要临时改代码,偏偏设计该软件的人不在。由于牵扯到我方,我主动提出看看能不能帮忙排错。大致浏览了一下代码,命名都是很有规律的,模块化做的也不错,很快就能找到出错的地方,故障很快排除。
例子2:某次软件故障,想了很久都没有想出问题。很幸运的是拿着设计文档请教别人时,某根本不懂软件的总体人员看出了流程上的一个错误,问题也很快解决。
看到鞭子的影子,立即身体力行的是千里马;被鞭子打了,才开始干的是普通马;被鞭子快打死都不改的是劣马。回首往事,我现在推崇的一些习惯和细节大多是踩完坑后,自己才真正意识到它的重要性,只能算一匹普通马。
如果感兴趣的话,有一本书叫《代码大全》。虽然名字起的很俗,但里面对于这种习惯的金玉良言却很多。这些习惯从知道、做到、做好,我想这就是成长的意义吧。
修炼
曾经读过《狼图腾》对其中的狼性颇为推崇,而我在职场中发现很多人恰恰缺少了这种狼性。大而化之,很多程序员总是自嘲为屌丝;很多单身程序员自称单身狗。
这恰恰是缺少这种狼性精神,不自信的表现。我从不承认自己是屌丝,我觉得自己暂时是草根。
然而这种自信的确不是自己自封的,而是别人给的。当你拥有一种问题到我这为止的终结能力,自然会迎来别人的钦佩之情,人自然就自信了。
终结问题的能力难不难得到,难!但是难学能学,难行能行,难不意味办不到。能力是从摸爬滚打中得到的,摸爬滚打不是每天八小时公司的那点事,功夫在八小时之外。
首先是要大量的读书,我曾经每个月拿薪水的四分之一买书。读书是很讲技巧的,不是说读完拉倒,做读书笔记作用也不大,而是要知行合一。
书上的习题一定要做的,书上的范例就算看懂也要实际的敲到电脑里跑跑看的。然后就是尝试用书里学到的东西做做项目,往往一个项目下来你再回头读一遍书,会发现很多沧海遗珠。
软件行业技术瞬息万变,每个新东西,一定要按照网上的教程尝试尝试,最多用不上也可以作为谈资。最后就是要和高手多交流,请客、激将无所不用其极,只要能学到技能就好。
成长
其实一直在说技能、在说代码,这些算是我工作三年时左右的心境。总有一天,你会发现常用语言信手拈来,不会的也能在极短时间内学会并用上。然而你终究会发现一些你所沉迷的代码所不能解决的问题,例如神秘莫测的BUG和创意无穷的用户。
有没有遇到完全没头绪的问题时,某高手路过调整下某行位置就能解决问题的经历?有没有碰到奇葩用户的奇葩操作习惯导致软件故障的经历?
的确,这些饭后谈资很多人也仅仅是在饭桌上博人一笑也就算了。但是,恰恰是对这些情况深层次的思考和笔记构成了所谓的工作经验。
某年某月,同事软件故障,查了一周代码无果找我帮忙。我一看错误框就猜到了第三方提供的模块是release版本,他用的是debug版本导致运行时冲突引起的。
因为在某年某月,我曾经为这个问题敖红了眼睛。某年某月,反应软件运行一段时间无响应,同事查了很久代码无结果,我稍微看看就知道网卡设置不对,省电模式自动停止运行。
这个也是给某客户做技术支持时无意发现的。这种积累往往是代码之外的事,有的时候的确需要跳出问题来看问题。
繁简
大道至简,我一直很推崇这句话。正如无数数学公式和大自然的规律,总是寥寥数语,道破了人世间的种种繁杂。工作数年,很容易把书读厚,却很难把书读薄。
当我耐心的跟新人絮叨谢细节的时候,有些人会反诘:编程最重要的是思想,不是这些稀稀拉拉的东西。这话说对也对,编程的确最重要的是思想;说不对也不对,连基本功都打不牢,何谈思想。
光学习不思考,人会迷茫;光思考不学习,人会懈怠。总有一天,当硬盘里代码堆积如山;当笔记里文字成海。要做的是删掉那些所谓的金科玉律,将这些东西养成习惯深入骨髓;
删掉那些经验积累,因为你已经能洞察这些东西背后的道理和原因;当某天你觉得你已经能够轻松的应对工作的时候,切勿忘记,工作是为了更好的生活,这才是最简单的道理。
资讯来源说明:本文章来自网络收集,如侵犯了你的权益,请联系QQ:850873385进行删除。
Copyright © 2014-2018 500d.me. All Rights Reserved.