找回密码
 立即注册

程序员的编程能力应该如何进阶?

5
回复
130
查看
[复制链接]

5

主题

5

回帖

25

积分

新手上路

Rank: 1

积分
25
来源: 2023-12-21 09:44:24 显示全部楼层 |阅读模式
程序员的编程能力应该如何进阶?
回复

使用道具 举报

7

主题

34

回帖

43

积分

新手上路

Rank: 1

积分
43
2023-12-21 09:45:06 显示全部楼层
什么是程序员的编程能力?难道我们编程的写的那些代码,都是我们无中生有来的吗?很显然,都是转化而来,先是学习各种词法和语法。然后学习基础的数据结构,接着就是看别人的项目的源代码。然后把他们的代码,进行解耦拆解,然后画流程图,这样就知道全局的内容了。说起来容易,做起来难。


很显然,我们都是直接用行为树,来逐步取代这些源代码。然后将每个代码块,封装到对应的函数里面。这样的话,每个封装的函数,都不再嵌套其他的分支调用,如果有调用,那也是不能够再细分的调用了。


当我们,已经用有了最小代码块封装的函数表之后,我们就需要定义行为树的节点,来挂靠这些封装好的函数,然后用来在树的规则下调用。
那么下图就是,行为树节点,与封装函数的关系。画红框的位置,就是与上图对应的封装函数


光有行为树的节点也不行,我们还要建立行为树的节点的上下级的关系。那么我预设的关系,就是左边绿色的部分是子节点,右边蓝色的部分是父节点。多个子节点用逗号隔开。这样的话,就建立成了一棵行为树,就可以运行的那种。


很显然,我们不停的把 代码块进行搬运,然后注释掉,再生成对应的函数,然后再生成行为树节点,再建立节点的上下级关系。这样最终,我们就用行为树,取代了源代码的组织架构,因为行为是是可以图形化的,那么我们就可以有完整的脉络,进行对应的思考了。这样拆解,搬运,设点,挂靠之后,一棵庞大的行为树就慢慢建立起来,我们以后直接看行为树,就知道 这个工程的源代码的构成和用途了,最重要的,就是明白这套代码是如何对数据资源进行流转分发,以及支配各种库函数的。随着我们分解和转化的行为树越来越多。最终就达成了,十年树木,百年树人的境界了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

9

主题

25

回帖

50

积分

注册会员

Rank: 2

积分
50
2023-12-21 09:45:35 显示全部楼层
直接拿一个项目,限定时间想尽一切办法把它写出来,各种搜索,试探,拷贝,粘贴,问人工智能。
这个项目可以横跨需求,前端,数据库,后台,容器,测试 ,部署。
项目不用大,要全栈。
写完你觉得架构怎么这么糟糕?这个继承很不科学  ,代码冗余量过大,那个事务锁定的太厉害影响性能,一塌糊涂。
于是你对这个软件再重构一遍,这次要查和要问的东西少了,写的时候就更有思路。
这种方式取得进步完全靠谱。
可惜我这种老油条如果发现代码跑的挺好,绝对不会去重构,因为重构不知道又会搞出什么幺蛾子。。。
回复

使用道具 举报

7

主题

24

回帖

45

积分

新手上路

Rank: 1

积分
45
2023-12-21 09:45:41 显示全部楼层
程序员的编程能力应该如何进阶?

看了这篇文章保证你能找到从入门到精通的路。作为干了多年程序员、架构、PM、到 CTO 的人,相信有足够的经验给你参考。


我们先谈一下一个优秀的程序员应该具备那些品质与能力吧,只有这样才有目标嘛。要不然就像是一个无所事从方向的车在乱开,尽管你可能有足够的目的,但是总达不到终点。
一个优秀的程序员的状态

  • 对于计算机系统有非常清晰的认知(CPU、MEM、OS、DISK/IO、Network),这个认知会影响到他对计算机负载的认知,对网络负载的认知,对于程序及 DB 的负载的认知。也就是他能清晰的知道怎么平衡一个系统中的每个部分。
  • 对于算法有清晰的认知,可以十分理性的平衡人与硬件的投入。有自己非常强的过人之处,所谓的金字塔结构的知识。
  • 对于技术,有自己相对独立的认知,可以知道自己与业界的发展方向。不会不断的追逐什么 C 到 C++,C++到 Java,Java 到 Scala,相反,他会非常清晰的知道 什么是主流与什么是自己需要。
  • 坚持学习,如果一个优秀的程序员放弃了学习,那就是他开始离开这个技术界的开始。
所以我觉得王国维的做学问的三境界是最最能体现的。
所以我们用了下面几个阶段表述一下。
技术入门打牢基础

在我的评价体系里,有很大一部分程序员可能会在这个境界下游离,因为编程这事对他们来讲只是个技术活或者说糊口的工作,没有足够强的意愿去认真专研它。去认真的想如果理解这个复杂的 CS 技术与科学体系。
还是继续谈这个体系的认知吧。如果说望尽天涯路。天涯路不尽,你能看到的技术也是无穷尽的。在整个 CS 技术体系里,最直接的表现就是多与杂。
编程语言上:Python、Java、C#、JavaScript、Ruby、Go、Swift、Kotlin、JavaScript、Object-C、C++、Lua 等等
在分类上:前后端、微服务、CI/CD、面向对象、面向过程、面向切片、Test Driven、Design Driven、
在设计方法上:瀑布、V字型、螺旋迭代、敏捷
这些在本质上都是在说 CS 整个领域的知识的广与杂,你想在任何一个方向深入下去可能都需要你花足够的精力。所以要想望尽天涯路,你需要的第一件事是建立起你对 CS 整个体系的技术认知。


https://www.csinsf.org/what-is-cs.html
如果你想有一个直观的印象,那就试着去扩展这张图。你相信任何一个方向都可以生成出足够的分支,构成一个新的图。
如此下去,你会看到一条无尽的路的。比如一门极偏的 AI 哲学,也可以是下面这样的。


https://gogeometry.com/software/ai/artificial-intelligence-mind-map-philosophy.html
这样的状态,你要怎么走下去?
总结一下就是,开拓视野,同时坚定的打好基础、同时确认自己的未来方向。也就是千万条路要走,但是可以选一条走下去。同时要锻炼好自己的基础,保证自己能走完。
所以我建议在这一个阶段要学好下面这些东西。

  • 多读几遍《代码大全》、《程序员的 Readme》
  • 计算机基础知识:也就是 《深入理解计算机系统》这本书的内容,你要有一个不错的理解。
  • 掌握一门编程语言:建议 Python 与 Java,同时必须熟悉 C 语言或者 C++。因为C/C++能让你知道 怎么使用 计算机的基础的信息:CPU、内存、文件、函数、指令。而 Python 或者 Java 已经是现在应用语言的典型代表了。你用它们,能够了解大量的应用案例,还有大量的应用库与算法,更重要的是用它们都可以快速的解决问题,完成你自己的任务目标。
  • 不要放弃算法:《算法导论》可能是很多人推荐或者不推荐的,但是你学会它,就相当于你掌握了一门算法的通天之路的基础,我想这个结论是对的。
  • 熟悉一个数据库,推荐 Postgresql,读本书《Postgresql 权威指南》
  • 熟悉 TCP/IP 及 HTTP 相关的网络知识《计算机网络 自顶向下的方法》
  • 大概懂得 HTML、JavaScript、CSS 三者的关系还有 Ajax 是怎么回事。
  • 知道些 Android 与 IOS 的开发。
  • 部署个人工智能应用
如果是这样的基础条件下,你可以认真的考虑自己对什么感兴趣,自己的未来要做什么了。也就是你要找好自己的未来的路。同时要相信,自己有了上面的基础,任何一个方向都足以走到足够的远。
如果你有个本科的 CS相关的知识,那差不多就是第一境界。而如果你是转到这个方向来的,那我建议你看一下 CS 的重点知识,有一个非常好的了解,才有助于你在这方面更好的发展与提高。
技术上自己的路

这一条路可能是你要坚持走下去的,至少要走到足够的远,才能达到的。也可能正是应了,衣带渐宽终不悔,为伊消得人憔悴!因为你深入每一个体系,都会发现现在的技术太复杂了。要有自己的核心目标,同时还要兼顾体系里技术的广度。举个例子:JavaSDK 的核心 API 可能是 200 多个类,但是 JDK 本身的 API 涉及到的类可能已经近万个了吧。下面是一个很久前的统计表,但是还是能看出这个规模扩张的速度的。


不幸的是这一条路我走了很多条,还是谈一下我的学习路径吧。
上学学了 C 语言、看了汇编,然后呢学了 Java。
工作就很幸运,第一个项目是做代码静态与动态检查工具,类似于编译器。
然后做通信的Gateway
再然后做 Web 的项目
开始创业又做人工智能相关的项目
所以,基本上是非常好的做了CS 的基础研究与学习,然后了解了各种网络相关的内容、加密的算法,又对 Web 的发展有了一个不错的了解。正好在潮头,开始做人工智能相关的项目。
你看,不过好在一直都在坚持学习,每天都在看书,写代码,阅读论文。
坚持下去,感觉自己是做到了在 CS 领域的衣带渐宽,终不悔。但是呢,身材确实是一直在宽。严格来讲我走的这条路并不是自己完全喜欢的,不过很幸运的就是自己走了一个感觉还不讨厌的路。现在做人工智能可能是我自己选的最终方向。
所以,如果一开始就选择这条路走下去,我觉得是最好的,也是最舒服的,最容易坚持下来的路。
期望你选择走一条路的时候,能够坚持下去。
我想可以有这么几个方向:

  • 人工智能
  • 后端开发
  • 前端开发
  • 数据库 DBA 与数据库研发
  • IOS 开发与未来的空间计算的应用
  • Android 开发
  • 游戏开发/引擎与应用
无论走那一条路,我想你都要坚持读书、坚持做项目,只有不断的给自己提升,才能。这里可能需要阅读大量的设计类的书籍,同时要考虑阅读一些哲学。
推荐一下吧。
《人人都是架构师》、《人月神话》、《HeadFirst 设计模式》、《编译原理》、《Designing Data-Intensive Applications》、《大问题 简明哲学导论》、《人类简史》
其实是每个人的认知都是有偏见的。
金字塔尖

这个境界可能到了就是到了,因为在这个世界,能够坚持走到一定境界的人并不多,找人参考是没有意义的。
只有你真的有一刻在工作或者研究中体会到了,“ 众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。”。你就知道它是。
这是一个没有太多技术路线的东西,但是我想在人工智能开始能够辅助或者在某些方面可以 辅导开发了,你是不是不需要那么多 技术的列表,不需要那么多技术的 ABC,你需要的是一个大的方向 的思考与坚持 ?
另外,如果你会一点儿编程,我建议你努力学习与应用人工智能。时代变革了,学习什么的,最重要的就是学 AI。工作什么的,最重要的就是用 AI。 而学习 AI,最好的方式应该是视频学习,类似 “知学堂推出的《程序员的AI大模型进阶之旅”, 其实就是一份非常有意思的 AI 大模型的介绍性入门课程,简单看看,你可能马上就对大模型了解了,而不是要大量阅读。这也是个非常有效的学习方法。还有哦,加小助手的微信,好像有惊喜呢。
你要不要试一下
未来可能没有什么技术进阶指南了,只有一句话:AI,帮我完成一个任务:xxxxxxxxxx

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

82

主题

35

回帖

279

积分

中级会员

Rank: 3Rank: 3

积分
279
2023-12-21 09:46:01 显示全部楼层
程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型,就像《程序员技术练级攻略》这篇文章很多人回复到这种玩法会玩死人的一样。我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。每每我听到这样的言论,都让我感到相当的无语,大家都希望能像《21天速成C++》那样速成,好多时候超级有想和他们争论的冲动,但后来想想算了,因为你无法帮助那些只想呆在井底思维封闭而且想走捷径速成的人
今天,我们又来谈这个老话题,因为我看到一篇论文,但是也一定会有很多人都会找出各种理由来论证这篇论文的是错的,无所谓了,我把这篇文章送给那些和我一样准备为技术和编程执着和坚持的人。

论文

首先,我们先来看一篇论文《Is Programming Knowledge Related to Age?》操作提示这篇论文是两个北卡罗莱纳州立大学计算机科学系的两个人Patrick 和 Emerson Murphy-Hill 对StackOverflow上的用户做了相关的数据挖掘得出来的一些数据。(我们知道StackOverflow上的数据是公开的,任何人都可以用来分析和统计,所以这篇论文的真实性是有的)
数据采样和清洗条件如下:(数据全量是1694981用户,平均年龄30.3岁)



  • 15-70岁之间的用户(这年龄段的用户被称做“Working age”),当然,有很多用户没有输入年龄,这些用户都被过滤了。
  • 用户在2012年内都回答过问题。因为StackOverflow在2012年对问题和答案的质量要求得比以前高了一倍,所以更能反映程序员的真实水平。
  • Reputation声望在2-100K之间(注:StackOverflow的用户Reputation是得到社会认可的,在面试和招聘中是硬通货币。比大学的学分更有价值)

上述的条件一共过滤出84,248名程序员,平均年龄:29.02岁,平均Reputaion在1073.9分。

年龄分布图
下面我们来看一下他们的年龄分布图:我们可以看到程序员年纪的正态分布(高点在25岁左右,但是中点在29岁左右)





能力和年龄分布图
然后,计算每个人每个月的Reputation,这样可以找到这个用户的真正的活跃时间,这样便于计算这个程序员的真实能力(总声望 / 活跃时间),可以得到他平均每个月得来的Reputation。
我们来看看程序员的能力和年龄段的分布图:(你可能会大吃一惊)




上图中我们可以看到,程序员的能力在从25岁左右开始上升,一直到50岁后才会开始下降。所以说,程序员吃的不是青春饭。只有码农,靠蛮力,用体力而不是用脑力的程序员才是吃青春饭的人。

年纪大的人是否跟不上新技术
论文的作者分析了Tag,用了最近5年内比较流行的技术Tag,然后用了一套比较严谨的算法来查看那些所谓的“老程序员”是否在新技术上跟上不了,所谓跟不上,也就是这些老的程序员在回答这些新技术上并不活跃。所谓老,就是37岁以上的程序员(就是我现在的年纪)。
得到了下表:可以看到,老程序员和年轻的程序员对于一些新技术的学习来说也是差不多的,甚至有些项还超过了年轻的程序员。




结论
1)程序员技术能力上升是可以到50岁或60岁的。
2)老程序员在获取新技术上的能力并不比年轻的程序员差。

我的一些感受
最后,我说一说我的一些感受:

  • 这些年来的对于外企和国内感受—— 国外牛B的IT公司的工程能力并不见得比国内的要强多少,但是国外那些NB的IT公司的架构和设计能力远远超过国内的公司,最可怕的是,那些有超强架构和设计能力的“老程序员们”还战斗在一线,这些战斗在一线的老鸟的能力绝对超过100个普能的新手。
  • 对年轻程序员的感受——国内新一代的程序员们太浮燥了。老实说,对于大多数人来说,如果你没有编程到30岁,你还不能成为一个“合格”的程序员。所以,并不是编程编到30岁就玩完了,而是编程编到30岁才刚刚入门。这些不合格的程序,整天BS这个不好,那个不好的,而且喜欢速成,好大喜功。
  • 我是一个奔四的人了,编程就像登山一样,越往上爬人越少,所以,在我这个年纪还有想法,对编程还有热情的人不多了,基本上都是转Manager了。其实,什么职位,Title都是虚的,公司没了什么都没了,只有技术才是硬通货。而且,越是这个年纪还在玩编程玩技术的人,其实其经验和能力都是比较强的,都是中坚力量,如果还有其它这个年纪和我一样的人,求交往。
原文地址:http://coolshell.cn/articles/10688.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

9

主题

34

回帖

60

积分

注册会员

Rank: 2

积分
60
2023-12-21 09:46:45 显示全部楼层
做一点自己的经验分享,我认为可以从下面几点切入:
1、养成良好的编程习惯
2、提升项目研发能力
3、在工作中多思考
4、关注前沿信息,开阔视野
5、多读经典书
作为刚入门的开发你可能一直重复着「增删改查」,这些基础的操作占据了自己大部分工作时间,看到其他人成为技术大牛,而个人技术水平永远停在原地,也会很迷茫......
希望本回答能让你更好的提升技术能力和判断力,站在更高的角度去看自己写的代码和技术方案。
(一)养成良好的编程习惯

同样的需求同样的逻辑,不同的人实现出来的效果可能完全不一样,也就是说,我们平时写编程,一定要精益求精,掌握技巧和好习惯,也方便后续的软件维护。
1、纯粹从写代码上看

单从写代码上看,那么我们需要掌握良好的编码风格:

  • 日志打印。日志打印非常关键,尤其是在生产环境出现线上问题的时候,通常我们只能通过日志去排查问题。因为日志规范打印非常重要。
  • 代码模块化设计。不要一个方法或一个类写太长,这样非常不方便维护和理解,也不方便代码复用。理论上我们的代码是越少越好。我们需要将代码按照功能进行模块化设计,每个模块负责一个小功能。
  • 并发处理。可能出现并发的地方要注意线程安全,否则会出现难以预料的结果,并发问题也非常难以排查。
  • 注释。现代软件开发一般都是团队合作,而不是单兵战斗,所以代码一定要做好注释,尤其是核心功能,要注释清晰。否则可能过一段时间自己都忘记了为什么要这么写。
  • 异常处理&错误码。错误码的指定原则:快速溯源、沟通标准化。
还有很多良好的编码规范,建议读下阿里出的《Java开发手册》


2、从应用程序设计上看


  • 应用分层。 据业务架构实践,结合业界分层规范与流行技术框架分析,推荐分层结构如图



  • 领域模型设计规约


关于编码规范强烈推荐每个程序员都要读的一本书:《重构:改善既有代码的设计》
3、面向对象设计

(1)掌握几种设计模式
如工厂模式、策略模式等,才能应对复杂的业务逻辑。
(2)SOLID原则


(3)DDD-领域驱动设计
DDD能帮助我们快速有效学习业务领域知识,深入挖掘业务的痛点,并通过技术手段进行落地。


4、项目流程


  • 在动手写代码前先写好方案设计文档。尽可能的详细,包含业务流程、系统交互、数据表的设计、API的设计等等。方案设计文档写得好,后面编码其实是很快的。
  • 做好功能的拆解和工作量安排
  • 要学会say no!:不合理的需求要学会拒绝,不能只被动的接需求,我们并不是编码机器。切记不要把自己当成一个工具人!
(二)提升项目研发能力

我们来看大厂的常见研发流程是什么,也就是我们平常都会做些什么事情?
需求提出->需求PRD评审->交互设计评审->概要设计->详细设计->测试用例评审->项目开发->联调->代码CodeReview->提测->验收->发布上线->需求结束
在这整个过程中,技术同学基本每一个步骤都要参与,我们的工作绝不仅仅是写几行CRUD的代码那么简单。


需求评审阶段:我们需要和产品、业务方深入沟通,去理解需求逻辑,学会评估需求背后的业务价值和优先级,当面对资源不足需求井喷的情况下如何做取舍。
技术方案设计阶段:要分析上下游的关系,以及和兄弟团队之间的边界,技术方案要考虑扩展性、通用性,以及技术选型、实现成本。要写出bug少的代码,我们需要考虑全面、考虑各种边界条件包括功能性和非功能性。
代码CodeReview:同样一件事情,不同人来做可能实现都不同。那么我们在代码开发的时候,要尽可能实现简洁、逻辑清晰、易于扩展。而且面对流量洪峰,我们还需要考虑并发处理、异常处理、数据存储设计。
项目发布上线:我们需要考虑到灰度、不影响老功能、回滚、监控等事项,绝不仅仅是一把梭发布上线就完事了。
(三)在工作中多思考

很多人平时总觉得,面试造核弹,工作拧螺丝,工作中根本用不到高深的技术,总是在做重复的“CRUD”工作。有一句话笔者觉得说的很有道理,成长是自己的事情,对于同一件事,不同人来做可能得出完全不同的结果。
我们需要时刻思考,如何对系统进行更优雅的设计,能让系统更具有复用性。怎么样能够减少工作中的重复劳动,尽量自动化,才能有更多时间沉淀能力,而不是成为工具人。
如果我们是在业务团队,不应该被动的做需求,而是应该思考,技术如何驱动业务给业务带来价值。比如参考数据Data Flow模型,我们可以提供引入DAG动态编排,沉淀我们的基础能力,提供灵活的编排能力,最终提供灵活的业务解决方案。
感兴趣你可以再看看我下面这个回答:
<a href="http://www.zhihu.com/question/486845233/answer/2139157481" data-draft-node="block" data-draft-type="link-card" data-image="http://pic3.zhimg.com/v2-11e28c1fe7fefd7737c175f63ba07ce2_180x120.jpg" data-image-width="500" data-image-height="281" class="internal">优秀程序员的思维方式有哪些?(四)关注前沿信息,开阔视野

互联网变化非常快,新技术层出不穷。如果能提前进行技术学习、布局,那么就能够在风口到来的时候拥有先发优势。比如最近火热的云计算、智能硬件。
在没有足够的技术敏感性的时候,多关注前沿信息,开阔视野,了解最新技术解决了什么新问题,是否能够给自己的工作带来帮助。
Part 1:技术社区推荐

1、Github
网站地址:https://github.com/


作为程序员如何不知道这个网站的话,你可能需要回炉重造了。
我个人觉得是目前最牛逼的技术社区,Github上面有很多非常优秀的开源项目,包括阿里、腾讯、字节跳动、美团、Google、Micosoft等国内外大厂都有自己的Github开源库。
建议每个程序员没事可以到上面多逛逛,多看优秀开源项目的代码和文档尽量参与进去,不论是maillist、QQ/钉钉群组等等,可以尝试从编写文档、写测试用例开始入手,逐步切入核心功能。
2、Stack Overflow
网站地址:https://stackoverflow.com/


一个程序员问答网站,跟知乎一样,又跟知乎不一样。上面非常多的热心的大牛。
比如知乎虽然是个问答网站,但是你提问技术问题,答案只会告诉你关注XXX领取Java电子书、面试资料。
上面这句话纯属开玩笑。区别在哪里呢?Stack Overflow 不欢迎任何讨论性的,非Problem-Solving类的问题。什么意思呢?你可以提问1+1等于几,但是不要提问为什么要学c语言?
所以,如果你在开发过程中遇到了什么bug,只要你搜索能力优秀,99%在上面能找到答案。
在这里能够与很多有经验的开发者交流,如果你是有经验的开发者,还可以来这儿帮助别人解决问题,提升个人影响力。
Part 2:开源项目推荐

参与优秀的开源项目可以和业界优秀的程序员大神一起结对编程,开阔思路,掌握优秀的代码编写风格、设计模式和技巧。
在此推荐几个业界有名的优秀的开源项目:
1、Redis:Redis
Redis的性能极高且拥有丰富的数据类型,同时,Redis所有操作都是原子性的,也支持对几个操作合并后原子性的执行。另外,Redis有丰富的扩展特性,它支持publish/subscribe, 通知,key 过期等等特性。 Redis更为优秀的地方在于,它的代码风格极其精简,整个源码只有23000行,很有利于阅读和赏析。
2、RocketMQ:Apache RocketMQ
阿里巴巴开源的消息中间件,久经双11大促流量洪峰考验。


3、Flink:Stateful Computations over Data Streams
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和管道方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。
Flink提供高吞吐量、低延迟的流数据引擎以及对事件-时间处理和状态管理的支持。Flink应用程序在发生机器故障时具有容错能力,并且支持exactly-once语义。程序可以用Java、Scala、Python和SQL等语言编写,并自动编译和到在集群或云环境中运行的数据流程序。


4、Google guava:Google提供的java库函数,guava cache和guava限流的实现很有参考价值。
5、sharding-jdbc:数据库分库分表、读写分离的一个中间件。
6、RxJava:java平台的Reactive 扩展。
7、Spring:这就不解释了。
最后再推荐几个优秀的前沿信息来源

  • infoq
  • 《美团技术博客》
  • 公众号-阿里技术
  • 公众号-高可用技术
  • 业界有名的会议:archsummit 架构师大会、flink forward
(四)多读经典书

最后一点,读经典书。
虽然通常来讲,书籍都比最新的技术落后一段时间,但是经典的设计原理往往是不过时的,俗话说万变不离其宗。
关于书籍的推荐,可以看看我下面这个高赞回答
2021年你读了哪些觉得比较好的计算机书籍?1477 赞同 · 63 评论回答下面这几个回答你可能也会感兴趣:
程序员行业有哪些越早知道越好的道理?神级程序员都在用什么工具?以上就是我本人在编程能力进阶方面的一些经验,抛砖引玉,希望对题主有帮助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
商业洽谈 文章投递 寻求报道
客服热线: 400-113-0968
关注微信