开头

移动应用开发从逐渐开始火爆到如今也有小十年了,大部分的学校还是没有开放专门的课程。

目前市场上的大部分 Android 开发工程师大多数是自学或者是培训出身,用一段时间上手 Android 开发技能(畅销书作家 Josh Kaufman 提出,掌握正确的方法后,可以在短期内上手任何技能 ),而后进入一家公司或者接手一个项目培养实操能力、积累实战经验。

再之后呢,Android 开发初期之后怎么提升?怎么才能叫精通?方向在哪?

通常情况下,Android 工程师 1-3 年时间应该能从初级上升到中高级工程师,这个阶段主要就是技术的提升和经验的积累。

之后 1-3 年持续做到高级工程师,这个位置要求能独立完成整个模块,对项目架构有比较深入的了解,能够设计复杂模块的程序方案。

同时需要一定的管理能力,能够带新同事快速入手项目,所以这时候一般同时也担任了主程或者 Team Leader,部分参与项目的管理工作。

1:入门阶段

刚进入这个行业的时候,是通过“关系”进了长沙一家小公司,到现在还记得公司是在一个破旧居民楼的5楼,公司的主营业务是做企业网站开发,我负责html和js,除了老板外,加我一共3个开发者,经过2个月左右的时间,我对html和js已经感觉“炉火纯青”了,任何复杂的页面都能做得出来,现在想来,当时那些页面又有什么复杂的?

虽然年少轻狂,但毕竟对数据库,后台框架整不明白,当时想法简单,如果要成为一个“高手”,一个月薪3k的“大神”,那就必须要掌握一个企业网站开发的全部技术;请教同事得到的答案是,网上有很多学习资料;网上确实也有很多学习资料,印象非常深刻的是,当时看了一套java视频,就是教怎么用当时流行的框架SSH(Spring,Struts,Hibernate)搭建一个web站;经过一段时间的学习,我发现那些代码真的非常简单,无非就是将一些jar包引入到项目中,然后怎么去处理一些冲突之类的;

当我能够将公司项目以SSH的方式自己进行完整开发时,我开始膨胀了,技术在手,天下我有,第一个目标就是进军深圳;通过“降维打击”来获取至少4k的月薪,从而一举超越公司月薪3k的大神;从只会html/js到整体的web站搭建耗时大概半年左右。

2:沉重打击阶段

2010年中下旬,我踏上了南下去深圳的列车,心情非常的兴奋,满脑子想的都是电视剧般功成名就的片段;但真正开始在深圳面试后,打击就接踵而来,在深圳面试的一个月内,大概至少去了25家以上的公司,有时候一天甚至有3家面试,前期的面试是让人兴奋的,甚至觉得今天面的不错,肯定会给我offer,但随着时间的推移,所有的兴奋都转变成焦躁不安,没有一家面试有结果,一个月后,焦躁不安已经变成心灰意冷,夜晚的深圳再繁华又如何?

凌晨两三点只能靠着香烟和励志电视剧激励自己,当初雄心壮志来,能灰溜溜的回去?在反省的过程中,想起某家著名外包企业的面试,当时的技术面试官面完我之后说了一句话:我感觉你做的这些项目都是依葫芦画瓢的;

当初我之所以敢来深圳,就是认为我拥有的技术已经能够帮助企业做网站了,至于我怎么做的,为什么要关心呢?我不得不开始重视这个问题,之后在找工作的期间也不停的看面试题,看不懂的,就去百度查,一个一个的查,经过我不懈的努力,终于在来了深圳差不多两个月之后,选择了放弃;是的,我依然没有找到工作,不是所有的努力都会有回报;我放弃了;

落魄无助且心灰意冷的我,回到了破旧居民楼收拾行囊

3:稳定成长阶段

但,并没有完全放弃,我厚着脸皮寻求一个在佛山工作的同学,他建议我去广州试试,因为真的没有退路,又不甘心,最终决定去广州,给自己最后一次机会,也是最后一个月时间;如果事情不能如愿,就当我真的不适合软件这个行业;我还是幸运的,在广州临近自己设定的最后期限还剩几天时,终于得到一个offer,月薪3000;喜极而泣,真的是喜极而泣!

上天眷顾,也庆幸自己还是再坚持了一个月,回顾这次拿offer的过程,运气成分99%,面试过程中基本没问我太多技术问题,就大概问了一下我之前的工作内容,都是怎么做的,可能也是因为我开的薪水还算低,所以幸运的进去了;

如果还是面试大量技术问题,我想可能能够进入公司的机会依旧不大;

进入这家公司后,我变得小心翼翼,生怕自己好不容易得到的工作会因为自己的失误而丢掉;

因为之前的连续打击已经将我所有的信心粉碎;在这家公司大概工作了一年左右,学习到了很多的东西,尤其是对于项目的认知,以前单纯的认为能够用ssh搭建完整网站就已经能立于不败之地;

但这家公司开始让我头脑清醒了,公司当时的业务有三套系统,一套面向普通用户,一套面向入驻机构,还有一个管理系统给公司内部员工使用,而且员工管理系统还能间接的管理商家系统;而我当时负责的就是最简单的公司内部员工的系统,由于公司使用的cto开发的自有框架,不得不承认,刚开始只能依葫芦画瓢的去完成一些功能;

在工作了大概3个月之后,为了防止自己永远只会依葫芦画瓢,就主动请缨希望能够加入到面向普通用户的web站开发,并在这个过程中努力去学习(过程很苦,不表了)…

在这家公司工作一年后,觉得广州相对于上海,北京以及深圳来说,工资会稍微低一点(并没有数据证明,纯属个人感觉,虽然一年后薪水已经涨了1k,但跟身边同样做一行的人相比,感觉还是差很多,现在看来,其实也就3k左右的差距,但当时就觉得这个差距真是天上地下,无奈眼界有限),于是萌生了离职去上海的想法,离职之前我花了好几天的时间考虑,这次我所拥有的技能是否有底气支撑我找到一份不错的工作,而不是靠运气,思量再三还是决定试试,不错的是,对自己的评估还算ok,在上海只花了一周的时间就找到了工作,而且还是去的银联,第一次见识到大公司,觉得非常不错,薪水对于我当时来说也很不错,7k左右,而且工作的内容也比较有意思,开始去做一些银行的管理系统,还有pos机的对账系统;

那一段时间进步也比较不错,尤其想象了一下,如果我的简历上出现银联两个字,身价肯定会再涨一些,不过以现在的角度去看,其实大部分也是属于“业务上”的成长;

4:转型阶段

在银联并没有工作多久,估计在半年左右,突然又感觉自己停滞不前了,由于Android跟ios异军突起,朋友所在的公司,前同事所在的公司都在招Android工程师,而且开出的价位基本都是在7.5k-12k左右,第一次感觉自己离月薪过w这么近,于是考虑了几天,开始转行Android,主要考虑有三点

  • 未来如此发展下去,社会可能会出现人手一台电脑,一台手机的“盛况”,但真正能够随身携带的一定是手机
  • 就算有一天转行Android失败了,毕竟是java语言,我依然能够回来继续做java;
  • 如果想要成为java行业的大牛,需要时间沉淀,还需要好项目的锤炼,到底什么时候才能成为大牛呢?如果我现在加入Android,我就差不多是首批开发者,那么Android一旦发展起来,作为Android开发首批,我就不信以自己的能力成不了android届的大牛;

于是每天在去浦东的上班路上,开始看Android相关的书籍,花了1个月左右的时间全部看完,并且开始搭建环境,构建自己的hello world;为了让自己有更多的训练机会,也开始在一些移动社区里面活跃,也会免费做一些android客户端以及官网教学文章的翻译等等,这个过程中认识了很多其他大牛,很多也是从java转到android的,这些大牛后来都成为了我的朋友,但最大的收获在于,我对于android不再是一个简单的demo开发者,而是有实战经验的人;这个学习过程并不特别苦,相反还挺兴奋的;

5:进阶阶段;

凭借着java以及Android的技术,我又回到了广州,这次去广州是因为觉得自己应该能拿到自己理想中的薪水,并且离老家近,事实也差不多,这时候已经接近2013年,在距离我真正踏入社会快3年之际,第一次感受到拿offer原来这么容易,大概面了6-7家公司,给offer的就有3个,薪水差别其实并不大,基本都在8-9k的样子,对于广州来说,能够拿到这个薪水还是相当不错的;

于是进了一家做社交产品的公司,老板对于产品的期望,其实我当时是不在乎的,我在乎的是,如果这个项目能够被我带下来,身价一定能再涨一波;虽然在这家公司的工作过程中有一些不愉快(不但要负责技术,还要负责销售),但最终还是坚持做了下来。

从最开始的一个人开发,后来最多的时候带3个人一起开发,里面几乎所有的代码都跟我有关系;一年之后,我选择了再次跳槽;

而这一次我的目标变得异常的明确,月薪过w,而且要求是税后;在这家公司,我最大的收获是,开始明白了一些之前做java都不曾明白的一些后台系统架构问题,也明白了关于职业发展的路径,因为在做这个项目的时候,我发现即使是我们的技术总监也有一些架构方面的问题无法把握,最终还是在某上市公司的技术部门请了一个技术顾问(年纪大概在40岁左右),他来我们公司没有写过一行代码,因为他还带来了一个他的“助手”,他只负责画图出方案,具体的后台核心代码由技术总监和他的助手完成,那是我第一次知道,原来技术还能以这种形式挣钱;

6:成熟阶段

凭借着对于社交项目的把控,以及对系统架构方案的理解,去了北京,在去北京的列车上,耳机里一直听着周杰伦的《一路向北》,当然不是纯伤感,而是想着自己工作了这么多年,突然有一种真的要实现一个“小目标”的感觉;有点兴奋,又带点“文艺青年”的装x范;

当然,在北京找工作也非常的顺利,甚至还拒绝过一些看上去都比较诱人的offer,比如在西二旗附近有一家公司希望我能带领整个移动部门,但是薪水只是勉强过w,还达不到真正意义上的税后过万,于是选择了放弃;也有一些公司希望我既做android开发又做java开发,我也拒绝了,因为根据以往的经验,我深刻的认识到,技术可以横向发展,但深度一定要有;

最终进入到一家孵化器公司,开始负责android端所有的研发,在这家公司突然发现项目相关的问题再也无法困扰我了,因为技术方案都能按照之前的想法进行实现,改良;第一次由衷的感觉到,原来做技术也可以如此轻松;虽然有时候会加班,但至少不会被一个问题困扰在某处长时间得不到解决,被上级催促;至此,关于之前也会有的一些想转行的想法,随着能力的提升,就不再是问题了;

7:新的迷茫与机会

在孵化器因为表现尚可,薪水一直比同行业的要高出些许,大概干了2年之后,公司的发展陷入瓶颈,老大带着我们集体跳槽去了另外一个大公司,薪水更高,福利待遇更好,时间更加自由,那种工作状态,可以用一句话总结–如果这家公司能够许诺一直让我干到退休,我愿意在这里当一辈子咸鱼,因为实在是待得太舒服;

这样的状态大概持续了一年左右的时间,突然又觉得,这样下去人可能废掉,毕竟软件行业技术更新速度太快;而且不管多高的薪水,只要你连续拿几个月,就会开始对这个薪资“无动于衷”,个人认为,当你遇到问题的时候,就去找一些解决方案,写在纸上,如果你面前出现多条路,选择难一点的那条,往往能够给你带来意想不到的收获;

于是离开了一直罩着我的老大,去了另外一家公司创业,而之所以能去这家公司,也是因为在孵化器时候认识的,他觉得我做事还算靠谱;

所以,在工作中,要注意,你永远不知道你的某个同事会不会突然变成你的老板…;

面试复习路线,梳理知识,提升储备

自己的知识准备得怎么样,这直接决定了你能否顺利通过一面和二面,所以在面试前来一个知识梳理,看需不需要提升自己的知识储备是很有必要的。

关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)

资料获取方式:前往我的腾讯文档

  • 架构师筑基必备技能
  • Android高级UI与FrameWork源码
  • 360°全方面性能调优
  • 解读开源框架设计思想
  • NDK模块开发
  • 微信小程序
  • Hybrid 开发与Flutter

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结:

《960全网最全Android开发笔记》

《379页Android开发面试宝典》

历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

如何使用它?

1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数

《507页Android开发相关源码解析》

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

WDky4pqw-1618542926170)]

《507页Android开发相关源码解析》

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

真香定律!2021最新Android开发者学习路线,年薪超过80万!相关推荐

  1. 2021最新Android开发者学习路线,已整理成文档

    前情 首先介绍一下自己的情况吧,由于当年高中年少轻狂,不努力,差二本线16分.我自己也没有意识到学历的区别,最终听了家里的安排上了一个专科,电气专业. 现在想想都很后悔,当年为什么没有自己的主见,如果 ...

  2. 太赞了!2021最新Android开发者学习路线,offer拿到手软

    前言 面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责. 文末会给大家分享下我整理的Android面试专题及答案其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了,这里所列 ...

  3. 经验分享:2021最新Android开发者学习路线,深度解析,值得收藏

    前言 前面一篇文章分享了最近整理的大家伙的面试经历总结,有兴趣可以去翻看一下.这位去百度面试的小A同学的面试经历很有趣,因为他拿到了offer但是并没有去,在了解原因后挺认同他的想法的.这种职业价值观 ...

  4. ssr客户端android!12个View绘制流程高频面试题,年薪超过80万!

    前言 今天想停下代码,写点脑袋里不断浮现出来的一些看法. 也就是最近在微博和知乎上老看到"互联网寒冬"的说法.要么是看到啥公司薪水无法如期发放了,要么是看到别人说什么"裁 ...

  5. 透彻解析!字节跳动Android实习面试凉凉经,年薪超过80万!

    什么是Kotlin? Kotlin,如前面所说,它是JetBrains开发的基于JVM的语言.JetBrains因为创造了一个强大的Java开发IDE被大家所熟知.Android Studio,官方的 ...

  6. Android内存泄漏总结,年薪超过80万!

    最近看到群里看到一个女生,讲述了她从开始选择Android,经过非常努力的学习和挣扎,然而最后面对当前的环境却不得不放弃.看完以后真的非常替她感觉惋惜,如果早几年入行可能结果会比现在好很多,但可惜,这 ...

  7. 全球最火的程序员学习路线!架构师花费近一年时间整理出来的安卓核心知识,年薪超过80万!

    前言 作为一个程序员,性能优化是无法避开的事情,并且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能. 性能问题和Bug不同,后者的分析和解决思路更清晰,很多时候从应用日志 ...

  8. 经典Android开发教程!这些新技术你们都知道吗?年薪超过80万!

    概述 想了很久怎么样可以让文章的标题不那么悲观,但是各种文案都在我脑海里面不断的被否定,要么是不那么抓眼球,要么是立意不匹配.最后想了想,这个标题是真的符合我最近的感悟. 希望看过文章,能有同感的朋友 ...

  9. 大厂架构师经验分享!插件化框架解读之android系统服务实现原理,年薪超过80万!

    写在前面 周末了,人一旦没有点事情干,心里就瞎想,而且跟几个老男人坐在一起,更容易瞎想,我自己现在也是 三十出头了,也是无时无刻在担心自己的职业生涯,担心丢掉工作没有收入,担心身体机能下降,担心突然来 ...

最新文章

  1. mysql 3列索引_mysql多列索引
  2. python中将字符变为大写_Python笔记(一)
  3. linux7 共享盘创建,使用CentOS7建立samba文件共享服务器
  4. win启动linux iso文件位置,安装Linux之后如何进入win系统?
  5. java api 第一个类是_JAVA常用API:String 类的常用方法
  6. IAR 下根据官方库建立 STM32的工程
  7. 多元高斯分布及多元条件高斯分布
  8. bzoj4695 最假女选手(势能线段树/吉司机线段树)题解
  9. mysql 索引超出范围_java.sql.SQLException:列索引超出范围,0 1
  10. 很犀利却很现实的26句话!哪句你心痛了
  11. Vue周日历展示大学课程
  12. 家用简单电线路图_6种简单电路图
  13. PHPwebshell2022免杀bypass阿里云盾等所有安全设备
  14. 个股短、中线技术形态判定
  15. SQL中可以用来算时间差的函数
  16. 自动化失败的6种原因
  17. Linux socket accept尽信书不如无书
  18. 计算机初级证书 英语怎么说,常见职业资格证书英文翻译(含英语、计算机等)...
  19. MYSQL实用教程(第二版)电子工业出版社
  20. Vmware 自适应分辨率设置

热门文章

  1. 青龙面板之饿了么复活
  2. 子类对象调用父类方法
  3. 三星称霸全球手机市场10年,因它是真自主研发,其他手机都是组装
  4. Android翻页入门学习(三)阴影绘制
  5. OpenCV特征点检测算法对比
  6. 程序员PS技能(三):程序员使用PSD源文件切图
  7. 第一章:Android开发概述
  8. [公告]LBTC更新后数据公告
  9. SAAS开发技术学习内容分享
  10. js正则匹配截取数字