0%

搞Android这三年与我的未来十年

自大学接触编程起,我没有想到会从事Android应用开发,更没有想到这么一搞就是3年。

这话得从大学说起,作为一名软件工程的理工男,也是兴趣使然,立志从事开发软件。然而我并不知道,这个目标还是多少有些宽泛的。对那时的我而言,软件直觉上是那一个个精美的界面,是那一行行酷酷的命令行,甚至是搞启动盘重装系统😌。C语言作为启蒙语言,就像打开了新世界的大门,让人痴迷的喜爱,我甚至隔三差五去网吧包宿刷教科书(没错就是那本再破千万的神书,迷之微笑)。那时的我都有C语言情节—以为这才是正统,Java这个low逼!

大一下学期,我和班长一起打鸡血地跑到实验室找到了C语言的任课老师—车老板,希望在实验室找点事情干。没想到凭着班长同志的神力和我那超高的C语言成绩的一丝印象,车老板留下了我们,于是我们成了实验室唯一的大一学生。天真的我们,开始了愉快的搞机时光。

2011年初,Android刚刚兴起,记得我上大学用第一款手机就是HTC G8,深深地被电容屏幕的操控体验震撼。恰巧实验室刚刚起步,以Android为方向做一些东西,于是我们以Google大学生Android应用大赛为目标开始了一年多的Android开发。1周”搞定”Java,1周Android入门,然后选定了一个软硬结合的项目。从嵌入式到Arduino,最后到Android应用的控制界面,期间夹杂了各种实验室的私活,一路走来各种心酸,最终也取得不错的结果。从此对Android API有了基本的了解,我想那也是我入门Android的这一年(2011–2012)

之后的一年多,我都很少接触Android开发了,直到毕业前找工作。2014年是Android最火爆的一年,作为应届毕业生的我,求职成了最重要的事情。虽然我一心想找一个嵌入式(C方向)或者后台开发的岗位,然而真正参加招聘才发现,竞争激烈,工资被压低。在金钱的驱使下,一横心拿起Android。Android的实践基础加上算法的底子真有种所向披靡的感觉,大公司Offer基本没有问题。然而心中依然有一丝丝不爽,搞这个这有点Low。

不管怎么说,我开始了两年正式的Android开发工程师的职业生涯。投入到工作中才发现自己的偏见多么的无知。互联网公司的氛围,很快让我摒弃了语言的偏见,主流语言没有高低,只有是否合适,核心在于设计。同时,我也抛弃了对客户端的偏见,软件开发是一门工程学科,技术没有高低,后台与前端都是对框架的熟悉使用,最终深入挖掘。核心在于解决业务需求,这里市场成了最关键的因素。从某种程度上说这几年的Android技术生态发展更好!工作的头一年,我也感恩去了一个优秀的团队(京东钱包团队),树立了我对软件设计的正确认识,了解Android技术的方方面面,尤其是比较深入的插件化技术。这一年是我对Android深入了解的一年(2014-2015)

不安分是年轻人的天性,从更好的职业发展考虑,我选择了百度作为下一站,百度自由放任的政策让我尝试了很多新鲜的技术,虽然不够深入,却实在地扩宽了眼界,实验了各种框架,功能库,见识了各种项目(大部分是混乱的)。有对比才有进步,可以说这一年是扩宽认知的一年(2015–2016)

很快,我就要暂时告别Android开发了,细细想来,这些年也不算虚度,Android开发让我在软件开发的某一个具体的技术上有了比较深入的了解。总的来说,是对软件有了粗浅的认知,对框架与系统有了感觉,知道了重点在哪里。下一步是设计方面还要深入(这也是我不会完全放弃Android的原因之一)。这篇文章我会把我对Android开发技术的所有认知,列一个条目,在剩下的一周的时间内不断完善,力求覆盖这些年的涉及的方方面面。

Android知识概述

参考下面的文件:安卓知识汇总

感想与展望

其实,对于Android开发,我还远没有到精通的地步。RxJava,RN,热修复,这些当前火热的技术并没有涉猎,Android Framework的设计也没有深入,我仅仅停留在片段化地看过一些代码。现在离开还依旧有些不舍。我希望不是完全的放弃Android,而是把它作为我工具箱中的一项重要的技能。工程技术很多技能是通用的,如设计模式。由于对Android比较熟悉,我还是希望在这里把这些学习一下,以后也好融会贯通。下面的日子里,这些事情要坚持

  • 《Android源码设计模式》这本书抽空看完,时间是明年2月左右(过年期间)。
  • 跟进Android的最新动态,做到新技术不落伍。RxJava这些与我现在工作也有关。

新的工作方向是,大数据挖掘工程师,使用的技术栈是Hadoop && Spark && Scala。我不希望是盲目的开始,而是借鉴Android的学习的经验与教训,有计划地科学地开始新的技术栈的学习。分为下面的几个阶段(一年内):

  • 入门(2017年2月之前,2-3个月)
    • 官方原版英文Guide文档学习:API与基本原理
    • 官方Demo Example工程学习:了解众多最佳实践
    • 阅读基本入门书籍各一本形成完整知识体系:Scala语言 && Spark编程 && Hadoop指南
    • 了解公司代码架构与使用,足以完成开发任务
  • 进阶(2017年6月前,3-4个月)
    • 一个优秀开源项目代码通读,提升工程质量,认识一些新技术
    • 性能优化切入点学习
    • 高级特性了解与应用场景
    • Spark源码分析:关键模块代码
    • 阅读包含高级内容的书籍:Spark Yarn Scala
  • 高级(2017年底,半年,内容待定)
    • 基本数据挖掘算法策略学习
    • 统计学
    • 机器学习与深度学习入门

非常幸运选择了软件行业,更幸运地走上大数据分析的道路。这是我人生的一个重要的转折点。如果说Android是过去5年或者未来3年流行的技术,那么,我看好大数据分析行业(包括机器学习相关领域)未来十年的发展,并且相关知识可以很好的扩展。我想这是我40岁前要一心投入的事业。当然几年后会调整具体业务方向,毕竟8年就是一辈子,总有新东西值得学习。

方向已定,起帆远航!

欢迎关注我的其它发布渠道