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

本文主要是介绍字节跳动技术总监自爆:移动开发者升职加薪的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文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

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

这篇关于字节跳动技术总监自爆:移动开发者升职加薪的8项技能,建议收藏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/276753

相关文章

把Python列表中的元素移动到开头的三种方法

《把Python列表中的元素移动到开头的三种方法》在Python编程中,我们经常需要对列表(list)进行操作,有时,我们希望将列表中的某个元素移动到最前面,使其成为第一项,本文给大家介绍了把Pyth... 目录一、查找删除插入法1. 找到元素的索引2. 移除元素3. 插入到列表开头二、使用列表切片(Lis

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3

Spring Boot 常用注解详解与使用最佳实践建议

《SpringBoot常用注解详解与使用最佳实践建议》:本文主要介绍SpringBoot常用注解详解与使用最佳实践建议,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、核心启动注解1. @SpringBootApplication2. @EnableAutoConfi