移动端的招聘中高端的职位还是很多的,看了下拉勾上的Android招聘需求,在北京中高级Android开发大多是15k-30k,如何从初级进阶?
Android开发者打好编程基础
-
Java基础(Kotlin)
-
OOP思想与设计模式
-
Android基础
-
数据结构与算法
-
其他,比如JVM相关
除了编程基础,我们还需要补充哪些能力
-
喜欢钻研的兴趣
-
良好的英语理解能力
-
善于思考和总结的习惯
-
高效率的学习方法
-
能够机智地利用Google搜索
-
善于利用工具
-
和现实事物关联类比的能力
-
对待问题的态度
1.喜欢钻研的兴趣, 尽管高级编程语言的出现让我们将精力更多的放到业务上,而不是编程细节。正所谓知其然知其所以然,钻研细节可以更好地帮助我们实现业务,做到了然于胸。
2.良好的英文理解能力。 由于一些原因,我们接触到的一些技术的资料都是二手资料,而这些二手资料往往在知识传递的效果上有一些折扣,甚至是偏差。英语可以说是(安卓)编程提升的加速器。同时,英语好的话,可以辅助我们写出更具有自解释的代码。
3.善于思考和总结的习惯。 真理越辩越明,同样技术越思考越清晰。对于一个技术通常我们需要抱有这样的疑问
-
它是什么 一句话概括
-
解决了什么问题 存在的意义
-
怎样解决了问题 内部的实现
-
它的缺点是什么 多角度分析
比如我们关于WebView的考虑点的总结
-
是否支持js
-
是否支持mixed content (https网页加载http图片)
-
与js通信的问题,比如给方法增加JavaScriptInterface注解
-
是否自身处理某些URL(协议不同,不让flipboard://showSection等)还是交给外部程序
-
关于UA中是否加入特定的标识,比如Flipboard字样
-
是否增加特定的header
有了思考,我们需要以文字的形式记录下来,这也应了那句老话,好记性不如烂笔头。建议以博客的形式总结出来。
4.高效率的学习方法。
-
理清楚概念很重要
-
做好控制变量法
-
多动手实践,与理论结合
-
抓住重点,剔除干扰因素
其实,任何复杂的事情都是由简单的事情组成,编程也是一样。在编程过程中,我们会接触到很多概念,这些概念很重要,对于概念的一知半解往往会使得我们越走越慢,学习起来原来越困难。因此对于编程中的概念要务必理解准确和深刻。
控制变量法:我们在初中做实验的时候,经常会用到控制变量法。在编程中红也是。当我们在解决问题时,也要做到控制一处修改。比如我们项目中需要修一个webview相关的bug,我们要想一想能不能脱离现在庞大而负责的项目,单独写一个简单的变量单一的sample来重现,做到快速和小粒度验证。
多动手实践与理论结合:很多时候,我们学习新技术的时候,我们应该先学会使用它,有了初步的认知之后,便于我们更好的理解和深入研究。比如关于GUI的东西,我们最好时不时做出一些东西,理论和实践要做到相辅相成。
建议
对于初学者,大学生我有一些建议希望你们能好好听听
-
越来越多的关于互联网寒冬的消息传出
-
听见越来越多的人抱怨Android找工作越来越难,已经趋近饱和。
-
Android开发的红利期正在逐渐消逝,尤其是对于初级和中级开发人员
-
关于现在加入Android开发队伍,我并不反对。
-
仍然可以赶上红利期的有容器,机器学习和人工智能。
-
但是无论选择哪一种技术,即便是Android,请具备好的基础和较强的编程能力和足够的爱好。不要仅仅追求物质。
如果你已经成为了Android高级架构师,那么你根本不用担心Android开发前景,因为你就是前景!
尾声
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
在这里我也整理了一套Android架构师系统学习资源
适合人群:你处于进阶迷茫状态,不知道自己该往哪个方面发展,不仅没有很系统全面高效的学习方法,而且还止步不前,每天干着相同枯燥的工作,却无能为力。感受着35岁的压力,与焦虑。
建议:学习起来,把自己变得忙碌起来,有时候选择比努力更重要不是吗?在自己的优势上去努力,才是最接近成功的方式!