DOTA 2 中国“惨败”,作为程序员的我们能从中学到些什么?

640?wx_fmt=png

640?wx_fmt=jpeg

点击下方二维码,试听课程:

《21天互联网Java进阶面试训练营》(分布式篇)

640?wx_fmt=png

640?wx_fmt=png

本文是公众号读者再见伐木机的投稿

前言:人生而平凡,大多数的人和我一样都是普通人,没有谁天赋异禀,靠的是三九寒冬,囊萤映雪,悬梁刺股,勤学苦练......

随着一场盛大的TI比赛落幕,今年的奖金池飙升到了3425w美元,而曾经的中国队可以抗衡世界的局面已经分崩离析了

从一个程序员的视角来看,这次的比赛告诉了我们什么?我们能够学到什么?

  1. 超强的个人能力,单兵作战的时代已经远去,墨守成规的打法,不变的“四保一”战术,在这个时代,不管用了......

    解决方案灵活多变,触类旁通,多学习别人的战术,战略,抱团取暖,团队成长,这不是一个人的游戏.

  2. 同样的错误多次再犯,你的比赛需要你动脑筋,小学生都知道犯错了还记录在错题集上。

    解决方案复盘每一次失误,吸取每一次教训,加固每一处弱点,夯实每一滴基础。

正文:上面其实扯的有点多,而本文的主要目的:是想从我的角度去给大家一些建议,在这极大竞争和挑战的程序员行业,该如何脱颖而出,该如何快速成长?

之前的面经《不服输,你就不会输!》反响很好,很多人给予我反馈说学到了很多学习方法和面试技巧,也有很多人会加我微信进行更深层次的讨论

而我主要的目的就是给大家带来一些共鸣,能够让大家获得到一些东西。

我这段时间大概遇到了这么几种人:

  1. 刚毕业的,不知道如何快速成长的

  2. 毕业几年了,但是一直做一些很简单的项目,项目没有任何亮点的

  3. 有一定的技术实力,也去面过大厂,但是最后几轮被挂了的

  4. 工作几年但是已经有家庭了,没有很多时间用来提升自己,也一直干着一些业务堆叠的活,浑浑噩噩,感觉再过几年就看到了职业生涯的结束

下面我们来看解决方案,上述四种人,总结起来主要是下面的问题:

  • 我根本不知道我该怎么办呀?

  • 我该怎么提升我自己?

  • 我该怎么进大厂?

  • 我该看什么书?

  • 我该学什么技术?

  • 我这阶段缺什么?

这些朋友迷惘,嘴上说着奋斗,心里呐喊着前进,但其实拖延,懒惰早已控制着大脑,让他们无法再改变自己的生活状态了”

但.......呼吸不止,战斗不止;没有谁愿意累死累活的去学习,只是我并不想输而已......

那么,你该怎么做?对,你该怎么做!很多人希望别人给个方法,然后自己只要照着做就能成功就好了

但其实这很不现实,毕竟每个人的方法都是隶属于个人,一个萝卜一个坑,我的不适用于你的......

我标蓝的这句话大家应该听过无数遍,心里肯定也是痛骂过:MMP,不适合所有人,你还说来干什么,我就是想别人告诉我,我就是找不到怎么做。

其实我也有过这种想法,所以我很能理解,这种情况是基于你的知识量还不够,自我认知还不明确,自我分析和举一反三触类旁通的能力太薄弱.

所以我通用出一套模型给大家,你可以学习着这么做,不会让你走到最适合你的道路,但绝对也不会很差......

我下面这段话其实有一个前提:是你目前是想换工作去面试,还是想慢慢发展自己,不着急跳槽的两种人。

你的项目没有亮点,全是CRUD的业务堆叠,那我建议你,先入手几本书《重构》,《cleancode》,《大话设计模式》

如果你不愿意看书,那么去慕课网找一个《java设计模式精讲》,把里面的每一个例子,每一个uml图,每一个源码运用到的设计模式都看完,写一遍,记住。

这几步的目的,是让你能够在一群同样写业务的程序员里面脱颖而出,写出漂亮的代码,精简,通用,抽象。

之后产品给你的业务需求,你可以好好构思这个需求如何设计,如何抽象出来,以后需求再变应该怎么设计代码可以更少的修改

这样子你脑海中会把23种设计模式都走一遍,你会去筛选哪一种最合适当前的业务,前期的运用就是这样,叫做强行使用,刻意去用

当你越用越多之后,一个需求下来你会很敏感,你会知道怎么写,怎么抽象,怎么精简,用哪种设计模式,用它有什么好处,换一种有什么缺点等等等......

至此为止,你简历上的第一个亮点:代码优雅,设计雅观,通透的理解设计模式已经出来了。

当你的代码写的很漂亮之后,这时候就要进一步去研究你们当前业务能够去增加哪些框架技术

毕竟没有那么多大业务量的公司,也没有很多并发量很高的公司,所以你选择一些适合当前公司业务的技术。

譬如,你们现在还是一个单体,单服务也能在线上跑的活灵活现,但是你的技术栈不能止步于此

你可以去看dubbo,zk,或者springcloud 对你们的服务进行拆分,你要知道从单体拆成微服务的过程你会学到多少东西?会碰见大量的问题......

当然很多人会说我的领导不同意我去拆服务,那么你可以去和领导协商,拿出纸笔罗列出优缺点1234......

但领导可能还是会不同意,而且这也不属于你的kpi,那么你就按照单服务多机器冗余部署的方式进行运用这些框架

当然用这些框架的过程中必然会遇到很多问题,你会去查百度,查谷歌去解决,但是很有可能解决不了

这时候你就开始进行第二个亮点:源码阅读解决线上问题

通过一些框架的利用,你肯定会好奇这些框架做了什么,会帮你干些什么,你如果说我不好奇,那么我无话可说......

很多人说阅读源码好难哦,乱七八糟,各种设计模式,类也特别多,debug的时候跳来跳去.

我建议初次读源码最好去找视频,毕竟有些人可能英语也比较差,让他读官方文档也看不怎么懂,找这个技术的源码剖析视频或者一些博客,这样子你会很快速的入门这个框架

等你看完视频或者读过大量的博客之后,你会灵活使用api了,这时候可以去官网看看有没有一些新的发现

然后,你可以自己打断点开始走一遍这个框架比较重要的流程代码,然后运用我们之前的联想记忆,把他的流程画出来

但是你肯定有很多不理解作者为何如此设计的地方,没事跳过去,所谓书读百遍,其意自现......很多东西别人教不出来,真的当你读和理解很多遍的时候,你会顿悟,这种感觉很爽,值得大家去尝试一下......

上述两个点总结一下

  1. 代码优雅,前期故意设计,后期灵活设计 

  2. 故意运用框架,先其使用,后其原理

至此对于项目一般的人,简历上多出了这两个亮点,灵活运用设计模式和熟练理解XX框架,并阅读过XXX源码,解决了什么问题

而对于近期不太想换工作的人,想提高自己,我的建议比较平庸,就是每天刷一道算法题

你可以从简单开始,训练思维,然后看一些经典框架的源码

然后就是基础至关重要,《CSAPP》,《TCP/IP》,《UNIX》,《操作系统》,《编译原理》等等都是你需要深入钻研的基础......

如果你曾经考过研,我甚至建议你可以把考研的书拿出来做,譬如《王道考研-数据结构》,408考研相关的都是很好的打基础和理论的书籍......

最后讨论一个问题:理论重要还是实践重要?

其实这个问题我觉得有点问题,这两者本就是相辅相成的,但是真要让我选,我会觉得理论先于实践。

因为当你有大量理论知识,在你实践的过程中,你的思维会跳舞,你的解决方案一个接着一个蹦出来,你可以一个一个去尝试,这也是我们上大学为什么先学书本知识再实践的原因......

闻道有先后,术业有专攻,希望这篇文章能让迷惘的你有一点点灵感。

END

如有收获,请划至底部,点击“在看”,谢谢!

640?wx_fmt=png

欢迎长按下图关注公众号石杉的架构笔记

640?wx_fmt=jpeg

BAT架构经验倾囊相授

猜你喜欢

转载自blog.csdn.net/qq_42046105/article/details/100145466