专栏名称: 程序员技术
最有影响力的程序员自媒体,关注程序员相关话题:程序人生、IT技术、IT职场、学习资源等。
目录
相关文章推荐
码农翻身  ·  11w*14薪,进DeepSeek了! ·  昨天  
码农翻身  ·  在内卷的修罗场,国产技术该站出来了 ·  2 天前  
程序员的那些事  ·  65 ... ·  3 天前  
51好读  ›  专栏  ›  程序员技术

会写程序还不够,硅谷杰出软件工程师都有的5种能力

程序员技术  · 公众号  · 程序员  · 2017-06-04 18:14

正文

来自:程序师

链接:www.techug.com/5-ablitity-of-greate-enginner

英文:https://www.theeffectiveengineer.com/book


曾任职于Google和Quora等公司、现任Quip软件工程师的Edmond Lau,于《The Effective Engineer》一书中访问任职于Facebook、Instagram和Google等知名网路公司的资深软件工程师,归纳出他们眼中高生产力的杰出软件工程师都具备的五种能力。


一、不害怕探索陌生程序语言



接触新专案或是转换工作跑道时,都有可能需要学习全然陌生的程序语言,许多人对此感到害怕,甚至未尝试就先放弃。其中,跳脱舒适圈的恐惧往往多于学习程序,会担心是否无法重现过去工作的好表现,甚至因此怀疑自身能力。


不论是多厉害的工程师,一定都有起点,就像打造Microsoft Windows基础的微软资深工程师Dave Cutler为文组出身,没受过正式电脑科学教育,比起同辈花更多时间在错误中学习。


在这之中,最重要的两个关键为具备「成长心态」(growth-mindset)而非「固守心态」(fixed-mindset),以及「乐于学习」(optimize for learning)的态度。


学习陌生程序语言这项关键能力会越练越上手,并让你在学习过程中成为更好的程序设计师。


二、精通Debug



「为什麽程序跑出来和我预期的不一样?」是许多工程师会遇到的问题。Debug能力往往是影响工程师是否能顺利完成专案的关键因素,却被大部分人低估。


Debug的系统性思考如下:

  • 先假设造成bug的可能原因。

  • 若假设为真,界定此假设可能导致的结果。

  • 试著检视是否有和这些结果衝突的现象。

  • 若有衝突表示假设错误,要重複上述思考过程。


由此可知,想加快Debug速度,要提升「提出假设」和「检视假设」的能力。假设能力可随著Debug经验的累积而提升,检视能力则需加强善用检测工具的技能。


在此过程,必须先假设所有东西都是可检视的,并找出可用来检测或加快检测速度的工具或机制,千万不要只用自己熟悉的工具。








请到「今天看啥」查看全文