程序员的职业素养-读书笔记

本文深入探讨了编程专业主义、有效沟通、代码质量、自动化测试、时间管理等核心议题,旨在帮助程序员提高效率、减少错误并实现职业成长。通过强调专业原则、编码规范、测试驱动开发和高效协作,作者提供了实用的建议,旨在培养具备高度责任感和创新能力的程序员。
    花三分的力气去抵制无理的需求,可以节省十分甚至二十分的开发时间。 

引言
    辞职是突然的,而且是有预谋的。
    辞职前一定要找好下家,要非常冷静,非常趁着,不要拉上其他人。


第1章   专业主义
    专业主义的精髓就在于将公司的利益视同个人利益。专业主义就意味着担当责任。
    未进行测试就交付软件就是不负责任的。
    软件开发太复杂了,不可能没什么Bug。单很不幸,这并不能为你开脱。
    代码中难免会出现bug,单着并不意味着你不用对他们负责;没人能写出完美的软件,但这并不表示你不用对不完美负责。
    所谓专业人士,就是能对自己犯下的错误负责的人,哪怕那些错误实际上在所难免。
    失误率永远不可能等于零,但你有责任让它无限接近零。
    让QA找不出任何问题,要确信代码正常运行,自动化QA。
    如果你有一套覆盖了全部代码的自动化测试,如果那套测试可以随时快速执行,那么你根本不会害怕修改代码。
    职业发展是你自己的事。雇主没有义务确保你在职场能够立于不败之地,也没有义务培训你,送你参加各种会议或给你买各种书籍充电。
    将自己的职业发展寄希望与雇主的软件开发人员将会很惨。
    不能铭记过去的人,注定重蹈先人的覆辙。
    每个专业开发人员必须精通的事项:设计模式、设计原则、方法、实践和工件。
    不写代码的架构师必然遭殃,他们很快会发现自己跟不上时代了;不学习新语言的程序员同样会遭遇,他们只能眼睁睁看着软件行业径直向前,把自己抛在后面。
    联系、合作、辅导、了解业务领域、与雇主/客户保持一致、谦逊、


第2章   说“不”
    “能就是能,不能就是不能。不要说‘试试看’。”
    如果他们是专业程序员的话,他们也会竭尽所能地去追求和捍卫自身的目标。
    要有团队精神。
    许诺“尝试”,就意味着你承认自己之前未尽全力,承认自己还有余力可施。
    尽管客户一再声明交付日期很重要,尽管他们对此表现得似乎非常迫切,但他们永远不会像你那样在乎应用程序的按时交付。
    专业人士常常会成为英雄人物,但这样的荣誉并非是他们所可以追求的。
    成为英雄及“解决问题”的诱惑诚然巨大,只是我们要明白,委屈专业原则以求全,并非问题的解决之道。舍弃这些原则,只会制造出更多的麻烦。


第3章   说“是”
    作出承诺,包含三个步骤:
        1. 口头上说自己将会去做。
        2. 心里认真对待做出的承诺。
        3. 真正付诸行动。
    你只能承诺自己能完全掌控的事。
    如果你无法兑现承诺,那么最重要的就是尽早向你的承诺对象发出预警,越快越好,越早越好。
    做出承诺或许听起来令人有点害怕,但它能够帮助程序员解决在沟通中可能发生的不少问题。如果你能够一直信守承诺,大家会以为你“是一名严谨负责的开发人员”。
    专业人士不需要对所有请求都回答“是”。不过,他们应该努力寻找创新的方法,尽可能做到有求必应。


第4张   编码
    首先,代码必须能够正常工作。代码必须能够帮你解决客户提出的问题。代码必须要能和现有系统结合的天衣无缝。其他程序员必须能读懂你的代码。
    如果感到疲劳或者心烦意乱,千万不要编码。
    在听音乐时无法写好代码。音乐并没有帮助我专注与编码。事实上,听音乐似乎消耗了至为重要的一部分脑力资源,而这些资源本该用于编写设计良好的整洁代码。
    中断无法避免,总有干扰会打断你、消耗你的时间。发生这种情况时,要记住一点,也许下次会轮到你去打断别人请求帮助。因此,礼貌地表现出乐于助人的态度才是专业的态度。
    对于公司来讲,调试时间和编码时间一样昂贵。
    绝对的零调试时间是一个理想化的目标,无法达到,但要将之作为努力方向。
    可以通过创建一个确切定义的“完成”标准来避免交付失误。最好的方法是让业务分析师和测试人员创建一个自动化的验收测试,只用通过这些验收测试,开发任务才能算已经完成。
    编程很难,事实上,仅凭一己之力无法编写出优秀的代码。即使你的技能格外高超,也肯定能从另一个名称需要的思考与想法中获益。


第5章   测试驱动开发


第6章   练习
    现在我们有了更好的工具,更好的语言。可是,语句的本质并没有随着时间而改变。20世纪60年代的程序员完全可以看懂2012年的代码。我们真正打交道的东西,40年来没有多少改变。
    任何事情,要想做得快,都离不开联系。
    无论如何,专业人士都需要练习。练习的时候你是赚不到钱的,但是联系之后,你会获得回报,而且丰厚的回报。


第7章   验收测试
    做业务的人和写程序的人都容易陷入一个陷阱,即过早进行精细化。
    完成意味着所有的代码都写完了,所有的测试都通过了,QA和需求方已经认可。这,才是完成。


第8章   测试策略
    
第9章   时间管理
    关于会议,有两条真理:会议是必备的,会议浪费了大量的时间。
    邀请你参加会议的人并不负责管理你的时间,为时间负责的只有你。所以,如果你收到会议邀请,务必确保出席会议可以给自己目前的工作带来切实且显著的成效,否则不必参加。
    如果会议让人厌烦,就离席。
    凡是不能再5分钟内解决的争论,都不能靠辩说解决。
    编程是需要持续投入精力和注意力的智力活动,注意力是稀缺的资源。
    睡眠的重要性怎么强调都不为过。
    太多的咖啡因会把你的注意力偏转到奇怪的方向。
    所有软件开发者都要遇到死胡同。慎重的态度和积累的经验可以帮你避免某些死胡同,但是没法完全避免所有的。所以你真正需要的是,在走入死胡同同时可以迅速意识到,并有足够的勇气走回头路。这就是所谓的坑法则:如果你掉进了坑里,别挖。
    最糟糕的事情,莫过于看到一群开发人员在徒劳地拼力工作,结果却陷入越来越深的泥潭。


第10章  预估
    预估是业务人员和开发人员之间最主要的障碍,横亘在双方之间的种种不信任,几乎都由它引发。
    承诺是关于确定性的。其他人会把你的承诺当真,据此拟定计划。
    预估是一种猜测。它不包含任何承诺的色彩。它不需要做任何约定。预估错误无关声誉。我们之所以要预估,是因为不知道到底要花费多少时间。
    专业开发人员能够清楚区分预估和承诺。只有在确切知道可以完成的前提下,他们才会给出承诺。此外,他们也会小心避免给出暗示性的承诺。他们会尽可能清楚地说明预估的概率分布,这样主管就可以做出合适的计划。


第11章  压力
    应对压力的诀窍在于,能回避压力时尽可能地回避,当无法回避时则勇敢直面压力。可以通过慎重承诺、遵循自己的纪律原则、保持整洁等来回避压力。直面压力时,则要保持冷静,与别人多多沟通,坚守自己的原则记录,并寻求他人的帮助。
    
第12章  协作
    对做的事情充满激情是好的,但是,最好把注意力集中在付我们薪水的老板所追求的目标上。
    专业程序员的首要职责是满足雇主的需求。
    你需要理解手上正在编写的代码的业务价值是什么,了解你的企业将如何从你的工作中获得回报。
    如果我们真想终生能以编程度日,那么,一定要学会交流——和人们交流。


第13章  团队与项目
    专业的开发组织会把项目分配给已形成凝聚力的团队,而不会围绕着项目来组建团队。


第14章  辅导、学徒期与技艺
    学校能够传授的是计算机编程的理论。但是学校并不会也无法传授作为一名编程匠者所掌握的原则、实践和技能。


分享该书的共享下载地址  http://pan.baidu.com/share/link?shareid=1591147589&uk=2167302790

转载于:https://my.oschina.net/bery/blog/158818

标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新点。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新点概述本文采用Python技术栈的设计方法和系统创新点。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值