如何成为强大的程序员?PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
8. 不知道如何阅读其他人的代码 (或者不想读)
•
•
当一位一般程序员看到用他所不熟悉的语言
或框架编写的代码库时,就想立刻重写,而不考
虑业务价值或者推向市场的时间。而强大的程序
员会接受这样的观点,重写所导致的业务成本通
常是不可接受的,所以应该避免这种行为。他们
会试图坐在计算机前,理解、学习然后修改现有
•
通常,你作为程序员所能够做出的最大改进
并不是专注于你所编写的代码,而是优化你编写
代码的过程。
7
6. 羞于请求帮助
• 一般的程序员羞于或者不想让人知道 自己不懂,所以他们装作什么都知道,但 这样就有可能提交某种非常可怕的代码到 库中。说“我不知道怎么做。”没什么错, 强大的程序员知道这一点,所以当被问题 难住的时候就会请求帮助。
2
1. 太害怕学不会新的工具、语言和 框架
• 一般的程序员会墨守他们最喜欢的工 具,而不希望学习新的,因为他们认为, 离开了那些语言和工具,多年的经验就会 付诸东流。而强大的程序员会拥抱那些挑 战和机会,积极地学习新的工作方式。
3
2. 直到特性“完成”的时候才会提 交。(但永远都不会完成!)
• 有些程序员没有足够的信心来承受团队中 其他成员的批评和审查,因此会把自己的 工作藏起来,直到“完成”状态才提交。
一般的程序员不会对工具过程和环境投入只会使用大量的时间学习新的语言特性和api通常你作为程序员所能够做出的最大改进并不是专注于你所编写的代码而是优化你编写代码的过程
如何成为强大的程序员?
1
• Aaron Stannard 是新创公司 MarkedUp 的CEO,他最近花费大量时间 雇佣、评估很多不同的程序员,并和他们 一起协作。在这个过程中他发现并总结了 十种程序员无法意识到自己潜力的原因, 意在让更多程序员发掘出自己的潜力,从 而成为强大的程序员。
的代码。
•
阅读代码要比编写代码还难,但是强大的程
序员会投入时间来学习如何超越。
10
9. 不能从最终用户的角度编码(你 考虑的范围太狭窄)
• 有句话说得好:作为程序员,你的工作不 是解决技术问题,你之所以解决技术问题, 是为了解决业务问题。
• 好的程序员会从最终用户的角度来看他们 的代码。我怎样才能让它更轻松地解决用 户的问题呢?故事的文字内容之外有哪些 方面会让这个特性给用户带来更多收益呢?
然后盲目地实现,直到结束,不关心他们的工作
和公司的业务目标有什么关系,以及对其他团队
和业务组会产生什么样的影响。这样,他们就会
在业务价值很低的技术任务上浪费大量开发时间。
12
• Aaron 在最后做出总结:如果你想要成为更好的 程序员,那么就要从改变你看待代码以及编码的 方式开始。你需要理解所编写的每行代码背后的 业务成本;你需要从客户或者最终用户的角度来 看待工作;你需要接受代码会比你在组织中存在 的时间更长,所以要以其他开发者能够继承的方 式来设计;最重要的,永远都不要害怕新的挑战, 也不要害怕请求帮助,你无法独居一隅来提升工 作效果,软件开发也是社会化的工作。
13
11
10. 无法判断任何编程任务的业务 价值
• 强大的程序员能够自我管理,对选择如何投入时 间做出很好的业务决定,他们会问这样的问题: 这是我现在应该做的最有价值的事情吗?我应该 为之投入多少时间?离交付日期有两个星期,我 现在能做什么,从而更容易满足那个日期呢?
•
一般的程序员不会,他们只会拿着说明书,
8
7. 不知道如何让其他程序员更容易 使用你的代码
• 一般的开发者并不这么认为,他们会开始 对一项任务编写代码,认为他们会永远拥 有这段代码。而强大的开发者会知道技术 债务的说法,从而试图通过设计代码来对 其限制,让它尽可能可维护和自解释。
• 编写可读的代码需要程序员改变他们 的看法——你的代码要比你在组织中存在 的时间长。
在于不敢做出坏的决定。一般的程序员会担心犯
错,只想一次Βιβλιοθήκη 功。•而强大的程序员不会害怕,他们会编写很烂
的代码,对其进行单元测试,如果认为无法达到
目的,就会在45分钟之内把它抛弃。强大的程序
员会积极地限制用来研究的时间,因为他们知道
那是个陷阱——看起来是有效的,但经常都无效。
6
5. 没有对工具和开发过程投入
4
3. 只是“知其然”会很危险
• 好的开发者不仅“知其然”,而且会了解 为什么这么做以及应该在什么样的条件下 使用。
5
4. 分析瘫痪(Analysis paralysis)
• 分析瘫痪是指在程序开发初期进行系统分析,常
因为太过执着于控制所有可能的变化和意外,而
造成大量时间的浪费,裹足不前。这是一种很经 典的问题,会影响很多一般的程序员。它通常是 由过度分析造成的,但是 Aaron 认为其根本原因
• 如果你想要成为天才程序员,那么就需要投入时 间提升技能和知识,而将你和普通的代码工人区 分开来的是快速编写出生产级别代码的能力。你 可以同时拥有好的代码和速度,但是你需要先对 你用于构建的过程投入。
•
一般的程序员不会对工具、过程和环境投入,
只会使用大量的时间学习新的语言特性和 API 如
何工作,但那并不会改变什么。
8. 不知道如何阅读其他人的代码 (或者不想读)
•
•
当一位一般程序员看到用他所不熟悉的语言
或框架编写的代码库时,就想立刻重写,而不考
虑业务价值或者推向市场的时间。而强大的程序
员会接受这样的观点,重写所导致的业务成本通
常是不可接受的,所以应该避免这种行为。他们
会试图坐在计算机前,理解、学习然后修改现有
•
通常,你作为程序员所能够做出的最大改进
并不是专注于你所编写的代码,而是优化你编写
代码的过程。
7
6. 羞于请求帮助
• 一般的程序员羞于或者不想让人知道 自己不懂,所以他们装作什么都知道,但 这样就有可能提交某种非常可怕的代码到 库中。说“我不知道怎么做。”没什么错, 强大的程序员知道这一点,所以当被问题 难住的时候就会请求帮助。
2
1. 太害怕学不会新的工具、语言和 框架
• 一般的程序员会墨守他们最喜欢的工 具,而不希望学习新的,因为他们认为, 离开了那些语言和工具,多年的经验就会 付诸东流。而强大的程序员会拥抱那些挑 战和机会,积极地学习新的工作方式。
3
2. 直到特性“完成”的时候才会提 交。(但永远都不会完成!)
• 有些程序员没有足够的信心来承受团队中 其他成员的批评和审查,因此会把自己的 工作藏起来,直到“完成”状态才提交。
一般的程序员不会对工具过程和环境投入只会使用大量的时间学习新的语言特性和api通常你作为程序员所能够做出的最大改进并不是专注于你所编写的代码而是优化你编写代码的过程
如何成为强大的程序员?
1
• Aaron Stannard 是新创公司 MarkedUp 的CEO,他最近花费大量时间 雇佣、评估很多不同的程序员,并和他们 一起协作。在这个过程中他发现并总结了 十种程序员无法意识到自己潜力的原因, 意在让更多程序员发掘出自己的潜力,从 而成为强大的程序员。
的代码。
•
阅读代码要比编写代码还难,但是强大的程
序员会投入时间来学习如何超越。
10
9. 不能从最终用户的角度编码(你 考虑的范围太狭窄)
• 有句话说得好:作为程序员,你的工作不 是解决技术问题,你之所以解决技术问题, 是为了解决业务问题。
• 好的程序员会从最终用户的角度来看他们 的代码。我怎样才能让它更轻松地解决用 户的问题呢?故事的文字内容之外有哪些 方面会让这个特性给用户带来更多收益呢?
然后盲目地实现,直到结束,不关心他们的工作
和公司的业务目标有什么关系,以及对其他团队
和业务组会产生什么样的影响。这样,他们就会
在业务价值很低的技术任务上浪费大量开发时间。
12
• Aaron 在最后做出总结:如果你想要成为更好的 程序员,那么就要从改变你看待代码以及编码的 方式开始。你需要理解所编写的每行代码背后的 业务成本;你需要从客户或者最终用户的角度来 看待工作;你需要接受代码会比你在组织中存在 的时间更长,所以要以其他开发者能够继承的方 式来设计;最重要的,永远都不要害怕新的挑战, 也不要害怕请求帮助,你无法独居一隅来提升工 作效果,软件开发也是社会化的工作。
13
11
10. 无法判断任何编程任务的业务 价值
• 强大的程序员能够自我管理,对选择如何投入时 间做出很好的业务决定,他们会问这样的问题: 这是我现在应该做的最有价值的事情吗?我应该 为之投入多少时间?离交付日期有两个星期,我 现在能做什么,从而更容易满足那个日期呢?
•
一般的程序员不会,他们只会拿着说明书,
8
7. 不知道如何让其他程序员更容易 使用你的代码
• 一般的开发者并不这么认为,他们会开始 对一项任务编写代码,认为他们会永远拥 有这段代码。而强大的开发者会知道技术 债务的说法,从而试图通过设计代码来对 其限制,让它尽可能可维护和自解释。
• 编写可读的代码需要程序员改变他们 的看法——你的代码要比你在组织中存在 的时间长。
在于不敢做出坏的决定。一般的程序员会担心犯
错,只想一次Βιβλιοθήκη 功。•而强大的程序员不会害怕,他们会编写很烂
的代码,对其进行单元测试,如果认为无法达到
目的,就会在45分钟之内把它抛弃。强大的程序
员会积极地限制用来研究的时间,因为他们知道
那是个陷阱——看起来是有效的,但经常都无效。
6
5. 没有对工具和开发过程投入
4
3. 只是“知其然”会很危险
• 好的开发者不仅“知其然”,而且会了解 为什么这么做以及应该在什么样的条件下 使用。
5
4. 分析瘫痪(Analysis paralysis)
• 分析瘫痪是指在程序开发初期进行系统分析,常
因为太过执着于控制所有可能的变化和意外,而
造成大量时间的浪费,裹足不前。这是一种很经 典的问题,会影响很多一般的程序员。它通常是 由过度分析造成的,但是 Aaron 认为其根本原因
• 如果你想要成为天才程序员,那么就需要投入时 间提升技能和知识,而将你和普通的代码工人区 分开来的是快速编写出生产级别代码的能力。你 可以同时拥有好的代码和速度,但是你需要先对 你用于构建的过程投入。
•
一般的程序员不会对工具、过程和环境投入,
只会使用大量的时间学习新的语言特性和 API 如
何工作,但那并不会改变什么。