我要进大厂第三讲:跳槽,如何选择一家公司
本文是我要进大厂第三讲:跳槽,如何选择一家公司。跳槽是每个程序员都会经历的,作为一个跳槽过好几次的人,对于跳槽这件事我还是有一定的发言权的,总结就一个字:真鸡儿累。如果新的岗位发展前景不错,也比较适合自己,那就还好。万一入职后发现又是一个坑,那就凉凉了。干的不舒服,心里又萌生了跳槽的想法,又害怕跳槽过于频繁影响简历,然后萌生简历造假的想法,然后进入无解的恶性循环,真的太难了。所以在跳槽时,一定要慎重选择。
文章目录
1、公司分类
从程序员的角度来说,我大致将国内的互联网软件公司分成了以下几类。
1.1、大厂
- 国内最牛逼的那几个,如果不知道就可以转行了:阿里、腾讯、百度、美团、字节、拼多多、京东、滴滴、快手、网易、菜鸟、蚂蚁。
1.2、中厂
-
市值/估值在50亿美元以上的互联网公司:B站、爱奇艺、猿辅导、58同城、唯品会、携程、汽车之家、瓜子二手车、去哪儿、新浪、微博、虎牙、斗鱼等。
-
部分比较有名的非纯互联网公司:平安、小米、顺丰、贝壳、好未来、作业帮等。
1.3、独角兽
- 有一定名气、市值/估值在5亿美元以上的互联网公司:旷视科技、小红书、喜马拉雅、叮咚买菜、得物、每日优鲜、叮咚买菜、水滴筹、酷家乐、美菜网、知乎、自如、哈罗出行、货拉拉、BOSS直聘 等。
1.4、小厂
- 剩下的不知名公司,或者传统行业公司。
1.5、外包
- 比较出名的有:文思海辉、中软、东软、软通动力、博彦、外企德科等。
2、大公司优缺点
这边的大公司一般指上面分类中的大厂和中厂。
2.1、优点
-
更大的平台、更丰富的资源:大公司的工作流程、方法论、内部技术博客等,非常有助于我们提升自己的知识、视野和格局。
-
更牛逼的同事:物以类聚,人以群分,和优秀的人在一起,你也会变优秀。
-
更稳定:小公司可能说没就没,并且补偿可能也不到位,大公司裁员概率一般比较小,并且一般会比较正规,n + 1 补偿至少是有的。
-
不错的薪酬福利体系。
-
镀金效果,现在程序员竞争越来越激烈,很多公司的简历筛选其实就是看你过往的公司。
2.2、缺点
-
人员较多,竞争较大,晋升较慢。
-
工具和框架较完善,很多人都是使用已有的框架进行简单的业务开发,缺乏造“轮子”的机会。
-
决策周期较长,撕逼情况较多,推动事情较慢。
3、小公司优缺点
- 这边的小公司一般指上面分类中独角兽,而不是小厂,小厂没有任何竞争力,并没有考虑的价值。
3.1、优点
-
有机会参与项目从0到1的搭建,对项目完整生命流程会更熟悉。
-
负责的业务一般会比较大,有助于锻炼自己的能力。
-
人员较少,晋升机会较多,晋升较快。
-
有机会实现财富自由。早期员工一般会分到不少期权,如果公司发展的好,会是一笔很大的财富,90后的字节员工资产过亿相信大家都知道。
3.2、缺点
-
风险大,创业公司大部分都是九死一生,无数个里面就成了那么几个。
-
比较混乱,没有成熟规范的成长体系。
-
加班较多,头发一去不复返。
-
薪酬福利较差,大部分薪酬无法匹配大公司。而且可能会通过期权来压缩现金,但是如果项目凉了,期权其实就是废纸。
4、公司业务分类
- 在每个公司中,都会分核心业务、普通业务,在大厂里,通常还有会有创新业务、基础研发。
4.1、核心业务
-
就每个公司在市面上最广为人知的那种,阿里的淘宝,腾讯的微信,美团的外卖,字节的抖音等等。
-
优点:通常会有比较多的复杂场景、大数据量、高并发场景,对于个人的成长帮助很大,可以实现在工作中实现成长,也是大部分程序员追求的。在绩效上相较普通业务会好一点。
-
缺点:每个公司的核心业务一般就一小部分人能参与,所以整体面试难度会比较大,并且加班可能会多一点。
4.2、普通业务
-
除核心业务之外的大部分业务,大多数toB系统,内部OA系统等等。
-
优点:面试难度相比核心业务较容易,加班较少。
-
缺点:大部分程序员目前正在做的,工作内容大部分是简单的CRUD,做的功能没几个人使用,线上有BUG一个月也没人发现,比较难在工作中实现个人成长。
4.3、创新业务
-
通常是大厂快速布局新业务,例如最近很火的社区团购、买菜等。
-
优点:这种业务有一个特点,一般能参与系统从0到1的搭建,并且由于快速发展的因素,在招聘上会适当降低要求,是进入大厂的一个绝佳机会。
-
缺点:由于业务处于快速奔跑阶段,加班可能会多一点,并且如果没做成,部门可能会有被裁撤的风险,但是大厂一般不会直接裁人,可能会分配到其他部门去。
4.4、基础研发
-
很多大厂和部分中厂/独角兽会有基础研发部门,主要是做一些通用工具、框架和中间件的开发,大部分是基于开源框架进行二次开发。
-
优点:可以涉及到很多底层原理,有利于提升自己的技术能力,出去面试需要准备的会相对少一点,是很多程序员理想中的开发岗位,并且后续转业务开发也比较容易。
-
缺点:对计算机底层知识的要求会高一点,由于很多轮子都比较成熟了,所以有当“客服”的风险,而且在晋升上会比业务开发更难一点。
4.5、“公司+业务”优先级排序
有了上面的公司和业务分类后,从“个人发展”角度考虑,跳槽时我的选择优先级排序如下:
-
第一档:大厂(核心业务、基础研发)
-
第二档:大厂(创新业务、普通业务)、中厂(核心业务、基础研发)
-
第三档:中厂(创新业务、普通业务)、独角兽
-
第四档:小厂
-
第五档:外包
5、跳槽时如何选择
上面给“公司+业务”定了个跳槽选择优先级,但是跳槽时还需要考虑很多其他的因素,个人总结在跳槽选择时需要考虑的因素如下
1、直属上级
- 直属上级是跳槽时的第一优先考虑,因为这个真的太重要了,直属上级基本决定了你在这个公司的发展好与坏,如果和直属上级没相处好,肯定没好日子过。所以如果你发现你的直属上级性格不好,或者对你的态度不是很好,不是很喜欢你等等,那建议还是不要选择。
- 如何判断自己的直属上级:1)直接问下hr或者面试官;2)通过面试轮次推测:如果技术面总共2面:一般直属上级是1面面试官,如果总共超过3面,那一般是2面面试官。
2、发展前景
- 业务是否核心、是否能提供给自己足够的成长空间。通常来说,按上面的五档划分,档位越靠前发展前景越好,选择时优先选档位前面的,一般不会错。
3、薪酬福利
- 薪水高低、每年涨薪情况、五险一金比例、试用期是否打折、试用期时间长度等等。薪酬福利是判断一个公司最直接、最有效的方法,能提供不错的薪酬福利的公司大概率不会太坑。
4、面试情况
- 面试是一个互相了解的过程,通过面试我们会了解面试官的水平,面试官一定程度上代表着公司的水平,如果面试官很水,或者面试非常简单,那大概率是个坑。
5、语言生态
- 规模较大的厂一般会存在多种语言,在这种情况下优先选择自己所在语言生态较好的,例如对于 Java 选手,优先选:阿里、美团、京东、拼多多、快手等,对于 c、c++ 选手,优先选:腾讯、百度等。
6、公司知名度
- 知名度一定程度上代表了公司的实力,以独角兽为例,我上面列的这些就是知名度相对较高的。
7、公司评价
- 员工评价可以看脉脉、看准网等,面试者评价可以看拉勾、BOSS直聘等,也可以在百度上搜一些舆论评价,着重关注:加班情况、裁员情况、有没有一些比较恶心的规定等等。
8、近期融资情况
- 如果公司有持续在获得一些融资,说明是被市场看好的,如果投资方有互联网大厂或知名投资机构,那就更好了,说不定有机会曲线进大厂。
9、所在行业
- 互联网优于传统行业。
10、大厂光环
- 对于没有大厂经验的同学来说,第二档中大厂可能会更优先,大厂光环对于自己未来的发展、跳槽都是很有帮助的。
11、技术成长
- 对于应届生或者刚毕业的同学,基础研发可能会比业务开发更好,基础研发可以让刚毕业的同学快速掌握很多底层知识,这些知识无论是在面试时还是以后的成长都是非常有用的。
12、职级晋升
- 对于已经工作了一定年限,追求职级上的晋升和成长的同学来说,业务开发可能会比基础研发更好点,业务开发在晋升这些会相对快一点。
6、如何区分核心业务和普通业务
上面介绍了核心业务是大多数人追求的,那么如何区分核心业务了?我自己总结了以下几条判断规则:
-
1)最简单的方法是,看看业务对应的产品是否知名,周围用的人是否多,例如:阿里的淘宝、美团的外卖、腾讯的微信、字节的抖音等,这些产品都是家喻户晓的,所相关的业务肯定是核心业务。
-
2)通过职位描述(JD)中的关键词来判断。核心业务的通用关键词:C端、高并发、业务量级大、订单、交易、秒杀、中台、平台等。非核心业务的通用关键词:B端、内部系统、CRM、运营平台等。
-
3)可以在一些职场论坛上询问,例如脉脉的职言频道,比较出名的公司基本都有人问过。
-
4)也可以在面试环节询问面试官,可以问下该岗位当前主要负责的产品是什么,主要做的事是什么,主要的挑战是什么,然后大概就知道是不是核心业务了。
如果以上都没能确认是核心业务,那大概率是普通业务。
如何了解新公司使用的框架技术是否主流
- 这个问题其实很简单,面试的时候可以直接问面试公司目前使用的技术栈是什么。
7、选发展前景好的,还是给钱多的
对于这个问题,我个人分析了如下几条规则:
-
1)要正确定义前景好,比如从外包A跳到一个相对好的外包B,那我觉得这还称不上前景好。我总结了几条比较通用的识别规则:
- a)大部分情况,按我上面的分档来说,两个公司有1个档位的差别;
- b)少数情况,在同档内,但是有明显的差距,例如从一个使用非常老的技术的传统公司,跳到一个使用主流技术的互联网小厂。
-
2)“钱多”代表着眼前利益,“前景好”代表着长远利益,如果当前不是特别需要钱的话,优先选择发展前景好的,好的平台能给人带来更快的成长,有了实力和本事,钱自然就有了。
-
3)年轻人优先选前景好的,对于年轻人来说,成长是最重要的。
-
4)如果钱多的太多,例如:总包在50W以内高出15W,在100W以内高出30W,那我觉得可以选“钱多”的,一般能给出这么高的钱,公司一般也不会差。
8、需要转语言
跳槽时可能存在需要转语言的情况,我个人不是很推荐转语言,但是如果是以下情况的话,可以考虑转。
-
1)实在找不到工作了,不转就要饿死,那没办法,小命要紧。
-
2)从小众语言转向主流语言,例如从某不知名语言转向世界上最好的编程语言——java。
-
3)校招生,转向的语言是当前国内主流语言,例如:java、c、c++、python、go。
9、其他跳槽相关问题
之前向同学们收集了一些问题,有部分问题的核心并不是不是“如何选择公司”,但是也是跟跳槽相关,这边简单说下自己的理解和建议。
9.1、公司使用的框架和主流技术不同,如何应对
-
首先要区分公司使用的框架和主流技术是完全不同,还是二次封装,如果是二次封装,那其实影响不大,用法和底层原理应该还是一样的。
-
如果是完全不同,要确认这个技术是属于比较新的,还是那种上古时代的遗留技术。如果是上古时代的技术,应该发生在传统公司比较多,这种情况如果个人追求继续成长的话,建议换个使用主流技术的互联网公司。
9.2、传统行业如何进入互联网行业
这个问题说起来没那么难,只要做好以下4件事:
1、好好复习准备面试,主要有几块内容:
- 1)Java 常见的核心技术知识,这块是大头,需要花较长的时间准备;
- 2)准备一个牛逼的项目,要有自己的亮点。一个复杂的需求设计、一个巧妙的设计、一次性能优化、一次线上问题解决,都可能是亮点,多思考自己做过的事;
- 3)算法笔试题,主要是:《LeetCode 热题 HOT 100》和《剑指 Offer》系列,如果是面普通的互联网小公司,这块可以相对准备的少一点。
2、写一份干净简洁的简历,不要超过2页,突出自己的亮点:**看过源码、掌握框架的核心原理、解决过复杂的问题、优化过系统性能、做过系统稳定性保障 **等等。
3、疯狂投简历,在BOSS和拉勾上投,所有符合自己要求的岗位都投,增加面试机会。
4、平静的面对每一次面试,遇到自己深入研究过的内容,抓住机会表现。
当然说起来容易,做起来还是挺难的,但是只要肯花时间,我相信问题真的不大。
9.3、如何获得大公司面试机会,简历如何让HR看中
大厂筛选简历的很多重要因素其实是跟候选人的已有背景相关的,是无法通过优化简历来提升的,通过优化简历能提升的部分其实比较有限,我自己能想到的有:
-
1)简历尽量干净简洁,不要超过2页。
-
2)专业技能中体现出自己的亮点,看过哪些源码,掌握了哪些框架/中间件原理。
-
3)项目中体现出自己的亮点,解决过复杂的问题、优化过系统性能、做过系统稳定性保障等。
详细可以参考《如何准备好一场大厂面试》中的第5节:“大厂简历筛选标准”。
除了优化简历外,在投简历其实也有一些技巧可以增加自己获得大厂面试的机会:
-
1)大厂通常有很多部门,每个部门的hc数和招人标准都不一样,即便是同个部门,如果hr不同,标准肯定也不一样,重复投简历可以增大我们拿到面试机会的概率。
-
2)大厂经常会布局新业务,新业务需要快速启动入场,hc通常会有很多,因此招人的标准会稍微降低,这个时候是个绝佳的机会。
10、最后
-
跳槽真的是一件挺苦逼的事情,在准备面试的一两个月里,基本所有时间都要花在准备上。
-
公交车上、地铁上、午休、晚上下班后、周末,能利用的时间都要利用起来。
-
最后祝福大家都能找到自己满意的工作,早日脱离苦海。