>  突破自己的技术瓶颈,个人的技术输入与输出
1、技术瓶颈 ; 2、工作上瓶颈 ; 3、收入上瓶颈
如何突破技术发展瓶颈?- http://www.sohu.com/a/246164204_100066886
如何持续进步,突破技术瓶颈?- http://www.sohu.com/a/134134698_355140
多年经验的大厂程序员,如何突破技术瓶颈?- https://blog.csdn.net/qq_39627461/article/details/80488482

引用: 2019 Android 高级面试题总结- https://mp.weixin.qq.com/s/hzCBLwMY04aPWrcTlJ2uPQ

Android 进阶探索 为什么别人成长那么快?- https://mp.weixin.qq.com/s/8X5MqbRlwQAX10-a6OeOvQ

-- 面临几个问题:
  技术学习的困惑:当达到一个瓶颈时,可以学习的参考系越来越少,首先是因为高端技术人才呈现倒金字塔形态,身边缺少能引领你的人生导师;其次,业内的技术交流,大多数在做科普以及刷存在感,到达一定阶段后对个人提升作用越来越小(甚至用一天时间参加技术大会效果还不如用一天的时间在咖啡馆看书学习);再次,国内的文化导致技术人专家逐渐转向管理岗位,技术缺少积累,特别容易出现断层和继承。
  技术深度与广度的选择的困惑:技术深度的进一步提升,可以逐步做到业界大牛,专业技能越来越强,广度的延伸也更容易变成全栈技术人才,两者各有利弊,个人时间和精力有限,如何抉择?
  技术方向的困惑:大型互联网公司的技术框架基本都在最初选型时确立,与当时的业务规划、业界当时的技术趋势、个人的过往经验积累相关,成熟规模大的业务从稳定性考虑,一般技术选型落后新技术2、3年,对于技术人员来说,从实际工作考虑需要使用老技术,但是业界的趋势又是在朝着新技术的方向发展。

技术管理型人员需要更加关注整个知识体系的构建,其中包括重要的软技能。这类人员的重点是总体规划和设计,能够对问题进行分解。对于分解后的技术问题和细节则可以转交到细分岗位的专业人员去做。要做到这点我们仍然需要有大量的技术积累,因为这是你和专业技术人员沟通的桥梁和通用词汇。业务和问题驱动IT和技术,是从单纯技术思维开始转变的一个重点。
  源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。

-- 从技术,到参考书,到行业资讯。
1、工作不是学术,企业也不是学校,需要的是投入与产出,所以从学习的优先级上,项目需求>公司愿景>个人爱好:项目需求是最根本的需求,也是保证你工资、绩效的基础;在项目的基础上,我们的技术要结合公司的发展与技术愿景,也只有与公司的发展上一致了,你才有机会能够爬上管理层;最后才是个人的兴趣爱好。

2、在关注技术的同时不要忽略了业务和管理。对于大多数人来说,技术是吃不了一辈子饭的,走到一定程度,需要做转型,所以在这个过程中你需要做相关知识的储备,不过也不排除一些天赋异禀的人,可以不用走平常路。时间来说,以5年为期:第一个5年,需要进入管理这个角色,第二个5年,是你业务积累的时间。

3、除了关注技术发展的同时,也多关注行业的动态。我可以不懂大家怎么做,但你不能不知道大家在做什么,技术的行业的需求和发展方向又是什么,这些对于你的技术没有太多的帮助与提升,却对你的发展大有帮助。

4、多学习。学习的方式可以分为两种:自己看书、查资料学习和跟别人沟通、请教学习。两种方式没有优劣,收获的内容也大不相同。我们常说常说:读万卷书不如行万里路,行万里路不如高人指路,所以,只要有机会,多约出来聊聊,一起吃吃饭,聊聊天,是大有好处的。

> 程序员高级进阶
从菜鸟到Android资深工程师的进阶之路- https://blog.csdn.net/mary_ml/article/details/50539521
-- Android开发者已经度过了初级、中级,如何成为一个Android高手呢? 
 一、初级
    1. 拥有娴熟的Java基础,理解设计模式,比如OOP语言的工厂模式要懂得。
    2. 掌握Android UI控件、Android Java层API相关使用。
    迈向中级,最好再次更新下Java技术,掌握Java concurrent库、nio库,精通xml、json解析,做过socket c/s端的程序。
 二、中级
    1. 熟练掌握NDK JNI方式的开发,对Android framework十分了解。
    2. 移植一些开源项目,比如FFmpeg、Mplayer到Android上运行。
    迈向高级,熟悉android开源代码的结构,中间件下层的库,比如webkit、opencore、opengl。
 三、高级
    1. 熟练的Linux驱动开发,精通Linux内核结构。
    2. 掌握Android移植,比如常见的TI OMAP、Qualcomm MSM的硬件移植。
    迈向顶级,发现Android系统中的0day漏洞,可以轻松的找出Root系统的10种方法,帮助Google改进Android操作系统。

投入大量的业余时间在Android开发上,并且习惯去思考问题、总结问题并将其融会贯通

-- 中级工程师的水平:
技术要求: 
- 基本知识点 
比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画等常见技术 
- 书籍推荐 
《第一行代码 Android》、《疯狂Android》

中级工程师
  小明经过一年的努力学习终于成为Android中级工程师了,月薪变成了17k。到了中级工程师,已经可以在公司里干很多体力活了,但是一些很重要的任务小明还不能一个人承担起来,这个时候小明需要学习的内容就很多了,如下所示: 
- AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的区别; 
- Binder:从Java层大概理解Binder的工作原理,懂Parcel对象的使用; 
- 多进程:熟练掌握多进程的运行机制,懂Messenger、Socket等; 
- 事件分发:弹性滑动、滑动冲突等; 
- 玩转View:View的绘制原理、各种自定义View; 
- 动画系列:熟悉View动画和属性动画的不同点,懂属性动画的工作原理; 
- 懂性能优化、熟悉mat等工具 
- 懂点常见的设计模式

为了成为Android资深工程师,需要学习的东西就更多了,并且有些并不是那么具体了,如下所示: 
- 继续加深理解”稍微深入的知识点“中所定义的内容 
- 了解系统核心机制: 
1. 了解SystemServer的启动过程 
2. 了解主线程的消息循环模型 
3. 了解AMS和PMS的工作原理 
4. 能够回答问题”一个应用存在多少个Window?“ 
5. 了解四大组件的大概工作流程 
6. … 
- 基本知识点的细节 
1. Activity的启动模式以及异常情况下不同Activity的表现 
2. Service的onBind和onReBind的关联 
3. onServiceDisconnected(ComponentName className)和binderDied()的区别 
4. AsyncTask在不同版本上的表现细节 
5. 线程池的细节和参数配置 
6. … 
- 熟悉设计模式,有架构意识

-- 1.扎实的java基础,尤其是多线程和java中的数据结构。2.精通java中常用的基础算法。3.开发基础良好,深入理
解设计模式,能够根据实际设计较好的应用架构。4.熟悉网络通信协议,对tcp/Ip和Http有较深刻的理解和经验。
5.对Android 系统的原理了解深刻,熟悉Android系统中的常见的service 模块(ActivityManagerService,
WindowManagerService,PacketManager,ResourceManager)6.熟悉app的启动流程,和Android系统的启动流程。
7.对内存优化,性能优化,电量优化等有丰富经验,,熟悉主流手机平台下的高性能编程及性能调优。?8.数次跨
进程通信的底层实现原理。(AIDL ,binder,)9.对虚拟机运行原理和内存分配和回收机制理解透彻。10.掌握UI
的绘制原理,能够自定义一些高性能的Ui框架。

Android高级工程师所要达到的技术要求- https://blog.csdn.net/qq_33923079/article/details/71307997
高级工程师所要达到的技术的要求:

1.Android的基本知识四大组件、Fragment、自定义控件、动画、组件之间的消息传递等等,这些都是基本知识也
是开发过程中所必须掌握的,同时也是为今后的发展所打的基础,在这个基础上我们还要掌握组建的生命周期呀,
activity启动模式的区别和场景应用、scheme跳转协议、组件之间消息传递的机制、动画的种类和区别、属性动画的特点和作用等
 2.Android的技术难点AIDL、Binder、多进程、View的绘制流程、事件分发、消息队列等。这类知识对于定位自己
为高级Android工程师的人来说是必须掌握的,同时他也是能鉴别高级和初中级工程师的一块试金石,其中binder
是Android系统进程间通信最重要的手段之一,现阶段app的发展离不开多进程的运用,经常会启动例如定位、推送
等需要在后台开启动的进程来来保证主进程的内存运行;所以合理的使用多进程也是十分必要的;view的绘制是我
们自定义控件的理论基础,只有掌握了view是如何绘制的才能个性化的自定义控件;事件分发一直是Android开发
的难点之一,也是必须掌握的,后期我也会在博客上推出这个系列;关于handler机制也是android的一块难点,因
为包括Asynctask、系统启动、Intentservice等底层都是通过handler来实现的,所以掌握后handler机制不仅能提
高你的实战开发能力,更能让你系统的了解整个android系统运作的情况。
 3.网络框架的理解
现如今Android的网络框架可谓纷繁杂乱,但不外乎这三类:网络请求框架、图片加载框架、事
件处理框架、IOC框架,其中的代表分别是Retrofit/volley/Okhttp,fresco/glide/picasso,eventbus/
rxjava,butterknife/dagger/dagger2,平时应该多看下这些的源码的设计理念,不仅可以纠正我们的一些代码
漏洞,我们要知道这些成熟的开源框架在github上已经经过了无数次的检验,所以学习这些框架能快速提高我们的
代码能力,毕竟在大家还没有转型前写代码的能力是我们工程师的根本。

4.Android系统的一些核心机制的运作:
在Android源码中最重要的三个类:ActivityManagerService/
PackageManagerService/View,推荐大家周末的时候可以去阅读下这部分的源码,阅读源码能提高我们今后设计
架构自己代码的能力,同时也能从底层了解整个android系统的运行原理,其他一些比如主线程的消息循环、主线
程如何和AMS如何跨进程交互、SystemServer进程中的各种Service的工作方式、AsyncTask的工作原理等。这些知
识也是作为一个Android高级开发工程师必须掌握的,不能整天沉溺于ui和四大组件的交互,要站在更高的角度去
考虑Android的有些问题。

5.android编译构建
构建编译打包是我们开发过程中的最后一环,但是也是最容易被很多人忽视的一个知识点,现
在的大型app开发团队都有自己的自动化构建工具,比如常用的jenkins,在这个基础上大家要对一些常用的工具有
深入的了解:比如git的使用和它的内部原理,gradle如何加快我们编译apk的时间以及它的一些基本语法,
proguard的作用和混淆的内部原理,lint是如何来检测我们代码中的问题的和如何自定义lint配置等。
 
  (C++)大部分有特色的功能都需要底层做支撑,游戏引擎,播放引擎,图像引擎。
入门后如果想有更好和更长远的发展,必须开始崇尚内功一族,了解内部技术细节,修炼好内功。不要流于形式,
浮于表面,依赖工具,而是要深钻进去,了解得越深越透彻越好。最好是能自己了解各种引擎的底层原理,甚至是
写出自己的引擎来,这样才是更高的境界(当然这只是极少部分的顶尖高手能达到的境界)。
  因为,我们通常认为你是专业的,一旦你表现不专业,就会大打折扣。所以如果持续深入做技术,就要对自己狠
。不然以后,机会对你来说,很多,但是你一个都抓不住。从而慢慢转向普通大众。我们并不是说支持完全去从头
造轮子,而是你理解的越深,就可以收放自如,做个有选择权的强者。当没有合适你的轮子的时候,当遇到技术瓶
颈的时候,你自己完全可以制造个更好的,前所未有的轮子,而不是懵在那边,等待你所谓的巨人们心情好后的施
舍,造一个合适的轮子给你用,或者因为长久以来的太依赖工具而丧失了本来的能力。
  但如果已经在某个领域花了10年甚至更长的时间,还没能有所突破,那就得反省自己,是不是方法问题了,是不
是方向问题了,是不是之前研习的时候,或进度太慢,还是走了很多弯路。我们都清楚,并不是每个人都能有很好
的技术天赋与底子,当然也不是每个做开发的人都要去理解和实现底层,要量力而行,要有所侧重,要找到自己最
合适的角度。我们只是从长远来看提倡将知识挖深,让自己打开眼界,不做井底之蛙,不随波逐流,让自己因为站
得高看得远,而有更多更广选择的权利。

突破自己的技术瓶颈,Android程序员高级进阶,危机感相关推荐

  1. Android程序员的进阶之路

    本文主要论述的是Android程序员的进阶之路,博主本人就是一名android开发攻城狮,所以这里讲述的大多数是android开发攻城狮的技术进阶之路,如有问题请多指正. 大家都知道程序员之中有有菜鸟 ...

  2. Android 程序员的技术栈大全

    AndroidAll 项目地址:chiclaim/AndroidAll  简介: Android 程序员的技术栈大全 更多:作者   提 Bug 标签: 内容涵盖绝大部分 Android 程序员所需要 ...

  3. Android程序员的技术要求和学习路线

    转载自知乎上关于Android程序员技术等级标准的回答: 如上图所描述的技能要求,可分为下面几大模块: 通用知识 编程语言 Android 编码与设计 工具和方法 对应学习线路如下 书籍准备: 1.疯 ...

  4. Android程序员如何有效提升学习效率?帮你突破瓶颈

    背景 惯例,先简单陈述一下自己的,91年生人,164年三本毕业后在深圳工作,末流小公司,工资13k,无房,无车,无户口. 那时候感觉生活也还行,父母有退休金,我基本上不用太操心,女朋友在一起很久了,很 ...

  5. 2021年Android程序员职业规划!系列篇

    前言 早在2017年我们就建了第一个进击BAT的Android开发进阶交流群,两年期间很多群友都分享了自己的Android面试经历.其中就有很多群友已经斩获蚂蚁金服,天猫,高德,盒马等阿里系offer ...

  6. Android程序员正在消失,我也不想干了,要转行吗?

    这几年,说实话,许多人对就业不看好.对工作失去信心,感慨选错行业如今转行代价太大. 我朋友的弟弟今年高考,报专业时家人希望他报计算机,他忧心忡忡地说.网上都说计算机专业在市场上已经饱和了. " ...

  7. 给Android程序员的一些面试建议

    前言 应大家的邀请,写一篇关于Android面试相关的博客,需要说明的是本文只针对Android应用开发,不针对rom开发以及逆向工程.我想面试对于程序员来说是很重要的一件事件,面试结果的好坏直接决定 ...

  8. 2020倒计时,大厂核心送给每一个脚踏实地努力着的Android程序员,逆风前行

    Android前景的压力: 面试的压力: 寒冬的压力: <Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义>开源 年龄的压力: 等等- 其实每个人都有自己的 ...

  9. Android程序员现状:没有架构师的命,却得了架构师的病!

    Android开发的现状貌似已经是一个老生常谈的问题了.但今天不想写Android开发的现状,什么Android前景如何.Android凉凉之类被别人写烂了的话题. 今天我们来聊聊我们自己,我们And ...

最新文章

  1. golang 复制 文件 文件夹
  2. Integer的127与128
  3. Reza Zafarani经典教材-《社交媒体挖掘》PDF+随书课件打包分享
  4. RHCE红帽考试认证考试模拟题(与真题区别是一些名称不同) 答案见下个博文
  5. 使用原生js实现简单动画效果
  6. 微信小程序上传图片到阿里云存储
  7. python的pyc反编译
  8. Java流(Stream)
  9. 计算机网络 DNS解析命令汇总
  10. 客房管理系统java代码_java客房管理系统代码
  11. 波士顿大学计算机与传媒专业,波士顿大学传媒专业排名如何?
  12. 在腾讯的八年,我的职业思考!
  13. 质数的判断(Python)找到100(1000)以内的所有质数
  14. 还在用Evernote或印象笔记吗?来看看笔记神器Notion吧!
  15. 工业生产ERP系统常见的五大统计分析功能
  16. Sublime Text 怎么使用打开md,替代Typora
  17. 尼康d850相机参数测试软件,尼康D850相机快门计数软件
  18. vue 二维码+条形码识别
  19. 此证书的签发者无效解决办法
  20. 记录配置tomcat配置默认项目session值失效的解决过程

热门文章

  1. 【vue-router.esm.js?8c4f:2065 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigati】
  2. 【原创】软件架构技术发展历程总结及思考 1of2(待续)
  3. 时间片轮转计算例题截图
  4. 匈牙利二分图最大匹配——过山车(hdu2063)
  5. 浙江高考VB之排序系列
  6. c语言中isdigit函数的用法
  7. GBase 8c数据类型-二进制类型
  8. 世界杯预测C语言面试题,2018世界杯有奖竞猜 | 世界杯球迷C位pick测试
  9. Mac电脑看图快捷键
  10. postgral中转义特殊符号