字节跳动技术总监自爆:移动开发者升职加薪的8项技能,建议收藏

最近跟我的一些读者交流,有一位读者的经历让我记忆深刻:

“有一次和大学同学聚会,和几个在BAT的同学聊了聊技术,发现自己在创业公司这几年,完全是吃老本的状态,没有什么机会精进技术,同样是工作了三年,和同学的差距越来越大”

我继续问他,他说真正让他受打击的是这个月的一次面试。

“面的是一个大厂,面试官问了很多问题,一大半的问题我都是一知半解,回答上来问题也是特没底。

大概回顾了这场面试:上来先是问了Java基础知识,自定义view,算法等等,这部分我还算准备的充分。第二部分开始复杂了,主要是底层、NDK、设计模式、调优方面的问题,像是如何检测一段代码的执行时间?滑动不流畅怎么处理??

我之前工作上经历的少,加上自己技术储备浅薄,到这部分时我就感觉自己快凉了。面试到最后,问了mvvm架构相关的,当时已经懵了,我只记得一个问题:让你做一个项目,怎么选择mvvm架构和MVP架构?我。。。。“

面完后他说,觉得自己在技术上欠了很多债,最惨的是,在这之前他根本不知道。

听了这位读者的经历,于是有了今天这篇文章。很多工作了1-3年的Android人,想够一够 3w月薪的岗位,但在底层技术上却有很大的问题:

毕业几年,表面上用过很多技术,但都没能深入学习,一年的工作经验,干了好几年。结果就是遇到实际问题时无从下手,最终还是走着普通工程师的道路,和高手的距离越来越远。

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

1、自我介绍。自我介绍其实是个比较关键的过程,这基本上决定了后续环节将会问哪些问题以及初步给你的评分定位(作为无数候选人的面试官,这一点主观上个人也是如此认为)。自我介绍的要点是重点讲述一两个最近自己主要参与或者负责的项目,着重说明自己承担的角色,所负责角色具体所做的事情,思路一定要清晰。

2、完了之后,基本上面试官会对着其擅长和当前尚未解决的或者心存疑虑的问题进行提问或者说相互沟通、交流。因为面试的是架构师,所以纯粹的技术性问题(比如aop,bean生命周期,jdk基本的并发,常见缓存方式等等)已经没有问了,直接就是针对项目里面的具体架构、业务问题进行深入的讨论。

比如整体架构他会问道为什么我要用F5以及LVS而不是其他的。问到的包括对于性能,如何进行排查,通用的答复(比如说我说先看前台还是后台,前台findbugs、chrome f12,后台先看哪台服务器负载高,top、vmstat、sar等等,如果oracle则看awr,mysql看performance schema。应用服务器的话看jstack,jprofiler等等)之后,一般会进一步问具体哪些指标等等,基本上如果答复足够清晰的话,一般面试官不会再进一步细问。

讨论到分布式事务回滚的时候,我们沟通到由发起方负责传递分配被发起方ID可实现,服务的可重复执行以及补偿。另一个面试官问道,他要确保缓存中取到的值必须是最新的,要么取不到,我说那就先删除缓存,再插入库,最后插入缓存,就不会有问题,或者用handersocket实现,这样也可以保证没有问题。再然后相互聊了下restful的优势与劣势,nginx,rpc框架与架构。谈到MQ的时候,因为MQ很早的时候研究过,后来因为公司自己开发了一个定制的MQ,所以基本上不了解各种MQ的差别以及实现机制,直接答复不清楚即可,这一点其实问题不大,每个人总会有弱项的。

最后,一般来说,好像面试官是技术出身的,通常会再问,工作外是否关注新技术,如果答复是的话,通常面试官会进一步问看哪些新技术,哪些论坛的哪些板块,对于具体的新技术,如果面试官有接触的,他会进一步问这个技术的特点、相对于现在的优势。

基本上,技术面试会问六七个左右,一般会从概述性开始,到实现层面具体如何实现都问进行,这一点其实跟面试官很有关系,国外通常认为架构师必须是写代码的,虽然不一定工作中的职责是写代码,但他必须知道如何验证他设计的架构是否合理,而不是脑袋一拍,丢给程序员去自由发挥。

有些公司或者部门招聘架构师或者相对比较高级的开发时,通常面试官是非技术出身或者技术并非其强项的,这个时候面试就不会这个讨论,很大程度上可能围绕着4+1模型去问。如果面试官在DB方面擅长,可能为重点放在数据库设计上。

3、技术面试在2个小时左右结束,随后根据两个面试官出去时的表情可以看出基本上技术面过关了,随后跟两个面试官的主管差不多沟通了半个多小时,最后又跟人事沟通了差不多半个小时,人事答复他们会内部沟通下定级的问题,再行通知我,可以认为基本上搞定了。

4、第二天晚上就收到收到人事的通知了,因为开的薪资不满意,直接拒绝了,并给出了最低要求。人事表示,会和部门再行沟通,又过了2天,人事答复,薪资按我要求进行调整了调整,五一一回来,OFFER就发过来了。

5、补充一点,作为惯例的一部分,技术面、二面、人事面基本都问关于我们公司或者其他方面,你有什么需要了解的或者想问的么,这一点大家就随意了,感觉怎么回答问题都不大,主要还是看自己对候选公司的了解情况或者主观意愿。

面试复习笔记:

这份资料我从春招开始,就会将各博客、论坛。网站上等优质的Android开发中高级面试题收集起来,然后全网寻找最优的解答方案。每一道面试题都是百分百的大厂面经真题+最优解答。包知识脉络 + 诸多细节。
节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
给文章留个小赞,就可以免费领取啦~

戳我领取:蓝色传送门

《960页Android开发笔记》

《1307页Android开发面试宝典》

包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

《507页Android开发相关源码解析》

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

ndroid,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值