程序员该有的非技术素质


1.精准地理解用户需求
在你制作每一张图表的时候,你其实是需要知道,这张图,给谁看,他从这张图想看到什么。站在用户的角度去思考这些问题,而不是站在数据角度。举个例子,比如想看两个网站近七日的访问量,简单粗暴的方法是直接把七日的访问量加起来比较,或者求个平均;那么你需要考虑,如果某一天一个网站的数据缺失了,你的结果尽管准确,但却不是用户想看到的结果。你需要忠于用户,而不是忠于数据。如果用户想看某个网站的稳定性,当你统计的时候,就应该展示数据库中的数据,使得数据出现异常时,用户能够通过这张图的反馈得知。
精准地理解用户需求,需要程序员愿意花时间去研究需求,绝大多数情况下,用户是不清楚自己的web或者app最终会做成什么样的效果,能够把功能描述完整,已经谢天谢地了。所以程序员需要自己去琢磨,这样的好处一是在和用户沟通时处于有利的地位,另外一方面也在程序后期写代码的过程中减少无用功,同时也大大减少了后期的返工时间。
事实上,每一次开发完毕之后,都觉得前期的需求分析时间太少,需求分析的不够详细,导致后期开发经常返工。

2.优秀有效地沟通能力
优秀表示你能听懂别人的话,有效表明你们这次沟通是有效的。之前一个做游戏的主策跟我聊过,策划最大的难题是如何使做出来的产品和自己最初的设想一样。人与人之间的沟通,即便他听懂了,却未必能100%按着你的想法去写代码。因为一次沟通无法做到确定所有的事务,所谓有效,就是能够按照约定俗成的规定来写代码。
比如查询前七天的数据,首尾两天是否包含,其实是一个约定速成的,而有效的沟通,就是能够当时就确定这些细节,在之后的开发过程中,按照确定的要求来做。
别人的时间宝贵,同样自己的时间也很宝贵。无效的沟通不仅仅会占用后期大量的开发时间和修改时间,更多的是影响自己及身边人的情绪,而一旦有了情绪,谁又能愉快地工作呢?
当你需要和别人沟通时,请务必想清楚自己想要确定的是哪几点,如果自己都不清楚自己和别人沟通的是什么,那么只能是浪费时间。
优秀的沟通能力还在于能够迅速地抓住争议点,这点真的非常重要,抓住争议点,才能心平气和地去讨论问题。就如同第一段之中举的例子,这是我自己亲身经历的一个争议。两个人争了半天,后来想明白争议点是用户时,自然地达成了共识。

3.尽量不打扰别人
这点真的太重要了,当你自己在思考一些问题时,最不希望被别人打扰;你午休的时候,不希望有人在晃桌子,你写代码的时候,也不希望身边有两人大声地讨论问题,甚至不希望旁边的同事在娱乐。
尽可能地不打扰别人,无论是对于自己还是身边的同事,都是非常重要的,是提升团队效率强大的方法。如果你百度能找到的东西,如果你自己翻聊天记录能确定的字段,真的不要去询问,因为这样除了显示你无知以外,还表明你不爱动脑子,更不爱动手。
程序员需要独立地思考问题,需要一颗谦逊的心,对占用同事的时间觉得不好意思,对同事的帮助或者指导感到感激,因为你并没有为别人付出什么。
不止一次地帮助别人解决bug,花费一个小时,结果发现是变量名写错了,目录进错了,少了注释,少了引用。真的摆脱,这些低级问题,不要去打扰别人,如果别人在帮助的你过程中没有收获,下次别人再帮助你时就没有那么高的积极性。更重要的是,这些低级问题,会严重影响你在别人眼里的评分。重要吗?真的重要,无论是对于人际关系还是个人的职业发展。
减少恶习真的很重要,很多在你看来习以为常的动作,有强迫症的人看来是非常痛苦的。和谐地开发环境,需要每一个人去营造,而不是只懂得享受。

4.对代码有追求
优秀的代码就是普通人也能看懂。清晰的思路,良好的排版,易懂且规矩名称,适当的注释,这些都是平时写代码的习惯。无论当时你写这段代码时,思路是多么的清晰,一个月之后你再看,倘若没有注释,你也无法一看出这段代码到底是干嘛用的,更不用说别人。
对代码有追求还在于你愿意回顾自己曾经写过的代码,即便写的再丑。只有不断地反哺,才会意识到下次遇到这种情况应该这么写代码,而不是随心所欲。
对代码有追求还在于尽量避免垃圾代码,对于自己写出来的繁琐的代码,愿意花时间和精力去重写。
对于后来人来说,这减轻了别人阅读代码的成本。
对于自己来说,良好的布局和排版,也锻炼了自己的逻辑能力。

5.自律
这其实是一个很大的话题,但对于程序员而言,我觉得自律其实非常重要,尤其是在无法考量个人工作量的时候。
程序员应该是一个让人自豪的职业,因为你的手,创造出了神奇的世界,架起来人类和机器的桥梁。
没有哪个公司用代码量衡量一个程序员的价值,而目前也没有比较科学的方式衡量一个程序员的工作量。业内有这么一句话:10个天才程序员胜过1000个平庸的程序员。事实也的确如此。作为程序员,如果不够自律,一是严重影响团队的工作效率,同时也影响自身的发展速度。这是一个只要你愿意学就能一直学到老的职业。技术这一行,没有终点的,所谓大牛,只是比多数人吃了更多的面包;所谓黑马,只是在同样的时间内,比别人吃了更多的面包。
自律的好处还在于营造一个良好的技术氛围。作为比较高级的工种,自律应该出现在每一位程序员身上,即便你们手里没有活了,回头重新看看自己曾经写过的代码,刷刷技术博客,看看高手写的算法,所有的这些,慢慢的累积,在今后的某个场合,你会不自觉的运用,而且认为这个就是自己想出来的。
事先准备的成本永远比临场发挥来的低,也来的更加轻松。

猜你喜欢

转载自4876391520.iteye.com/blog/2248120