做个编码的专业人士

        今年发现一个严肃的问题,自认为学了很多的java知识点,但是还是写不好一手代码。被架构师诟病,写的代码不够“优雅”。自己心理也是认的,如果是知识储备是术,那么能把代码写简洁易懂,就是道了。于是乎一口气从某东上下单了《重构》、《代码整洁之道》、《代码整洁之道-程序员的自我修养》,打算好好研读下,让经典帮自己少走弯路, 尽早“优雅”起来。

        先是读完了《代码整洁之道-程序员的自我修养》,明天出差,想的今天赶着把读书笔记写一写,有输出,才能证明输入是有效的。

        先让我们理解什么是“专业”,鲍勃大叔通篇都在强调这两个字,是的,专业。专业人士,能有很多的定义词汇,比如靠谱,比如负责,比如具备丰富的经验,专业人士的定义可以说是太多了,但是归根结底,笔者认为就是一点:总是可以不负期待的在自己的领域内将任务完成。

        职业与职业之间必然是存在壁垒的,但是终归一点,就是“解决问题”,销售一方面完成销售工作解决公司盈利问题,一方面解决客户需求问题,木匠制作家具满足西消费者对家具的需求问题;专业的程序员,绝对不会只是一个“代码机器”,收到产品经理的需求任务就去哐哐哐敲起来,作为最接近功能的人,是应该对于功能思考更多的。所以我们常常会看到程序员与产品经理争到面红耳赤,不过鲍勃大叔有一句很关键的话,讨论,不该是长期的,讨论,更不是辩论,如果双方长期僵持不下,只有两个可能,第一是可能存在犟驴,第二是双方的观点和内容其实都不够硬,没法说服对方。而在于双方都无法说服对方时,最好的还是将问题升级,让上级来做决断。

        专业人士意味着什么?意味着职业发展的顺利,团队的尊重,更高的自我价值的实现。而如何成为一名专业人士呢,首先第一步,就是要学会说“不”。比如在于工期上,当遇到不合理的催工,缩短工期,临时改需求但是同时要求同样的时间完成。可能很多朋友任务这种拒绝,会给领导带来不好的印象,会导致公司失去对你的信任之类的。实际大可不必有这种担心。如果将学会说“不”说的更具体一些,笔者认为,应该是在学会知道在什么时候说“不”。这种拒绝,实际恰恰是一种对工作认真负责的表现,能够合理的判断时机,是建立在对业务的熟悉和对功能的工作量的预估准确量之上的。这是因为说“不”之后,肯定是会有为什么说“不”,如果只是单纯的拒绝而没有后续,或者找个借口之类的搪塞,那下场肯定会很糟糕。尤其是找借口或者硬套理由的,把别人当傻子,你就是傻子。说“不”,同时是将问题暴露出来。比如A功能在经过你的预估后,一周是完不成的,这时候一定要及时提醒对方,笔者最近也犯了这个错,当时有个功能完成了,项目经理临时通知要改,一开始笔者以为很快就可以完成,便许诺应了下来,当天完成。但是越改越发现问题越多,A功能之前是基于之前写过的B功能完成的,后来A功能改动了,导致之前的B功能基本无法使用,很多地方需要重新去写。而之后的结果,就是责备了,有种“失信于人”的感觉。其实如果当天我先花10分钟时间回头看看内容,思考下,就会发现当天完成是很危险的事,便可以将风险提前暴露,相信也会得到大家的理解。而这种风险放到之后才说,就好像你去饭店点菜,等了半小时后,服务员来告诉你,今天这个菜少食材,没法做了,这时你的感受,就是其他同事和项目经理对你的感受了。而说不,就是说今天这个菜,做起来比较慢,可能要等1个小时,可以接收吗。

        第二点,要对自己的工作内容负责。鲍勃大叔举了个例子,是一名开发写错了一项功能,导致公司损失了一笔资金,几千还是上万忘记了,最后的补偿措施,是这名开发自己出钱把这个损失弥补了。其实这种情况笔者还没在现实中有见过,但是其中的精神,却是值得我们去借鉴的。是一种对任务“负责到底”的态度。这种负责到底,放到开发任务上,笔者认为会有以下几点体现:1.见名知意的类名,方法名;2.恰到好处的注释,坏注释多余的注释,和坏代码一样令人难受;3.对于结果的自测,直到确保功能万无一失。鲍勃大叔将程序员的工作和其他工作进行了类比,如果医生失误了会怎样?如果歌手失误了会怎样?如果挖掘机师傅失误了会怎样?不展开讨论了,“专业人士”就是要减少甚至消灭自己可能会存在的失误。你之所以失误,只能说明你还不够专业罢了。以前兄长有句话,对待工作,要有走钢丝绳的态度。我很喜欢这句话,所以今天把它也写在了我的这篇笔记里。

       第三点,持续的学习和练习。其实将这种持续的学习和练习,放在任何一个行业都是可取的。没有哪个行业是可以不学习不练习就能做的。或者说,没有哪个行业,是可以不学习不练习就可以干好的。持续学习是精进的最好办法之一,笔者虽然没有读过一万小时精英定律,但是笔者对这句话的理解,是持续在某个工作领域内学习进步一万小时,你就会是这个行业的精英了。复利和原地踏步,结果肯定是天差地别。找到属于你自己的舒适区和困难区中间的那个点,再去突破它。舒适区使人原地踏步,困难区使人望而止步,它们中间的那个点,既有挑战,又有把握,拿下他,日拱一卒。

        以上三点是笔者对于鲍勃大叔的专业人士定义主要收获。鲍勃大叔同样分享了他多年下来积累的一些“小技巧”。比如在写代码的时候听音乐,这种其实很容易被音乐影响思路,因为你不得不分出一部分注意力去“解码”你所听到的歌词,其实笔者倒是推荐听听纯音乐。再比如要警惕“心流”状态,过度专注可能会导致思维反而丧失活跃度,推荐了番茄工作法,专注工作半小时,休息5分钟,番茄工作法的妙处在于,专注工作半小时,这半小时内,只做你要完成的工作,其他什么都不做,甚至喝水接电话,不让其它任何杂事打扰到你,核心的点还是在于效率。

         写在最后:你还记得你当初写完的第一个程序吗?它是否鼓励着你开始了你的编程之路?

你可能感兴趣的:(做个编码的专业人士)