设为首页 - 加入收藏 平凉站长网 (http://www.0933zz.com)- 国内知名站长资讯网站,提供最新最全的站长资讯,创业经验,网站建设等!
热搜: 2018 input 为什么
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

对照检查!高效程序员几乎都有这七项技能

发布时间:2019-08-14 20:46 所属栏目:[评测] 来源:读芯术
导读:软件工程师们总是花费许多时间磨练面试技巧,如练习力扣题(leet code)和完善各自的简历。而一旦他们在一家新创企业、谷歌、亚马逊、或其他公司得到了工作,也许就会发现,其实日常工作中用不到当初为了得到这份工作所获得的技能。 谷歌的TechLead提出了高

软件工程师们总是花费许多时间磨练面试技巧,如练习力扣题(leet code)和完善各自的简历。而一旦他们在一家新创企业、谷歌、亚马逊、或其他公司得到了工作,也许就会发现,其实日常工作中用不到当初为了得到这份工作所获得的技能。

对照检查!高效程序员几乎都有这七项技能

谷歌的TechLead提出了高效程序员该有的七项技能。本文受到启发,提出高效程序员该有的七项技能。

1. 学习如何阅读别人的代码

对照检查!高效程序员几乎都有这七项技能

能够阅读其他人的代码是一个很厉害的技能,且能带来许多好处。

不管上一个工程师的代码有多乱有多糟,你还是得读懂它。这毕竟是你的工作。就算那些烂代码是你一年前写的。

这个技能有两个好处。第一,学会如何阅读其他人的代码可帮助你更了解什么是糟糕的设计。在看过其他人的代码时,可以学会看出代码可不可用。更重要的是,也可从中得知哪些代码更易被其他工程师理解或否。

在阅读其他人的代码时,尽可能地对其评价。这样,其他工程师才会知道眼前的工程师多么的不简单。

作出评价时,记得提起可维护代码和清楚注释的重要性。这将给编程领域里的优势加分。

你本身的代码应该设计得好,好到无需注释。事实上,一个优秀的程序员本就不应该给自己代码进行注释。那只是在浪费时间,而宝贵的时间应该用在编码和开会上。

学会阅读其他人杂乱的代码也有助于必要时对其进行更新。这有时意味着更新你可能不那么熟悉的代码。举个例子,我们曾沿着一个脚本语言,编程语言从PowerShell换到Python,再改成Perl。虽然我们对Perl的经验有限,但是任然有足够的上下文来搞懂其中的代码,并做出所需的更改。

这都归功于我们对所有代码有一定的认识,以及阅读Perl脚本的能力。

阅读别人代码这个技能可提升个人价值,因为就算是别人望而却步的过度工程化的系统也难不倒你。

2. 感知烂项目

对照检查!高效程序员几乎都有这七项技能

许多技能都需花费时间来学习。其中一项技能是值得去获取的,那就是知道哪些项目不值得去做,哪些项目显然注定死路一条。

大企业总是有很多进行中的项目,而其中可完成或有作用的却不多。有些项目也许没有任何商业意义(至少对你来说),也有一些项目就是没管理好。这并不意味着当你对某个项目有异议时就直接拒绝。但是,如果股东们无法清楚解释项目用途时,那这个项目很可能不值得去做。

此外,一些项目也许过于专注在技术方面而忽略了寻找解决方案。因此,从一开始就可显然看出不会有太大的作用。只有在接触过很多烂项目后,方能得到感知它们的技能。所以刚开始时不需要花太多时间去识别每个项目。

在你职业生涯的某个阶段,自然就会练就一种直觉。

3. 避开会议

无论软件工程师还是数据科学家,都必须参与会议,以确保能与项目经理、终端用户和客户达成共识。然而,参与太多会议反而会占据一整天的工作时间。所以学会避免不必要参与的会议是很重要的。或者,“管理”一词比“避免”会更好听一些。这里的目标是确保时间能用于参与推动决策的会议上,并且能帮助团队前进。

最常见的方法就是每天留出两个小时的时间,用来进行定期开会。通常多数人会在他们最方便的时候安排例常会议。这段时间便可用来了解所负责开发项目的最新情况。

另一种为了完成工作而避开会议的方法就是比其他人早报到。笔者们认为,我们喜欢早到的原因是因为,总的来说,办公室会比较清静。多数早到的人也一样,都想把工作做完,这样就不会有人打扰了。

这对独自工作者来说很重要,因为我们的工作有一段时间需要极度专注,而不和其他人交谈。当然,有些时候也许得和别人合作来解决问题。但是一旦越过了障碍,剩下的只需编程。这时候就得进入状态,在脑中不断地思考有关手上项目的种种复杂想法。如果不停地被打断,那就很难恢复状态。

4. Github

对照检查!高效程序员几乎都有这七项技能

有些计算机科学专业的学生从出生那天起就开始使用GitHub。他们能够理解每一个指令和参数,能力甚至超越了教授们。

其他人则是在第一份工作后第一次接触到GitHub。对他们来说,GitHub是个充满令人困惑的指令和程序的地狱。他们从不100%确定自己在做什么(这也就是为什么cheat sheet如此的受欢迎)。

不管公司用的是哪种存储库系统,该系统只有在正确使用时才有用;反之,则会成为阻碍。一个简单的push或者commit,和花数小时尝试梳理乱成一团的分支,其实只有一线之差。除此之外,如果经常忘记提取存储库的最新版本,那也将面临处理合并冲突的难题。

如果有需要保存GitHub的指令cheat sheet,那就保存起来。只要有帮助即可。

5. 编写简单且可维护的代码

对照检查!高效程序员几乎都有这七项技能

通常出现于资历较浅工程师的一个问题就是,他们总试图将所有所知的东西放到一个解决方案中。他们有一种渴望,想把所学到的面向对象编程、数据结构、设计模式和新技术统统用于所编写的每一段代码中。这反而形成了不必要的复杂性,因为你很容易过度依赖过去使用的解决方案或设计模式。

复杂的设计概念和简单的代码之间存在着一种平衡。整体上来说,设计模式和面向对象的设计应该将代码简化。然而,当一个程序越被抽象化、概括化、和黑箱化,则越难侦错。

6. 懂得拒绝,学会分轻重缓急

这个技巧其实适用于任何职位,无论金融分析师还是软件工程师。但尤其值得一提的是,每个人似乎都会因为某种原因找技术性人员。如果你是数据工程师,处理开发管道外还可能会被要求做其他东西。一些团队也许需要数据提取,其他则需要控制面板,更有一些需要新管道给他们的数据科学家。

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章