程序员如何学习一门新技术

本文探讨了程序员如何学习新技术,强调了思维多元化的重要性,包括理解业务背景、软件开发流程和项目管理。文章提供了学习新技术的步骤,如阅读官方文档、理解概念和设计思想,并介绍了值得投入时间学习的基础内功,如数据结构、操作系统和框架源码。通过学习Spring和Netty源码,可以提升架构设计和性能优化能力,每天刷算法题则有助于问题的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思维多元化

我们平时大部分的后台开发人员都是在做 CRUD,用一些别人封装好的易用的框架去写业务代码。有的人日复一日反复在重复这样的工作,有的人却在工作中思考。我今天想和大家说的就是,要把眼光、格局放的大一些。比如:你虽然是个后台开发人员,但是不要沉浸在技术当中,要多去了解一下业务背景、软件开发的整个流程、项目管理等这些软技能。当你接触的东西多了以后,思维就比较发散,不会局限于一个维度去看待一个问题,而是从多个维度去思考这个问题。我觉得只会技术,可能会增加你解决一个问题的复杂度。解决一些问题并不是一定需要从技术上,可能其他方面解决会更好、复杂度更低。 这与数学中的博弈论类似,当我们的视野比较窄时,自以为解决一个问题得到了最优解,但其实这只是个局部最优解。往往拥有宽阔的视野,才可以得出一个全局最优解

我们做业务开发,实际上就是在解决一个个问题,解决一个问题会有很多种方法,如何找到那个最优的方法?这就需要我们不断的学习,提升自己的知识储备。有了知识储备后,解决一个问题时,你可以在多种解决方案中经过一定取舍和折中(比如:时间换空间,还是空间换时间,AP 还是 CP(分布式理论中的 CAP ),局部损失一些性能换全局性能最佳等等)选择出最适合你的方案。

如何学习一个新技术

首先一个新技术一般都会有官方文档,文档是最好的学习资源(权威)。看文档是一种很好的学习方式,然而却常常被我们忽视。

学习的原则要遵循:

  1. 先了解新技术相关的概念(理清概念)。
  2. 然后从新技术的设计思想上把所有的概念串起来(理清脉络)。

参考链接:https://zhuanlan.zhihu.com/p/21307896

接下来跟大家聊聊我是如何学习一个新技术的。

步骤

  1. 新技术是什么?它的生态圈是什么?
  2. 了解这个新技术解决了哪些问题。
  3. 为了解决这些问题它使用了哪些巧妙或者好的方法。
  4. 它与其他类似的技术的区别。
  5. 它的优缺点。
  6. 它的架构图,先理解它的核心概念(比如:Spring 的核心概念就是 IOC、AOP)。
  7. 理解核心接口的作用,从接口或类的命名中去知晓其职责。

    一般优秀的框架都会对类的职责划分做的不错,所以根据类名就可以知其意。

  8. 去思考它是如何根据核心概念去进行扩展的。(比如:Spring 的核心概念就是 IOC、AOP,那它是怎么做出那么多的模块呢?根据 Bean 的生命周期进行展开留下了多处的地方可以扩展。)
  9. 在学习新技术的过程不要觉得它是独立的,多去和你已有的知识体系中的技术去关联、去类比。

    比如:分层的架构思想,在计算机网络、MVC、MySQL 数据库、tomcat 中都有它的体现。

  10. 有没有最佳实践。

以消息队列为例,我觉得当你学完一个技术后,头脑中应该有以下的一个思维导图:
在这里插入图片描述

此图来源于极客时间专栏(消息队列高手课)。

值得花时间去学习的内功

1. 数据结构

一些基础的数据结构,比如:栈、队列、数组、链表、B+ 树等,这些常见的数据结构还是要去知道他们的优缺点。

2. 操作系统、计算机网络

这是重之之重,熟悉了操作系统,更有利于你对语言的深入理解。比如:你熟悉了操作系统之后去看 Java 虚拟机,会发现很容易理解。
计算机网络我就不说了,大部分 WEB 服务器、应用服务器都间接的跟网络有关,知道一些网络知识对你学习中间件、以及后面的分布式组件都有帮助。

3. 框架源码

3.1 Spring 源码的设计(重点关注 IOC、AOP 的实现即可)

锻炼架构设计的能力、设计模式的灵活运用、面向对象思想(三大特性、六大原则)的最佳实践。比如:接口怎么定义、类名怎么起才有意义,怎么设计抽象类和接口会使得系统扩展性好等。

3.2 netty 源码的设计

锻炼 Java NIO 的最佳实践,对并发、网络、内存的性能优化。

4. 每天刷几道算法题

锻炼把具体问题转化为代码实现的思维。

诀窍

一个人现在不厉害并不代表什么,最可怕的地方在于他可以去承认别人比他强,而且去学习别人的优点,不断的调整自己的一套学习方法论、认知等。这样的人成长更快,更厉害。
总结起来就一句话,多去关注优秀的人的优点,少关心人家的缺点。 关注别人的优点使你强大,关心别人的缺点只会使你看待问题更极端化。

微信公众号:Java知其所以然

我现在也是一个正在学习的程序猿,希望和大家一起进步。

后续还会继续补充,今天就写到这里。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值