【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

如何成为优秀的程序员?

  • 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:001892

评论

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

微博评论高性能高可用计算架构设计

Lane

网络攻防学习笔记 Day36

穿过生命散发芬芳

网络攻防 6月日更

C/C++学习:C++并发与多线程

奔着腾讯去

c++ 并发 多线程并发 POSIX线程 C++11线程

15:需求沟通的灵魂拷问:人与人之间的信任呢?

punkboy

需求管理 需求 需求落地 信任 信任机制

【云原生AI】Fluid + JindoFS 助力微博海量小文件模型训练速度提升 18 倍

阿里巴巴云原生

Go并发编程-channel多路复用

Rayjun

Go 语言 select

Linux网络编程-UDP和TCP协议详解

Linux服务器开发

TCP 网络编程 udp 网络协议栈 Linux服务器开发

公司战略:要不要多元化发展?

石云升

创业 职场经验 6月日更

【译】JavaScript 代码整洁之道-函数篇

KooFE

JavaScript 大前端 函数 6月日更 整洁代码

不惧面试:HTTP协议(一)基础扫盲

悟空聊架构

面试 HTTP post GET 6月日更

高级软件工程师必备的五大技能

架构精进之路

6月日更 软素质

音频和视频流最佳选择?SRT协议解析及报文识别

明儿

音视频 协议 流媒体开发

MySQL基础之三:条件查询

打工人!

MySQL 6月日更

区块链与物联网的强强联合将带来巨变

CECBC

你知道 Redis 可以实现延迟队列吗?

xcbeyond

队列 延迟队列 6月日更

区块链+印章,区块链技术的长期潜力正在释放

CECBC

Golang channel 通道

escray

学习 极客时间 Go 语言 6月日更

从天而降的AI“青云梯”,开发者们准备好了吗?

脑极体

Kubernetes手记(2)- 核心组件/附件

雪雷

k8s 6月日更

戏说代理模式

编程三昧

随笔 设计模式 开发 代理模式

16:阿里、京东、美团、电通等电商行业营销模型汇总

punkboy

营销 模型 市场营销 营销数字化 电商营销

设计微博系统中”微博评论“的高性能高可用计算架构

方堃

Hadoop实战篇(1)

进击的梦清

大数据 hadoop Linux

宏碁亮相2021西洽会,以绿色智能“洽谈未来”

科技热闻

2017-2020(4周年)读书年度总结及书单

punkboy

程序员 书单 书单推荐 推荐书单

17:为什么说海澜之家是“男人的货仓”和“服装的搬运工”?

punkboy

品牌 电商 电商平台 服装行业 男友力

Pandas之:Pandas简洁教程

程序那些事

Python 大数据 数据分析 pandas 程序那些事

技术管理简单说

蛋先生DX

技术管理 6月日更

模块五 作业

夏日

架构实战营

Python位运算符——详解

在即

6月日更

(内含福利)不想成为咸鱼,我们怎样找到自己的未来之路呢?

刘华Kenneth

招聘 职场成长 云技术

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