最近我想了解下Spring Boot和Spring Cloud以及微服务的内容,想买几本书先系统学下,也从京东等渠道看中了几本。正好上周五下午有半天假期,我就头脑一热跑实体书店了,结果就开启了这次几乎是“无用功”的行程。
刚进书店,看到人头攒动,又闻书香,书山书海,有种想立即跳入知识的海洋游泳的冲动。
当我三步并作两步跑到计算机图书的区域时,发现我想要的书的分类并不如我想象的那么多。
大致布局如下,每个柜子上方有这柜书的种类,比如计算机里有java,c++,机器学习等,书柜里放着竖着和平摊的书。抱歉我文字叙述功力不强,为了让大家了解,我就给了张样式图,这和我去的书店无关,侵权立删。
我观察到了如下的现象(只说现象不评论)。
1 虽然计算机图书占地不小,但平摊到一类的不多,比如我要的Spring Boot和Sring Cloud属于Java,Java种类也就占了1个书柜。
2 书店了还放着一些似乎已经过时的书,比如VB.Net,Java种类里还放着不少JSP的书,可能我孤陋寡闻,但这些类在京东等地方,似乎搜索度并不高,
3 我也看到了最近出的书,java web轻量级开发面试教程(京东有售),而且只有一本,似乎销得可以,而且京东上的销量也过了100+了(出版到现在4个月不到)。
4 其实是同一类书的,比如是描述高并发框架的书,我看到被分在不同的类别里。
5 在网络技术这块,我看到了不少前端开发的书(比如讲CSS+DIV),在我印象里,似乎可以开辟一个“前端技术”的类别在放这类书。
接下来是我遇到的实际困惑,第一,通过关键字找书不容易。
可能我最近在网上买书比较多,到实体书店还有些不习惯,在实体书店里,只能根据Java,.Net,C++,数据库这样的大类分类,比如我要找Spring Boot或Spring Cloud的书,网上搜关键字即可,而且能根据销量降序排列,可以让我知道哪些热卖,但我在实体书店里,为了找Spring Boot好Spring Cloud的书,还需要跑Java和网络开发两个柜面,而且还得自己用眼睛找,当我找到几本同类的书后,也无法知道哪本畅想,从而帮我选择。
第二,我没找全我需要的。
其实我之前已经在网上看了5,6本书了,本来想到实体书店再翻下,从中选择几本好的,但书店了,通过身体力行的搜索,我在所有的柜面上就找到3本。
之前有种说法,实体书店已经沦为网店的样品间,我可能更悲观,由于用户体验一般(实体书店搜索书不如网店方便)而且种类数量不如网店全,可能至少我在最近不会去书店了,哪怕是看样本。
最后说下结果,我想来一次不容易,就挑了2本,当我结账时,两本书150+,不打折。我也知道,实体书店需要支付人力成本,店面费和各种水电等费用,也不容易。但抱歉我网店去多了,习惯打折了,最终还是为了不心疼银子,直接和营业员说不买了,心想回家去网店买(我想的我没敢说,但我不说估计人家也知道)。
虽然这次几乎是白跑了(好歹看到我的书java web轻量级开发面试教程在书店有售),但我反思了下我最近的学习途径,从而能保证我最近能继续高效地充电,这也算是个收获吧。
其实在学习上,最大的问题不是读懂知识点,而是不知道该学什么,以及如何把学到的知识整合成能干活的知识体系。下面根据我看到的以及自己的体会,来分享些学习的途径。
论单纯的途径,一般分如下四种。
1 如果我们急需掌握某种知识,条件又允许,可以付钱参加些培训。比如某人已经参与了一个机器学习的项目,但他什么都不懂,那么可以参加个培训班,毕竟在培训班里,能了解到这个领域的知识体系,至少有师傅帮带,我付的钱不仅是买了知识,更能买学习路线。
在大多数培训班结束后,学员可以搭建成这个领域的知识框架,该学的知识点应该都会提到,但每个知识点不会了解太深,这样后继学习也有方向了。至于学费是否和效果相匹配,我就不做评论了,但我感觉培训班比较适合于需求比较着急而且自学能力有待提升的人群。
2 买书,比如我之前要学高并发框架,我就到网上买了6本这方面的书,看完后至少了解一些大型高并发框架需要什么组件以及每个组件里需要配置些什么。这种方法比如上培训班,花的钱会少很多,但对学习毅力和学习能力有些要求。
3 看网络资料,比如我要学Spring Cloud,我就上网搜这个关键字,会有很多文章,但这种方法的缺点是,知识太多太杂,如果无法进行有效筛选,那么不会有效果。
4 实践。这是效果最好的方法,但很难操作,比如我要学Spring Cloud,最好是进一个做这个的项目组,边做商业项目边学,但一般这种心想事成的机会不多。一般可操作的做法是去参加面试,比如多参加几个Spring Cloud的面试,把面试官的问题收集起来,然后根据这些方向去学习。
在实际操作中,我实践过的方法是买书加看资料看实践,具体做法是:
1 出钱买书,一般一本书原价70,网上6,7折,一般一本书是45,就买个10本也就500不到,但得全看,一般一本书大流浏览一次1天,如果仔细研究其中案例估计一周看2本。
2 当用个1个月时间看完相关书后,就能知道这个领域的知识体系了,具体而言,要用Spring Cloud做项目,得用Zuul,eureka,Ribbon,Hystrix等组件。
3 再用2周时间,围绕着“商业项目里怎么用”这个问题,到网上搜各组件的用法。
4 之后再投简历参加几场面试,这些面试一定不会成,但要准备。而面试官一般会从“项目里该怎么用”这个问题点问问题,收集下这个问题,回家再看资料。
逆水行舟,不进则退,如果不学习,那一定就没法提升自己的职位和工资。
等到工资被后辈超越时,谁都不好受,但早干嘛去了。
用上述的学习方法,本人已经帮助了不少人成功跳槽。有位非计算机专业,而且非好的一本,毕业后想干软件开发,在采用了本人上述的买书加看资料加面试的学习方法后,成功进入一家软件公司(虽然工资一般)。