NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

如何成为优秀的程序员?

  • 2020-02-03
  • 本文字数:2309 字

    阅读完需:约 8 分钟

如何成为优秀的程序员?

今天关注了一个很有意思的问题“中国目前最优秀的程序员有哪些?”。和小时候有人问“你的理想是什么?”,你说想当科学家一样,作为程序员的理想就是成为最优秀的程序员。当然这个问题更加宽泛,生活中有很多事情不是自己想做就能够做到的。你不再是一个单独个体,往小里说,需要养家糊口,往大里说,每个人都生活在时代的洪流中。


有时候回顾过去,我往往会产生一些不切实际的想法。可能会觉得没有生活在马拉多纳的时代,一睹球王的风采;还有可能觉得没生活在冷战时期,人类登月成功;也没有看到第一台电脑问世。但仔细想想,有的时候反而庆幸,我们生活的时代,没有战乱,也没有饥荒,这已经非常幸运了。人类茹毛饮血,之前几千年的物质十分匮乏,每隔一段时间就会为了生存而发动战争。目前已经很少有人因为饥饿而身亡,也很少有人因为战争而送命了。细细数来也见证了不少历史,没有马拉多纳,但是梅西已经拿了 6 个金球奖了;没有见证登月,但是有幸看到 spacex 火箭回收;没有见过第一台电脑问世,但是经历了第一台智能机问世。如果我从未来回忆过去,可能也会羡慕过去能够见证如此多的东西。


再回到之前的问题,如何在有限的范围内朝着优秀的程序员这个方向努力呢


我们可以大致将这些顶尖的程序员分为 3 类:


第一类 ACM 类。这类程序员最重要的就是基础好,算法等基础知识比较扎实,这是很多程序员欠缺的,并且需要一定的刻意练习。为什么这么说呢?由于程序员大部分时候使用的都是库函数,不用自己造轮子,所以大部分人对算法的实现了解的没那么清楚。再加上 python 的流行,对 c++了解的程序员也越来越稀少,也就是说理解计算机底层的程序员越来越少了。在基础不扎实的情况下,遇到简单的问题可以解决,遇到稍微复杂一点的问题就会花费很长的时间,并且效率低下。这方面我很欠缺,虽然学的多,但是理解的少,并且不成系统,都是零敲碎打的学一下,基本功不是很扎实。有 ACM 经验的程序员,一是逻辑思维比较强,二是实现代码的基础比较好。


第二类开源社区类。这类程序员一般都是各大公司的核心开发成员,也酷爱写代码,真正做到了兴趣和工作相结合。作为开源社区的维护者和贡献者,这类程序员都比较专注,也乐于实现自己的想法,并且一直在某一领域深根细作,长期坚持输出。开源精神代表了兴趣,贡献和专注。


第三类博客类。这类程序员是真正的骇客,从来都是空杯心态,能够长期坚持学习,并且有自己的思考、理解和感悟。输出的想法和知识都比较接地气,是书本中学不来的。这类程序员真正的影响了一大批程序员,因为目前的工作中的很多问题都是 google 搜索来解决的。乔布斯说求知若渴,对知识和思想的渴望可以超越一切,言传身教也不过如此了。


根据上述的总结,那么我们应该如何提高呢?


  1. 持续的练习。基础的提升是最难的,俗话说台上一分钟,台下十年功,基础的提高是需要日积月累的。有的时候为了应付考试和面试,突击式的学习算法和数据结构,结果很容易忘记。有的时候往往觉得自己理解了对应的算法,结果过一段时间又忘记了。针对这种情况我也没太多好方法,也是突击学一阵,然后就聚焦于工作中具体的问题和业务了,很少能够沉下心来持续的学习算法、数据结构和设计模式等。再加上这部分知识的作用很难有立竿见影的效果,往往花费大量的时间和精力,有的时候还用不上,短期内很难收到回报,所以经常会有挫败感。


但学习基础知识的好处是能够锻炼人的思维,因为很多方法都是相通的,解决的问题多了,思维能力也上来了。无论是看开源代码,还是看专业书籍,都可以归结为提高基础的能力,这一部分需要持续的练习,才能收获,可以类比为练内功。


  1. 足够的专注。对所做的事情充满热爱,能够找到自己的方向,并且能够一直坚持在某一个方向持续的努力,这其实需要自己考虑清楚自己要什么,并且愿意长期坚持,这个领域可能是比较热门的,也有可能也没那么热门,就比如计算器一类的项目,或者一些基础的库函数,哪怕只有少量的人关注,也可以把它实现的很优美。

  2. 求知若渴。能够坚持持之以恒的学习,学习能力包括 2 方面,一方面是学习知识,另一方面是提炼并且输出知识,这 2 方面都做好了才叫学习。有的时候听课,发现有些人理解的很好,公式证明过程也回答的很好,但是真正做题的时候却不是很好。也就是说理解之后,还需要对知识分类形成知识体系,思考并且输出知识,这样才叫学习能力。这也是非常推荐的“费曼学习法”。

  3. 善于思考。我们遇到问题,往往就是直接去解决,而有些人会对问题做分类,把问题归为哪一类,然后针对这一类问题去找对应的方法解决。遇到问题能把问题抽象,类比到相同领域的问题,针对这类问题,业界可能有很经典的解法了,只要按照对应的方法就可以解决问题。思考还包括提问题,通过提问题来理解,为什么要这么设计,以及这么设计的原因,从而从根本上理解原理。

  4. 乐于分享。自己学习很简单,能够长期的输出知识却很难,看一本英文书很简单,但是翻译它却很难,能够把自己的想法知识贡献出来,让更多的人学习和讨论,分享知识的同时,自己也收获了很多知识。


如果能够长期坚持以上一点或者几点,我相信你一定会成为一名优秀的程序员,至少比以前优秀。


今天的分享就到这里,欢迎小伙伴在留言区留言,谈谈你的感想~~


原文链接:https://zhuanlan.zhihu.com/p/103485647


作者介绍


王方浩,前蚂蚁金服高级软件工程师。一直从事软件相关工作,是操作系统、大数据、自动驾驶相关技术的爱好者。


本文来自 DataFunTalk


原文链接


https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247497017&idx=1&sn=488522cd89ca0a68bf4e55cdfe513d36&chksm=fbd74755cca0ce43879c6131556725b4c3fc06d4ed0232db0bc0465ae5a596b0d6e75dadcb1c&scene=27#wechat_redirect


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-02-03 10:001896

评论

发布
暂无评论
发现更多内容

MySQL client 命令 pager/edit/tee 介绍

ba0tiao

MySQL

2. 商品那些模型

Joy

5. IM系统

Joy

WorkPlus即时通讯软件,以自主安全为底座,连接工作的一切

WorkPlus

小程序开发遭老板砍预算?快用华为云轻量应用服务器保效果!

YG科技

华为云服务器,中小企业数字化升级的明智之选

轶天下事

WorkPlus稳定服务助力行业千万用户,打造无界沟通协作平台

WorkPlus

“跪求”老板加预算项目才能继续?快试试华为云轻量应用服务器吧

轶天下事

智能管理、极致性能:华为云耀云服务器L实例引领小程序开发新潮流

平平无奇爱好科技

mac电脑受欢迎的矢量绘图软件Sketch for Mac中文破解版下载

影影绰绰一往直前

sketch Mac Sketch 99

专业PDF编辑软件Adobe Acrobat Pro DC 2023 for mac完美激活版下载

影影绰绰一往直前

4. 爬虫系统

Joy

爬虫实战

真香定律再现!中小企业数字化逃不过华为云轻量应用服务器

平平无奇爱好科技

独家丨小程序开发支出明细,快Get华为云低成本高效率开发秘诀!

平平无奇爱好科技

向场景而生,移动数字化底座WorkPlus支持场景化定制

WorkPlus

企业网站建设容易维护难?华为云服务器保障长期高效运营

轶天下事

3. 跨境卖全球框架

Joy

阿里云太“氪金”?试试华为云超高性价比轻量应用服务器

平平无奇爱好科技

开启数字化转型之选,探寻华为云耀云服务器L实例的独特魅力

YG科技

华为云耀云服务器L实例:中小企业数字化转型的智选

YG科技

华为云耀云服务器L实例,引领企业数字化新时代

轶天下事

华为云耀云服务器L实例:数字化转型的得力伙伴

YG科技

传统服务器成“氪金”无底洞,华为云服务器才是中小企业开“肝”首先

轶天下事

1. 商品CPV模型

Joy

6. 账号系统

Joy

7. 电商全球化架构

Joy

无脑推荐的轻量应用服务器有没有?华为云是最佳选择

平平无奇爱好科技

新手站长网站开发常犯错?有了华为云这款轻量应用服务器不再踩坑

YG科技

如何成为优秀的程序员?_开源_DataFunTalk_InfoQ精选文章