Street coder 1.3部分

原文:https://livebook.manning.com/book/street-coder/chapter-1/19

译:祝坤荣

e9ae45e05cbd614432fa64f0b046d657.jpeg

            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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值