阅读|高效程序员的 7 项技能

软件工程师把大量时间花在练习 LeetCode 问题获得面试技巧和完善简历上 。 一旦他们最终在一家初创公司、谷歌、亚马逊或其他公司找到工作 , 他们可能就会发现 , 他们获得这份工作所需的技能与他们日常工作所需的技能并不匹配 。
阅读|高效程序员的 7 项技能文章插图
受 TechLead 高效程序员的七项技能启发 , 我们团队想就这个话题发表自己的看法 。
下面是我们总结的高效程序员的七项技能 。
1. 学会如何阅读他人的代码
阅读|高效程序员的 7 项技能文章插图
除了你 , 所有人写的代码都很糟糕 。
这就是为什么能够追踪他人的代码是一项具有多重好处的伟大技能 。
不管之前工程师的代码有多么混乱或欠考虑 , 你仍然需要仔细阅读它 。 毕竟 , 这是你的工作 。 甚至一年前的那个工程师也是你 。
这项技能对你有两个好处 。 第一 , 能阅读别人的代码让你有一个很好的机会去了解什么是糟糕的设计 。 当你在浏览别人的代码时 , 你会了解到什么有用什么没用 。 更重要的是 , 你还会了解到 , 对其他工程师来说 , 哪种类型的代码比较容易理解哪种代码比较难理解 。
在阅读其他人的代码时 , 你可以尽情地地抱怨 。 这样 , 其他工程师就会明白你有多么优秀 。
务必要提一下可维护代码和良好注释的重要性 。 这可以进一步显示出你在编程领域的优势 。
你的代码应该设计得非常好 , 以至于不需要任何文档 。 事实上 , 如果你是一名优秀的程序员 , 就不应该编写任何代码的文档 。 这只是浪费时间 , 你需要把时间花在编程和会议上 。
能阅读他人编写的混乱代码也使得在需要时更新变得更容易 。 这有时意味着更新你不了解的代码 。 例如 , 我们曾经追踪一个脚本 , 从 Powershell 到 Python 再到 Perl。 虽然我们在 Perl 方面的经验有限 , 但我们仍然有足够的上下文来了解发生了什么 , 并做出所需的更改 。
这源于我们很好地理解了所有代码并且能够阅读 Perl 脚本 。
阅读别人的代码会提升你的价值 , 因为你可以追踪那些因为过于复杂而让他人感到困惑的系统 。
2. 能够感知糟糕的项目有很多技能需要花时间去学习 。 我们相信有一项技能是有必要了解的 , 那就是知道哪些项目不值得做 , 哪些项目必然失败 。
大公司总是有很多正在进行中的项目 , 而有些项目可能永远无法完成或产生影响 。 有一些项目可能没有任何商业意义(至少对你来说没有) , 还有一些项目管理不善 。 这并不是说 , 当你不赞成某个项目的时候 , 你就应该打断别人的想法 。 不过 , 如果涉众不能适当地解释他们将利用最终结果做什么 , 那么这个项目可能不值得做 。
此外 , 有些项目可能过于关注技术而不是解决方案 , 因此从一开始就很清楚它不会带来太大的影响 。 对于这项技能 , 你需要在做过很多糟糕的项目之后 , 才能懂得什么样的项目是糟糕项目 。 所以 , 不要过早地花太多时间去辨别每个项目 。
在你职业生涯的某个时候 , 你就会有一个很好的直觉了 。
3. 少开会
阅读|高效程序员的 7 项技能文章插图
无论你是软件工程师还是数据科学家 , 会议都是必要的 , 因为你需要能够与项目经理、最终用户和客户保持一致 。 然而 , 会议有时会突然占满你的日程表 。 这就是为什么懂得如何避免不必要的会议很重要 。 也许用“管理”这个词比“避免”更好 。 这里的目标是确保你花在会议上的时间是为了推动决策并帮助你的团队前进 。
最常见的方法就是在经常开会的日子里留出两个小时的时间 。 通常 , 大多数人会在他们认为有益的时候安排定期会议 。 他们将利用这段时间来赶上他们的开发工作 。
另一种少开会的方法是比其他人早到 , 这样你就能完成工作 。 就我个人而言 , 我喜欢早到 , 因为总的来说 , 办公室比较安静 。 大多数早到的人都和你一样 , 只是想把工作做完 , 这样就不会有人打扰你了 。
这对个人贡献者来说很重要 , 因为我们的工作需要我们有时间可以保持专注 , 不和其他人交谈 。 是的 , 有时候你可能想和别人一起解决问题 。 但是一旦你解决了阻碍你前进的问题 , 你就只需要编码了 。 就是说 , 你需要进入一种状态 , 你的头脑中不断地保持着许多关于你正在做的工作的复杂想法 。 如果你不断地停下来 , 你就很难从停止的地方继续 。