今天的话题比较沉重,可能会被打。
我先提两个问题:
1、离开spring,你还会写代码吗?
2、现在培训机构的广告满天飞,都在营造一种技术牛逼就能进大厂,还各种贩卖焦虑,你认为学习完各种牛逼的技术就能进大厂吗?
如果第一个问题你回答不能,第二个问题你回答能。
那我得警告你了,你可能陷入了技术泥潭。
什么是技术泥潭呢?
这个词是我发明的,它是指你陷入了某种技术不能自拔,或者是陷入一种外部营造出来的需要持续不断学习“技术”的氛围不能自拔。
这两种情况都很危险。
首先,我们看spring的例子。
spring确实很牛逼,它为java带来了新的春天。
站在老板的角度,我肯定希望你直接用spring就可以了,因为能够极大的减少开发的复杂度和维护成本,而且你走了,来个人都能搞。
但是,站在员工的角度,一旦你把自己陷入到spring的技术栈里,对于个人的成长是非常不利的。
正所谓,时间均衡定律,你在一个地方花费的时间多了,在另外一个地方肯定就少了。
如果专注spring,没有一两年你是不可能达到精通的地步的,光是spring的官方文档就够你读好几个月的了。
说实话,java领域不止spring,还有很多其他的技术,而且,要成为架构师,是需要点线面体全方位的提升的。
所以,一旦你在spring上面投入了过多的时间,你就没有时间花在其他方面,你可能会错过很多,甚至是,爱情。
然后,我们再看第二种情况:陷入一种外部营造出来的需要持续不断学习“技术”的氛围不能自拔。
注意这里的关键词是学习技术不能自拔。
咋一看,这不是好事么?
其实不然,你自己算算java领域你需要学习多少东西,jdk源码,jvm,netty,spring,MySQL,elasticsearch,kafka,rocketmq,mycat,sharding sphere。。。。。
随便列一下,就有十几种,这些技术一个一个认真学完,你自己算算要多少年,青春啊,岁月啊,爱情啊。。
最重要的是,一旦你陷入到技术学习中,你就会忽略其他方面的东西,比如思维能力,沟通能力,解决问题的能力。
最后,你可能会成为一个技术傻子。
该表达的意思,我表达到了,相信你能理解我的意思。
所以,技术人应该学习哪些东西呢?
在之前的文章中,我也说过,应该学习下面几种知识:
1、学习能够帮助你快速理解业务的能力。
2、学习通识,并储备技术。
3、学习社交能力,即软实力。
上面3点在上一篇文章我们都说过了,就不再赘述了。
我们以分布式技术为例来看,应该掌握哪些通识呢:
1、理论,acid,cap,base,paxos(zab/raft),一致性hash
2、java体系,并发,多线程,同步器,unsafe,反射,动态代理
3、操作系统,CPU缓存一致性,oscache
4、单机故障就加主备,单机瓶颈就加分片,分片就是分布式
你可以看看,是不是分布式框架都用到这些技术,不管是消息队列kafka和rocketmq,还是搜索引擎Elasticsearch,或者是分布式缓存redis cluster,当然,还有动物管理员zookeeper(分布式协调器)。
好了,今天的文章我们就聊到这里。
我留个题目,你可以尝试不使用任何框架能不能写出来:
甲和乙两个人去看房,他们同时找到了中介,甲说我需要一房一厅、月租不超过1800,乙说我对房型没有要求但是要在某某大厦1公里以内,价钱不是问题。
OK,题目就是这样,请你用代码实现这个需求,前提是不使用任何框架。
小提示:题目有很多隐藏的信息,需要你自己挖掘。
最后,也欢迎同学们留言说出你的思路,或者讨论一下,你有没有陷入技术泥潭呢?