乐趣区

关于android:做了五年Android我顿悟了

前言

两年前, 我写过一篇《我的三年 Android 开发总结》, 时光流逝, 转眼间我曾经从事 Android 开发已五年无余, 很庆幸我仍然从事着我酷爱的 Android 开发.

咱们做技术开发的人都有个习惯, 那就是喜爱不定期地进行总结, 当然我也不例外. 我有个特地的喜好, 那就是把我一年前的代码拿进去和我当初写的代码进行比照, 看是否有所出息.

一个人回首过来, 如果发现当初的本人和一年前或者更久前的本人没有任何踊跃的变动的话, 那么你这些年就算是虚度光阴了.

回首我这五年, 如果说前三年我是横蛮成长, 疯狂撸码, 较为塌实的三年, 那么这两年我就是沉下心来, 潜心修炼积攒教训的两年.

工作环境发生变化

我从事 Android 开发的前三年只在一家公司待过, 每天都做着简直雷同的工作, 做的我的项目也是较为简单的小我的项目, 一两个人就能承当的利用开发, 用的也是绝对简略, 没有什么外围竞争力的技术.

然而这两年来, 我接触到了不少的公司. 它们有改革的老国企, 有刚刚成立的守业公司, 也有曾经上市的公司. 不同类型、不同行业、不同规模的企业, 必然导致工作内容、团队、企业文化的不同.

相比拟我待的第一家公司来说, 前面的几家公司更加尊重我的集体认识, 这也是我决定跳槽的起因. 尽管我也非常感谢我的第一家公司给予我更多的机会去成长, 然而咱们进去工作实质上是出于经济目标的, 光谈现实而不给予事实的恩惠, 一味强调你是公司造就进去的, 工夫长了是留不住人的.

老旧国企

俗话说, 跳槽是有老本的. 因为工作内容、团队的变动, 我须要重新学习特定行业的专业知识, 从新建设本人的共事关系, 这就要求我须要十分弱小的学习能力和适应能力.

我的第一次跳槽相对来说是比拟失败的, 因为没有教训, 我竟然跳槽到了一个重大老龄化的前国企公司, 这是一家做汽车硬件的企业, 四周的共事平均年龄 35 岁以上, 每天他们探讨的话题都是本人家小孩的学习教育, 这让我这个连女朋友都没有的独身汪情何以堪.

更让我无奈适应的是它那十分慢的工作节奏, 一周的工作半天就实现了, 剩下的工夫齐全不晓得做什么 … 真的是无事可做.

守业公司

起初我被一位十分赏识我的老板看中, 退出到他的守业公司, 成为了一名创业者. 这是一家从事儿童可穿戴设施的公司, 作为最早退出的员工之一, 我堪称是见证了一家守业公司从起步到倒退再到衰败的全过程, 而这仅仅只须要一年的工夫.

守业公司的坑尽管不少, 不过这对咱们集体的成长还是十分有价值的. 在守业公司的这一年, 我做了很多一般程序员这一辈子可能都无奈涉及的工作内容, 也积攒了很多人生哲学.

  • 1. 利用开发框架的搭建.
  • 2. 产品需要探讨.
  • 3. 企业文化建设.
  • 4. 企业税务解决.
  • 5. 利用的上架和经营.
  • 6. 产品生产、组装、销售和售后保护.
  • 7. 企业商标、专利注册.

在守业公司, 职位没有显著的划分, 很多时候你须要做很多与你岗位无关的工作. 从好的角度来说, 这能够极大地丰盛集体的人生经历, 晋升一个人独立思考、自主学习和解决问题的能力. 如果你的经济能力有肯定的反对, 那么去守业公司历练一把也是十分不错的, 万一它日后倒退成为一家独角兽呢?

上市公司

之后我来到了我当初待的这家公司. 比起我之前待的守业公司就我一个 Android 开发, 在这里我算是找到了失去很久的团队归宿感. 大公司除了人多以外, 工作的强度和难度也大大地减少, 加班当然也成为了粗茶淡饭, 当然与之绝对应的福利也是晋升了不少.

在大公司, 技术水平并不是决定这个人发展潜力的决定性因素. 要晓得大公司最不缺的就是人才, 能进大公司的, 哪个不是有两把刷子的呢? 对于大公司而言, 他们须要的是领有极强责任心以及不辞辛苦的员工, 是否承当某一模块性能的稳定性就间接决定了你的去留. 初此之外, 沟通能力也是十分重要的能力. 因为大公司的我的项目性能绝对简单, 参加的人员泛滥, 很多简单的问题往往能够通过沟通予以解决. 而且及时表白出你的想法, 被动承当一些紧急的工作都能给你很多的加分.

能够说在大公司的这些日子里, 让我学习和领悟到了很多非技术方面的能力:

  • 语言表达能力(大公司常常须要在很多人背后发言).
  • 与不同人沟通的能力.
  • 简单问题的定位和解决能力.
  • 团队合作能力.
  • 帮忙 (领导) 别人的能力.
  • 团队建设和治理的能力.

这也是为什么我去年写了那么多教训感悟文章的起因. 而下面的这些能力, 很多是仅仅靠撸码是无奈获取到的.

心态上发生变化

我从事 Android 开发的前三年, 之所以那么拼命地工作和学习, 一部分是出于趣味, 而另一部则是想要证实本人.

  • 对于公司而言: 我要证实本人是公司不可或缺的人才.
  • 对于领导而言: 我要证实本人的技术水平是组内第一.
  • 对于家人而言: 我要证实本人有能力养活本人.
  • 对于女友而言: 我要证实本人有能力单独关照一个人.

马斯洛需要档次实践通知咱们, 当一个人的需要失去满足之后, 他会追寻更高层次的需要.

当这些都被我一一证实了之后, 所有都变了. 证实本人曾经显得不那么的重要, 谋求本身价值的体现成为了我现阶段的指标.

于是, 我来到了当年的那家公司, 放弃了父母布局的路线, 来到了女友, 开始听从着本人的心田, 寻找人生的答案 …

此时的我, 须要的并不是他人的必定. 我并不会在意他人的赞叹或者是诽谤, 我所做的都是发自内心的事件, 而不随外物而影响.

于是, 我抉择成为了一名开源我的项目的创作者和布道者. 将我平时积攒的技术教训全副分享进去, 目标就是帮忙全世界所有酷爱技术的人士, 同时让我的价值在他人身上失去体现.

在这两年内, 我踊跃保护我开源的我的项目, 同时还在各大技术社区和论坛上公布一些相干的技术文章, 同时还经营了本人的微信公众号. 近期, 我还踊跃创作一些开源技术相干的视频. 这样做的目标, 一方面是能够把本人的教训和技术分享给更多须要的人, 让常识施展它更大的作用(常识在于传承), 另一方面也是满足了本人的虚荣心, 让本人的价值得以体现.

思维形式发生变化

从事 Android 的前三年, 我的想法是绝对激进的. 那时的我, 对所有的新技术都是那么的趋之若鹜, 而对于那些绝对古老的技术是不屑一顾. 我天真地认为那些新技术都是革命性的, 都须要去把握、学习并使用到理论的工作中去, 而那些旧技术就是须要代替的对象.

于是, 我就不计代价, 声势浩大地把公司之前应用的旧技术一股脑地都筹备换了, 而过后领导的处处阻挡在我看来就是技术上的不思进取, 两头还闹了不少矛盾, 这也成为了我起初来到公司的起因之一. 当初想来, 过后的我想法真的是十分的童稚!

技术不是惟一的生产力

技术是生产力, 但并不是惟一的生产力.

在守业公司的那一年里, 让我彻彻底底地明确了, 技术并不是惟一的生产力. 一家公司的倒退, 更多靠的是强力的融资能力(资本), 弱小的渠道推广能力(营销), 很多时候技术只是其中的一部分, 充当的仅仅是工具人的角色.

当年那个竭力崇尚技术至高无上的青年被事实狠狠地教育了一把. 那时的我认为只有纯做技术的能力被人尊重, 而那些在产品线做业务、测试, 或者跑业务跑市场的人都是不值一提的. 然而也正是我那时瞧不起的那些人, 间接导致了我待的那家守业公司的没落.

技术没有好坏

技术没有好坏, 更没有高低贵贱, 有的只是适合与不适合.

新技术肯定比旧技术好吗? 如果这个问题在两年前问我, 那么我的答复肯定是必定的! 但如果你当初问我, 我的答复就不一样了.

任何的新技术肯定是在旧技术上有了一些改良, 否则它就不为是一项新技术. 那么咱们为何不间接应用它呢? 因为这里咱们思考的更多是老本的问题:

  • 新技术必然带来更高的学习老本.
  • 新技术的引入必然带来更多的代替老本.
  • 新技术如果尚未成熟, 当遇到一个坑时必然带来更大的解决老本.
  • 如果应用新技术遇到一些无奈解决的问题, 会带来一些危险老本.

当一项技术的应用所带来的收益要远远大于它带来的老本时, 这个时候咱们才会思考采纳这项技术.

能够看到上述我列举的老本对于大公司来说是相当微小的:

  • 大公司的人员较多, 新技术的学习老本十分高(不可能全裁了重招吧)
  • 大公司的我的项目通常偏大, 替换的老本绝对较高.
  • 大公司产品的性能较为简单, 碰到一些没人遇到过坑也是常有的事.
  • 大公司对我的项目的危险个别是零容忍的: 宁肯不做也不能冒风险.

这也是为什么很多大公司不违心采纳新技术, 而是抉择沿用之前成熟的技术的起因.

所以咱们在思考一项技术是否被咱们采纳的时候, 压根就没有思考过这项技术的新旧以及高低贵贱. 至于那些成天在技术社区里发一些技术焦虑文章的人, 我感觉社区就应该屏蔽他们, 免得误导那些刚入门的小朋友.

寻根究底

当你抛开事物的外表, 去追寻其本质之后, 你会发现很多货色都是相通的.

两年前我在学习和应用技术的时候, 更多的是遵循拿来主义和实用主义, 天真地认为我会用这项技术就等于我把握了这项技术.

之所以这么想, 归纳起因还是见的世面太小了. 之前待的小公司, 业务并没有那么简单, 用例也没那么多, 遇到的状况也绝对简略繁多, 所以简略地应用根本就完事了.

然而, 到了大公司之后, 那业务的复杂程度以及用例笼罩到的场景远远是你所设想不到的. 很多时候, 一些问题你是不能通过简略的应用就能解决的. 尤其是产生一些诡异的问题时, 你不浏览源码理解其实现原理, 是无奈进行解释的.

举个例子, 咱们做 Android 的都用过 RecyclerView, 可你有浏览过 RecyclerView 的源码, 理解其缓存机制吗? 置信你看完 RecyclerView 的源码之后, 你就会晓得, 其实你所谓的把握 RecyclerView, 只不过是 RecyclerView 的冰山一角.

学习一项技术, 如果你只是把握了如何去应用, 那么这只是你迈出去的第一步, 前面更重要的是要寻根究底, 深究其底层实现原理, 这个时候你才会发现, 很多技术原来是相通的.

最初

作为一名 Android 开发的酷爱者, 只有 Android 不死, 我就会始终在 Android 开发的路线上前行. 无论前途如何波折, 我置信 Android 会变得更加美妙!

我是 xuexiangjys,一枚酷爱学习,喜好编程,勤于思考,致力于 Android 架构钻研以及开源我的项目教训分享的技术 up 主。获取更多资讯,欢送微信搜寻公众号:【我的 Android 开源之旅】

退出移动版