在车上偶遇一位腾讯大佬,他竟然挖我阿里的墙角
Posted 懂你的大海
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在车上偶遇一位腾讯大佬,他竟然挖我阿里的墙角相关的知识,希望对你有一定的参考价值。
技术、业务、跳槽、面试,全都聊了,分享给大家!
大家好,我是柯南。
要回上海了,在汽车上本来想闭目养神一下,没想到却偶遇了一位技术 Leader 级别的腾讯大佬。作为小辈,有很多问题想向大佬请教,就聊上了,相谈甚欢。
聊了很多话题,比如技术、业务、跳槽、加班、面试等,有一部分对话还是挺有帮助的,把我能想起来的分享给大家,下面就用代号 Q 来代指大佬。
和 Q 的对话
我刚上车,Q 很热情的打招呼:“兄弟,看你挺年轻,做什么职业?”
我:“互联网,小开发。”
Q:“在哪儿上班呢?”
我:“阿里。”
本来以为聊天到这里结束了, 毕竟我也不太会聊天。
没想到 Q 直接掏出手机说:“兄弟,加个微信吧,我在腾讯,最近在招人。”
好家伙,这我是真没想到,现场挖人!
在聊天中,慢慢了解到,他是我的学长,15 届本科毕业,比我早工作 5 年,也是 IT 研发方向,现在也是蚂蚁金服技术 Leader 了。
我立刻就来了兴致,除了我领导,这是我第一次这么近距离和大佬交流,于是问了不少问题。
我:“想问一下,工作 5 年后,你平时的工作主要是做些什么呢?还会花很多时间敲代码么?”
Q:“不会,现在每天敲代码的时间不足 1 / 3,更多的时间投入到需求、协调和沟通上。”
这倒是意料之中,毕竟业务开发中写代码并不是主要的,更重要的是确定需求,明确个人职责,思考怎么更好的实现。
我:“腾讯的 Java 技术非常强大,在工作中,是不是不用自己造轮子,写重复代码?”
Q:“虽然我们公司的编程语言更偏向 Java,也有各种 Java 的基础设施(轮子),但偶尔还是会写重复的轮子。毕竟每个技术框架都有自己的优势,不会说有一个轮子能吃遍天下,只是有的轮子适合小轿车,有的轮子适合大卡车罢了。如果完全依赖现有轮子,怎么推陈出新呢?”
我:“现在很多人的工作都是写业务代码,重复性很大,感觉写久了也没什么进步空间。阿里的工作中会有很多的新事物和挑战么?应该怎么提升自己呢?”
Q:“首先,我们这很多组都会配 2 名外包同学,比较简单的业务工作交给他们,我们则更多的是实践系统在技术和业务上的优化。重复的工作不可避免,该完成的也还是要完成。不过,在工作之余,要多思考和学习工作之外的东西,不能因为工作重复、能够轻松完成,就松懈了。”
我:“腾讯的工作时长怎么样呢?”
Q:“这个要看具体的部门,我们这时忙时不忙,跟着业务走,每年大概有 4 个月会比较忙,是 996,其他的时间正常双休。不得不说,单休真的挺痛苦的,基本就是在家睡一天就没了。”
我:“刚开始你说最近你们在招人,蚂蚁金服还愁招不到人么?”
Q:“卷啊,你别看投简历的很多,但大部分都是不符合要求、或者被洗过的,所以我现在都跑到脉脉上招人了。”
我:“哈哈,我也经常在脉脉上收到一些技术同学的面试邀请,没想到大厂招聘也有难处。想问下,求职者投递简历,是直接给到面试官手里,还是先给 HR 筛选呢?”
Q:“大部分都是直接给面试官的,由面试官筛选。”
我:“那你看简历的时候,偏向哪些方面呢,为什么很多简历不符合要求呢?你刚刚说很多人简历被洗过,又是什么意思呢?”
Q:“我们属于社招,我主要看重两个方面,学历 和 工作经验,学历必须是 211 本科起步,工作经验主要是看他过去负责的业务以及用到的技术。这两个有任何一个过关,就算简历通过了,我也不会直接用学历来卡人。但现实很残酷,大部分的简历基本都是一张白纸,根本没办法请他来面试。可能你看到网上很多人简历各种秀,但那毕竟是一小部分人。”
Q:“洗简历是指之前已经通过猎头或其他面试官投递过阿里的社招岗位了,但是没通过。其实每一次面试都有档案,你未通过的次数越多,后面通过的几率就越小。所以我更看重第一次投递腾讯社招的,干净的简历。”
我:“你怎么看待跳槽呢?”
Q:“跳槽是很正常的,每家公司都有自己的瓶颈,适当跳槽能够带来晋升和涨薪机会。不过如果在当前公司,晋升机会还挺多的话,不建议跳槽。比如你现在,工作才 1 年不到,到了阿里职级也不会很高,现在跳槽血亏,等你能对标到其他公司高职级的时候,在考虑吧。”
我:“哈哈,的确,我也妹想过跳槽。再问问你作为面试官,都会问候选人哪些问题呢?会问算法么?”
Q:“其实社招业务开发岗对算法的要求不高,属于一种筛人的手段,我一般会从候选人的简历出发,问他做过的项目,挺他讲述自己的工作经验。如果某技术涉及到算法了,比如 mysql 底层数据结构,那我会问一下。至于算法题目的难度呢,要看候选人在简历上怎么写的,如果是 ‘精通数据库’,那我会问的很深,让候选人手写各种树也是有可能的。而如果只是 “熟悉数据库”,那问题的难度会降低很多。所以简历还是很重要的,要对自己的技能有个清醒的认识。另外,每家公司都有自己的文化,我们比较看重候选人对技术和业务的理解、洞察力和追求。
我:“怪不得之前有面试官问我,除了 MySQL 之外你还用过哪些数据库,他们有什么区别和应用场景?看来见多识广也是很重要的。”
Q:“对的。”
我:“谢谢大佬,我悟了!”
Q:“以后记得找我投简历。”
好吧,我七秒钟的记忆就只能想起来这些问答了,不知道大家有没有什么感受,欢迎评论区说说看 ~
最后分享一波阿里内部面试题
一、Java相关
1、Java中==和equals和hashCode的区别
2、int与integer的区别
3、谈谈对java多态的理解
4、String、StringBuffer、StringBuilder区别
5、抽象类和接口区别
6、Serializable 和Parcelable 的区别
7、string 转换成 integer的方式及原理
8、哪些情况下的对象会被垃圾回收机制处理掉?
9、什么是强引用、软引用、弱引用以及虚引用?
10、什么是依赖注入?能说几个依赖注入的库么?
11、静态代理和动态代理的区别,什么场景使用?
12、Java的异常体系
13、JVM的回收算法是怎样的
14、说一下泛型原理,并举例说明
15、能说说HashMap常用操作的底层实现原理吗?
16、垃圾回收机制和调用 System.gc()的区别?
17、说一下你所了解的设计模式有哪些
18、说下java中的线程创建方式,线程池的工作原理。
...
二、计算机网络
1、Http1.1和Http1.0及2.0的区别
2、Http长连接。
3、Http的请求方法。
4、Http的报文结构。
5、Https加密原理。
6、HTTPS 如何防范中间人攻击?
7、Tcp和Udp的区别?
8、TCP可靠传输原理实现(滑动窗口)。
9、为什么tcp要经过三次握手,四次挥手?
10、Cookie与Session的作用和原理。
11、浏览器输入地址到反馈结果发生了什么?
12、客户端如何校验 CA 证书?
13、网络请求缓存处理,okhttp如何处理网络缓存的
14、请解释安卓为啥要加签名机制?
15、权限管理系统(底层的权限是如何进行 grant 的)?
16、client如何确定自己发送的消息被server收到
…
三、android基础
1、说下四大组件生命周期?
2、说下onSaveInstanceState()方法的作用 ? 何时会被调用?
3、说下 Activity的四种启动模式、应用场景 ?
4、谈谈Activity和Fragment的区别?
5、Service的两种启动方式?区别在哪?
6、如何保证Service不被杀死 ?
7、广播有几种形式 ? 都有什么特点 ?
8、广播发送和接收的原理了解吗 ?(Binder机制、AMS)
9、ContentProvider的权限管理?
10、描述一下Android数据持久存储方式?
11、SharedPreferences的应用场景?注意事项?
12、了解SQLite中的事务操作吗?是如何做的
13、Android中进程和线程的关系? 区别?
14、为何需要IPC?多进程通信可能会出现的问题?
15、讲下View的绘制流程?
16、描述一下View事件传递分发机制?
四、Android中高阶
1.要做一个尽可能流畅的 ListView ,你平时在工作中如何进行优化
2.对于 Android 的安全问题,你知道多少
3.如何缩减 APK 包大小?
4.Android 与服务器交互的方式中的对称加密和非对称加密是什么?
5.设备横竖屏切换的时候,接下来会发生什么?
6.Android 启动 Service 的两种方式是什么? 它们的适用情况是什么?
7.请介绍下 AsyncTask 的内部实现,适用的场景是?
8.ThreadLocal 原理
9.RxJava 的功能与原理实现
10.ANR 是什么?怎样避免和解决 ANR?
11进程间通信机制,binder原理
12.序列化的作用,以及 Android 两种序列化的区别。
13.Android 中进程内存的分配,能不能自己分配定额内存
14.Android5.0~10.0之间大的变化
15.使用过什么图片加载库?
…
五、Android第三方库源码
1、网络底层框架:OkHttp实现原理
2、OKhttp针对网络层有哪些优化?
3、网络请求缓存处理,okhttp如何处理网络缓存的?
4、从网络加载一个10M的图片,说下注意事项?
5、网络封装框架:Retrofit实现原理
6、响应式编程框架:RxJava实现原理
7、图片加载框架:Glide实现原理
8、Glide如何确定图片加载完毕?
9、Glide内存缓存如何控制大小?
10、加载bitmap过程(怎样保证不产生内存溢出)
11、Android中软引用与弱引用的应用场景。
12、LruCache原理
13、Fresco与Glide的对比:
14、Bitmap如何处理大图,如一张30M的大图,如何预防OOM?
15、事件总线框架EventBus实现原理
16、内存泄漏检测框架:LeakCanary实现原理
17、leakCannary中如何判断一个对象是否被回收?
18、依赖注入框架:ButterKnife实现原理
19、依赖全局管理框架:Dagger2实现原理
20、数据库框架:GreenDao实现原理
…
六、性能优化
这个主要结合你所做过的项目问,一般面试官会问你项目做过哪些方面的优化,常见的问法就是:
优化的思路是什么
用到了哪些技术
遇到了哪些困难(问题)
如何解决
有什么心得
主要结合自己项目回答。切记不要自己给自己挖坑,比如没有做过这方面优化,你为了表现自己,说做过,结果面试官往下问回答不出来,这关乎诚信问题,你们懂的~
相关的资料以及面试题可以点击 Github 自行领取
同时分享一波我自己建立的Android社区,同学可以点击 Android开发交流 找群主可领取资料,同时群内还有相当一部分大佬可以陪你划水,开车,聊技术哦!
以上是关于在车上偶遇一位腾讯大佬,他竟然挖我阿里的墙角的主要内容,如果未能解决你的问题,请参考以下文章
一位读者刚刚收割阿里腾讯等大厂Offer,他说这些话一定要和你们说一下