前些天,一位带团队的朋友发来一条消息:“你有时候学得多了,会不会觉得学无止境,然后就有点迷茫了?”。我说是的,而且这种感觉非常强烈。

朋友之所以发出这样的感慨是因为在面试,想看看自己的身价与能力。面试的结果就是被虐的很惨,于是开始恶补知识,在此期间才发出这样的感慨。

对于我而已,有这样强烈的感觉不是因为面试,而是因为在不断的学习新框架,同时还在阅读Nacos源码。学得越多发现自己不会的越多,源码阅读的越深,发现涉及的知识面越多,自己不懂的越多。

知识是一个无底洞

自从项目中引入了Spring Cloud,感觉进入了一个无底洞。如果你的项目只是在用Spring Cloud,那倒是无所谓,网上的几篇文章就可以让你轻松集成任意组件。但如果你想把这些组件用的足够好,出现问题能够顺利排查,了解它们实现的底层原理,这就是一个知识的无底洞。

当项目中引入了Spring Cloud,那么你得依次懂得:Spring Boot、Spring Cloud、注册中心(Nacos或Eureka)、Feign、Loadbalancer(或ribbon)、链路追踪、日志管理(ELK)等等。在一些场景下还需要用到断路器、网关等。

然后我们的项目属于物联网项目,计划把所有的项目和设备监控起来,此时发现又需要用到:Spring Boot Actuator、Prometheus、Grafana、InfluxDB、MQTT等等。

此时,只能感慨,不持续学习又怎么能行呢?

阅读源码是检验技术能力的一项指标

有粉丝曾问我:来公司很久了,领导也不怎么给安排活,感觉没什么可学的,该怎么办?我说:要么主动找领导沟通一下,让他给你安排点活儿;要么研究现有业务;要么就深入研究项目中使用的框架。

很多时候,我们会感觉没什么事可干,业务逻辑的CRUD写的也很枯燥,项目中的技术没啥可学的。真的没啥可学的吗?真的有读过任意使用框架的源码吗?

关注我公众号的朋友都知道,我最近一有时间就会读读Nacos的源码,感觉不错的点还会写写文章。而就在阅读源码的过程中,我才深深的有了开篇提到的那种“感觉自己菜的感觉”。不信你可以试试。

阅读源码通常有两个方向,第一个方向就是了解一个框架的核心业务逻辑和流程,或者说是设计思想。这也是最重要的。另外一个就是学习框架运用的技术点和设计思想。

以Nacos源码为例,我这边是刚刚阅读了服务注册、心跳机制、服务获取等功能的源码,已经在其中看到了大量的知识点,比如:简单工厂模式、Java反射机制、代理模式、门面模式、定时任务、事件机制、锁、gRPC协议等。这还没研究到集群相关的CAP原则、Raft协议、Distro协议等。

这里刚开始研究到gRPC协议,马上发现还涉及到了RPC协议、Protobuf框架、Http 1.0、Http 2.0等,当然你还可以延伸到TCP、网络分层等。

所以说,当你真觉得没什么可学的时候,阅读一个框架的源码,不断的拓展开来,会发现有无限的知识等着你。或许这对你是一个不错的选择。

问题的解决

回头最开始的问题,面对无限的知识,越学越觉得自己菜该怎么办呢?

首先,如果纯粹是为了学习,没有业务的羁绊,只是满足自己的好奇心,增加知识面。那么,本身就不用过度的迷茫,只用调整心态,持续的学下去即可。比如,我学习源码的目的就是增加知识面,把简单的知识构建成一个网,形成记忆。

在学第一个框架时可能会比较难,但当你阅读学习一两个框架之后,你会发现基础的知识好像就那么多了。比如,设计模式常见的也不就是那23个吗?多见几次,不仅学的更透彻,对运用场景也更了若指掌。SPI机制、动态代理、反射等等都是如此。

其次,如果是为项目运用而学习,那么就要抛弃掉知识点的学习,把握框架或技术栈的核心原理,它能解决什么问题,如何解决的,是否带来了副作用等等。比如Nacos这类框架,为了满足CAP原则中的AP原则,就会牺牲数据的一致性,你需要学习研究的就是它的基本实现与原理,同时当服务已经挂掉,客户端怎么及时发现并处理这里解决方案。

最后,无论是学习知识点或是学习场景解决方案,都需要在一个范围内进行大量的积累和沉淀。其中学习知识点还不太明显,因为常用的知识点是有限的,构成知识网之后,就越来越轻松了。而解决方案是无限的,不同的业务领域,不同的场景可能就需要不同的技术栈和解决方案。这也就是为什么我们在选择职业的时不要轻易换行业的原因,因为大量的解决方案是需要跟行业知识和行业其他技术相配套使用的。

写在最后

学习的过程中迷茫是正常的,越学越觉得自己菜,说明你正在在不断的进步。你的存量知识是一个圆,当这个圆很小的时候,圆周长很短,接触到圆之外的知识也少,你可能会觉得自己懂得很多。但当存量知识增加,圆周随之增加,未知的知识将成倍增加,感觉自己很菜就很正常了。正所谓,学而知不足,就是这个道理。

但不用担心,只要你在学习进步,知识的积累会触发思维模式的进化。当某一刻,你看一眼代码就知道它用了什么技术、什么设计模式、设计思想是怎样的,是不是很有成就感?这一刻,你也真正修炼成功了。

博主简介:《SpringBoot技术内幕》技术图书作者,酷爱钻研技术,写技术干货文章。

公众号:「程序新视界」,博主的公众号,欢迎关注~

技术交流:请联系博主微信号:zhuan2quan


程序新视界
公众号“程序新视界”,一个让你软实力、硬技术同步提升的平台,提供海量资料

你有没有觉得学得越多,越觉得自己菜?相关推荐

  1. 小米盒子4 android版本,安卓系统越用越卡,曾学忠:小米 10 至尊纪念版搭载黑科技 MITurbo 4.0 技术...

    IT之家10月31日消息 昨日,小米集团副总裁.手机部总裁曾学忠谈及了 "Android 系统为什么越用越卡"的问题 曾学忠表示,Android 系统越用越卡是因为用户长时间使用手 ...

  2. 华为手机媒体音量自动静音_华为手机还能自动清理垃圾,怪不得手机越用越流畅,学到了...

    华为手机还能自动清理垃圾,难怪手机越用越流畅,学到了 很多人,都会定时给自己的手机清理内存,以确保手机流畅度. 但是手动清理有时候不能很到位,就容易收到内存不足消息提醒. 那怎么办呢?如果你用的是华为 ...

  3. 高中上不上分数低学计算机,为什么到了高中,你的学习越来越差,越补越差?终于找到原因了...

    原标题:为什么到了高中,你的学习越来越差,越补越差?终于找到原因了 小学初中成绩好,高中学习认真,也不贪玩,但是成绩一直中下游,找家教也不管用,这种情况在高中是非常普遍的一个现象,我将从四个方面进行解 ...

  4. 学计算机的用双核CPU够吗,电脑cpu核数越多越好吗

    在购买电脑的时候,很多人都特别重视CPU的配置,毕竟CPU相当于人类的大脑,肯定CPU越快越好. 我们都知道,现在的电脑都是多核的,电脑cpu核数越多越好吗? 对于不少小白来说,他们对CPU的印象就是 ...

  5. 计算机课高数怎么过,我是大一新鸟,学软件,想向大虾们讨教几手,我有高数,英语,法律.计算机,4门课,我该怎么学!介绍越详细越好,...

    我是大一新鸟,学软件,想向大虾们讨教几手,我有高数,英语,法律.计算机,4门课,我该怎么学!介绍越详细越好, 來源:互聯網  2009-07-30 08:58:23  評論 分類: 煩惱 >&g ...

  6. 不后悔学计算机,这5大专业学了不后悔,越老越吃香,年薪可达50万!

    原标题:这5大专业学了不后悔,越老越吃香,年薪可达50万! 这5大专业学了不后悔,越老越吃香,年薪可达50万! 今年,浙大等高校取消的很多专业,其中有之前的热门专业有计算机等,这对很多考生触动很大,大 ...

  7. 素描越画越差了?为什么同样学美术你却在退步?

    最近,美术加小编收到了很多同学的问题咨询,有同学就说不知道为什么感觉自己素描越画越差,越学越差了,自己把握不好原因,其实,觉得自己画技变差的原因有好几种,有可能是画面整体变化进步太小,或者是眼光提高, ...

  8. 做技术到底可以做到哪种地步-技术为什么越走越窄 (转)

    尽管做技术已经有不少年头了,不管是犹犹豫豫还是坚定不移,我们走到了现在,依然走在技术这条路上. 不管我们处于何种职位,拿着哪种薪水,其实,我们会是不是的问问自己"做技术到底可以做到那种地步& ...

  9. 画面逐渐放大_日本80后画“人体妖女”,画面诡异,放大10倍越看越可怕

    你印象中的人体画是什么样儿的?在传统油画中,人体画主要是为了展现人体结构与肌肉之间的完美搭配,男性展现出阳刚之美,女性展现出阴柔之美,一般需要画家对人体结构与线条上有极高的把握,才能创作出一幅美到人心 ...

  10. 千灯照碧云,越夜越星沙

    (题图摄影:邓建辉) 文 | 弘乐.陈曦 来源 | 螳螂财经(ID:TanglangFin) "晚上去红记吃小龙虾啊!"准备下班的李强拿着电话呼朋唤友.和他一起下楼的同事伍娟听到了 ...

最新文章

  1. 【Spring实战】—— 3 使用facotry-method创建单例Bean总结
  2. “ INSERT IGNORE”与“ INSERT…ON DUPLICATE KEY UPDATE”
  3. (Mybatis)XML配置解析
  4. 第五章:创建自定义绑定
  5. VScode 结局插件prettier和vetur格式化冲突
  6. easyui 动态设置单元格控件_动态显示最大最小值的折线图
  7. python天气预报官网_python 实现对天气预报官网未来一周七天的天气情况抓取
  8. keil5怎么配置程序风格_开发微信小程序怎么配置域名?
  9. extjs xtype 类型
  10. Iframe的基础应用——关于Iframe刷页问题的两种方法
  11. 通过mtd读写flash_flash的读写与擦除
  12. 代理应用好文两篇(1)
  13. Kindle PaperWhite 3 5.8.10越狱成功!
  14. 时间管理表 - 《待办清单列表》
  15. 揭开python的神秘面纱
  16. 基于uni-app手机端后台管理系统uni-uadmin
  17. Android应用App开发工具
  18. docker命令,一些常用的docker命令
  19. EventBus使用详解
  20. 1225 D. Power Products 哈希

热门文章

  1. 一纸禁令何以让苹果闪跌5400亿?
  2. 2020年12月计划--filament引擎
  3. JScript 是 JavaScript 的缩写吗?
  4. 用一个空置U盘(大白菜)PE重装系统
  5. IBM SPSS modeler 17 无限使用
  6. 华为__瑞星_中软_奇虎软件测试
  7. stm32建立标准的工程模板
  8. 王者营地显示主宰进攻服务器,王者荣耀必备知识点 暴君主宰及野区兵线刷新时间...
  9. 项目经理应该如何管理自己的时间
  10. 如何在Excel中选择单元格时高亮显示行和列