最近读了Bob大叔《程序员的职业素养》,文章讨论了专业这个词,程序员如何让别人感觉到专业,对里面的论点很有同感,所以记录下看书的心得。
序
文章提到了面试常常问这样的面试的问题,工作时遇到了哪些困难以及是如何解决的?其实这个问题很多面试官根本不care你的困难到底有多难,更多的是关注你解决问题的过程以及对这个问题的挖掘深度。通过这些可以解读出你对问题思考深度以及对工作的问题是否保持了足够的好奇心。
专业
责任感,未测试的功能绝不交付
产品质量,把0 bug作为永恒的追求,单元化测试率达到90%, 不断的重构代码
职业道德,工作时间高效为雇主工作,每周20小时为自己工作
专业领域,设计模式、设计原则、方法、实践和图表
业务领域
说不
专业人士敢于说明真相而不屈从权势,专业人士有勇气对他们的经理说NO!
如果工期很紧,可以确定哪些功能可以按期提供。
有时候提供太多细节,只会招致更多的微观管理。
许诺尝试,其实是在确保能够成功,如果没有达到预期,那么你就失败了。
快就是慢,打破这些纪律和原则,如果不好好设计代码,后面会越来越慢,直至项目失败
说是
识别缺乏承诺的征兆,需要、应当、希望、但愿
真正的承诺要有具体的日期,xxx天完成, 周几完成
承诺不能完成的原因,依赖其他的模块,任务太多真的搞不完(只能尽力达到自己的目标),不受控制的风险
(越早抛出越好,可以用另一个承诺代替现在的承诺)
编码
第一点是实现你需要解决的问题
第二点与现有系统的关系,不破坏现有系统的功能
第三点让其他程序员读懂你的程序
软件开发是一场马拉松,而不是短跑冲刺,需要保存体力和稳定节奏感来取胜
TDD 测试驱动开发
第一点在编好失败单元测试之前,不要编写任何产品代码
第二点只要一个单元测试失败,就不再编写任何单元测试代码,无法编译也是一种失败情况
第三点产品代码恰好能够让失败的单元测试成功通过即可,不要多写
TDD优势,功能正常,易于重构,设计解耦
练习
验收测试
测试策略
时间管理
拒绝不必要的会议
没有意义的会议选择合适的时机离席
紧跟会议的议程和目标
站立会议,昨天干了啥,今天准备干啥,遇到啥问题
时间拆分和番茄工作法
避免优先级错乱
预估
专业人员能够区分出预估和承诺,只有在确切知道可以完成的前提下他们才会进行承诺。
过于乐观的项目评估,它们最终花的时间是预估的3到5倍。
不管尝试加班的进度的压力有多大,专业开发人员都应该谨慎的设置合理的预估值。
大任务拆分小任务进行预估,可以忽略小任务的预估错误率。
压力
避免压力,不过没有把握的承诺、代码保持整洁、遵循开发纪律
应对压力,保持平静放松、寻找团队帮助、坚持开发纪律、结对编程
相关推荐
对于Java程序员和工程师来说,掌握J2EE的相关知识是面试中必不可少的技能。以下是对J2EE核心知识点的详细解释: 1. **Value Object(值对象)**:值对象是一种设计模式,用于在不同对象或层之间传递数据,通常不含...
"程序员面试学习笔记以及相关经验记录"这个资料集合,无疑为准备面试的程序员提供了一份宝贵的参考资料。这份名为"noteTest-master"的压缩包文件很可能包含了面试准备的各种要素,包括但不限于常见面试题、解题思路...
这些词汇对于程序员来说至关重要,因为编程语言本身就是英语为基础,理解和掌握这些专业术语能帮助程序员更好地阅读文档、交流技术问题、参与开源项目以及提升职业素养。 描述中的“有1700个单词”可能是因为在实际...
【程序员面试必须】的知识点涵盖了广泛的领域,但在这里我们将主要关注与“算法”相关的...通过阅读这些资料,不断练习和思考,你将能够提升自己的编程素养,为面试做好充分准备,甚至在BAT这样的大公司中脱颖而出。
【初级程序员考试试题真题】是一份集合了2006年至2009年间的初级程序员考试实际试题的资源,对于准备此类考试的考生来说,这...通过深入学习和反复练习,考生可以提高自己的专业素养,为未来的职业生涯打下坚实的基础。
在《软件测试[(美)ron patton]读书笔记》中,作者详细介绍了软件测试的相关知识点,包括软件测试的背景、开发过程、测试的实质、产品说明书的检查、闭着眼睛测试软件、检查代码、带上X光眼镜检查软件、配置测试等...
总之,尽管这篇读书笔记没有直接涉及具体的IT技术知识,但它传达的价值观——尊重人才、团队合作、关注健康、社会责任,都是IT从业者在职业生涯中应该秉持的原则,对于塑造良好的职业素养和个人品德具有深远影响。
在C/C++编程中,面试题常常涉及到语言的核心...理解并熟练掌握这些基本概念对于C/C++程序员来说至关重要,它们是编写高效、安全代码的基础。在面试中,能够深入讨论这些话题,往往能体现应聘者的专业水平和编程素养。
这份“Java程序员面试宝典+笔试题(最新)”显然是一份集合了诸多知名IT企业内部面试题目的精华资源,对于提升Java开发者的技术素养和面试成功率具有极大的价值。 首先,Java面试的核心部分通常包括以下几个关键...
《互联网面试笔记》是一部专为Java程序员准备的面试指南,旨在帮助开发者系统地复习和掌握在互联网行业面试中常遇到的问题。尽管主要针对Java程序员,但其内容也涵盖了编程基础,这对于任何技术背景的求职者来说都是...
5. 法规与标准:软件知识产权、信息安全法律法规、标准化知识等,体现了考生的职业素养。考生应熟悉相关法规,以便在工作中合规操作。 二、复习策略 1. 理解并掌握基础理论:首先,考生需要扎实地学习计算机基础...
这份笔记旨在帮助学习者系统地掌握这些重要技能,提升其在IT行业的专业素养。 首先,Java是全球最广泛应用的编程语言之一,以其“一次编写,到处运行”的特性而著称。在笔记中,你将深入学习Java的基础语法,包括...
1. **程序员考试**:程序员考试是中国计算机技术职业资格认证的一部分,主要测试考生的编程能力、软件设计能力和问题解决能力。它涵盖了计算机基础知识、程序设计语言、数据结构、操作系统、数据库等多方面的知识。 ...
《程序员面试宝典(c++)》是一本专门为C++程序员准备的面试指南,旨在帮助求职者在面试中展现出最佳的专业素养和技能。这本书结合了“WangDao”历代的经验,为读者提供了一份详尽且实用的面试准备资料。通过阅读和...
这本由Steve McConnel编著的著作深入浅出地讲解了底层编程的基础知识,对于提升程序员的专业素养大有裨益。这份读书笔记是以思维导图的形式呈现,便于读者快速理解和回顾书中的核心概念。 首先,我们从链接这个主题...
8. **软件工程**:除了技术细节,笔记可能还涵盖了项目管理、需求分析、文档编写、代码审查等软件工程方面的内容,帮助开发者提升整体的开发素养。 9. **持续集成与自动化测试**:CI/CD(持续集成/持续部署)和自动...
同时,笔记还强调了良好的编程习惯,如代码规范、注释清晰和可读性,这些都是成为一个优秀程序员必不可少的素质。 总结来说,这份谷歌大佬的LeetCode刷题笔记是一份宝贵的资源,无论你是Java、C++还是Go的爱好者,...
总之,动态规划是一种强大的算法,对于提升程序员的综合素质至关重要。通过学习和实践,我们可以逐步掌握这一方法,并将其运用到各种复杂问题的解决中,从而提高我们的编程效率和问题解决能力。