对照检查!高效程序员几乎都有这七项技能
8月24日 程染筱投稿 图片来源:pexels。comanastasiyagepp654466
软件工程师们总是花费许多时间磨练面试技巧,如练习力扣题(leetcode)和完善各自的简历。而一旦他们在一家新创企业、谷歌、亚马逊、或其他公司得到了工作,也许就会发现,其实日常工作中用不到当初为了得到这份工作所获得的技能。
谷歌的TechLead提出了高效程序员该有的七项技能。本文受到启发,提出高效程序员该有的七项技能。
1。学习如何阅读别人的代码
能够阅读其他人的代码是一个很厉害的技能,且能带来许多好处。
不管上一个工程师的代码有多乱有多糟,你还是得读懂它。这毕竟是你的工作。就算那些烂代码是你一年前写的。
这个技能有两个好处。第一,学会如何阅读其他人的代码可帮助你更了解什么是糟糕的设计。在看过其他人的代码时,可以学会看出代码可不可用。更重要的是,也可从中得知哪些代码更易被其他工程师理解或否。
在阅读其他人的代码时,尽可能地对其评价。这样,其他工程师才会知道眼前的工程师多么的不简单。
作出评价时,记得提起可维护代码和清楚注释的重要性。这将给编程领域里的优势加分。
你本身的代码应该设计得好,好到无需注释。事实上,一个优秀的程序员本就不应该给自己代码进行注释。那只是在浪费时间,而宝贵的时间应该用在编码和开会上。
学会阅读其他人杂乱的代码也有助于必要时对其进行更新。这有时意味着更新你可能不那么熟悉的代码。举个例子,我们曾沿着一个脚本语言,编程语言从PowerShell换到Python,再改成Perl。虽然我们对Perl的经验有限,但是任然有足够的上下文来搞懂其中的代码,并做出所需的更改。
这都归功于我们对所有代码有一定的认识,以及阅读Perl脚本的能力。
阅读别人代码这个技能可提升个人价值,因为就算是别人望而却步的过度工程化的系统也难不倒你。
2。感知烂项目
图片来源:ChrisRied,Unsplash
许多技能都需花费时间来学习。其中一项技能是值得去获取的,那就是知道哪些项目不值得去做,哪些项目显然注定死路一条。
大企业总是有很多进行中的项目,而其中可完成或有作用的却不多。有些项目也许没有任何商业意义(至少对你来说),也有一些项目就是没管理好。这并不意味着当你对某个项目有异议时就直接拒绝。但是,如果股东们无法清楚解释项目用途时,那这个项目很可能不值得去做。
此外,一些项目也许过于专注在技术方面而忽略了寻找解决方案。因此,从一开始就可显然看出不会有太大的作用。只有在接触过很多烂项目后,方能得到感知它们的技能。所以刚开始时不需要花太多时间去识别每个项目。
在你职业生涯的某个阶段,自然就会练就一种直觉。
3。避开会议
无论软件工程师还是数据科学家,都必须参与会议,以确保能与项目经理、终端用户和客户达成共识。然而,参与太多会议反而会占据一整天的工作时间。所以学会避免不必要参与的会议是很重要的。或者,“管理”一词比“避免”会更好听一些。这里的目标是确保时间能用于参与推动决策的会议上,并且能帮助团队前进。
最常见的方法就是每天留出两个小时的时间,用来进行定期开会。通常多数人会在他们最方便的时候安排例常会议。这段时间便可用来了解所负责开发项目的最新情况。
另一种为了完成工作而避开会议的方法就是比其他人早报到。笔者们认为,我们喜欢早到的原因是因为,总的来说,办公室会比较清静。多数早到的人也一样,都想把工作做完,这样就不会有人打扰了。
这对独自工作者来说很重要,因为我们的工作有一段时间需要极度专注,而不和其他人交谈。当然,有些时候也许得和别人合作来解决问题。但是一旦越过了障碍,剩下的只需编程。这时候就得进入状态,在脑中不断地思考有关手上项目的种种复杂想法。如果不停地被打断,那就很难恢复状态。
4。Github
有些计算机科学专业的学生从出生那天起就开始使用GitHub。他们能够理解每一个指令和参数,能力甚至超越了教授们。
其他人则是在第一份工作后第一次接触到GitHub。对他们来说,GitHub是个充满令人困惑的指令和程序的地狱。他们从不100确定自己在做什么(这也就是为什么cheatsheet如此的受欢迎)。
不管公司用的是哪种存储库系统,该系统只有在正确使用时才有用;反之,则会成为阻碍。一个简单的push或者commit,和花数小时尝试梳理乱成一团的分支,其实只有一线之差。除此之外,如果经常忘记提取存储库的最新版本,那也将面临处理合并冲突的难题。
如果有需要保存GitHub的指令cheatsheet,那就保存起来。只要有帮助即可。
5。编写简单且可维护的代码
通常出现于资历较浅工程师的一个问题就是,他们总试图将所有所知的东西放到一个解决方案中。他们有一种渴望,想把所学到的面向对象编程、数据结构、设计模式和新技术统统用于所编写的每一段代码中。这反而形成了不必要的复杂性,因为你很容易过度依赖过去使用的解决方案或设计模式。
复杂的设计概念和简单的代码之间存在着一种平衡。整体上来说,设计模式和面向对象的设计应该将代码简化。然而,当一个程序越被抽象化、概括化、和黑箱化,则越难侦错。
6。懂得拒绝,学会分轻重缓急
这个技巧其实适用于任何职位,无论金融分析师还是软件工程师。但尤其值得一提的是,每个人似乎都会因为某种原因找技术性人员。如果你是数据工程师,处理开发管道外还可能会被要求做其他东西。一些团队也许需要数据提取,其他则需要控制面板,更有一些需要新管道给他们的数据科学家。
其实,分轻重缓急和拒绝可能是两种不同的技能,但他们是紧密交织在一起的。前者意味着只把时间花在对公司有重大影响的事情上。后者则意味着避免处理本应属于其他团队的工作。这两个技能的需求在所有职位中都是相互存在的。
这是一项很难掌握的技能,因为有时候面对别人请求的时候,会很难拒绝他们。尤其是刚毕业的大学生,都会想尽量满足所有人,手上也都是可完成的工作量。
在大企业里,总是会有穷无止尽的工作要完成。关键在于扛下可完成的任务。
事实上很多技能都没有在面试测试到,甚至在大学里也没有教过。通常,这更多是环境的限制,而不是没意愿让学生接触真实开发环境下存在的问题。
7。操作性设计思维
有一项技能,面试中难以测试,大学课程里又难以复制的,就是想透终端用户使用软件时会出错的地方。我们通常将此称为操作性场景思考。
然而,这其实只是一个较好听的说法。事实上你只是在确保你的代码连白痴也可以使用。
例如,既然编码大多都是在进行维护,这通常代表改编互相极度缠结的代码。就连一个简单的调整,都需要追踪对象、方法、和或API的所有可能关联。否则,很容易意外地破坏之前没注意到附加着的模块。就算只是更改数据库中的数据类型也是。
这也包括在进入开发阶段前想透边角案例和整体的高层设计。
而对于开发新模块或微服务的更复杂案例,重要的是花点时间思考一下你手中任务的操作性场景。想一想未来用户将如何需要用到你的新模块,他们将如何错误使用,什么参数将被需要,以及是否有其他时候未来程序员将会用到你的代码。
纯粹的代码和编程只是问题的一部分。创造一个可以在你电脑完好运行的软件并不难。但利用代码时可以出错的地方却很多。一旦投入生产,就很难说代码将如何被使用,以及其他代码中哪些将会附加到原始代码中。五年后,一个未来的程序员也许会因为你代码的限制而感到烦躁也说不定呢。
农民朋友:工资再高,建议别做以下4个职业,。。。如今,随着社会的发展,农村的人口结构也发生变化,以前在家种地的人,因为各种原因,开始搬离农村,把户口落户到城镇,而那些户口在农村的人想法则不同,他们打算年轻的时候在城里打拼,老……
空姐面试吹蜡烛的故事某航空公司招聘空姐,要求年龄在25岁以下,性格开朗,容貌端庄。经过严格的笔试,最后有100人通过初试。在面试部分,航空公司准备了这样一道心理测试题:你能一次将生日蜡烛吹熄吗?……
面试技巧:5个技巧聪明避开薪水问题重要的事情说在前面:任何一个告诉你可以躲开薪水历史问题的人很有可能在给你推销某件东西。而实际情况是,有时候你就是对这个问题扭扭捏捏也就是你想保持求职优势的时候。但是……
对照检查!高效程序员几乎都有这七项技能图片来源:pexels。comanastasiyagepp654466软件工程师们总是花费许多时间磨练面试技巧,如练习力扣题(leetcode)和完善各自的简历。而一旦他……
面试失败,在所难免,这样逆袭,让工作自动。。。只要你在找工作,投简历,那一定是要经过面试才可以进入这家公司的。而面试,有的会让面试官很满意,一次面试就通过,而有的面试却不尽人意。当你面试失败的时候,你会反思自己是不是哪里不……
MYSQL面试常考知识点总结数据库的三范式第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;第二范式:2NF是对记录的惟一性约束,要……
老胡提醒你:简历上最忌讳的5点,最好不要出。。。最易忽视的忌讳,信息缺失HR拿到一份简历,首先看的就是基本信息,包括姓名、年龄、婚育、学历、住址、求职意向等信息。看是简单的基本信息,却存在着几个容易犯忌的问题。过……
这个面试小技巧,帮助无数人找到了理想工作。。。多年以前,当我还是一个稚气未脱的寒酸学生,我曾经参加了一场千里挑一的残酷面试。面试的岗位也不是什么牛逼工作,既不是造导弹,也不是给霸道总裁当贴身秘书,就是一个贸易专员的职……
马云:这9种简历连看都没人看,你怎么能找到。。。马云在接受采访时曾说过:阿里有上万名员工,但我从来不看任何人求职信。你是否也有过这种经历:花大把时间来优化简历,等投出去却泥牛大海?实际上是由于你的求职简历中有这些致命伤,让H……
“员工”是领导者的“镜子”为什么别人的员工那么有激情,而我的员工好像“提线木偶”一样?很多领导者都会遇到这样的问题。觉得员工“这里需要提升”,“那里需要改进”,于是各种绩效考核、学习考核,最后发现过度的……
面试禁区:虚、空、大面试禁区:虚、空、大年关已然过去,求职者众多其中不乏一些跳槽者,再加上一些即将离开学校温暖怀抱的实习生,对于招……
如何学会正确地批评?需要先了解批评的本质。。。在生活中,我们免不了批评别人,或者受到别人的批评。那么怎么样合理地进行批评?当然批评肯定不是一件特别开心的事情,如果谁批评你了,你心里肯定会感到不开心。常见……
股市“井喷”如何理财关于股市“井喷”如何理财主持人:股市上周的大涨是几年来罕见的,上涨让深套其中的投资者重新看到了希望。对于一笔可作投资的资金,如何合理配置?沈峥明:激进型投资者可将3……
分级基金的介绍分级基金的介绍一、什么是分级基金什么是分级基金分级基金又叫“结构型基金”,是指在一个投资组合下,通过对基金收益或净资产的分解,形成两级(或多级)风险收益表现有……
基金持有人基本介绍基金持有人基本介绍基金持有人FundHolders是指持有基金单位或基金股份的自然人和法人也就是基金的投资者是基金受益凭证的持有者作为基金的受益人基金持有人享有基金资产的……
理财产品现状及发展趋势理财产品营销方案推荐度:我国早期教育的现状及其思考推荐度:相关推荐理财产品现状及发展趋势在社会的各个领域,大家都接触过论文吧,借助论文可以达……
保本型基金的基本知识保本型基金的基本知识什么是保本基金?保本基金是一种保证投资者本金或本金的一定比例(80,100等)不受损失的基金品种。投资者购买保本基金并持有一段时期后(一般3至5……
保本银行理财产品的合理存在保本银行理财产品的合理存在商业银行保本理财产品自2005年发展以来,由审批制转为报备制。截至2013年5月,余额已经突破2万亿元。它的经济机制是否一定程度影响了银行的总资……
五类互联网理财产品五类互联网理财产品“低门槛高收益”的特质,不得不说是极富吸引力的。曾经习惯去银行进行储蓄存款的客户,开始越来越多地把资金挪到“类余额宝们”的互联网理财产品中去。然而,一味……
十一网购理财产品要谨慎十一网购理财产品要谨慎产品无风险评级“万能险”提前退保要扣5手续费临近“双十一”,除了各大电商像往年一样进行提前促销外,各类金融机构也开始销售理财产品。多家保险公司……
银监会叫停六类银行理财产品银监会叫停六类银行理财产品越来越高的收益率和异常火爆的发行局面终于触发了监管部门对银行理财产品的担忧。日前监管层正式出手对目前银行理财产品可能存在的违规行为进行治理。……
留学生银行理财介绍留学生银行理财介绍留学势头走高,动辄几十万上百万元的学费和生活费,数以万计的留学生带动了数量可观的存款、结售汇、汇款业务。代办签证、代理海外开户见证、推出境外留学保险银行……
留学生海外理财方案关于留学生海外理财方案留学生海外理财方案怎么准备留学所需的钱,怎么把钱带出去,在国外以什么形式消费这都是出国留学者绕不开的问题。1货币兑换类似于定投基金……
家庭理财方案关于家庭理财方案【导读】欲望,大概是每门生意的终极密码,理财也算是一门“生意”,作为一家之主不好好理财怎么配掌控财政大权!毕竟婚前和婚后是两个不太一样的世界,无论是男性还……