点击下方二维码,试听课程:
《21天互联网Java进阶面试训练营》
(分布式篇)
本文是公众号读者再见伐木机的投稿
前言:人生而平凡,大多数的人和我一样都是普通人,没有谁天赋异禀,靠的是三九寒冬,囊萤映雪,悬梁刺股,勤学苦练......
随着一场盛大的TI比赛落幕,今年的奖金池飙升到了3425w美元,而曾经的中国队可以抗衡世界的局面已经分崩离析了
从一个程序员的视角来看,这次的比赛告诉了我们什么?我们能够学到什么?
-
超强的个人能力,单兵作战的时代已经远去,墨守成规的打法,不变的“四保一”战术,在这个时代,不管用了......
解决方案
:
灵活多变,触类旁通,多学习别人的战术,战略,抱团取暖,团队成长,这不是一个人的游戏.
-
同样的错误多次再犯,你的比赛需要你动脑筋,小学生都知道犯错了还记录在错题集上。
解决方案
:
复盘每一次失误,吸取每一次教训,加固每一处弱点,夯实每一滴基础。
正文:
上面其实扯的有点多,而本文的主要目的:
是想从我的角度去给大家一些建议,在这极大竞争和挑战的程序员行业,该如何脱颖而出,该如何快速成长?
之前的面经《不服输,你就不会输!》反响很好,很多人给予我反馈说学到了很多学习方法和面试技巧,也有很多人会加我微信进行更深层次的讨论
而我主要的目的就是给大家带来一些共鸣,能够让大家获得到一些东西。
我这段时间大概遇到了这么几种人:
-
刚毕业的,不知道如何快速成长的
-
毕业几年了,但是一直做一些很简单的项目,项目没有任何亮点的
-
有一定的技术实力,也去面过大厂,但是最后几轮被挂了的
-
工作几年但是已经有家庭了,没有很多时间用来提升自己,也一直干着一些业务堆叠的活,浑浑噩噩,感觉再过几年就看到了职业生涯的结束
下面我们来看
解决方案,
上述四种人,总结起来主要是下面的问题:
-
我根本不知道我该怎么办呀?
-
我该怎么提升我自己?
-
我该怎么进大厂?
-
我该看什么书?
-
我该学什么技术?
-
我这阶段缺什么?
这些朋友
迷惘
,嘴上说着奋斗,心里呐喊着前进,但其实拖延,懒惰早已控制着大脑,让他们无法再改变自己的生活状态了”
但.......呼吸不止,战斗不止;没有谁愿意累死累活的去学习,只是我并不想输而已......
那么,你该怎么做?对,你该怎么做!
很多人希望别人给个方法,然后自己只要照着做就能成功就好了
但其实这很不现实,毕竟每个人的方法都是隶属于个人,一个萝卜一个坑,我的不适用于你的......
我标蓝的这句话大家应该听过无数遍,心里肯定也是痛骂过:MMP,不适合所有人,你还说来干什么,我就是想别人告诉我,我就是找不到怎么做。
其实我也有过这种想法,所以我很能理解,这种情况是基于你的知识量还不够,自我认知还不明确,自我分析和举一反三触类旁通的能力太薄弱.
所以我通用出一套模型给大家,你可以学习着这么做,不会让你走到最适合你的道路,但绝对也不会很差......
我下面这段话其实有一个前提:是你目前是想换工作去面试,还是想慢慢发展自己,不着急跳槽的两种人。
你的项目没有亮点,全是CRUD的业务堆叠,那我建议你,先入手几本书《重构》,《cleancode》,《大话设计模式》
如果你不愿意看书,那么去慕课网找一个《java设计模式精讲》,把里面的每一个例子,每一个uml图,每一个源码运用到的设计模式都看完,写一遍,记住。
这几步的目的,是让你能够在一群同样写业务的程序员里面脱颖而出,写出漂亮的代码,精简,通用,抽象。
之后产品给你的业务需求,你可以好好构思这个需求如何设计,如何抽象出来,以后需求再变应该怎么设计代码可以更少的修改
这样子你脑海中会把23种设计模式都走一遍,你会去筛选哪一种最合适当前的业务,前期的运用就是这样,叫做
强行使用,刻意去用
当你越用越多之后,一个需求下来你会很敏感,你会知道怎么写,怎么抽象,怎么精简,用哪种设计模式,用它有什么好处,换一种有什么缺点等等等......
至此为止,
你简历上的第一个亮点:
代码优雅,设计雅观,通透的理解设计模式已经出来了。
当你的代码写的很漂亮之后,这时候就要进一步去研究你们当前业务能够去增加哪些框架技术
毕竟没有那么多大业务量的公司,也没有很多并发量很高的公司,所以你选择一些适合当前公司业务的技术。
譬如,你们现在还是一个单体,单服务也能在线上跑的活灵活现,但是你的技术栈不能止步于此
你可以去看dubbo,zk,或者springcloud 对你们的服务进行拆分,你要知道从单体拆成微服务的过程你会学到多少东西?会碰见大量的问题......
当然很多人会说我的领导不同意我去拆服务,那么你可以去和领导协商,拿出纸笔罗列出优缺点1234......
但领导可能还是会不同意,而且这也不属于你的kpi,那么你就按照单服务多机器冗余部署的方式进行运用这些框架
当然用这些框架的过程中必然会遇到很多问题,你会去查百度,查谷歌去解决,但是很有可能解决不了
这时候你就开始进行
第二个亮点:源码阅读解决线上问题
通过一些框架的利用,你肯定会好奇这些框架做了什么,会帮你干些什么,你如果说我不好奇,那么我无话可说......
很多人说阅读源码好难哦,乱七八糟,各种设计模式,类也特别多,debug的时候跳来跳去.
我建议初次读源码最好去找视频,毕竟有些人可能英语也比较差,让他读官方文档也看不怎么懂,找这个技术的源码剖析视频或者一些博客,这样子你会很快速的入门这个框架
等你看完视频或者读过大量的博客之后,你会灵活使用api了,这时候可以去官网看看有没有一些新的发现
然后,你可以自己打断点开始走一遍这个框架比较重要的流程代码,然后运用我们之前的联想记忆,把他的流程画出来
但是你肯定有很多不理解作者为何如此设计的地方,没事跳过去,所谓书读百遍,其意自现......
很多东西别人教不出来,真的当你读和理解很多遍的时候,你会
顿悟
,这种感觉很爽,值得大家去尝试一下......