11个成为更优秀软件工程师的技巧
1. 寻找编程导师
想要加速编程职业发展,没有什么比在专业成长道路上获得导师指导更有效的方法。首先,有导师关注会让你更有动力追求目标。他们还能为你当前学习阶段指明最佳资源方向。最重要的是,软件工程导师能提供宝贵的行业见解和人脉资源,这些都是独自难以获得的。
2. 像计算机科学家一样思考
程序员是在程序中编码实现不同功能的人,而计算机科学家则是从高层次视角找出问题解决方案的人——通常也会使用代码来实现这些解决方案。这种工作更具包容性和挑战性,允许更多成长空间,且报酬更高。因此我鼓励你像计算机科学家而非程序员那样思考。不要局限于编写程序功能,还要成为创建高层次解决方案的人。
3. 掌握开发任务的处理方法
开始任何项目时,先列出需要完成的工作项,并按最高效的顺序排列。然后不仅仅是编码每个项目——你应该运用测试驱动开发(TDD)原则:要为软件的每个部分创建单元测试作为质量保证形式。最终目标是实现代码覆盖率——为所有代码段都编写测试。现在,编写仅需必要复杂度的代码。最后,重构代码使其更完善。
4. 避免代码套路练习
是的,要成为更好的软件工程师需要大量编码练习,但你需要明智地选择练习方式。不是无意识的重复,长期来看这根本无助于技能提升。大多数人所谓的"代码套路"练习都是在浪费时间。取而代之的是:不断给自己新的挑战。尝试解决新问题,或用新方法解决老问题。提高练习难度,很快你会发现技能水平也随之提升。
5. 刻意练习
不要只是"练习编程",而要以具有挑战性、目的性和可衡量的方式练习。你可以将刻意练习原则应用于编码提升。首先设定明确可衡量的目标,要清晰、专注且有截止日期。然后将其分解为需要提升的技能以实现这些目标。为自己制定练习计划,并运用埃里克森的刻意练习法则执行。最后回顾努力成果,寻求反馈,必要时重复这个过程。
6. 重新思考代码注释
代码注释真的像人们说的那么好吗?如果它们是过于复杂和命名不佳的代码的拐杖呢?事实上,如果我们能用清晰的命名重写一段代码,删除注释,结果比之前更易读,那就证明代码注释大多是个坏主意。
7. 尊重抽象层次
确保实施最佳实践的一个好方法是尊重代码中的抽象层次。这意味着每段代码要么专注于低级任务(如计算必要的数学运算),要么专注于高级任务(如评估投资组合)。抽象层次相互构建,但绝不混在同一段代码中。你要将它们视为独立实体。要做到这一点,必须特别关注良好的命名、类内聚性、可读性等——这会迫使你编写更好的代码。
8. 遵守KISS原则
保持简单愚蠢(KISS)在实践中并不容易。你需要成为出色的抽象思考者和称职的软件工程师才能在代码中正确执行KISS原则。你的目标应该是用尽可能少的语句创建软件。这样你的程序对他人更易读,潜在错误更少,且更易于重构。但实现这些需要大量前瞻性和执行技能。
9. 理解代码的两个目的
算法和协调器是我们代码的两个角色。我们应该将这些角色划分为不同的类。这样,你的算法代码就不会依赖其他代码——使代码复杂度降低,更易于测试和重用。努力避免使用模拟对象。为算法和协调器创建单独的类。你将改进代码设计,创建易于理解和使用的东西。
10. 保护密码安全
除了不在明文存储软件工程工作(或私人使用)所需的密码或不向他人展示等明显建议外,程序员还有更高级的方法来保护密码。一旦了解常见攻击方式——字典攻击、暴力攻击、彩虹表攻击、离线破解攻击、基于碰撞的攻击——的工作原理,你就能采取适当措施预防它们。具体来说,选择强密码,并使用正确的哈希算法维护加密存储。
11. 阅读小说提升编程能力
等等,阅读看似无关的书籍(甚至是小说!)怎么会让你更擅长计算机编程呢?首先,这些创意书籍有助于培养跳出框架的思维。激发新的联系——其中一些可能为工作项目带来否则无法获得的绝妙想法。阅读小说还能帮助你在编程工作后充电和恢复。不仅如此,接触高质量散文还能提高你对文字的敏感度。很容易想象这如何有助于工作中的任何写作任务。