代码|不要拒绝面试询问休假时间的人:20年老程序员总结的经验( 二 )


3. 最好的软件工程师需要像设计师一样思考
伟大的软件工程师会深入思考他们所写代码的用户体验 。 例如外部 API、编程 API、用户界面、协议还是其他接口 ,优秀的软件工程师会考虑谁将使用他们的研究、为什么使用它、如何使用以及对这些用户来说什么是重要的 。 牢记用户需求才是良好用户体验的核心 。
4. 最好的代码是没有代码 , 或者是不需要维护的代码
【代码|不要拒绝面试询问休假时间的人:20年老程序员总结的经验】编程人员需要会编程 。 大多数人都会在自己擅长的方面犯错 , 这是人的本性 。 很多软件工程师经常在编写代码方面犯错 , 尤其是当非技术解决方案不明显时 。 无需人员维护的代码也是如此 。 当很多算法已经存在时 , 工程团队很容易想要开辟新的方法 , 这是一个平衡的行为 。
有很多理由让你重新发明轮子 , 但需要注意的是「非原创」并不在其中 。
5. 软件是达到目的的一种手段
软件工程师的主要工作是交付价值 ,但很少有软件开发人员了解这一点 , 甚至有更少的软件开发人员将其内在化 。 真正内在化会导致解决问题的不同方式 , 以及查看工具的不同方式 。 如果你真的相信软件是服从于结果的 , 你就会准备好真正找到适合工作的工具 , 而这可能根本不是软件 。
6. 为自己设定截止日期
有些人倾向于深入问题并开始编写代码 , 而有些人只想研究理论 , 没有着手代码 , 进而让自己陷入困难的漩涡 。 在这些情况下 , 为自己设定一个截止日期 , 然后开始探索解决方案 。 当你开始解决问题时 , 你会很快学到更多 , 这将引导你迭代到更好的解决方案 。
7. 如果你不能很好地把握可能发生的一切 , 你就不能设计一个好的系统
与开发者生态系统进展保持一致是一项巨大的工作 , 了解生态系统中哪些是至关重要的 , 如果你不了解给定生态系统中哪些是可能的 , 哪些是可用的 , 那么除了能发现最简单的问题之外 , 你不可能为所有问题设计一个合理的解决方案 。 总而言之 , 你要警惕那些很长时间没有编写任何代码设计系统的人 。
8. 每个系统都会很糟糕 , 你需要克服
Bjarne Stroustrup 有一句名言:只有两种语言 , 即人们抱怨的语言和没人使用的语言 。 这一名言可以扩展到大型系统 。 如果没有正确的软件架构 , 你永远无法偿还所有的技术债务 , 你永远无法设计出完美的界面 。 尽量少担心系统的优雅和完美 ,相反 , 要努力持续改进你的系统 , 并创建一个团队喜欢在其中工作的适宜系统 , 并可持续地提供价值 。
9. 多问为什么
抓住任何机会进行询问 。 例如「有新的团队成员加入吗?注意他们在哪里出现混淆以及他们问的什么问题 。 有一个没有意义的新功能请求?」等等这些看似不起眼的问题 。 确保自己了解目标以及推动此功能需求的因素 。 如果你没有得到明确的答案 , 请继续问为什么 , 直到明白为止 。

推荐阅读