问题

今天的话题比较沉重,可能会被打。

我先提两个问题:

1、离开spring,你还会写代码吗?

2、现在培训机构的广告满天飞,都在营造一种技术牛逼就能进大厂,还各种贩卖焦虑,你认为学习完各种牛逼的技术就能进大厂吗?

如果第一个问题你回答不能,第二个问题你回答能。

那我得警告你了,你可能陷入了技术泥潭。

什么是技术泥潭

什么是技术泥潭呢?

这个词是我发明的,它是指你陷入了某种技术不能自拔,或者是陷入一种外部营造出来的需要持续不断学习“技术”的氛围不能自拔。

这两种情况都很危险。

Spring泥潭

首先,我们看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,题目就是这样,请你用代码实现这个需求,前提是不使用任何框架。

小提示:题目有很多隐藏的信息,需要你自己挖掘。

结语

最后,也欢迎同学们留言说出你的思路,或者讨论一下,你有没有陷入技术泥潭呢?