本文主要是介绍Street coder 1.3部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文:https://livebook.manning.com/book/street-coder/chapter-1/19
译:祝坤荣
Pexels Fiona Art图片: https://www.pexels.com/zh-cn/photo/5186869/
1.3 伟大的草莽程序员
一个草莽程序员一般有以下品质:
• 爱提问
• 结果驱动(或者,HR的说法是“结果导向”)
• 高吞吐
• 拥抱复杂与不确定性
伟大的软件工程师不只是编码高手
成为一个好的工作伙伴不只是将bit和byte输入给电脑,同时也需要许多其他技能。你要擅长沟通,提供有建设性的反馈,像冠军一样接受批评。就连Linus Torvalds也承认他需要提高沟通技能。尽管这样,这种技能已经超过了本书的范围。你需要交朋友。
1.3.1 提问
一个自言自语的人最轻的可能会被认为不太寻常,尤其是当他们没有问题的答案。尽管这样,做个爱问问题的人,问自己问题,把问题分析一下可以帮你理清愿景。
很多书,软件专家,Slavoj Žižek都强调批判性与好奇的重要性,但只有很少人教你怎么做。在这本书,你会得到很具体的方法和实践。
对技术的批判也不是没用的。它能扩展你的认知让你知道在一些场景下一个可选的技术可能更好。
这本书的目的不是端到端的覆盖每种编程技术,而是告诉你如何对待最佳实践,基于优缺点排序,权衡不同方案的优劣。
1.3.2 结果驱动
你可以是世界最强程序员,对软件开发有很好的理解,对自己的代码有最好的设计,但如果不交付,或没把产品做出来就没有任何意义。
根据zeno的悖论,要达到终点,你必须先到达中间点。这是个悖论因为要到达中间点就要到达四分之一点,以此类推,最终让你无法到任何地方。zeno有个观点:有一个最终产品需要你在最后期限和里程碑之间完成。否则就不可能达到你的最终目标。而结果驱动意味着里程碑驱动,进度驱动。
“项目怎么能延迟一年?每次一天”
-Fred Brooks 人月神话
产出结果可能意味着牺牲代码质量,优雅,和卓越技术。有一个视角让你一直检查是为谁在做什么是很重要的。
牺牲代码质量并不意味着牺牲产品质量。如果你有良好的测试,如果写了不错的需求集,你甚至可以用PHP来写。这也能代表着,你可能会在未来由于不好的代码质量而痛苦。这叫做代码因果。
书中提到的一些技术能帮你为了得到结果而作一些决定。
1.3.3 高吞吐
反应你开发速度最大的因素是经验,清晰的规范文档和机械键盘。只是开个玩笑 - 与主流思想不同,机械键盘并不能帮你提速。它们只是看起来很酷并且很容易惹恼你的另一半。实际上,我不认为打字速度能提高开发速度。你对于打字速度的自信甚至会鼓励你写一些毫无必要的代码。
通过学习别人的错误能得到经验。在这本书,你可以找到这类的例子。你得到的技术和知识能帮你写更少的代码,更快速的决定,更少的技术债,不会花好几天分析你六个月前写的代码。
本文来自祝坤荣(时序)的微信公众号「麦芽面包」,公众号id「darkjune_think」
开发者/科幻爱好者/硬核主机玩家/业余翻译
转载请注明。
交流Email: zhukunrong@yeah.net
这篇关于Street coder 1.3部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!