赞
踩
最近不知道怎么的,突然冒出来一个想法:我想跳槽了
总结了马云爸爸的两句话:跳槽要么是钱没给够,要么是受了委屈
一.首先请思考一个问题:在你眼中“跳槽”包括哪些内容?
我给自己分析了一下,希望对有想法跳槽的道友有所帮助
很多朋友都想要跳槽,但是对“跳槽”的理解可能仅限于“写简历、面试”。
在这次跳槽前,我也这么认为的。
那时候工作不顺利,正好在一个群里看到有公司招聘,就发了简历过去,面完试自己感觉良好,结果却打了脸,让人家拒了,理由是我要的工资太高了。
仔细反省后,发现我准备的太仓促,或者说根本没怎么准备,只是写了份简历,然后有面试机会就去了。面试过程中有些项目细节答不上来,很多知识点也答得不好,让人家感觉水平一般。
痛定思痛,在后来的几个月,我开始查阅各种跳槽、面试相关的资料,同时整理了重点复习知识点,按计划一步步学习。
在两周前,感觉自己学习的差不多了,公司的情况也基本看清楚了,就决定离开。
于是写简历、投简历、面试,面了五家,拿到了五个 offer,最终选择了对我目前来说最合适的一个。
在这个过程中,我对“跳槽”的认识逐渐加深。
咋一看“跳槽”就是写简历、换工作,但要想得到满意的 offer,其实需要思考、准备的内容很多,大概有这么几点:
跳槽前要思考清楚
掌握跳槽需要的知识点
写一份高质量的简历
了解简历投递的时机和方式
拿到面试邀请要做好功课
面试中要调整心态,努力表现
面试后及时思考总结
有多个 offer 如何选择
优雅的离职
准备入职
这些应该是一次跳槽从开始到结束比较完整的流程了。接下来我们将详细了解每一部分。
二.跳槽前要思考的问题
我的如意工作是一个盖世英雄,有一天他会拿着高薪股权来迎娶我,我猜到了开头,却猜不到这结局…
每一份工作都是以希冀开始,我们心怀憧憬,希望在公司里大展拳脚、做些成就。
然而是什么让我们走到今天这地步,即将与它分手?
一般离职有两个原因:
钱不到位
心委屈了
####钱不到位怎么办
业界一种普遍的观念是“跳槽涨工资最快”,这也的确是现状。
为什么公司迟迟不给加薪,非得逼得我们跳槽呢?
答案很简单:因为公司没有意识到你价值的增长。
我们在入职时可能只是一个菜鸟,但是在工作一段时间后,由于个人的努力以及业务的锻炼,水平已经有了很大的不同,自己心里觉得自己不再是菜鸟了,希望能拿更高的工资。
但你可能一直在做一个项目,没有承担更多的责任,公司无法了解到你现在能力到什么程度了。
这个时候,如果领导比较好的话,你可以先主动要求承担任务,积极完成(就是加班加点),然后在一段时间后找领导谈加薪。这样就有理有据,让人信服,领导一般都会同意。这样就不用跳槽了,省去准备面试题的繁琐。Over。
如果领导不同意,那就没辙了。
员工离职的另外一种原因就是:待着不爽,心里委屈了。
一些被动的原因比如领导更替、岗位调整、加班太多等,都会让人心里不舒服。
拿我来说,公司业务转型,做的工作不是安卓应用开发,做久了心里不踏实,就想离职了。
如果有条件的话,可以跟领导沟通能否恢复原样,如果无望,那就只好跳槽了。
但在真正提出离职之前,还需要思考几个问题。
If you don’t like something, change it. If you can’t change it, change your attitude. Don’t complain.
有的朋友可能会说:别废话,赶紧讲面试知识点,我干的不爽就跳槽了,还想什么想?
非也,每次跳槽的成本其实很大,除去面试来回的时间不说,新旧环境的适应、业务的熟悉、代码的掌握,都需要成本,如果两次跳槽间隔太短,其实时间都花在了适应新环境上,真正学习、沉淀的内容不会太多,尤其在刚开始工作,更忌讳这样子。
因此,在确定离职前,你需要先问自己 3 个问题:
现在的项目没有我可以学习的内容了吗?
离开这里我会失去什么?
到新环境可以得到什么?
拿我自己来说,项目里的代码我没有掌握太扎实,框架层很多设计思路还搞不清楚,出去面试一问就问倒了。这时如果真的换了工作,恐怕又要接触新项目、新代码,根本没时间好好消化之前的代码。
除了代码,人际关系也需要沉淀,在这个公司待了那么久,看到了一些同事的优秀品质,学习、借鉴他们也需要一定的时间,如果忙着换工作,可能就失去了和同事深入交流的机会。
因此在第一次面试失败后,我把项目代码好好研究了一个多月,也跟同事请教很多学习、规划上的知识,为后面的路做好铺垫。
在确定要走后,尽量不要裸辞,现在的行情你懂得,没有准备就裸辞,等于断了自己后路。
有的网友问我:辞职在家好好复习一个多月怎么样。我劝他还是算了,都不是自觉的人,天天在家反而更学不进去。最好的状态就是一边工作,一边搜集要学习的知识点学习资料,下班路上、晚上、周末去学习,那样精神压力不会太大。
在开始复习知识点前,你需要确认以下 2 点:
定位
亮点
定位
“定位” 是指你要确定自己所处的阶段和想要的目标。主要包括:
目前是什么水平
有什么积累
工作项目里有什么难点
想找什么级别的工作
比如我,给自己的定位就是:现在是中级水平,常见应用开发需求基本都能解决,开源框架使用没问题,部分读了源码,工作项目里主要是混合开发比较复杂,想找有利于自己成长的、大公司中高级安卓开发工作。
有的朋友可能对 “亮点” 的定义不是很明白。
“亮点” 其实就是能够把你和众多应聘者区分出来的优秀品质。
程序员面试主要考察这几点:
技能水平
学习能力
团队合作
工作心态等
如果你在其中任何一个方面都有自己的优势,就赶紧找出来,写到简历上,面试表达出来。
拿技能水平来说,根据做过项目的类型,确定自己当前擅长的点,比如你做的是电商应用,那可能就擅长混合开发、自定义 View;做的是电台应用,那可能就擅长后台进程保活;做的是大用户量应用,那可能就擅长监控、性能优化等等。
找到自己已有的或者该有的亮点,然后去努力掌握、精通。
有的网友说早就想跳槽了,但是听说行情不好,不敢跳
创业公司的确死了很多,但是却死了一大堆。
但活下来的又融了很多钱,也成立了很多新公司,也需要招很多人。
这个时候,招聘的标准就比前几年要高一些了,去招聘软件上看也可以发现,大多要求 3 年以上经验。这是因为现在安卓初级太多了,各种应届生、培训班涌入市场,前几年会用 ListView 就可以找工作的日子一去不复还。不过真正的高级,或者有潜力的中级,还是很受企业欢迎的。
因此,我们在想要跳槽时,不要被所谓的“差行情”拦住,而是要审视自己的水平,确定自己的目标,究竟是要找初级岗、中级岗,还是高级岗。
面试前,面试官拿到你的简历,根据简历上的信息会建立第一印象。因此你想要呈现给对方一个怎样的定位,有什么亮点,都需要事先思考清楚。
确定了方向后就要开始努力准备,下一节我们介绍安卓跳槽需要准备复习的知识。
在介绍面试考察内容前,先来看看我认为的“中级安卓”需要掌握的知识点,这些是结合一些面经、自己实际面试以及请教前辈总结而来的,主要包括两部分:
基础知识
进阶知识
面试中级及以下岗位时,在电话面试、一面、或者你简历没有突出亮点时,一般都会先问基础,目的是确定你基本功扎不扎实。
如果基础知识有太多不会的就危险了,必须好好准备,这是躲不过的。
电话面试、一面考察基本功过关后,就会进入下一阶段 — 问些进阶的,看看你最高水平在哪里。
这个阶段有不会的很正常,因为对方正在确定你的水平,但态度一定要积极主动,即使之前没有研究过,也要结合一些经验说出推测的结果,切忌直接说“我不会”。
基础知识主要包括以下几点:
Java 基础
并发/异步
安卓基础
设计模式
常见的数据结构算法
网络基础
虽然现在 Kotlin 挺火的,但我面了几家大公司都没问 Kotlin,问了很多 Java 。所以一定要保证当前知识掌握熟练了,再学习新知识,不然真成了狗熊掰苞米。
Java 基础主要包括以下知识点:
内部类、静态内部类区别、使用场景
抽象类、接口 实战使用场景
注解
什么是注解以及运行时注解的使用
使用编译时注解简单实现类似 ButterKnife 的效果
反射
深入理解 Java 反射:Class (反射的入口)
深入理解 Java 反射:Field (成员变量)
深入理解 Java 反射:Method (成员方法)
泛型
[深入理解 Java 泛型]
IO NIO
.并发/异步
主要包括两部分:
安卓并发类
Java 并发知识
安卓的主线程模型,要求我们必须将耗时操作放到线程异步执行,否则会影响 app 的流畅甚至卡顿。
因此必须掌握安卓提供的 Handler, HandlerThread, IntentService, AsyncTask ,这是安卓为我们封装好的异步类,从使用到原理,都要理解,面试常客。
接着就需要了解 Java 的线程、内存模型和 Java 并发包下提供的类了,这也是大公司考察基础的常客。
除了面试,如果你去看过开源框架,会发现里面有很多 ConcurrentHashMap, Lock, Condition,一开始看的你一脸懵逼,在掌握了 Java 并发知识后,再去看框架就会省力许多。
Java 并发主要知识点:
同步锁 synchronized与Lock区别
什么是可重入锁
线程通信方法
wait 和 sleep区别
wait-notify 模型
生产者消费者模型
线程池
建议阅读书籍:《Android 开发艺术探索》、《Java 并发编程艺术》、《Java 并发编程实战》
安卓基础
安卓基础爱问的来来回回就那些点:
四大组件,生命周期启动方式等常见问题
Android 进阶1:Activity 的生命周期
Android 进阶2:Activity 的 Task 与启动模式
Android 进阶3:Intent 与 IntentFilter 匹配规则
Android 进阶4:Service 的一些细节
自定义 View 相关
绘制流程
事件传递
滑动冲突
这部分是常见的,应该大多数人都掌握差不多了,书的话还是看 《艺术探索》。
.设计模式
我这次找工作,笔试里出现了两次写单例模式,记得几年前校招的时候就因为单例失去过一次好机会,单例模式的重要性,你自己掂量一下。
设计模式考察的也不算太复杂,知道常用的几种设计模式使用场景,会手写单例的关键几种(静态内部类 double-check 知道区别)就可以了。
可以去看看《大话设计模式》、《Android 源码设计模式》。
数据结构算法
我这次面试算法问的比较少,只手写过插入排序,建议把冒泡、插入、归并时间复杂度和实现熟悉熟悉,最好手写下,不然现场手写的时候容易出错。
作为一个有追求的程序员,这些数据结构、算法是需要掌握的:
数组链表区别
链表插入删除
栈及使用场景
队列及使用场景(有可能拓展到阻塞队列)
这些是基础,学好才能掌握其他的。
红黑树、KMP、最短路径、动态规划、背包问题这些都属于进阶了,问的比较少,了解下即可。
可以再买本《剑指 offer》看看,锻炼下算法题的常见解题思路。《算法》就太科班化了,一般人也看不进去,有兴趣的可以看看。
网络基础
网络其实问的也不算多,因为毕竟不用我们自己去实现一个 HTTP Client,常见的网络问题大概以下内容:
七层模型
HTTP 内容
常见响应码
缓存相关
TCP 三次握手、四次挥手
Socket 的使用
进程通信之 Socket (顺便回顾 TCP UDP)
四.进阶知识
在确定你的基础够用后,二三面就会考察你的进阶能力。就应用开发来说,进阶知识主要有以下内容:
框架原理:缓存、网络、图片
性能优化
架构模式
JVM
插件化
框架原理
作为有追求的安卓开发,怎么可能只满足使用框架而不知其原理呢?
在面试时也经常会被问到:你熟悉什么框架的源码?
这个时候如果没有准备就尴尬了,失去了给自己加分的机会。
现在主流框架是 RxJava Retrofit OkHttp Picasso/Glide EventBus3,你可以选择其中两个左右熟悉一下源码和大概流程,重要的是理解为什么要有这个框架,解决的问题,如何解决的。
建议阅读书籍:《Android 进阶之光》
.性能优化
性能优化又是另外一个高频问题,一般主要问内存方面、UI 方面的优化。
常见问题:
内存优化
内存泄漏如何避免、检测
内存抖动怎么办
有使用过什么工具吗?
如何避免 OOM
UI 优化
布局卡顿怎么办
如何判断布局是否需要优化
有哪些工具
另外也可以阅读《高性能 Android 应用开发》。
.架构模式
高级的安卓开发不仅需要完成一个模块,还需要负责整个项目的设计与开发。
常见的架构模式是按项目分层分,MVC MVP MVVM 这些,可以选其中两个进行学习、实践,对比了解优势和劣势就可以了,网上文章很多的。
另外就是设计思想,OOP 面向对象开发的思想一般都知道,继承封装多态,什么时候用接口什么时候用抽象类,其实和设计模式相辅相成的。
还有 AOP,面向切面编程,大型项目一般都会用到,在不入侵代码的同时添加功能,建议了解。
还有路由,现在都流行组件化,组件化的一个问题就是组件间如何依赖,如何通信,这些都需要有良好的架构设计思想。我自己也在摸索中。
这部分的知识属于个人经验,不同的人不同的体会,没有适合所有人的相关书籍,需要自己多写、多总结出来。
.JVM
在去一家公司面试时,隔壁屋也在面试一个后台,在等待面试官时我偷偷听了下他们的对话。其中有一段对话记忆深刻:
请介绍下 CMS 垃圾收集器。
额,对不起,我只毕业一年,这方面了解的比较少。
JVM 的知识究竟需要工作几年再了解呢?
不同的人有不同的看法,我的看法是:尽可能早。
JVM 主要内容大概有这些(来自《深入理解 Java 虚拟机》):
JMM(Java 内存模型)
GC(垃圾回收策略)
虚拟机性能监控、调优
类文件结构
类加载机制
程序编译优化
这些内容可能听起来比较遥远,很多人觉得我就开发业务,需要了解这么多吗?看起来都没什么用。
理解这些内容,对我们日常的业务开发有极大地促进作用:
了解 JMM 后,你对内存分配、OOM 的理解就不会只停留在表层
了解 GC 后,对性能优化的理解也会更上一层
熟悉类加载机制后,对你学习插件化也会有很大帮助
了解虚拟机对程序的优化,就会明白一些并发原语的作用及意义
而这些也是面试时经常问的问题,知道的越多,对你的加分就越多。
建议阅读:《深入理解 Java 虚拟机》
插件化这么火,各大公司都在研发自己的插件化,这不仅仅是对业务的支撑,同时也显示出他们安卓研发的技术深厚。
有的朋友可能会说了:我现在的项目用户这么少,用这个有什么用。
不说学了有没有用,在学习的过程中,可以对你现有知识体系有极大的提升,要开发插件化,需要掌握的内容大概有这些:
类加载机制
四大组件启动流程
资源加载
动态代理
看到了吧,它是对一些疑难知识点的应用,通过有目的的学习,可以让我们对基础知识掌握的更加醇厚。
面试时如果你说自己有主动学习这方面的知识,还能说出一部分知识点,不仅显示出你的技术能力,还体现了你的主动学习性和学习能力,大大的加分!
进阶知识是我自己经验所得,如果有遗漏,欢迎补充。不喜勿喷
五.不同公司侧重内容不同
有朋友可能会问了: 基础的内容太多了吧,我可不可以直接准备高级的。
首先你直接学高级很费劲,容易误解不说,硬记下来没多久也就忘记了;其次面试时的提问顺序我上面也说了,都是从基础开始的,基础不扎实,活不过两集。
这里再唠叨一句,如果一家公司靠投机取巧就可以进去,那进去的投机取巧者岂止你一个人,那样的公司氛围是你想要的吗?如果想进入一个理想的大公司,还是踏踏实实地一步步走吧。
掌握了知识点后,接下来就要针对各公司侧重内容重点复习了。
各大公司面试考察的知识点,网上相关的资料不少,我平时也在关注一些面经,看看里面有什么是自己欠缺的,然后找时间补上。
首先不同岗位的知识点不同,大家都知道,安卓开发有应用开发、音视频开发、底层开发、SDK 开发等等,如果去应聘音视频开发,那就要掌握 NDK 编解码之类的。由于我从事的是应用开发,所以这里的知识点主要针对应用开发的同学。
除了岗位方向,不同规模的公司、不同阶段的项目关注的知识点也不同,对安卓开发,我总结了这么 2 种分类:
1.成熟的大项目
项目比较稳定,需要进行拓展、维护、监控
需要面试者掌握:原理、设计模式、性能
2.初期的项目
项目刚开始不久,需要完成业务快速迭代
需要面试者具备:语言基础、常见框架的使用、UI 方面
因此我们在面试不同公司时,先根据 JD 了解重点招聘要求,然而最好再了解到招聘岗位对应的项目情况,针对性地多多复习。
六.简历如何写
俗话说,酒香也怕巷子深。
饶你十八般武艺,基础进阶全都掌握,过不了简历筛选这关,也是枉然。
这节我们来了解如何写简历,让它可以顺利通过 HR 筛选、让用人部门看着喜欢。
6.1.简历的一些常见问题
有关注我公众号的朋友可能知道,我前段时间在公众号发出了帮网友修改简历的活动,在这个过程中,发现了很多问题,大概有这么几点:
6.1.1.样式不过关
简历过于简单或者过于花哨
6.1.2.关键信息不足
基本信息、联系方式、学历、工作经历、项目经历、具备技能,检查下这些都有没有
6.1.3.方向不明确
面试安卓,简历里安卓相关占比太少,会前端后台当然好,但是不能描述比例比安卓还多吧,你到底是想找哪个方向的工作
office ps 什么的可以考虑别写了
6.1.4.亮点不突出
项目经历、专业技能都太平凡,没有核心亮点
回到 “跳槽前要思考的问题” 那节好好思考一下
6.1.5.夸大其词
专业技能写的很牛逼,各种前沿技术,插件化、热修复、Kotlin… 实际上只是听说过或者写过小 demo,说不出原理
接触少的可以去掉,有学习过原理的,可以写清楚,是正在学习
我见过有的朋友项目描述写了估计有 500 字,其实不必那么详细,一句话概况项目功能就好了,关键是描述你用到的技术、框架,还有你在其中负责的任务,做了哪些高质量的操作。这些是面试官在意的东西,会就这些内容提问。
其实在写简历时我们就发现了,如果平时只是写写业务代码,简历上不知道该怎么写,这就要求你倒逼自己了,平时要做些业务之外的东西,比如优化,比如重构,做久了,这些就成了你的亮点。
另外项目里某些模块(比如基础框架)即使不是你实现的,只要花点心思了解实现原理,也可以厚着脸皮写成你实现的,嘿嘿。前提是掌握的差不多了哦,不然被问住就尴尬了。
项目经验修改建议:
最好加上遇到什么问题、怎么解决的、有没有学习到新技能
突出招聘公司要求上的关键字,也就是说你的简历要针对性修改
例如对方要求熟悉第三方支付接入,那你就要突出这个
如果对方说了解前端开发优先,那就要突出 H5 JS
在写技能时,还要把握好 “了解”、“熟悉”、“掌握”、“精通”的度,自恋如我,也不敢写一个精通,因为我之前试过,只是大概看了下源码,就得意地写了个精通,结果被问的脸都发红,以后再也不敢了 -。-。
如果你的技能内容太多,试着这样修改:
去掉一天就能学会的技能,尤其是非 Android 的
对技术的掌握程度适度修改,能说出 WHAT WHY 的才算“熟悉”,知道 HOW 的才算“掌握”
最好有研究过一两个第三方框架源码
“自我评价” 就算了,太过主观,没什么说服力,我这里用 “其他” 代替,写一些客观信息,有理有据,让人信服。
七.简历怎么投
知识点准备的差不多了,简历也修改过了,万事俱备,只差投简历了。
有的朋友会说:我这就投他百十来家,还不信没有面试?!
7.1. 渠道和时机
前两天跟一个业内知名大佬聊天,这个大佬有多大佬呢,这么说吧,如果我的能力影响力是青铜,那他就是砖石!
这么牛逼的大佬,去年投简历,居然被一个公司拒了!
这是怎么回事?HR 视力有问题?
哈哈,其实也不是,真实的原因是那个岗位只招一个人,这边 HR 刚发出去,那边就有人找内推,抢占了先机。大佬虽然是大佬,但也没得办法。
这其实反映了一个问题,简历投递的渠道和时机。
如果你想去的是知名大公司,走外部渠道,就要做好和很多人竞争的准备,除了简历竞争,还有面试竞争、薪资竞争要求等等,这是供与求关系决定的。
但是如果走内推,简历第一时间到用人部门,就省事多了。
所以说在想去大公司时,最好事先找好内推渠道,一般这些公司内推都有奖金,员工也都比较乐意。
除了渠道,时机也很重要,“金 3 银 4”、“金 9 银 10” 为什么有这种说法呢,有一部分原因就是这事加薪季,有的员工对加薪结果满意,就跳槽了,A 跳 B,B 跳 A,涨工资的同时促进了招聘、猎头的生意,大家都发财,所以就这么叫喽。
正是这个时候大公司的空缺比较多,我们进入的机会就大了几成。
要是选择年底,机会就少了些,毕竟辛苦一年,怎么也得拿了年终奖再走啊。
7.2.投递的策略
在选择投递简历时,有的朋友喜欢随便投,一投几十家,姜子牙钓鱼,愿者上钩。
这种广撒网策略,对于水平差点的还可以,面试机会少、选择也少,就去了;但要是水平还可以的,邀请面试机会一多,被坑的其实还是自己。
首先人的激情是有限的,你不可能面了几十家还保持一样的心态,到后面难免疲惫。前几家面试的,如果有公司先对你抛出橄榄枝,有可能你就选择了他们;如果好点的公司被排到后面面试,很可能你就懒得去了。
拿我来说,找人内推了两个很知名的公司,没有等多久就又从拉勾上投了简历,结果拉勾上投的发了 offer 好久了,那两个公司才给我打电话邀请面试,我就懒得去了。
大公司简历处理比较慢,因此投递时最好按公司规模、待遇从大到小按顺序投,一波投完等几天,没有反馈再投下一梯队的,不要太心急。
而且面试时间不太密集,也便于你面完一家总结复习。
7.3.公司选择
有的朋友会问了:我想去的公司太多了,也不在乎公司大小,只要给的钱多,不管哪个公司都行。
嗯,这其实也是一部分人的选择,各有所好,不可能人人都喜欢去大公司。
在选择公司时,除了规模、待遇外,建议也看看这些因素:
行业
前景
公司地址
行业
挑一个喜爱的行业还是比较重要的,前面也提到了,一个人的能力除了说技术能力,还有业务能力。
选择一个你喜欢的行业,长期的从事下去,到一定程度上,你可以承担产品经理的责任,想升官发财还不容易 ?
行业比较多,o2o,医疗,电商,外卖,音视频,下载一些对应的 app,看看你平时都喜欢玩哪个,然后在投递时重点投递。
前景
在创业公司工作过的朋友可能知道,一个公司从兴盛到降落,会导致公司福利、员工心态、团队氛围的各种变化,如果你不想经历传说中的“发不出工资”,就要慎重选择。
什么样的公司有前景呢?
其实最操心这个问题的应该是投资人。
我们作为程序员,在选择公司时,先了解对方公司信息(规模、盈利模式、主营产品),了解到靠不靠谱,去了能不能好好干几年。
尽量选择成熟、稳定的,B C D 轮甚至上市的,一定短期内倒不了。那些刚起步的,尽量选择有实体行业背景、硬件产出的公司,毕竟纯互联网很容易跨,有实体、硬件支撑还能多玩会儿。
公司地址
如果选择了 IT 公司密布的地段,就要做好早起的准备。传说中的“人潮 9 号线”,可以去体验体验。
另外也可以从这些方面确定要不要投递这个公司:
太小的不去(10-50人)
工资太少的不去
有恶劣小道消息的不去
加班多、拖欠工资
八.面试前需要准备什么
曾经有份真挚的面试摆在我的面前,我没有珍惜,等到失去的时候才后悔莫急,人世间最痛苦的事莫过于此,如果上天在给我一次机会,我会对那个面试说“我一定做好准备”,如果要给这个准备加个期限,我希望是三四天。
在焦虑又心急的等待中,你迎来了一个陌生的电话,当电话那边的说出“我是某某公司的 HR…”,你浑身一颤眼眶发红:面试,我终于等到你了!
挂了电话后你内心激动、摩拳擦掌,仿佛已经来到了战场。有了大量准备的你意气风发,心想凭我的水平,还不是所向披靡佛挡杀佛鬼挡杀鬼风风火火恍恍惚惚?
然后就接着发呆、打游戏,状态好点的会把知识点再复习一下。
看起来一切都很完美,万事具备只待东风。
面试是双方相互了解的过程,对方不仅需要了解你的硬实力、软实力,还需要了解你对这份工作的态度(敲黑板,这是重点)。
试问有两个候选人,技术或者其他各方面水平差不多 ,一个对公司了解更多,表现出来的兴趣更浓厚些,另一个则“我不知道你们公司是干什么的,但选我没错的”,你会选择哪个呢?
答案非常明显,那怎样可以让对方觉得你对公司、岗位很有兴趣呢?
有朋友会说了:那还不简单,网上搜搜这个公司的介绍,了解了解主营业务,再记住他们的什么企业文化,哇,我已经是很努力的面试者了。
NO NO NO!
公司介绍、企业文化这些应该是在投简历阶段就了解的,稍微有心的人就会做到。我们想在众人中脱颖而出,就要更进一步!
这里列出我经常做的准备:
做功课,了解产品
反编译,ClassShark 查看主要使用的类库
重点要求技能
准备一个展示自己水平的内容,亮点
首先就是了解公司的业务,招我们去做什么项目,网上如果查不到,好,记录一下,面试时提问他们。
然后了解公司的研发团队规模,安卓多少人,网上如果查不到,好,记录一下,面试时提问他们。
接着反编译下对方的项目,看看主要使用了什么类库,然后把用到的库挑一两个好好研究研究,面试时可以提问“你们有用到 XX 库吗?”对方确认后,可以好好的装一逼,哈哈哈,想想就很爽!
另外就是项目重点要求的技能,除了 JD 上说的,还有根据项目类型判断、做准备,如果是投资、股票类的,那可能要求画图表、K 线,你最好准备准备自定义 View,然后面试时主动介绍,哈哈,又是加分项!
总之,面试前要尽可能多地了解对方,表现出你的兴趣,把一些无法了解到的作为问题,也可以避免人家让提问时没问题的尴尬。
九.面试中的注意事项
前面提到了,程序员面试主要考察:
技能水平
学习能力
团队合作
工作心态等
要在短短几个小时内确定这些内容,面试者一定要尽可能地表现自己。
我们主要注意这些方面:
着装礼仪
气势
笔试的态度
面试互动
9.1.着装礼仪
有的朋友平时喜欢大裤衩、拖鞋上班,我有时候也这样,舒服,尤其是下雨的时候,水中随便跑,哈哈哈开心。
但面试时要还这样那就是二傻子,在第一次见陌生人时,我们一定会“以貌取人”,快速建立第一印象。
一旦第一印象建立了,后面就是对它的确认和微调,没有人会愿意主动承认自己错了。
如果第一印象是“沃日,这人真邋遢”,后面你稍微表现差一点,对方就会想“又邋遢又表达能力差”,明白了吗?开头的失误会导致方向性地错误;如果第一印象是“嗯,这小伙还可以,干干净净,长得还有点帅”,有了好感后他就会主动来确认自己的想法,即使出点小问题也不会影响太多。
所以尽可能地穿戴整齐,头洗的干净点,眼镜擦干净,见面微笑,表现得自然大方,印象分就会不错。
面试前后来个握手,肉体接触,喔,好感又加一分,胜利更近一步哈哈。
9.2.气势
面试其实是个双向了解的过程,我们不必把自己姿态放到太低。就跟恋爱一样,一旦你低微到尘埃里,对方就会不珍惜你。
所以要调整自己的心态:我就是我,不一样的烟火,不卑不亢,此处不留爷自有留爷处!
有了这样的想法后,气势就会好一些,腰杆也挺直点。
9.3.笔试的态度
很多公司喜欢让人写笔试题,其实我也是不想做的,但如果这公司的确不错,还是老老实实做吧。
大学毕业后很久没做卷子,拿到卷子可能会有些手生,没关系,就这样想:跟着感觉走。
事实上你写的卷子没有人去一道道批改,有的公司甚至都不看,差点把我气死。
一般负责任的面试官会在面试时大概看下你写的笔试题。尤其是手写算法,或者画图的,需要好好写,这些是重点关注对象。
像那种考察 API 使用、判断代码输出结果的,我见过几次,基本都随便写写,这种题不知道有什么好考的。从笔试题其实也可以看出一个公司的水平,如果笔试题都是基础概念、API 的作用,网上一搜一大把那种,还是小心点吧。
9.4.面试的互动
遇到了解的问题自信一点,嘴角微翘,淡定地说一句“哦,这个啊,我研究过”,会多少说多少,尽量拓展到自己熟悉的知识点。
遇到不会的问题,不要“我不会”一口回绝,这让你这道题一分都拿不到,还容易尴尬。谁也难免有不会的,正确的操作是:歉意一笑,“对不起,这个我没研究过,我思考一下”,然后眉头微皱,集中精力想想自己脑子里有什么能挂上边的,思考个两三分钟后,跟对方把你想到的和根据经验猜测的说出来,这样起码不是交白卷,也可以体现你解决问题的思路。
如果碰到算法题这些,先确认问题,然后确认输入输出参数,不确定就问,不要不好意思。
如果想不出思路,脸皮厚点,问问可不可以提醒一下,上社会脸皮薄会吃很多苦,趁早变厚。
在对方输出一些问题的解决方案时,最好主动反问,让对方多说一点,我有次面试,四十分钟下来感觉是对方一直在我,我根据他说的问些问题,然后就这么通过了,搞的我一脸懵逼。
对方说得越多,其实他对这次面试就越认可。不过这取决你提问的技巧,要问到他 G 点上,不要问些不相关的、基础的问题,反而让人厌恶。
面试中的经典问题
面试中,面试官和 HR 会有一些经典问题,比如:
你觉得和同龄人相比自己优势在哪里呢?
你的职业规划是什么?
你了解我们公司吗?
你有什么问题需要问我的吗?
这些问题基本就是在前面准备阶段我提到的,要准备的内容。如果没有提前准备好,不容易答出优势。
面试结束后做什么
有朋友问我了:面试了几轮让我回去等消息,这都几天了还没联系我,怎么回事,过没过啊?
借用一句网络语:面试的怎么样,你心里没数吗?
一般面试是三四轮,如果没进行到最后、没谈薪资,就让你回去,就说明基本挂了。
不要泄气,就当是一次免费学习,找到自己的不足和问题,赶紧查漏补缺。
面到最后结果不确定的,也别心急,对方可能有好多面试者要对比,你心急也没用,不如安安心心开始下一个面试的准备。
一般我面试完会思考这些问题:
都问了哪些问题
哪些问题明明有印象,但就是没回答上来
哪些问题之前没了解过
面试官水平怎么样
去面试了一圈,感觉这个公司怎么样
不会的问题赶紧去看看,不一定下一个面试就问了。会的没想起来,是不是只了解概念,尽量写点代码练习练习。
在双方互动时,我们也可以大概了解面试官的水平,如果运气好遇到问问题比较简单的,你就要想想,是自己的简历写的太简单了吗?还是他水平就这样。
如果面试官问的你都会,不要光顾着骄傲,有可能这家公司水平就这样,如果决定去,你要做好填坑的准备。
人啊,总是发愁。
水平差,面试结果不好,发愁;照着前面的内容努力做了好久,经过几天的奔波,拿到了一些 offer,又开始发愁,选哪个好呢?
如果已经拿到心仪的 offer ,后面再面试薪资就多要一些,要一个能够让你放弃现在的价,那样就不会像我一样在两个 offer 中间纠结很久。
在对比 offer 时,第一步先了解 offer 内容:
月薪,餐补,多少薪,计算年薪
平台
五险一金,按多少钱交的
技术氛围
工作内容
晋升和调薪的机会
特殊福利
商业保险、年假、加班餐、打车等
上下班时间,加班怎么算
一般主要考虑的是前两点:钱和平台。
前两点基本能过滤掉大部分。
剩下的少有几个差不多的,就需要考虑其他因素了,比如:
自我规划
行业
兴趣
自我规划
自我规划是指你对自己的发展方向,比如我,近几年的规划是走大前端混合开发路线,那就要考虑我要进入的项目的技术栈,是否能够让我的学习目标得以实践。
以牺牲长期发展为代价,去选择一个只是当下不错的机会,无异于二傻子。
如果多个选择在这方面差不多,就得再往大看了,行业!
行业
技术是为了业务服务,我们在一个公司工作,不仅要提升自己的技术能力,还要提升对行业的认识。
行业对我们的影响大概有这么 2 点:
增加对社会的认识
选择下个工作时可以复用的业务、技术经验
因此在选择行业尽量选择贴近生活的、热门的、可以盈利的,比如电商、音视频这种。
如果你计划将来自己做些什么,更要考虑每一份工作可以给你积累的业务经验,比如我第一份工作是汽车电商,就了解了主流汽车的一些价格情况,还有购车渠道。
兴趣
除去上面的硬性条件,兴趣也是一个比较重要的选择内容。
如果你喜欢一个产品,你可能每天都会使用,有使用不爽的地方可以去找产品、老大反映,领导会觉得这个小伙子很积极主动,升职加薪还能少?!
玩笑归玩笑,但做自己有兴趣使用的产品,主动性的确会高很多,如果做的不错,也会有自豪感不是么!
最后再补加一节:如何优雅地离职?
在确定 offer 后,就要跟现公司提离职了,离职时注意以下内容:
社保缴纳
交接工作
社保缴纳
社保是很重要的一个内容,不管办居住证还是将来买房,都有要求,万一断了就不好搞了。
所以在离职前要和上下家 HR 沟通好,究竟这月社保哪家缴纳。
一个通用的规则是:15 号前离职下家交,15 号后离职上家交。所以选择合适的离职日期也很重要。
交接工作
虽然心已经在新公司,但做为有操守的程序员,我们还是要尽到自己的责任,把自己负责的工作交接好。
在交接工作时,有以下几步:
理清责任内容
写文档、画流程图
手把手指导
人非草木,毕竟在这家公司待了这么久,在走之前就再负责一次吧!
为了留下足够清晰的资料,就需要我们写些文档、图表,把自己手上完成的、未完成的、需要特别注意的内容都写清楚,给接盘的哥们足够友好的资料,如果这个哥们态度还可以,可以手把手指导下,顺便送个人情。
人生的路还是要自己走,别人最多给些方向,平时但行好事,莫问前程,一步步地努力终将得到回报的!
希望你看完文章后可以努力执行,给将来的自己一个感谢现在的机会!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。