有不少读者咨询过基础知识相关的问题。
有问怎么能够学好基础知识,有问基础知识到底有什么用,也有直接过来喷我,说工作只有CRUD,基础知识就是忽悠。
当然,也有一种论调说,基础知识就像是编程中的“九阳神功”,掌握好了,就可以内力大增,成为绝顶高手,年薪100万+。
其实基础知识既没有那么不堪,也没有那么神乎奇迹。
这篇文章,就聊聊,我对基础知识的一些理解。
基础知识的学习,确实不能带来短期的收益。应该说,对于大部分的工作,都是如此的。
以Android开发为例,花了很长时间去补网络、数据结构、算法、Java基础、Android内核、源码原理这些知识,但发现每天的工作还是CRUD,大部分都用不上。
要想通过学习基础知识来取得短期内的快速提升,并升职加薪,这个想法基本就可以摒弃了。
基础知识对程序员最大的价值是软件思维能力的培养和软件架构意识的潜移默化。
虽然学习这些内容,既枯燥又费时间,但长期来看,确实会从根本上提升一个程序员的软件思维能力,你也可以认为,它能够最终提升你技术生涯的天花板。
他们看似枯燥和基础,甚至是过时了,但是往往具有最长久的生命力。
其次,基础知识对于技术的提升,不是在后期才发挥作用的,而是在整个的技术成长周期中,都发挥着作用。
很明显的区别就是,两个人在同时学习一套新的框架。基础知识扎实,对网络协议,底层原理有较深入了解的同学,可以学得比对这些部分完全没了解,或了解很少的同学快很多,也透很多。
就像有些人,老是觉得某些框架学了就忘,很多时候,是因为没有吃透框架本身的设计原理,掌握最核心的东西。
一般框架的设计,都是围绕性能,复用性,可扩展性进行的。
要做到高性能,必然需要对底层源码有深入理解,反过来说,如果你对底层源码理解深入,你对框架性能这块的设计和考究,就能很快掌握了。
复用性,可扩展性,基本跟软件设计,设计模式,最佳编程规范相关。如果这些你也掌握了,那自然能够很快理解这其中的设计。
有这些基础知识的支撑,学习这些新框架的时候,你会快很多,而且因为你能理解为什么要这么设计,所以也不容易忘记,甚至你忘记的时候,都可以通过自己的经验推导出来。
所以,基础知识对个人技术能力的提升,是有很关键作用的,能让你学习得更快,更容易,更深入,而且伴随你整个技术生涯。
再次,基础知识的学习,求精不求多。有不少同学容易陷入一种误区。觉得基础知识很重要,然后就一直在学,好像随时抱着一本大部头的《算法导论》,自己的编程能力就会有提升一样,其实并不是如此的。
对大多数人来说,学习基础知识比学习一种新的语言,一个新的框架更难,更枯燥。
而蜻蜓点水式的学习,对基础知识的掌握基本没用,除了获得一点心里安慰之外,基本没有价值。
其实一本《算法导论》那么厚,大部分人都没有看完的,你能够吃透其中的三分之一,我觉得就可以赢过大多数人了。数据结构、网络协议,也是一样。
吃透才有真正的价值,那怕只是书中的一页。而蜻蜓点水式的学完,你会发现,合上书,基本就忘光了。
如果你真的想掌握好基础知识,我觉得可以做一个长期且极有耐心的规划。比如一年为期,只看一本基础知识的书籍,并且每个月,就其中的一两个点,深入吃透。
这种看似很慢的做法,其实特别扎实,一段时间后,你会慢慢感知到一种来自底层思维的变化。到那时候,你肯定可以获得一种巨大的满足感,你会有一种突然清晰的感觉,好像一层朦雾被拨开了。
最后,基础知识当然不能够包治百病,但如果你确实有耐心去学习,你有可能在坚持两三年后,改变自己的技术命运,说在你已有的水平上,再提升一到两个档次都不为过。升职加薪便是自然而然的事情。
当然,这种事情是很难的,单两三年这个时间,估计不少人看了就退缩了。不过这也合理,做成困难的事情的人总是少的,但也是这批人,最后可以走得更快,更好!
最后,在这我也分享一份大佬自己收录整理的 Android学习PDF+架构视频+面试文档+源码笔记 ,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅的精品资料。在脑图中,每个知识专题都配有详细的知识点,还有相对应的实战项目,可以有效的帮助大家掌握知识、理解原理。当然你也可以拿去查漏补缺,提升自身的竞争力。
总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
如果你有需要的话,可以加Vx:15388039515(备注简书,需要进阶资料)
喜欢本文的话,不妨给我点个小赞、评论区留言或者转发支持一下呗~
网友评论