一、10000小时复习
关于10000小时定律,你可能在很多鸡汤中都看到过,大致的意思就是说人们眼中的天才都是付出了持续不断努力的,10000小时的练习是一个人从平凡成为领域大牛的必要条件。(我感觉到有杠精已经在摩拳擦掌了)。
在我的以往认知里,对于这句话一直处于一种半信半疑的态度,直到等我感受到拥有之后的体验,我才明白这并不是一句空话。虽然并不是所有的努力都是会有结果,但是不努力是永远没有结果的。
二、我的经历
我的第一份Android开发的工作是在2016年7月底的时候找到的,那时候除了在学校学的一点数据结构、算法、Java、C++和编程思想以外,没有任何项目经验。
那时候找同学帮忙内推菊厂,无奈投了5个部门,4个无音信1个婉拒,然后就没有再坚持。我依然记得那是2016年夏天最热的时候,每天拿着简历顶着大太阳,奔走于各家小公司去面试,最终大概花了一周的时间后,过了3轮面试然后进了西安的一家外包公司。
直到2020年9月,我有幸成为字节跳动的一名Android客户端开发工程师。算起来已经入行4年零3个月了,如果每周按6个工作日算,平均每个工作日8个小时,那么这段时间大约就是(52周* 4年+8周)* 6工作日/* 周8小时/天=10368(小时),也就算是刚刚熬过了10000小时,作为年近三十的野生Android码农来说,这样的结果来之不易。从外包进大厂有多难,圈内的人都明白,运气之余,也有自己脚踏实地的努力。这篇文章写于入职后的一周,希望跟过去告个别,然后自信地抬起头,在新的生活里Inspire Creativity,Enrich Life!
三、我做对的事情
-
努力工作,工作中学会技术复盘
在职场里,这永远是第一原则,过去的工作里我的平均绩效在
B+
的水平,至少自己不会因为工作内容枯燥简单就草率对待。及时复盘,把经验和技术沉淀下来,但一定要强迫自己反思,无论是学会了什么新技术,或者观察自己在面对一些事情时采取的策略,或者对产品和业务的想法等等,写什么都可以,但一定要做。- 重要点:Android基础
2016年刚入行开始,我做的第一件事情就是补Android基础,不夸张地说,当时几乎每天早晨5点就起床,然后看书看博客记笔记,csdn、简书、知乎、博客园等等博客上面的技术文章我天天看,学习大牛的编程思想,就这样近2个月的时间里基础知识水平大幅提高了,当然最终你会意识到Android基础和减肥一样,都是近乎永恒的话题。
- 接了一些私活
这是个稍微有些敏感的话题,但已经很久不做了(因为时间投入到其他事情上可能长期收益更大,总有一天你也会走到这一步),觉得这些经历对自己还是很有意义的。我其实很推荐技术还不错且有余力的同学至少完整地做一次私活,你可以自己去网上找或者通过熟人介绍,你可能还会面临和其他人竞标,可能会把最终能落入自己口袋的收益想象得过高,可能还要自己拟协议,过程中除了搞定自己的开发,还要督促着其他协作者,甚至最后被队友拖累。或者为了要到尾款而不得不装孙子、送礼、请吃饭,程序员的那点傲娇和面子在真实的世界分分钟被轰的一地鸡毛,那时你才明白,成年人的世界没有“容易”,世界上也没有那么多“应该”。我接私活有个原则,只接自己不会的,如果一个私活对我来说没有任何锻炼,自己会引荐其他人。签了协议,没有退路了,你会发现其实学点新技术也没那么难,我就是用这样的方式学会了使用
flutter
,kotlin
,jetpack
,Rxjava
等等很多技术。也在一些规模稍大的项目中锻炼了带队的能力,而这些东西,在常规的小公司和工作中几乎是没有机会的。- 持续学习,写技术博客
2019年5月左右,大约3年左右工作经验时我开始尝试写技术博客,因为写博客在面试的时候能给面试官留下非常不错的印象,在字节面试的时候,面试官就问我你平时写技术博客吗?而且自己博客里整理出来的文章是带入自己的编程思想的,当别人提出来你的错误是才是对自己最大的提升。最终,从开始到现在,我大约写下了110多篇不掺水的博客,有一分部分都是Android基础知识的学习笔记,也有一部分是项目实践中碰到的一些技术难题,后面通过自我审查分析、朋友的指点,终于搞懂还整理成博客供分享!其实刚开始写博客并没有什么目的,写东西是自己的学习方式,它可以帮助我检验自己是否真的弄懂了某个知识点,后来的收获都是意料之外的。
- 做了一次外部的技术分享
工作里其实也做过不少公开的技术分享,还有被邀请去其他组做分享的,并不是说你必须技术非常牛逼才可以分享,毕竟分享不是装B,你要做的是让别人知道自己有认真思考过一些东西,而且愿意分享,这才是非常重要的,当然这也能在一定程度上帮助你克服自卑心理。2019年11月,大约3年半工作经验的时候,有幸在谷歌西安开发者社群的年会上做一些关于浏览器方面的知识分享,很认真地准备了PPT(其实我可喜欢做ppt了),也认识了很多新朋友。这样的机会不多,如果有遇到,希望你尽量抓住,否则当你还一脸羞涩的给自己加内心戏的时候,机会可能就被别人拿走了,觉得自己行和觉得自己不行的人,往往都是对的。
- 机会摆在面前时,请走出舒适圈
当你发现自己处在一个困局时,是否还有勇气走出舒适圈呢?2019年底,大约入行3年时,我面试了很多西安和杭州的大厂,尽管几乎全都到了HR面的环节,但最终只拿到了2个很一般的Offer,摆在我面前的有两条路,接受少量涨幅的薪资然后留在西安,或者选择大幅度涨幅的薪资去杭州,如果这时候的你已经30岁了,有车有房还单身,你能接受去另一个城市吗?我能,相比于孤独,平庸更难以忍受,也因为自己知道,如果留下,4~5年后的自己很可能因为眼界和能力而被职场淘汰。
在杭州的工作仍然是一家大厂的外包,虽然枯燥但也不是特别忙,工作氛围也不错,但是当我在工作中看到正式员工承担的任务和能够调动的资源后,很快就意识到虽然大家都在一起办公。但其实并不在一个赛道上,他们受到的锻炼和成长的速度远远超过外包员工,而作我们只是在别人参加完一场场战斗后过来帮别人打扫战场的,当我想要主动去学习更多时,桌面上通常只会跳出那刺眼的提示“外包同学没有权限”。这种环境最可怕的地方在于,处处存在的差异化待遇会让人养成“受害者心态”,觉得面临的一切都是客观环境造成的,最终忘了自己还有选择的权力和能力。
原本的计划是想等到2021年春季再挑战大厂,base杭州,但是时间不等人,我们之中的一个同事在金九银十这两个月拿到了京东的offer,这便激起我对大厂再一次的渴望心,在短期对简历的整合以后便把简历直指大厂,后面在1个月面试征途中我便拿到了字节跳动的offer。从拿到offer的那一刻开始,所以的努力都是值得的,只是base在北京且薪资涨幅也没有达到自己的期望。刚刚习惯杭州生活的我再次面临选择,是再次走出舒适区抓住进大厂的机会(北京租房是真贵,其他消费其实并不夸张),还是按照自己的规划稳扎稳打半年后再挑战杭州的大厂,短暂的咨询和考虑后,我选择了北京。想起了那个上帝解救信徒的故事,机会到来的时候,它并不一定是你期望的样子。
在字节跳动开始工作后,我很庆幸自己没有错过这次机会,对于一个只在外包公司工作过的技术从业者而言,它真的意味着另一个世界。
四、总结
成长,才是永远的课题。
我喜欢朋友以前讲的一个比喻:当你想要开车去周游世界时,并不需要给自己的车装满足够跑完整个世界的油量,而只需要加满第一箱油就可以了,路上有那么多加油站,你随时都可以加油,路上有那么多的人,你也不用所有的事都只靠自己,想要一箱油就跑完整个世界的人遍地都是,但他们可能永远都不会出发,只有那些真正经历过的风景,才会让人真正变得丰富起来,哪怕看风景时的你狼狈不堪。
其实也就如工作一样,那个靠会Android的四大组件就能够获取到满意薪资的时代一去不复返了。没有哪一个资本家是个傻子,经过一波一波的淘汰与洗牌,现在剩下的都是技术的金子。就像大浪褪去,裸泳的会慢慢上岸。
这里附上我这四年收集整理、总结归纳的Android进阶资料,包括了(①Android面试pdf+②Android技术知识汇总pdf+③Android进阶笔记),希望可以给大家提升自己做一个参考。需要获取的朋友可以去————【我的Github】免费下载阅读。
Github地址:https://github.com/733gh/xiongfan2.0/tree/main
希望那些真正坚持下来的Android开发者们一定会取得不错成绩。毕竟Android市场是如此之大,从Android高级的蓬勃的就业岗位需求来看,我坚信也希望我们每一位Android开发者一直坚定我们自己的梦想,不忘初心,方得始终 。