经常有人在公众号里问我,《第一行代码》看完了,想再找一本进阶的书来学习学习,问我应该看什么好,我的回答总是《Android开发艺术探索》。这是一本质量很高的进阶书,作者是任玉刚,在圈子里我们都称他任主席。
主席是Android界的大大牛,不仅是名校出身,而且工作也都是大厂履历,先后在百度滴滴工作,滴滴的插件化开源框架VirtualAPK就是出自他之手。而作为大大牛的他,今天和我们分享了如何才能成功技术大牛的经验,相信会对不少朋友有所帮助。
背景
- 提问1
提问: 刚哥,我有一个困扰,我看你的艺术大概七八遍了,从刚开始的止步于binder,到后来的三天全部看完了,但是有一个事就是平时用到的少,自定义view倒是挺多的,我在这个公司主要是做证券行情模块,就是各种绘制K线,指标等等,做同花顺那种app基本没问题,绘制,手势,都是信手拈来,但是仅仅就是这一块,书上所说的内容有很大一部分用不到,然后就忘掉了,请问对于我这样的人,怎么才能成长为刚哥你这样的人?
- 提问2
提问: 刚哥,因为听到看到一些事,让我觉得几百几千对于真正需要的人来说,真的是太少了!觉得自己有心无力! 我决心在接下来的两年好好学技术,我想努力进美团(因为我之前没接触过计算机语言,可能滴滴进不去),拿更多的工资!一步一步提高自己!!!所以,我想麻烦刚哥能给我指导一下,美团的面试有没有啥稍微明确或者大概的方向呢?或者我该学哪些方面的东西?刚哥,千言万语难以表达我的想法,恳请刚哥能像诸葛亮教导姜维那样,给我一些指点!再难我也学!我问得跟之前的学习路线的有点区别,刚哥,你可以等理顺了再回复我。词不达意,谢谢刚哥!真的谢谢!麻烦刚哥了!
上面是我的公众号两位小伙伴的提问,总结下就是:
- 问题1:公司用到的技术比较简单,如何成长为大牛?
- 问题2:如何有针对性地进入一家大公司?
这两个问题,应该非常具有代表性。我相信有类似疑问的同学还非常多,为了能帮助更多的人,所以我将这篇文章分享了出来。
对于问题2,我可以肯定地说:不存在某种方式使其可以简单进入某家公司。面试过程具有不确定性,哪怕是同一家公司,不同的面试官所问的问题和侧重点都是不一样的,因此我们没法有针对性地去学习部分内容而通过面试,唯有全面的学习才足以应对任何公司和任何面试官。
凡事不能绝对,既然有同学问了,那我就透露一下:
如果你有足够的人脉,能够提前知道目标岗位的要求,以及目标面试官的技术喜好,那将会有捷径出现。
大家想想,上述捷径可操作的空间很小,我们很难做到这一点。
虽然我曾经帮助3位公众号的同学进行了内推并帮助他们拿到了offer,但是我也做不到上述那样。我所做的只是合适的引荐:帮有实力的候选者通过简历筛选、向面试官推荐候选者并让候选者有机会展示自己的技术能力。
可能有同学会疑问了:我有能力还需要你推荐吗?这话不假,但是很多同学学历和工作经历不佳,简历投递到大公司直接就被pass了,因为筛选简历的hr可没那么多时间去了解你的技术,他们主要看三点:
- 工作年限,是不是3年+
- 毕业院校,是不是名校
- 工作经历,是不是一线公司
不满足上述三个条件,pass。
言归正传,我们很难有针对性地去准备一家公司的面试,那我们只能全方位地去学习。这样一来,问题1和问题2本质上就是一个问题啦,即:
公司用到的技术比较简单,如何成长为大牛?
如何成为技术大牛?
想成为技术大牛,我认为需要经过下述几个阶段,任何一门技术,不管是Android、iOS、前后端还是人工智能啥的,都可以归结为以下几点:
- 理论基础阶段
- 实践阶段
- 思考阶段
- 理论升华阶段
理论基础阶段
这个时候对应刚开始学习的阶段,我们会看入门书、官方文档和网上博客,能够写出 hello world,实际上这个时候我们学到的都是一个个零碎的知识点,不能形成大的战斗力。
实践阶段
光学习不实践是没有用的,尤其对于编程来说,撸码的意义就更重要了。有时候会有这种感觉:“看书都能看懂,轮到自己写功能的时候就有点不知所措”,这其实就是缺乏实践的表现。
很多时候,光靠上班是不够的,尤其是很多公司所做的事情比较简单,涉及的技术也少,那就更需要我们业余时间投入更多时间了。业余时间的学习需要明确的方向和学习路线,这个时候需要有一本好书或者好的博客,这其实是很难得的,最终要把一个技术领域常用的技术都学会。
换言之,平时工作较简单,那就需要从看书、技术博客、开源中获取实践经验。为了更好地实践,你必须敲代码,学习一个知识点的时候,看完书和博客文章,你必须亲手敲一个例子来验证才行,避免复制粘贴。
思考阶段
如果说大量的实践可以让你轻松掌握各种技能,那么思考则能让你对技术的理解较旁人更胜一筹。那么如何思考呢?这里可以举几个例子。
比如,一个效果通过某种方式实现,要思考下:“还有更好的方式吗?没种方式的优缺点是什么呢?”
再比如,一种常用的API,也可以思考下:“这个系统是怎么实现的呢?能不能读一读它的源码呢?”
理论升华阶段
在经历了理论->实践->思考以后,经过几年的历练,那你就破茧成蝶了,你会对一个技术领域有整体的理解和全局的把控。再谈起这个技术领域,你可以轻易说出一条又一条的道理,这种理论是经过大量实践和思考得出的,和最开始那种基础理论有着显著的不同。
所以我说,其实技术最终也是理论,你们认可吗?还有就是方法论再好,不投入大量时间也是不行的,我所知道的一些技术大牛,都是投入了大量业余时间来学习和思考,最终成为了技术大牛。
如果你在Java开发工作中遇到困难,或者学习遇到瓶颈,欢迎加入我们Java总群:309603235, 解决各种坑爹的Java问题,群内有Java技术大牛,为您解决Java工作、学习中遇到的问题,欢 迎菜鸟,老鸟入坑。
原文地址:http://blog.51cto.com/13672983/2110183