怎么成为强壮的程序员?itjob - 娱乐之横扫全球

怎么成为强壮的程序员?itjob

2018-09-13 10:14:53 | 作者: 振强 | 标签: 程序员,代码,作业 | 浏览: 4190

 

Aaron Stannard是新创公司MarkedUp的CEO,他最近花费许多时刻雇佣、评价许多不同的程序员,并和他们一同协作。在这个进程中他发现并总结了十种程序员无法意识到自己潜力的原因,意在让更多程序员发掘出自己的潜力,然后成为强壮的程序员。

 

Aaron说到,他的公司中所运用的技能十分复杂,某些大型企业都很难把握,所以关于想要参加团队的程序员来说,入门门槛十分高。因而,虽然他们十分细心地雇佣新人,但仍是很难找到满意天才的程序员。所以,他总结出十种阻止程序员职业生涯开展的行为,并据此来协助想要提高自身的一般的程序员们。

 

 

 

1. 太惧怕学不会新的东西、言语和结构

一般的程序员会墨守他们最喜欢的东西,而不期望学习新的,由于他们以为,离开了那些言语和东西,多年的经历就会付诸东流。而强壮的程序员会拥抱那些应战和时机,积极地学习新的作业方法。


 

2. 直到特性“完结”的时分才会提交。(但永久都不会完结!)

他在MarkedUp公司中把这种行为叫做“囤积提交(commit hoarding)”。有些程序员没有满意的决心来承受团队中其他成员的批判和检查,因而会把自己的作业藏起来,直到“完结”状况才提交。

 

这种开发者会危害团队中其他人员的出产力,由于团队看不到他每天的作用,而且他也不会在正常开发的进程中寻求协助,这样就会构成许多“最终一分钟”的缺点,然后让交给推迟。而强壮的程序员会知道,代码并不是他们自己,因而会把代码常常自傲地出现在其他团队成员的眼前,取得批判和主张。


 

3. 只是“知其然”会很风险

在这里Aaron举了微软最近在C# 5.0中引进的async和await关键字为例,这两个关键字会让创立和办理异步调用变得很简略,可是也会构成上下文切换、对共享资源进行多线程拜访的本钱,只是对此有底子了解的程序员会盲目地运用这些特性,把一切I/O调用都封装成C#中的Task方针,这会创立出风险的、不行猜测的而且十分难以测验的代码。

 

好的开发者不只“知其然”,而且会了解为什么这么做以及应该在什么样的条件下运用。


 

4. 剖析瘫痪(Analysis paralysis)

剖析瘫痪是指在程序开发初期进行系统剖析,常由于过分执着于操控一切或许的改动和意外,而构成许多时刻的糟蹋,故步自封。这是一种很经典的问题,会影响许多一般的程序员。它一般是由过度剖析构成的,可是Aaron以为其底子原因在于不敢做出坏的决议。一般的程序员会忧虑犯错,只想一次成功。

 

而强壮的程序员不会惧怕,他们会编写很烂的代码,对其进行单元测验,假如以为无法到达意图,就会在45分钟之内把它扔掉。强壮的程序员会积极地约束用来研讨的时刻,由于他们知道那是个圈套——看起来是有用的,但常常都无效。


 

5. 没有对东西和开发进程投入

假如你想要成为天才程序员,那么就需求投入时刻提高技能和常识,而将你和一般的代码工人区别开来的是快速编写出出产等级代码的才能。你可以一起具有好的代码和速度,可是你需求先对你用于构建的进程投入。

 

一般的程序员不会对东西、进程和环境投入,只会运用许多的时刻学习新的言语特性和API怎么作业,但那并不会改动什么。

 

一般,你作为程序员所可以做出的最大改善并不是专心于你所编写的代码,而是优化你编写代码的进程。


 

6. 羞于恳求协助

一般的程序员羞于或许不想让人知道自己不明白,所以他们假装什么都知道,但这样就有或许提交某种十分可怕的代码到库中。说“我不知道怎么做。”没什么错,强壮的程序员知道这一点,所以当被问题难住的时分就会恳求协助。


 

7. 不知道怎么让其他程序员更简略运用你的代码

在一切技能团队中,作业很重要的一部分就是人员的并行(human parallelism),也就是多个人可以一起对同一代码库作业的才能。可是关于团队来说,可以异步作业也很重要,当你不在的时分我可以修正你的代码,反之亦然。

 

一般的开发者并不这么以为,他们会开端对一项使命编写代码,以为他们会永久具有这段代码。而强壮的开发者会知道技能债款的说法,然后企图经过规划代码来对其约束,让它尽或许可保护和自解说。(引荐阅览:《用鸡解说技能债款的构成进程》、《技能债款真实的价值》)

编写可读的代码需求程序员改动他们的观念——你的代码要比你在安排中存在的时刻长。


 

8. 不知道怎么阅览其他人的代码(或许不想读)

当一位一般程序员看到用他所不熟悉的言语或结构编写的代码库时,就想马上重写,而不考虑事务价值或许推向市场的时刻。而强壮的程序员会承受这样的观念,重写所导致的事务本钱一般是不行承受的,所以应该防止这种行为。他们会企图坐在计算机前,了解、学习然后修正现有的代码。

 

阅览代码要比编写代码还难,可是强壮的程序员会投入时刻来学习怎么逾越。


 

9. 不能从最终用户的视点编码(你考虑的规模太狭隘)

有句话说得好:作为程序员,你的作业不是处理技能问题,你之所以处理技能问题,是为了处理事务问题。

 

一般的程序员只会陷在技能问题之中,而不知道开端是为什么要处理这个问题。更严峻的是,一般程序员无法从头开端创立出具有事务价值的东西。当被要求根据简略的用户规划新特性的时分,他们会呆板地、照着字面临故事或许说明书做出解说,这样交给的产品用户底子无法运用。由于他们不会考虑相关的用例;不会考虑最终用户的体会;而且在做面向用户的内容时,规划都会很粗笨。这导致他们无法编写事务使用,只能做产品。

 

好的程序员会从最终用户的视点来看他们的代码。我怎样才能让它更轻松地处理用户的问题呢?故事的文字内容之外有哪些方面会让这个特性给用户带来更多收益呢?


 

10. 无法判别任何编程使命的事务价值

这个问题和上一个是相关的,许多技能上很强的程序员之所以无法意识到自己的潜力,是由于他们不会停下来,从事务或许安排自身的视点去看一下他们的作业。

 

强壮的程序员可以自我办理,对挑选怎么投入时刻做出很好的事务决议,他们会问这样的问题:这是我现在应该做的最有价值的作业吗?我应该为之投入多少时刻?离交给日期有两个星期,我现在能做什么,然后更简略满意那个日期呢?

 

一般的程序员不会,他们只会拿着说明书,然后盲目地完成,直到完毕,不关心他们的作业和公司的事务方针有什么关系,以及对其他团队和事务组会发生什么样的影响。这样,他们就会在事务价值很低的技能使命上糟蹋许多开发时刻。

 

Aaron在最终做出总结:假如你想要成为更好的程序员,那么就要从改动你看待代码以及编码的方法开端。你需求了解所编写的每行代码背面的事务本钱;你需求从客户或许最终用户的视点来看待作业;你需求承受代码会比你在安排中存在的时刻更长,所以要以其他开发者可以承继的方法来规划;最重要的,永久都不要惧怕新的应战,也不要惧怕恳求协助,你无法茕居一隅来提高作业作用,软件开发也是社会化的作业。

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章