作者回复:
(-: 那门课的骨架内容偏少,等我抽出时间来,会增加一些进阶偏骨架的内容~
作者回复: 数据结构, 算法,操作系统,网络,计算机系统结构这些都是内功。内功虽然没有立竿见影的效果,但是会对所有的能力都有加成。而且对你还没学的东西都有加成,因为你会发现学习这些东西会很快。
举个简单的例子,HBase里用一个叫做Bloom Filter的数据结构去做过滤,如果你知道,就会会心一笑,也知道这种过滤的效果和优缺点。如果你不知道,就懵了。这种例子不胜枚举
学好基础,以后学习就一帆风顺。基础不行,学习就是步步维艰。
不过你说的那些小惊喜呀,以后会越来越少,因为你都已经懂了哈哈哈哈哈
作者回复:
我觉得这是一个很好的问题,我说的不是很详细。确实技术骨架不是一开始就能搞起来的,尤其是在自己的知识存量还没有形成规模效应,可以让我们触类旁通的时候。
我从开荒的状态说起吧,以Spring为例子。
首先肯定是要学好Java,明白对象,类,方法,多态,继承等核心概念。对于Spring来说,慢慢还要知道注解,反射,代理这些Spring会重点用到的知识。
然后就是学Spring,和学一般的技术一样,找个趁手的书或者资料,一以贯之的啃完。可以是我们的课程,也可以是官方文档。这个过程,开始更多的是比着葫芦画瓢,先看效果。
接着,就可以发挥自己的想象力来摸索了。这时候的最好的方式就是多写程序,想到什么就拿出来写写,练练,验证自己的想法。这一步,就是在慢慢构建自己的技术骨架了。所谓骨架,就是藏在表面之下的东西,看不到,但是如果没有它们支撑的话,表面的东西就不牢固。偏骨架的内容都在文章中都有介绍,这里就不重复了。就Spring来说,你要能知道这些bean是如何被描述的,如何被创建的,如何被组装的。做到这些,当出了某种异常的时候,你就很容易是哪个步骤的问题,可以马上去修正。
如果能做到这些,让你自己写一个IoC的框架,也非难事。当然,并不是说一定要做的像Spring这么全面,可能只是一个微小的内核,但是相信我,如果你自己做一遍,思考一遍,你会对Spring的认识更近一层,当你对比你自己的设计和实现与Spring的设计和实现时,会记的更牢固,印象更深刻。这个步骤,可以帮助你完整的构建关于这个技术的骨架。
当然,也不是说每个东西都要自己照着写一遍。如果自己实际做一遍,会对这个技术的核心和关键点认识的更深刻,当自己在做的过程中,遇到不好解决的问题时,可以参考现有的设计和实现。即使不去自己做一遍,而是在自己脑子里思考一下,如果自己做会如何设计,如何架构,想不通的地方去仔细看看现有的设计,也是能收获很多的。
作者回复: 限于篇幅和内容流畅性,很多内容没展开说。
其实每种技术都有侧重性,有些技术可能也需要这几种模型之外的模型。比如偏向数据存储和处理的,重点考虑它的架构,然后是数据模型和线程模型。把这几个搞清楚了,就知道这个玩意是怎么转的,出了问题可能是哪里的问题,也能知道它是否适合一个场景。
其实每个人都有自己的习惯,但是这都没关系哈,重要的是要有个技术骨架,这样才能把知识整合在一起,才能系统的学会新领域的知识。否则就容易什么东西都只会个表面,容易浮躁。
作者回复: 多关心业界新闻,多关心行业新技术,试着玩一玩。极客时间上的极客新闻和infoq就是很不错的信息源。
作者回复: 不成体系很容易学了忘,忘了接着学。成体系可以把知识穿起来,记得牢固,用的放心。
作者回复: ✅,不只是程序员呀,现在能混到退休的职业越来越少了