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