为什么BAT资深开发者劝你早点离开小公司?

为什么BAT资深开发者劝你早点离开小公司?

最近有个朋友和我说,后悔毕业后去了小公司了,公司最近打算裁了他,现在工作3年多,老板的大饼迟迟没有兑现,公司营收也面临很严重财务危机。自己这几年什么都干,但是去市场面试,感觉却都不精。这个读者学校不错,毕业时可选的公司非常多,因为当时觉得走创业公司,以后成为公司上市,自己就财富自由。现在想想很可笑。

为什么建议你早点离开小公司?

1、工资并不高,小公司往往出于成本考虑,现金部分非常一般,稍微好点的,给你还配点股权、期权、干股,这些东西就是个大饼。能吃到的人不多。你的青春和时间也没有个几年可以挥霍的。

2、既裁员又倒闭,小公司往往需要不断输血和持续融资,织架构不断大调整是必然,裁员是分分钟的事,倒闭则是绝大多数的归属。

3、技术视野非常有限,小公司确实综合能力会更好(也就是什么都会一点),接触的方面也更多,但是在小公司待的越久,你的水平提升就会越慢。小公司的同事,大多数能力都一般,即使你能力刚开始很强,慢慢地也会变得很平庸,在专业技术的前沿和眼界上会差很多,越来越没有竞争力。当然并非小公司出身就不好,是金子总会发光,很多大牛其实恰恰来自小公司中那一小撮能力强的人。小公司环境有限,但是依靠自己的努力,时刻保持学习就能不被淘汰。

4、人脉和社会资源的建立非常有限,你想想你如果在好的平台,机遇和机会还有优秀人脉,就会很多。小公司尽管可能有那么一些大牛,但是远远不够。

一些大公司高级Android工程师技能要求

这是我收集的一些大公司关于Android工程师(准确来说是高级Android工程师)的要求,希望给那些想进大公司的开发者一些参考,看看自己掌握了多少技能,还需要学习一些什么知识技术。

1、国美在线—高级Android开发工程师

任职要求:
1、四年以上移动客户端开发经验,熟悉Android SDK,并开发过1~2款成熟产品,熟悉内存优化,熟悉多线程使用。
2、具备扎实的java基础,java相关开发经验不少于两年,熟悉一种以上主流手机开发平台(C,C++,Java)优先
3、熟悉Android下网络通信,对Socket通信,Tcp/Ip和Http有较深刻的理解和经验,有网络编程经验。
4、熟悉Android内存优化等运行原理,熟悉主流手机平台下的高性能编程及性能调优。
5、具备良好的沟通能力和团队协作能力,善于沟通和合作;能独立完成设计和编码。
6、开发基础良好,理解设计模式,在项目和产品中有很好的设计实践。
7、对新的技术有较强的自学能力,并能够根据工作需要在工作中进行实时的可以优先考虑。

2、华为技术有限公司—Android开发工程师

1、4年以上Android开发经验
2、有大型/复杂Android应用建设经验,能独立完成大型/复杂Android应用的技术解决方案与架构设计,掌握移动平台前沿技术。
3、精通android平台技术架构,精通android framework层,能解决重大技术疑难问题。
4、具备扎实的java技术和android性能调优经验,熟悉android平台单元测试和自动化测试工具。
5、熟悉Android平台软件配置管理,能独立完成android平台软件持续集成方案和策略,熟悉android软件编译机制,熟悉,svn,git常用代码管理工具。
6、设计能力(Visio,Rational rose,powerDesign),具有较强的应用功能和数据设计能力,精通软件设计模式,熟悉其中的一些建模工具的使用。
7、具有良好的技术方案设计能力和设计方案文档编写能力。
8、工作细致,具有良好的团队合作精神,高度的责任感,较强的沟通,适应,表达能力。

3、豌豆荚—高级Android开发工程师

1、精通Android开发平台的框架原理,熟悉Android应用开发流程;熟悉系统启动流程,权限控制,内存管理等机制,精通至少一个Service模块的底层实现(如ActivityManagerService,WindowManagerService,PacketManager,ResourceManager等)。
2、熟悉无线互联网产品和应用,熟悉无线互联网的各种技术,热衷于跟踪各项新技术的发展,以及新技术与应用结合情况。
3、具有良好的技术钻研能力,具有良好的文档能力,良好的沟通能力。
4、掌握通用的设计原则和常用的设计模式,理解Android模块化和APi设计思路。

4、优酷—优酷Android开发工程师

1、负责优酷移动App在Android设备上的适配和功能开发
2、负责优酷移动App的性能优化,架构设计工作
3、本科及以上学历
4、五年以上的Android开发经验
5、了解Android平台架构,做过Android Framework开发优先
6、java基础扎实,对常用的数据结构和算法熟悉
7、熟悉常用的网络协议,了解TCP/IP,Http协议
8、对Android机型适配有一定的工作经验
9、熟悉了解常用的性能优化手段
10、学习能力强,积极主动,能承受较大的工作压力

如果你想跳槽大厂,这里恰好有一份囊括了Android进阶架构师之路的核心知识,同时也包含了大厂面试必问的知识点。内容包括高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术、数据结构算法等等资料。

一、基础技能:

  • 深入Java泛型
  • 注解深入浅出
  • 并发编程
  • 数据传输与序列化
  • Java虚拟机原理
  • 反射与类加载
  • 高效IO

为什么BAT资深开发者劝你早点离开小公司?

二、Android框架体系架构

1、高级UI晋升
2、Android组件内核
3、大型项目必备IPC
4、数据持久化
5、Framework内核解析

这块知识是现今使用者最多的,我们称之为Android 2013~2016年的技术,但是即使是这样的技术,Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生,虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。所以我们需要从新的角度去分析这些知识点,深入研究他们,要学习源码,模仿源码,然后再hook源码,这样才能说自己懂这块的知识。这些都是做Android开发,做高级工程师的基础。

为什么BAT资深开发者劝你早点离开小公司?

三、360全方面性能调优

1、设计思想与代码质量优化
2、程序性能优化
3、开化效率优化

一个app的性能好不好我们需要从两个层面努力。第一个层面:书写高性能代码;第二个层面:调优。

如何写出高性能的代码呢?

那就需要我们具备深厚的代码功底,这就是代码的基础。另外,对常用的算法有自己独到的见解,leetcode上有刷个上百道题,这样差不多可以达到精通最常用的排序查找动态规划等算法的能力。再者,高效的算法以及节省内存的数据结构如果配合优秀的符合应用场景的设计模式,那么,这些就为高性能的代码提供了实现依据。

另外一个就是对写好的代码进行调优,那么调优的方向就是使用Profiler工具进行测试和检查,看哪里有性能消耗大的操作,然后分析对于代码的问题。调优的方向就变成了如何对内存调优,对耗电调优,对网络流量调优,当然,还有对启动速度,页面切换效果与速度,开机白屏体验,闪屏方面的原因等进行分析和调优。最后再加上一个屏幕适配相机适配。

为什么BAT资深开发者劝你早点离开小公司?

四、设计思想解读开源框架

1、热修复设计
2、插件化框架解读
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
7、IOC架构设计
8、Android架构组件Jetpack

现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较 6的技术,这些技术我们称之为前沿技术。他们一般包含热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等,当然,这些技术你不能只会用,你需要知道他的原理,有时候,你还需要知道如何对这些架构进行改进。

为什么BAT资深开发者劝你早点离开小公司?

五、NDK模块开发

1、NDK知识体系
2、底层图片处理
3、音视频开发
4、机器学习

音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以Android NDK技术已经是我们必备技能了。要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且OpenCV/OpenGl/ 这些又是图像处理必备知识,这些都在我们课程里面有原理级的实战项目。

六、架构师炼成实战

1、架构设计
2、网上商城项目实战
3、新闻客户端项目实战
4、多格式播放器项目实战
5、Gradle自动化项目

七、微信小程序

1、UI开发
2、API操作
3、微信对接

为什么BAT资深开发者劝你早点离开小公司?

八、Hybrid开发与Flutter

1、Html5项目实战
2、Flutter

混合开发的flutter现在已经逐渐变成了主流的混合开发框架,另外由于阿里系的强大存在,导致阿里 系的公司都在用Weex混合架构,这些都是一个Android工程师开拓视野,走向未来必不可少的基本技能

为什么BAT资深开发者劝你早点离开小公司?

最近我也根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司19年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

这份路线图适合的人群:

1.没有工作经验,但基础非常扎实,对四大组件,性能优化,常用Android开发框架掌握熟练的。

2.最近要参加面试的Android程序员,查漏补缺,以便尽快弥补短板;

3.想了解“一线互联网公司”最新招聘需求/技术要求,对比找出自身的长处和弱点所在,评估自己在现有市场上的竞争力如何;

4.做了几年Android开发,但还没形成系统的Android知识体系,缺乏清晰的提升方向和学习路径的程序员。

相信它会给大家带来很多收获:

为什么BAT资深开发者劝你早点离开小公司?

上述高清技术脑图以及配套的架构技术PDF加我wx:X1524478394 (或者技术qun:887084983)免费领取

为什么BAT资深开发者劝你早点离开小公司?

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

  • 无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!!!!!!!!
  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

猜你喜欢

转载自blog.51cto.com/14332859/2451590