挨踢部落故事汇(20):Android程序员的十大转型之路

玖哥是一个来自东北的Android攻城狮,现在定居被誉为“大湖名城,创(chuan)新(xiao)高地”的合肥。知识面极广,不仅广泛涉猎IT相关知识,还热爱文学,性格幽默,被誉为“会搞Android的段子手”。他还是一个藏书人士,拥有汗牛充栋的IT书籍,而且每本书都认真阅读过,从不拿书当摆设。

玖哥·Android攻城狮

先说说Android程序员不可能转型的几个方向,以下四个不靠谱方向的靠谱性递减:

  • 首先不会转型iOS,iOS和Android工程师的工作内容都是大同小异的。
  • 其次不会转型Windows Phone,好多Andr oid程序员就是受不了产品经理唠叨:“像QQ客户端那样做成和iOS一样”才转型的,怎么会转型比Android还难做成和iOS一样的WP?
  • 再次不会转型Windows和MacOS等桌面软件,桌面开发周期长、难度大、升级不易,这是一个已经接近穷途末路的夕阳产业。
  • 最后不会开JavaME或者Symbian的历史倒车,除非他有本事让每个用户都买(就一个“买”字,同时包含“想买”和“买得到”的意思)停产多年的机型。

玖哥观察如今的技术形势,并亲身探索了一个Android程序员转型的十个技术方向的可行性:

1、Android病毒和恶意应用

最近肆虐全世界的WannaCry让安全成了IT圈最热的话题,开发腻了善意应用的Android工程师最便捷的转型方向就是开发Android病毒和恶意应用。在4.x时代对Android对敏感权限还不是很敏感的时候,玖哥就研究过给肉鸡伪造短信记录和让肉鸡给通讯录里所有(或特定)联系人发送短信的病毒。去年还研究过窃取友商App推送内容、强杀友商App进程、卸载友商App甚至让友商App被卸载后就再也不能在这台肉鸡上安装的恶意应用(或应用里的恶意功能)。

转型建议:此外锁定肉鸡里的重要文件勒索用户(Android上的WannaCry?)和窃取肉鸡用户的支付密码的实现在技术上也像强奸8岁女童一样简单,只不过事后逍遥法外很难。这个转型方向只适合拿自己的手机当肉鸡玩玩,千万不要用这些技术赚钱。

2、SDK

开发SDK本质上仍然在为Android应用开发软件,只是不直接开发Android应用。

每个Android程序员工作几年后都积累了属于自己的或大或小的类库,比如封装好的LogUtils和ToastUtils等;也都或多或少研究过常用开源框架的底层原理,比如了解Picasso和EventBus等;还应该对不开源的第三方服务有自己简单的二次封装,比如玖哥就封装了一键实现支付宝和微信支付的moudle(免费的Ping++?)。

转型建议:尽管看见自己的链接出现在无数Android应用的Gradle文件的compile后面,开发了无数软件的一部分的成就感不会比开发完整的软件差。但是几乎没有老板会为了支持你开发开源软件发你工资。

3、JavaEE

Android程序员转型Java在基础知识方面是没什么难度的,毕竟语言相通,特性相似。同时每个Android程序员在大学时J2EE课程学得都不会很差,不过有些知识是该忘掉的,比如Hibernate已经落后于时代了,SpringMVC的全面使用才是Java后台的大势所趋。

转型建议:建议不想每天改UI的刚入行不久的Android工程师转型,玖哥有好几个学弟就是参加工作后从Android转型Java的,他们过得都不错。很多工作年限较长的Android工程师本来就是JavaEE转型来的,就别转回去了。

4、手游

首先考虑不放弃Java语言和Android开发习惯的情况:最合适的就是能把游戏view直接插入普通layout里的AndEngine,前几年大红大紫的Flappy Bird就是用它开发的。AndEngine的开发方式和Android别无二致,且有丰富的开源demo。不过AndEngine没有官方文档,理论学习上有一定难度。玖哥用AndEngine开发了毕业设计,参加工作后也用AndEngine获得了几个奖,他珍藏着一本AndEngine的非官方文档《Android游戏开发实践指南》(全新未拆封),期待着有一天能回到2014年把它送给那个买不起它的毕业生。

提到了AndEngine就不得不提国产AndEngine——OGEngine,它是基于AndEngine衍生的游戏引擎,有详细的纯中文文档和说汉语的技术支持杨城(笔名:小城),极适合开发Android TV游戏。OGEngine目前已停止更新,这个国产游戏引擎的悲剧在于推出时间太早,希望Android TV普及的时候卷土重来的OGEngine能让中国在游戏引擎方面领跑全世界。

LibGDX是一个跨平台的游戏开发框架,同样使用Java作为开发语言,前文所说的AndEngine就是基于LiBGDX实现的。LibGDX最大的优点就是极强的兼容性,不仅兼容Android和iOS,还兼容Windows、Linux、Max OS X等桌面系统。极强的兼容性还为开发提供了便利——不必打开Android模拟器,直接用电脑debug你的应用。在LibGDX和Android之间相互转型都很容易,知名的Android专家宋志辉、吴佳俊等都是从LibGDX转型Android的。

如果不要Java语言,那就有Cosos2d-x可供选择。《Cocos2d-x游戏开发实战精解》的作者欧桐桐(笔名:OTT)认为Android程序员一般对面向对象的知识掌握的比较全面,上手Cosos2d-x比较容易,并且Cosos2d-x是中国人维护的,文档全、资源多、教程多。OTT在得知玖哥是和他一样的藏书人士后还特地赠送一本他的大作鼓励玖哥。

转型建议:做好心理准备,国内手游行业比普通的移动互联网行业加班更疯狂,建议刚入行没多久的Android工程师为了加班费转型,不建议30岁以上的Android工程师转型。

5、HTML5

HTML5也是Android工程师改行的好方向,HTML5在移动互联网领域应用非常广泛,比如混合开发、手机站、小游戏、微信公众号、微信小程序等。简单的手机站和对性能要求不高小游戏直接用从懒人模板(http://www.lanrenmb.com/)上找到的资源稍微修改一下即可,这里只说说混合开发应用和小游戏怎么开发。

最著名的HTML5移动开发框架当属Facebook发布于2015年的React Native,这是一套跨平台、动态更新的 JavaScript 框架,口号是“Learn once, write anywhere”。与之类似有同属舶来的PhoneGap等。

国产的HTML5开发框架在国内也百家争鸣,常见的有HBuilder和AppCan,二者共同特点是都为了便于新手入门制作了专用的编译器。2016年,在Qcon大会上宣布开源的Weex也异军突起,来自阿里的它因为开发的软件与原生App别无二致受到很多人的青睐。

开发对性能要求比较高的HTML5游戏,靠模板是不行的。2014年2月创立于北京的Egret是一套完整的HTML5游戏开发解决方案,其核心产品白鹭引擎(Egret Engine)凭借上手简便、性能强大已占据国内超七成的手机页游引擎市场份额。

Egret布道师徐聪(笔名:臭臭打不死人)还送了玖哥Egret官方教程《Egret——HTML5游戏开发指南》和Egret吉祥物。

转型建议:一般来说,除非手机页游或商场,大多数用HTML5开发的Android应用就是胡闹。这条路线几乎是专为电商和小游戏行业准备的,如果公司有这方面的需求,Android程序员可以凭借平时自学的这方面技术完成任务。

6、VR

2015年底游戏外设王者雷蛇推出了VR游戏头显,2016年各大游戏厂商和小工作室争先恐后开发VR游戏争夺市场,开启了“中国VR元年”。虽然目前VR主要用在娱乐领域,被很多人视为玩具,但是VR所具有的价值却远远超出“玩具”的范畴。

前文讨论游戏引擎的时候没说Unity-3d不是疏漏,而是要把Unity-3d放在这儿谈。Unity-3d 是Unity公司开发的一个3D游戏开发工具,近年来的新版本不断加强对VR硬件系统的支持。Android程序员转型VR不仅可以实现自己从小就想让游戏跳出四角方框的梦想,还有Unity-3d所用的C#语言本来就是嚷着“我不是Java语言”的Java语言的学习优势。

转型建议:VR现在正是一片蓝海,只要自学能力够强,转型VR就像2015年在合肥买房一样明智。当然前提是你能找到愿意出钱的老板或投资人。

7、大数据

移动互联网时代是一个科技发达,信息流通的时代,大数据就是这个高科技时代的产物。马云曾在演讲中提到:未来的时代将不是IT时代,而是DT的时代。DT就是Data Technology(数据科技)的缩写,大数据的合理利用与否成了很多行业成败的关键。

移动互联网经过这些年的发展,拿O2O和当噱头已经唬不住投资人了。Hadoop也就自然而然受到了青睐,很多每4个月“生产”一批“两年经验”的“程序员”的培训机构也问过玖哥:“Android和iOS现在不吃香了,你能帮我介绍几个Hadoop讲师吗?”

转型建议:与转型Java后台一样,Android程序员转型Hadoop也具备语言相通,特性相似的优势。目前各大培训机构已经如蝇逐臭争相批量生产Hadoop程序员,如果你是因为陷入了他们培训的Android程序员造成的红海才转型的话,建议你不要转型,提升自己的竞争力才是王道。

8、人工智能和深度学习

前一阵子AlphaGo战胜了人类世界的围棋世界冠军柯洁,轰动了全世界。柯洁认为AlphaGo是能够打败一切的围棋上帝,这个说法玖哥不敢苟同,毕竟它没有和“天”对弈过,但存在能“胜天半子”的人类——祁同伟。即使AlphaGo不能打败一切,也没有人有理由认为人工智能和深度学习不能成为IT届的重要发展方向。

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,具备极佳的灵活性和可延展性,在和人工智能相关的领域都有广泛的应用。TensorFlow是开源的,会大大降低深度学习在各个行业中的应用难度,有远大的发展前景。

转型建议:尽管玖哥坚信将来会T(ensor)F(low)的boys受女性欢迎程度不亚于TFboys,但TensorFlow暂时很不成熟,这个“将来”距今多久还是未知数。

9、Android系统

Linux作为目前大多数服务器的操作系统,学习Linux的大多数人的目的是做一个运维。然而把脑洞再开大一点的话,Android程序员精通了Linux之后可以开发一套属于自己的Android系统。《Linux大棚命令百篇》的作者吴鹏冲(笔名:Roc,和玖哥一样也是水浒迷)和《循序渐进Linux》的作者高俊峰都送了一本自己的作品鼓励他开发属于自己的Android ORM。

这张照片摄于2016年3月30日玖哥拿着《循序渐进Linux(第二版)》回到母校的自习室里攻读想成为像高老师一样能定制自己的Android系统的Linux专家的路上(双关)。

转型建议:如果Android程序员准备跳槽到生产手机等搭载Android系统的硬件厂商的话,学习Linux再合适不过了,否则就只能自己刷机玩了。

10、产品经理

每个人都可能变成自己最讨厌的人,玖哥也不例外。他从《人人都是产品经理》中学到了产品经理的情怀,还从《从点子到产品》中学到了产品经理的技术。还有幸赶上了今年3月《从点子到产品》的作者刘飞收徒。关于玖哥转型产品经理失败的情况是一个发生在他和刘飞之间的“挖隋炀帝坟墓的开发商名叫杨勇”的故事:

2016年初,玖哥带新人,没有收刘飞(同名学弟)为徒

2017年初,刘飞带新人,不肯收玖哥为徒

转型建议:产品经理也是技术岗位,只不过写的是给人看的需求文档。如果一个Android程序员写的代码只能让电脑看懂而不能让负责维护的程序员看懂,那么就不要转型产品经理。

【写在最后】

Android程序员转型机会虽然多,但不要因为看招聘网站上某个职业平均工资高就转型,随波逐流的弄潮儿必然会在浪潮之巅摔得好惨。培训机构常说“Android不吃香了,移动互联网的寒冬来了”来吸引人报名学习速成的Hadoop和TensorFlow,其实遭遇寒冬的不是某个行业,而是某些基础不好的人。

如果你也愿意分享你的故事,请加51CTO开发者QQ交流群 312724475联系群主小官,期待你精彩的故事!

时间: 2024-10-21 07:04:59

挨踢部落故事汇(20):Android程序员的十大转型之路的相关文章

挨踢部落故事汇(9):女程序媛的开发梦

认真对待每一天.勇敢迈出第一步,改变就在不远处. 小包是个率真爽朗的女程序媛,从不搽脂抹粉的她,工作起来,是可以抛去一切形象的,散乱的头发,苦逼加班的黑眼圈,俨然一个男程序猿形象.但她的骨子里却散发着永不服输的气质.不加班的时候她喜欢宅在家里看书,或者和朋友出去旅游. 小包·Android开发 专业实训改变命运 小包的程序嫒之路说起来还挺有意思的,高考填志愿的时候因为目标大学不能选择其他专业,于是大学她就学的软件开发专业,大三时学校安排她到一家培训机构进行为期两个月的专业实训.这次的实训也算是小

挨踢部落故事汇(4):程序猿的跳槽感悟

互联网是一个变化快,人员流动频繁的行业,程序猿的选择很重要,毕竟每个人的职业生涯大概有三十多年,一念之差可能就轻易毁掉 1/10.对于程序猿来说,每一次改变要深思熟虑,如果在当前的团队2年内没有找到自己的机会,也不要垂头丧气,深呼吸,继续寻找新契机. 反省不是去后悔,而是为前进铺路.哈韩浪子是一个涉世未深的程序猿,一个保持stay simply,sometimes naive的专心码农. 哈韩浪子·Java开发 用历史的眼光站在未来看现在 平日里的哈韩浪子是个爱读书的呆萌90后,在书的海洋里,他

挨踢部落故事汇(3):入行IT自学成才

临河而羡鱼,不如归家织网.授人以鱼,不如授之以渔.不忘初心,方得始终. 研究生期间参与的企业项目坚定了益达进入IT行业的决心.那份执着与看待问题的思维,使他在开发路上愈战愈勇.在益达看来,处理问题的思维就相当于一个软技能,是学会了就不会跑掉的东西.问题的本质.触类旁通.借鉴思想,严谨性这些都是他的思维要素.遇到问题多思考,多问what,why,有耐心,不急躁,多沟通,层层排查最终找解决办法. 益达·大数据开发 学生时代脱颖而出 益达高考选择的是电子信息科学与技术专业,计算机学习占比居多.他从几乎

挨踢部落故事汇(5):扩展新IT领域,用代码改变世界

思想驱动未来!"写一个程序,就像是在创造一个东西,我猜每个程序猿都有一颗改变世界的心."--by疯狂学校 本期主人公疯狂学校是个既懂前端又会后台,上的了厅堂下的了厨房的杂食程序员.大学期间他学的是软件工程专业,对于一个基本没怎么接触电脑的他来说,这无疑是一个挑战. 疯狂学校·Java开发 热衷开发,从C#到Java,从前端到后台,无一不通 由于对电脑基础比较差,刚开学时疯狂学校一有空就去机房练打字,这样坚持了两个月,感觉才慢慢追上了同学的水平.在这个过程中他感觉到从量变到质变,感受到自

挨踢部落故事汇(18):程序猿与代码的基情

"朋友,你还会修电脑啊?"这是小史在朋友中听到过的最多的一句话.每当听到这句话时,他也很无奈.难道程序猿就一定要会修电脑嘛?但是没办法,在朋友眼中,编程是一个很高深的工作.可能动动手指,哪边就会出什么事,生活十分精彩.嗯,电影看多了.作为一名不会修电脑但努力想学习修电脑的程序猿来说,除了修电脑的技能,也还要具备大部分其他程序猿共有的特质.比如:宅.闷.可能也具备独有的特质,喜欢陪老婆逛街... 小史·Java开发 严肃的简单介绍下本期主人公小史童鞋,从事Java后台开发工作已经三年有余

挨踢部落故事汇(32): Java深坑如何填?

世上本没有坑,踩的人多了也便成了坑.每遇到一次困难,每踩一个坑,对程序员来说都是一笔财富.持续学习是程序员保持竞争力的源泉.本期将分享一个踩坑无数的Java程序猿填坑秘籍. 榆木,一个阅历无数(踩坑)的技术宅男,喜欢了解新技术却不爱太钻研新技术(因为懒,猿届反面角色一枚).14年毕业至今,在Java开发这条道路上可谓是坑过好些人.也埋过好些坑.也被坑过好些次.因为懒,没有针对他遇到过的问题做过太多的笔记(记录一些棘手问题的解决方法还是个不错的习惯),只是习惯性的去分析为什么出现这样的问题,我们该

挨踢部落故事汇(12):习惯成就技能提升

作为一个普通的芸芸大众,资深宅男,码农,狂爵的生活除了工作之外,还喜欢看书,听歌,静坐.对政府项目深有研究,目前是CMS核心开发团队成员,普通程序员组长.狂爵13年毕业后就开始从事Java CMS产品开发,目前所在公司是航天集团下属单位,开发的项目都是政府项目.他参与开发过国家某保密单位内网(三级等宝,信息迁移,数据摆渡,信息密级权限),国家电网内网升级改造,中工网系统WebLogic集群升级,水利部(财务门户.水资源监控应用门户.单点登录系统.信息门户),国防科工局内部福利系统(伪电商)项目及

挨踢部落故事汇(13):扬长避短入行Oracle开发

"他人笑我太疯癫,我笑他人是怎么看出来的呢?"一个被数据库耽误的段子手的座右铭竟是酱紫风趣幽默.在介绍胖子职业之前,先认识他这个人,也许你不会相信胖子是个程序猿,而且还是个头脑冷静,思想沉着数据库工程师.胖子平时的爱好是激烈对抗的蓝足球,喜欢徒步旅行,喜欢脱口秀讲段子,喜欢编剧拍视频.这样外向的人和程序猿攻城狮的标签几乎没有半点联系. 胖子·Oracle数据库开发 扬长避短,结缘Oracle开发 如果不是大学选择了软件工程专业(这个在胖子大学之前,什么也不知道的专业),也许他现在会像池

挨踢部落故事汇(14):分享助力运维能力的提升

本期主人公大师兄,人称翔神,目前就职于某知名商城架构部Linux运维工程师一职,熟悉高并发,负载均衡,Redis集群高可用,运维开发等,喜欢和同道中人分享运维那些事儿. 大师兄·Linux运维工程师 转眼间,大师兄毕业已经三年多了,从IT界的小白到Linux运维大神,他也算拥有一技之长,坚持投资自己的大脑,是他最骄傲的事.从C语言,到Linux运维,到Python的运维开发,再到Java,一路不断学习,挑战自我,内心感慨,特写成文章分享,和开发者们共勉. 踏足IT,时刻在分享 虽然大师兄是计算机