2022年程序员_修养 .pdf
《2022年程序员_修养 .pdf》由会员分享,可在线阅读,更多相关《2022年程序员_修养 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、只做正确的事对于软件这一行的人, 我们有个很大的挑战, 就是如何能够用正确方法的做事情。什么是正确的方法,这依赖于你在做什么和做给谁。 而究竟所谓“正确的方法”里都包括了什么内容,这并不是重点,重点是你是否能坚持按照这种方式做事。初级程序员在这个问题是通常不能做到坚持,而资历较深的程序员却能始终坚持原则。也许会有一个“非常紧急”的项目,或者这个项目很特殊,不能按常规过程开发。这只是个假象。好的程序员知道即使在任何情况和环境下都要坚持做正确的事情。如果说按正确的方式开发将导致不能按时完成任务,那么,他们就会知道,这个项目是不能按时完工的。不要妥协,工程质量是你作为一个优秀程序员的唯一终极证明。确
2、保你所有的代码都是在正确的方法下100% 正确的写出的。要按一个优秀的程序员的标准来要求自己。甘愿受苦听起来很傻,但却是真的,优秀的程序员都乐于承担工作上给他们带来的痛苦。你说出一个伟大的程序员,我都能告诉你, 在他或她的职业生涯里,各个阶段,都曾有花好几天时间去解决一个问题的经历。优秀的程序员品味着困难给他们带来的挑战,这让他们日以继夜,他们明白,问题必须要解决掉。不太优秀的程序员就不一样了, 他们在刚刚碰到有麻烦的迹象时就先想到要寻求帮助。 在问题面前,他们习惯于去寻求帮助, 而不是自己去努力解决这个问题。他们最喜欢的一句话是:“帮我看看这个问题”。伟大的程序员的第一反应是我要自己解决这个
3、问题。 解决问题是种技能, 是优秀的程序员非常看重的一种技能。好的程序员是通过痛苦的磨练才成为伟大的程序员的。痛苦的磨练是说当你对这个问题实在无能为力时才去请求外援。求助就意味着认输,所有尽量减少这种处境的发生。甘愿受苦。和问题做不懈的斗争。这就是你要学会的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 注意: 我并不是说你不能寻求他人的帮助。我说的是,你首先要尝试自己去完成任务,如果你不能完成, 再寻求帮助。 不要在自己没
4、有努力过前就轻易的求助。你经常会发现, 当你知道了解决方法后, 你才认识到, 你用自己的力量本也能解决这个问题的。学无止境如果有人敢声称他不需要再学任何新的知识,我是绝对不愿意和他共事的。在有些行业,你也许很多年不学新的东西也能干的很好,但软件技术革新的如此之快,你不能不时刻关注。你的老板是由于你有某些技能才花钱雇你的,如果你的技能已经落伍、过期了,那你也就没有价值了。想成为一名伟大的程序员,你首先要承认你不是无所不知,你必须每天都要努力的寻找、学习新的知识。在你现在的公司里或组织里寻找能让你学习、让你钦佩的人。 在复杂的问题上征求他们的意见,看看他们是怎么思考的。向他们介绍你的解决思路,请他
5、们给予批评指点。如果在你的周围你不能找出一个能作为你的导师的人,这要么是你还没有认真的寻找,要么是你留在了一个不该留的公司里。如果你在现在的工作上不能学习进步,那是到了你该换个工作的时候了。要阅读网上的博客。 关注一些研讨会。 与其他程序员交流。 伟大的程序员从不停止学习。分享知识有一些程序员认为, 他们的唯一价值所在就是他们所拥有的知识,于是,分享出他们的知识就会让他们的价值降低。这是大错特错了。让你有价值的不是你的知识,而是如何运用你的知识给公司创造价值。难道还会有比分享知识给他人更能给公司创造价值的方法吗? 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
6、 - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 我曾经面试过一家公司, 知识不共享、 相互保密、 相互提防的理念在这家公司里根深蒂固。在这样的环境里,员工之间形成了一种恶性竞争的关系,这直接导致了勾心斗角和诬陷中伤的产生。我可不想在这样的公司里工作。如果每个人都对自己知道的事情讳莫如深,那你什么都学不到。伟大的程序员希望他人也能知道自己所掌握的知识。他们并不担心会因此而失去优势, 因为他们相信大家都会这样做。伟大的程序员乐意看到他们的同伴成长、成功。 一个公司,它应该被一群喜欢知识共享的人组成,就像人们在
7、运动场上,让团队的每个对员都强大起来,整个团队才会强大。伸出援助之手伟大的程序员从来不会说“这不关我的事”。他们总是愿意伸出援助之手。 他们经常在做自己的工作之余, 去帮助那些编程新手。如果有件任务必须按时完成,而又没有其他人能胜任,伟大的程序员会主动承担起这项任务。他们从来不嘲笑来请求帮助的人,即使问题是那么的小、那么无意义、无价值。伟大的程序员重视他们的团队,愿意为团队做任何的事情。不管是要去写 1,000 行的代码,还是去编辑一个图片,伟大的程序员都会立即站出来帮助完成。十年磨一剑伟大的程序员不是天生的, 是后天炼成的。 他们是本文上面提到的那些因素造就的,加上还要通过努力的工作。如果你
8、是刚刚意识到这些,那还不晚,你仍然有充分的时间来成为一个伟大的程序员。耐心是关键。伟大的程序员不是在旦夕之间就可以成就的。 有些人可能要花上数年,有些人则需要十几年。没有人为你写血泪史。好的公司当发现你有成为伟大程序员的潜质时,会帮助你,为你提供舞台。而你会通过你的努力工作、让你的团队进步来证明自己。要坚定,要自律,通往伟大程序员的道路会很长。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 程序员应具备什么样的素质程序员是一种
9、技术工作,在IT 的发展中有相当重要的地位,从底层硬件通讯协议的建立,到数据传输层的处理,到操作系统的建设,到数据库平台的建设,一直到应用层上各种数据营销平台的搭建,程序员在里面都扮演着举足轻重的角色并为 IT 事业的发展做出了巨大的贡献。中国有很多精于编码的人, 但是中国软件行业, 尤其是网络应用开发方面误区很大,很难形成有规模的软件开发力量和产品能力,不但比美国差距甚远, 和印度相比也是颇有不如。 这些问题不是在于中国程序员的智商和工作努力状况,也不是在于国家和民间对开发的投入程度,而是很大程度上, 有一些对技术, 对程序开发,对项目设计方面的思想误区,这些误区, 导致了软件行业的产品化能
10、力不足,缺乏规模化和大型复用系统研发能力,可以说,改变认识误区,是解决软件行业小作坊模式和个体英雄模式所带来的局限性的重要工作。中国有很多小朋友, 他们 18,9 岁或 21,2 岁,通过自学也写了不少代码, 他们有的代码写的很漂亮, 一些技术细节相当出众, 也很有钻研精神, 但是他们被一些错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,他们实际上只是一些 Coding fans ,压根没有资格称为程序员,但是据我所知,不少小网络公司的 CTO就是这样的 coding fans,拿着吓人的工资,做着吓人的项目,项目的结局通常也很吓人。程序员基本素质:作一
11、个真正合格的程序员, 或者说就是可以真正合格完成一些代码工作的程序员,应该具 有的素质。1:团队精神和协作能力把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。 把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的, 即便如 linus这样的天才, 也需要通过组成强大的团队来创造奇迹,那些遍布全球的为 linux写核心的高手们, 没有协作精神是不可想象的。独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人就完全不合格了。2:文档习惯说高水平程序员从来不写文档的肯定是乳臭
12、未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 缺乏文档, 一个软件系统就缺乏生命力,在未来的查错, 升级以及模块的复用时就都会遇到极大的麻烦。3:规范化,标准化的代码编写习惯作为一些外国知名软件公司的规矩,代码的变量命名, 代码内注释格式, 甚至嵌套中行缩进的长度和函数
13、间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。有些 coding fans 叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。再看看整个 linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。4:需求理解能力程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上, 而忽视了本身代码的性能考虑,有人曾经放言说写一个广告交换程序很简单,这种人从来不知道在百万甚至千万数量级的
14、访问情况下的性能指标是如何实现的,对于这样的程序员,你给他深蓝那套系统, 他也做不出太极链的并访能力。 性能需求指标中,稳定性,并访支撑能力以及安全性都很重要, 作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2 到 3 年的项目研发和跟踪经验才有可能有心得。5:复用性,模块化思维能力经常可以听到一些程序员有这样的抱怨,写了几年程序, 变成了熟练工, 每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。复用性设计
15、,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些, 不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - -
16、- - - - - - 一些好的程序模块代码,即便是70 年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力。程序员应具备的素质中6:测试习惯作为一些商业化正规化的开发而言,专职的测试工程师是不可少的, 但是并不是说有了专职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早, 解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试, 就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保
17、证。测试工作实际上需要考虑两方面,一方面是正常调用的测试, 也就是看程序是否能在正常调用下完成基本功能, 这是最基本的测试职责, 可惜在很多公司这成了唯一的测试任务, 实际上还差的远那; 第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试, 用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试, 频发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到的需求理解能力。7:学习和总结的能力程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年程序员_修养 2022 程序员 修养
限制150内