相信大多数人是普通院线毕业,但渴望着能一步步走上技术专家乃至更高级别的职位,那既然是普通院校毕业,与那些 985 院校科班出身的同学相比本身就有天然的劣势,所以我们就更要提升自己的起点了。
何谓提升自己的起点,比如对于技术人员来说搜索资料就应该用 Google, 而不是百度,查不到就去 Stackoverflow 提问,大部分资料用英文都能搜到,日积月累,你的英文水平就算再蹩脚也能完成华丽蜕变。
为什么要强调英文水平呢,现在移动互联网时代,各大主流平台 iOS, Android,甚至一些领先的框架如 Flutter 等全是国外出的,第一手资料全是英文的,所以如何用英文查资料,无压力读取英文官方文档这是技术人的基本素质,再者就算是翻译难免也有瑕疵,所以一定要持续提升自己的英文水平,坚决用 Google!
再比如大多数人学习可能主要通过各种博客来学,这样确实可以学到不少东西,但是博客的问题是各种知识点比较散,而且多数是作者对知识的提炼和总结总结,总结的过程中可能省略了很多知识点,也漏掉了书中的一些精华。所以如果要提升自己,系统地构建自己的知识体系,一定要看书!
看书确实是一件很费力地事,但长期来看,对你知识体系的构建大有裨益!另外值得一提的是一开始很多人入门可能摸不着门道,这时候看视频快速入门是没问题的,但后期一定要回归到书本的学习中来!看书是实现知识技能充分必要条件!
什么是底层能力,算法,数据结构,操作系统这些就属于底层能力,这些为什么重要,这些是上层语言,工具的根基!这些属于心法,内功,学好之后对你后期势能的爆发大有裨益!内功很重要,工具不重要!不少人误把工具用得熟练程序当作自己资本,甚至在 V 站上看到一个人对刚入职的同事不会用 git 而大加吐嘈,这是大错特错的。工具为什么不重要,想想杨过在武功大成后用玄铁重剑和木剑对他来说差别大吗,对于一个内功深厚的人来说,工具的掌握只要稍微看下文档,Google 一下即可掌握,信手拈来!内功决定程序员的上限,而工具的掌握甚至连下限都不算,内功最重要。
要掌握好一个框架,学习它的底层原理,读源码是必不可少的,这样才能在面对多个框架的选型时根据框架的优劣性做出取舍,同时多读框架的源码你还会对它底层的思想有更深刻的理解,能够做到知其然,更能知其所以然。
举个简单地例子,在 Java 中有一个 Arrays.sort 的方法可以对数组进行排序,一开始我以为是个简单地快排,读它的源码之后才发现它虽然是用的快排,不过它用的是 dual-pivot 快排,这就让我产生了深厚的兴趣。后来了解到这个 dual-pivot 快排比经典快排节省了 12% 的元素扫描,扫描元素的个数这种新的算法把内存的流量的因素考虑进去,比较适应新时代。看到一种框架可以不断地引出新的知识点,深挖这些新知识点,这样框架的优劣性也就吃透了。
学完了某些知识点,怎么确定自己就掌握它了呢,可以试着把这些知识点写成博客,在写博客的过程中要反复思考这些知识点怎么让小白也看得懂,如果写出来之后小白也看懂了,那么基本可以肯定这些知识点可以算掌握了。同时在写博客的过程中,如果有问题,读者说不定也会帮你指出来,这样对自己知识的盲点是个很好的补充。
写博客最好的时间是十年前,其次是现在!强烈建议读者现在都开始写博客,一方面是对自己知识体系的一个梳理,另一方面也能与读者探讨,一举两得!
身为 Java 后端开发,只了解 Java 就够了吗, 至少你要对网络知识,MySql 这些也要做一定的了解吧,所以 《TCP/IP 详解》《高性能 Mysql》也是你进阶的不二书籍,至少要对 TCP 的慢启动,拥塞机制有所了解,要知道索引到底是个东西,如何优化 Mysql 性能有一定的了解吧。
可以先对后端工程师应该具备哪些能力画出一个技能树(如下图),然后再对这个技能树上的每个点再各个击破!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!