两年前, 我写过一篇《个人三年Android开发总结》,时光流逝, 转眼间我已经从事Android开发已五年有余,很庆幸我依然从事着我热爱的Android开发.
咱们作技术开发的人都有个习惯,那就是喜欢不按期地进行总结,固然我也不例外.我有个特别的爱好,那就是把我一年前的代码拿出来和我如今写的代码进行对比,看是否有所长进.程序员
一我的回首过去,若是发现如今的本身和一年前或者更久前的本身没有任何积极的变化的话,那么你这些年就算是虚度光阴了.编程
回首我这五年, 若是说前三年我是野蛮生长,疯狂撸码,较为浮躁的三年,那么这两年我就是沉下心来,潜心修炼积累经验的两年.缓存
我从事Android开发的前三年只在一家公司待过,天天都作着几乎相同的工做,作的项目也是较为简单的小项目,一两我的就能承担的应用开发,用的也是相对简单,没有什么核心竞争力的技术.微信
可是这两年来,我接触到了很多的公司.它们有改革的老国企,有刚刚成立的创业公司,也有已经上市的公司.不一样类型、不一样行业、不一样规模的企业,必然致使工做内容、团队、企业文化的不一样.架构
相比较我待的第一家公司来讲,后面的几家公司更加尊重个人我的见解,这也是我决定跳槽的缘由.虽然我也很是感谢个人第一家公司给予我更多的机会去成长,可是咱们出来工做本质上是出于经济目的的,光谈理想而不给予现实的恩惠,一味强调你是公司培养出来的,时间长了是留不住人的.框架
俗话说,跳槽是有成本的.因为工做内容、团队的变化,我须要从新学习特定行业的专业知识,从新创建本身的同事关系,这就要求我须要很是强大的学习能力和适应能力.工具
个人第一次跳槽相对来讲是比较失败的,由于没有经验,我竟然跳槽到了一个严重老龄化的前国企公司,这是一家作汽车硬件的企业,周围的同事平均年龄35岁以上,天天他们讨论的话题都是本身家小孩的学习教育,这让我这个连女友都没有的单身汪情何以堪.学习
更让我没法适应的是它那很是慢的工做节奏,一周的工做半天就完成了,剩下的时间彻底不知道作什么...真的是无事可作.测试
后来我被一位很是赏识个人老板看中,加入到他的创业公司,成为了一名创业者.这是一家从事儿童可穿戴设备的公司,做为最先加入的员工之一,我可谓是见证了一家创业公司从起步到发展再到衰落的全过程,而这仅仅只须要一年的时间.spa
创业公司的坑虽然很多,不过这对咱们我的的成长仍是很是有价值的.在创业公司的这一年,我作了不少普通程序员这一生可能都没法触及的工做内容,也积累了不少人生哲学.
在创业公司,职位没有明显的划分,不少时候你须要作不少与你岗位无关的工做.从好的角度来讲,这能够极大地丰富我的的人生阅历,提高一我的独立思考、自主学习和解决问题的能力.若是你的经济能力有必定的支持,那么去创业公司历练一把也是很是不错的,万一它往后发展成为一家独角兽呢?
以后我来到了我如今待的这家公司.比起我以前待的创业公司就我一个Android开发,在这里我算是找到了失去好久的团队归宿感.大公司除了人多之外,工做的强度和难度也大大地增长,加班固然也成为了屡见不鲜,固然与之相对应的福利也是提高了很多.
在大公司,技术水平并非决定这我的发展潜力的决定性因素.要知道大公司最不缺的就是人才,能进大公司的,哪一个不是有两把刷子的呢?对于大公司而言,他们须要的是拥有极强责任心以及不辞辛苦的员工,可否承担某一模块功能的稳定性就直接决定了你的去留.初此以外,沟通能力也是很是重要的能力.由于大公司的项目功能相对复杂,参与的人员众多,不少复杂的问题每每能够经过沟通予以解决.并且及时表达出你的想法,主动承担一些紧急的任务都能给你不少的加分.
能够说在大公司的这些日子里,让我学习和领悟到了不少非技术方面的能力:
这也是为何我去年写了那么多经验感悟文章的缘由.而上面的这些能力,不少是仅仅靠撸码是没法获取到的.
我从事Android开发的前三年,之因此那么拼命地工做和学习,一部分是出于兴趣,而另外一部则是想要证实本身.
马斯洛需求层次理论告诉咱们, 当一我的的需求获得知足以后,他会追寻更高层次的需求.
当这些都被我一一证实了以后,一切都变了.证实本身已经显得不那么的重要,追求自身价值的体现成为了我现阶段的目标.
因而,我离开了当年的那家公司,放弃了父母规划的道路,离开了女朋友,开始听从着本身的心里,寻找人生的答案...
此时的我,须要的并非别人的确定.我并不会在乎别人的赞扬或者是诋毁,我所作的都是发自心里的事情,而不随外物而影响.
因而,我选择成为了一名开源项目的创做者和布道者.将我平时积累的技术经验所有分享出来,目的就是帮助全世界全部热爱技术的人士,同时让个人价值在别人身上获得体现.
在这两年内,我积极维护我开源的项目,同时还在各大技术社区和论坛上发布一些相关的技术文章,同时还运营了本身的微信公众号.近期,我还积极创做一些开源技术相关的视频.这样作的目的,一方面是能够把本身的经验和技术分享给更多须要的人,让知识发挥它更大的做用(知识在于传承), 另外一方面也是知足了本身的虚荣心,让本身的价值得以体现.
从事Android的前三年,个人想法是相对激进的.那时的我,对全部的新技术都是那么的趋之若鹜,而对于那些相对陈旧的技术是嗤之以鼻.我天真地认为那些新技术都是革命性的,都须要去掌握、学习并运用到实际的工做中去,而那些旧技术就是须要替代的对象.
因而,我就不计代价,大张旗鼓地把公司以前使用的旧技术一股脑地都准备换了,而当时领导的到处阻挠在我看来就是技术上的不思进取,中间还闹了很多矛盾,这也成为了我后来离开公司的缘由之一.如今想来,当时的我想法真的是很是的幼稚!
技术是生产力,但并非惟一的生产力.
在创业公司的那一年里,让我不折不扣地明白了,技术并非惟一的生产力.一家公司的发展,更多靠的是强力的融资能力(资本),强大的渠道推广能力(营销),不少时候技术只是其中的一部分,充当的仅仅是工具人的角色.
当年那个极力崇尚技术至高无上的青年被现实狠狠地教育了一把.那时的我认为只有纯作技术的才能被人尊重,而那些在产品线作业务、测试,或者跑业务跑市场的人都是不值一提的.然而也正是我那时瞧不起的那些人,直接致使了我待的那家创业公司的衰败.
技术没有好坏,更没有高低贵贱,有的只是合适与不合适.
新技术必定比旧技术好吗? 若是这个问题在两年前问我,那么个人回答必定是确定的! 但若是你如今问我,个人回答就不同了.
任何的新技术必定是在旧技术上有了一些改进,不然它就不为是一项新技术.那么咱们为什么不直接使用它呢?由于这里咱们考虑的更可能是成本的问题:
当一项技术的使用所带来的收益要远远大于它带来的成本时,这个时候咱们才会考虑采用这项技术.
能够看到上述我列举的成本对于大公司来讲是至关巨大的:
这也是为何不少大公司不肯意采用新技术,而是选择沿用以前成熟的技术的缘由.
因此咱们在思考一项技术可否被咱们采用的时候,压根就没有考虑过这项技术的新旧以及高低贵贱.至于那些整天在技术社区里发一些技术焦虑文章的人,我以为社区就应该屏蔽他们,以避免误导那些刚入门的小朋友.
当你抛开事物的表面,去追寻其本质以后,你会发现不少东西都是相通的.
两年前我在学习和使用技术的时候,更多的是遵循拿来主义和实用主义,天真地认为我会用这项技术就等于我掌握了这项技术.
之因此这么想,归结缘由仍是见的世面过小了.以前待的小公司,业务并无那么复杂,用例也没那么多,遇到的状况也相对简单单一,因此简单地使用基本就完事了.
然而,到了大公司以后,那业务的复杂程度以及用例覆盖到的场景远远是你所想象不到的.不少时候,一些问题你是不能经过简单的使用就能解决的.尤为是发生一些诡异的问题时,你不阅读源码了解其实现原理,是没法进行解释的.
举个例子,咱们作Android的都用过RecyclerView,可你有阅读过RecyclerView的源码,了解其缓存机制吗?相信你看完RecyclerView的源码以后,你就会知道,其实你所谓的掌握RecyclerView,只不过是RecyclerView的冰山一角.
学习一项技术,若是你只是掌握了如何去使用,那么这只是你迈出去的第一步,后面更重要的是要追本溯源,深究其底层实现原理,这个时候你才会发现,不少技术原来是相通的.
做为一名Android开发的热爱者,只要Android不死,我就会一直在Android开发的道路上前行.不管前途如何曲折,我相信Android会变得更加美好!
我是xuexiangjys,一枚热爱学习,爱好编程,勤于思考,致力于Android架构研究以及开源项目经验分享的技术up主。获取更多资讯,欢迎微信搜索公众号: 【个人Android开源之旅】