就算有疫情,不能出门,咱们也要在家为三四月份的面试做好准备,今天,博主就来讲讲后端技术。
一、扎实的计算机基础知识
1.数据结构和算法:程序是由数据和算法组成的,因此这两个东西是计算机软件的基础
2.计算机操作系统:操作系统可以说是集大成于一身的一个软件程序
3.计算机网络:目前只要有数据传输功能的程序绝大多数都是离不开网络的
4.计算机组成原理:这是计算机最底层的设计,也是计算机一切的基础
实际的开发工作中,是否能够掌握扎实的基础知识往往决定了一个开发工程师的上限,这也是很多大的互联网公司无论是校招还是社招,都侧重于一些底层知识考察的原因。毕竟,你会使用什么东西只能决定你的下限,而你的基础知识和学习能力才决定了你的上限。
二、知其然更要知其所以然
现在的一种现象:很多开发工程师工作了很久,看着经验丰富,但基本都是拿着一年的工作经验重复n年的。基本上每一份工作,每一个项目都在那里做重复劳动,而且也并不去考虑如何避免重复劳动这件事。
进一步的,除了遇到问题再去看源码、究底层,主动阅读经典类库、高质量开源项目的源码以及其他同事写的代码,学习其中好的架构、设计、编码风格以及类库的使用也是促进自身技术进步的一个非常有效的方式。
只有你在某一领域有了深入的研究和造诣了,你才能融汇贯通,迅速地扩大自己的知识面,在广度上做到突破。而对于有一定工作经验的工程师来说,虽然深度不是那么必须了,但是遇到的问题、新学到的东西还是刨根问底才好,否则一旦出现问题再去盲羊补牢会让你显得非常被动,也不利于自己的技术发展。毕竟,一个什么都做过、什么都用过却什么也不精的人可替代性太强了。
三、动手实践
很多技术,只是看书,你会云里雾里,看了就忘。必须要经过你自己的实践或者项目中使用到了这种技术,你才能很快地掌握并熟练。
四、频繁练习
动手实践能够让你快速入门,但只有频繁练习才能让你熟练使用。
五、自我总结
上面主要讲述了宏观层面的如何学习技术,而具体到学习某一个新技术,其实也是有法可循的。如下图所示:
由于很多技术的模块非常多,源码也非常复杂,很多时候在看源码的时候会陷进去越看越不得章法,因此这里着重说明一下“看源码”的一个典型流程:
1.阅读该技术的架构文档,了解其总体架构和组成。
2.根据总体架构,将源码文件以模块或者上下层级进行分类。
3.从未阅读过的模块中选择最独立(依赖性最小)的模块代码读起。
4.阅读此模块的功能介绍文档。
5.阅读此模块的源代码。
6.一边阅读一边整理调用关系(以表或者树的形式)。
7.转到第三步。
六、总结
程序员是一个金字塔结构的职业体系,越往上,人越少也越难达到。如下图所示:
一步步走到金字塔顶部需要不断的学习和进步,包括正确的态度、正确的方法以及持续的努力。本文所述只是笔者自己的体会,也是自己一直在践行的东西。除此之外,肯定还有很多其他优秀的方法和思想能够促进这个过程。
最后:
下面是我总结出一个Java程序员的工作2-5年成长路线图。希望对大家有帮助!
上面都是自己整理好的!我就把资料贡献出来给有需要的人!顺便求一波关注,哈哈~各位小伙伴关注我后私信【Java】就可以免费领取哒!