作为一名程序员,谁没跳过槽,“6”招让你“空降”大厂

作为一名程序员,没有谁没跳过槽

撇开在跳槽时对所“空降”的企业所需要的行业知识知根知底而“得心应手”,从而“稳定”外,其他人可能或多或少都有过因“不适应”新单位环境而又被迫再离开的厄运,以至于在再“找工作”时因为不能“骑马选马”而每况日下!

有32.98%的开发者在过去一年(2013)中曾换过工作,其中有72.5%的人实现了薪资上涨。而在未换工作的开发者中,约有59.3%的开发者同样能够涨薪。

下班前简单做了一张图:

对比两张图可以很直观的看到,薪资涨幅超过30%的程序员比例中,跳槽的(25%)相比不跳槽的(7%)大得多。

所以说,公司愿意花大价钱挖新人却不选择给老员工加薪--其实是几乎所有公司都存在的博弈悖论:

当员工没有跳槽机会时雇主便没有动力提升其待遇,而当他一旦有更好机会准备跳槽时,公司想通过提升待遇也难以挽留。

跳槽“6招”交给你!最后一招必须掌握!

笔者经多年摸爬滚打、又经多名企业跳槽者、企业管理高手及多名国学研究者讨论而总结出如下9招,相信你若把这几点完全“吃透”,你就会在任何企业“落地生根”而开花结果!

第一招、做人低调(这一招最重要)!

无论是什么“资”质的企业,只要是在中国的土地上,做事就永远不是外国的那种“法、理、情”,而是需符合中国国情的“情、理、法”——“情”永远摆在第一位!所以进入一个新企业,你要彻底地放低自己的身架(不是“身价”,“身价”只能靠结果来证明的)

第二招、多做自我反省。

无论你做的事、或说出来的话,当别人误解时,你都不能说“你怎么是个这样的人”、“你是不是有病啊”、“你脑袋正常点好不好”?你应该说“哦!我是不是没交待(或没说)清楚?我再说清楚一下吧,我的意思是……”。他如又曲解,你就再如此说!总之你要多从自身找原因:一切都是你的错——是自己水平“不够”才导致了对方误解、曲解、歪解,才导致了别人做错!如此,就算对方想说你的“不是”,让他也找不到“理由”!

第三招、尊重新企业的原管理模式(也可说是企业文化)。

你要知道:企业管理是没有绝对正确与错误之分的,管理只存在“适不适用”的问题:能适用的就是“好”的,不适用的就是“错”的!

第四招、改革必须是“自下而上”进行。

现在很多跳槽者到新单位发现“问题点”后,针对这些问题点的解决措施,他们就只想“自上而下”推行,即:首先,而且是只与顶头上司(含老板)直接沟通,以为只要上司点头认可就可以推行,就可以实现自己的目标,如此就能体现自己的“价值”了!而根本就没想到:就算上司认可了你的说法,但当你在推行时,一旦你底下有人不满意而成为你的“阻力”(这时你如果想靠你自己去排除这个阻力是有点不可能的了)时,你就会去请求你的上司协助(或出面协调)。

第五招、控制自己永远“不生气”,无论怎样,都要控制好自己的脾气!

工作上的问题,只能是一种同事间的相互影响!只能通过沟通、了解、商量及讨论去解决!而不能夹进自己的个人喜好——你没有理由去要求别人来依你的个性去工作,所以你有什么理由生气?

【有一句话可送给你:狗咬了你,你能再去咬狗吗?以此来提醒与鞭策自己吧!】

掌握了基本做人的五招,最后一招就是你的“硬功夫”了

啥都不会,凭什么跳槽?

大厂面试对技术的考核基本分为三个层次:对于基础知识的考核、对于项目经验的考核、对于项目深度的考核。

a.基础知识主要考核你对 Java 语言本身原理的理解以及各种框架的原理理解。知识点包括但不限于:

(一)Android基础知识点

  • 四大组件是什么
  • 四大组件的生命周期和简单用法
  • Activity之间的通信方式
  • Activity各种情况下的生命周期
  • 横竖屏切换的时候,Activity 各种情况下的生命周期
  • Activity与Fragment之间生命周期比较
  • Activity上有Dialog的时候按Home键时的生命周期
  • 两个Activity 之间跳转时必然会执行的是哪几个方法?
  • 前台切换到后台,然后再回到前台,Activity生命周期回调方法。弹出Dialog,生命值周期回调方法。
  • Activity的四种启动模式对比
  • Activity状态保存于恢复
  • fragment各种情况下的生命周期
  • Fragment状态保存startActivityForResult是哪个类的方法,在什么情况下使用?
  • 如何实现Fragment的滑动?
  • fragment之间传递数据的方式?
    Activity 怎么和Service 绑定?
  • ……

面试官一般都会针对简历中描写的知识点刨根问底,不懂的技术千万不要写了解。前段时间参加技术沙龙,京东架构师张开涛、腾讯高级工程师刘泽峰都表示大厂招人现在更注重技术能力的细分板块,你必须在某领域有自己独到的理解。

b.项目理解一般会让你画个架构图,然后从架构图出发,你得清楚每个模块的作用,每个框架的原理以及与其他框架的区别。是否有能拿得出手的项目,并对其原理了如指掌,很大程度关系到你能否通过这次面试。

c.项目思考深度在这一个层次上考核的是你对开源框架的思考深度,这些框架到底好不好,好在哪里,不好在哪里,有什么可以改进的地方。你不仅要对项目本身理解足够深刻,还要跳出项目本身,去思考开源框架本身的问题。

那么要想成功进入BATJ等一线大厂,应该掌握哪些技术能力呢?

1、 Java语言进阶与Android相关技术核

Android应用是由Java语言进行开发的,SDK也是由Java语言编写,对于Android来说,只要SDK没有用kotlin重写,那么Java语言是都需要学习的。而且Android apk的后台服务器程序大概率是java语言构建,所以学习java也是一种必然。那么Java中哪些东西是我们Android程序员需要学习的呢?由于Android程序员习惯了 C V 代码块,所以与Android中比较相关的稍微比较难的Java基础几乎都是一个门槛,像 泛型,多线程,反射,JVM,Java IO,注解,序列化等,都是被 CV 的对象,而程序员是不懂原理的,具体内容如大纲所示。

2、 App开发框架知识体系(app亦对象)

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

3、 360° Android app全方位性能调优

一个app的性能好不好我们需要从两个层面努力。第一个层面:书写高性能代码;第二个层面:调优。
如何写出高性能的代码呢?那就需要我们具备深厚的代码功底,这就是代码的基础。另外,对常用的算法有自己独到的见解,leetcode上有刷个上百道题,这样差不多可以达到精通最常用的排序查找动态规划等算法的能力。再者,高效的算法以及节省内存的数据结构如果配合优秀的符合应用场景的设计模式,那么,这些就为高性能的代码提供了实现依据。
另外一个就是对写好的代码进行调优,那么调优的方向就是使用Profiler工具进行测试和检查,看哪里有性能消耗大的操作,然后分析对于代码的问题。调优的方向就变成了如何对内存调优,对耗电调优,对网络流量调优,当然,还有对启动速度,页面切换效果与速度,开机白屏体验,闪屏方面的原因等进行分析和调优。最后再加上一个屏幕适配相机适配。

4、 Android前沿技术

现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较 6的技术,这些技术我们称之为前沿技术。他们一般包含热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等,当然,这些技术你不能只会用,你需要知道他的原理,有时候,你还需要知道如何对这些架构进行改进。另外,非常重要的一点,Android开发者不愿意接受新知识,所以对于现在Google推出的新的技术方案毫无感觉,这些都是被 control C 和control V所毒害,开源让开发者失去了自我,失去了基本的编码能力,失去了深入学习的信心和毅力,所以对于很多google推出的新技术好组件(Google I/O 大会新技术),好框架已经很多人不愿意去学习了这是不应该的,我们需要好好学习啊。

5、 NDK 模块开发

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

6、 提高开发效率的工具运用

工欲善其事必先利其器,如何提高开发的效率,很多开发者在开发的过程中由于gradle不会用导致加载代码非常耗时,这些就是工作成本。还有就是git的使用可以帮我们管理好我们的代码,这个非常关键,因为这个工具可以让我们修改的代码不会因为错误的操作而导致代码丢失。另外,移动开发者,我们至少需要知道如何抓取网络包吧,其中,最常用的stetho就是一个很好的可以进行网络抓包的工具。

7、 移动架构师专题项目实战环节

架构师不是天生的,是在项目中磨练起来的,所以,我们学了技术就需要结合项目进行实战训练,那么在Android里面最常用的架构无外乎 MVC,MVP,MVVM,但是这些思想如果和模块化,层次化,组件化混和在一起,那就不是一件那么简单的事了,我们需要一个真正身经百战的架构师才能讲解透彻其中蕴含的深理。

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

以上就是成为一名架构师需要掌握的所有技术要点,技术文档和视频资料,这套技术体系是由6名10余年行业工作经验的架构师结合实战经验、一线互联网企业主流技术,归纳整理而成,并针对每一个技术点配有相应的视频详解、源码注释和笔记文档。

资料免费领取方式:转发+关注+点赞后,加入点击链接加入群聊:Android高级开发交流群(878873098)即可获取免费领取方式!

重要的事说三遍,关注!关注!关注!

部分资料图:

最后,祝愿天下所有的“空降兵”都能干出一番事业!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章