学习背景
在这个新技术层出不穷的互联网时代,更有一种乱花渐欲迷人眼的感觉。因为每一个新技术的出场都是那么的高调,是那么的吸引人,让程序猿们疯狂追逐新技术,赶潮流,生怕不学就会低人一等,但是大部分程序猿们都只是api调用工程师,我也不例外,对很多东西的理解都是停留在使用,停留在表面,知其然而不知所以然。?
反思以前的无知
经过这么久的工作,和自己见识的增长,想要做大型系统,底层理论知识的支撑是并不可少的,像网络、操作系统的并发、多线程等。现在才明白为什么当时在学校的时候要开设计算机网络技术、计算机组成原理、操作系统、数据结构与算法、c语言等一系列课程,这些都是当时我们最讨厌的基础课、理论课,原来这才是我们程序员职业生涯都用的上的知识,而且这些是暂时来说不会过时的技术理论。以前上这些课都没有好好听讲,事后自己去学习也看不进去,年轻人总是心浮气躁,因为学习这些无聊的理论知识,还不如学习Java swing、Java EE、html这些所见即所得的技术更来劲。
学习网络带给我的好处
现在回过头看看以前大学没有好好学习这些课程都有点后悔,本来大学几年什么理论都能学下来的,然而却把时间花在其他事情上。所以,我以过来人的身份奉劝程序员萌新,要把时间花在刀刃上,把基础打牢,否则基础不牢地动山摇。只有把这些基础理论烂熟于胸,应对当前各种新技术简直就是绰绰有余,很快就能把这些东西学到手,因为新技术也有万变不离其宗的东西,那就是这些网络,算法等。
我们做Javaweb根本离不开网络,离开网络就什么也做不了,像现在很火的微服务,就是把网络通信封装一下,开发人员只需经过简单的调用,就能请求别人的接口,我们做开发的就接触不到网络的底层调用。然而这就有一个很大的弊端,等程序调用有bug的时候,我们对网络不熟悉,就很难定位问题,从而影响开发效率,要是对网络非常的熟悉的话,那很快就能把问题找出来并解决。
要怎么做
所以说,想要搞定强大的系统,类似12306、taobao、jd,还是对于大规模系统的架构,网络和网络协议都是绕不过去的坎。只有先对网络非常的了解,知道网络是怎么一回事,然后根据其特性做相应的处理,才能在做大系统、做大规模系统架构的时候使其发挥出最大的作用。
学习网络和网络协议是一件循序渐进的事情,不能急于求成,只能慢慢来,然后对生活中所用到的网络做对比,深挖我们生活中用到的网络,搞清楚网络的运行原理。
制定计划和目标
每天学习2-3小时,对学习的内容总结,做笔记,每天学习新知识前复习一下旧的内容,多查阅相关文档。
做一个熟知底层原理的crud工程师,向更高的目标奋进。
寄语
学习如春园之草,不见其长,日有所增;懒惰如磨刀之石,不见其损,日有所亏。
记于2021-08-02 23:33,共勉!
|