五年多以前,我两次与大厂只有一步之遥。两次回眸又两次擦肩而过。
阿里转正失败
第一次是阿里巴巴,我在15年的暑假来到了阿里实习。当时阿里对我们的说辞是,阿里不仅是一所公司,也像是一间大学。里面有食堂、商业街、星巴克甚至还有图书馆,我们也可以在里面骑车、散步、看看园区里的动物植物。如果你愿意,你完全可以把电脑带去咖啡馆里上班。
我当时觉得世上居然还有这样的公司,当我入职了之后,这个映像依然没有幻灭。公司里的同事都很不错,我以萌新的身份问了很多蠢蠢的问题,都得到了热心的回答。唯一让我担心的只有两件事,一件事当时做的工作太简单了,总觉得好像有点对不起实习期间的工资。另外一件就是转正,因为学校考试的关系,我和转正面试的要求之间相差了几天,老板说这是小事情,可以安排特批。只是眼看着转正的日期越来越近,这个事情迟迟没有着落。
当时的实习生大会上,阿里的人力总监告诉我们实习生的转正名额大约有2000名。要知道总共才3000实习生,去掉一些非招聘季的,几乎就是全额录用的意思。实际上也的确如此,同事告诉我说,实习招聘其实就是校招的标准,基本上只要实习期间表现不是太差都是会留用的。这给了我很大的一颗定心丸。
只是万万没有想到,没过几天就发生了著名的拥抱变化事件。简单来说阿里大量缩减了招聘的名额,原本可以转正的实习生劝退回家了。一些只发了口头offer的也打水漂了,而已经发了正式offer但是还没谈薪的,简单粗暴地给了10K的白菜价。算法岗,给10K,放到现在一定不敢想象吧?
在这期间我也终于接到了我的校招终面,问了一些什么呢?问了我计算机网络分为哪些层,还问了我C语言里++a和a++有什么区别。算法相关、实习经历相关一概没问,接着就给了我一个B+的评级。意思就是放在往年是可以留下的,但是今年特殊,您另请高明吧。怎么看也不像是一场面试,倒像是打发你走人。
走就走吧,还好由于我一直谨小慎微,所以在靴子落地之前找了个二线的公司,拿了个offer保底。在阿里待过了,说实话有点看不上这家公司,说实话我当时有点挑剔,T家因为招聘发生过一些不愉快,所以不太想去,B家则是单纯地不想去了。看来看去,最终把宝押在了微软身上。
错失微软
微软的故事就简单多了,没有这么多弯弯绕。微软是外企,无非就笔试和面试。
笔试的环节就是算法题,当时的我刚刚从acm退役,算法功底犹在,甩现在的我几条街。那一场的笔试做得非常好,400分的总分我拿到了380。但让我惊奇的是,做完了笔试居然就没有然后了。我左等也没有消息,右等也没有消息。
后来拿了offer公司的HR催我签三方协议,于是我就面临了人生中又一个重大选择。不签三方协议很可能失去这边的offer,签了,则要放弃微软面试的机会。
我思考再三,决定再拖几天多给微软一点时间。很快一周过去了,依旧没有等来消息,我决定不再等待。然而就在我写好三方协议寄出去之后的两个小时,我收到了微软苏州onsite(报销机票酒店)的面试邀请。我很多朋友劝我,他又不知道你签了三方协议,再说即使签了也可以毁约,你先去面面看又不吃亏。
我也不知道我当时是一种怎样的心态,也许是有些怕麻烦,也许是不愿意浪费这个花销,也许是害怕面试通过,可能也害怕面试不过。总之五味陈杂之下,我最终还是拒绝了面试邀请,至今我也没有去过苏州的工业园区。直到后来我重回了阿里,重新刷新了简历之后,这么一个不大不小的遗憾才算是彻底解开。
重新出发
这两次的错过,我刚毕业那一阵子想起来都会觉得挺遗憾的。只是不知道怎么地,最近几年想起来的频率越来越少,也不知道从哪一天开始,我好像已经不太会想起它们了。即使想起来也只是一笑置之,原来青春年少的时候还发生过这样的事。
这大概就是我之前说的,那种回头看才发现“轻舟已过万重山”的感觉吧。这里面的门道很好想明白,之前一直会挂在心上,因为我觉得对那个时候的我来说,觉得进入大公司是一件非常困难的事情。这样的机会非常稀有,错过了就很难再拥有。现在我不这么觉得了,除了成长带来的豁达之外,更重要的一点是,现在的我如果想要去大公司,随时可以去。
对于校招生来说想要拥有这样的心态是很难的,但是你们可以想明白一点,就是大公司年年都在招聘,你们每年都有机会。你的机会并没有错过,只要你愿意,随时都可以有面试的机会。
除此之外,更重要的一点是,工作过之后的人会找到比公司更加重要的东西。对于学生来说,他们不知道什么部门、岗位、未来潜力以及发展规划。他们只看到你是阿里的offer,他是头条的offer,而我只拿到了一家二线公司的offer。但是他们看不到阿里、头条当中大部分都是边缘业务、边缘团队。在边缘团队当中当个边缘人可比在二线公司挑大梁痛苦多了,既没有好的绩效,也看不到晋升的机会,还学不到东西,光有个大公司的光环顶什么用?
同样,他们还不知道在大公司里工作两年,看着当年和自己一起毕业当时没有拿到offer的同学,一转身跳槽拿着比自己更高的薪水、更高的职位之后又和自己共事是一种什么感觉。在这种情况下,请问你真的能放平心态么?
看起来很不公平吧,但这不是你决定的,甚至也不是HR决定的,这是市场决定的。市场决定了大公司里的最低级别就是留给校招生的,社招跳槽进来的十有八九都要比校招生高一级。校招生能在两年内适应环境,并且做出成绩来取得晋升就已经非常不错了。但你转头发现,你这两年的努力很有可能比不过别人一次跳槽面试,你能甘心么?
现在想想,是不是校招就进大公司也没那么香了?年轻时候很多义愤填膺的事情,长大了之后看发现世事本就如此,时也运也,可遇不可求也。
想对后辈说的话
故事也讲了,感慨也说了,最后给大家分享一点个人的心得体会。我个人感觉对于还没毕业的菜鸟来说,应该还是有点用的。不管有多少人能看到这里,只要有一个人听进去了,那么这篇文章也就值了。
小公司和大公司不是非此即彼的,大公司固然有很多优势,但是小公司也有很多的长处。在我们不同的职业生涯阶段,以及在我们不同的追求目标下,其实适合我们的公司是不一样的,这个答案不是固定的。
说白了,选择的公司的前提是搞清楚自己的需要。大多数校招生做不到这一点,这也不能怪他们,因为他们也不知道自己要什么。所以只能做比较粗浅的选择,比如说薪水,再比如说公司规模。很多营销号上说年轻人的第一份工作不能只看薪水,这句话是对的,但错误的是这些号少了后半句。年轻人的第一份工作如果不看薪水,那么看什么呢?
答案是看成长。
毕竟职业发展不是一朝一夕的,我们头几年多挣两万少挣两万真的差别不大。一个P8和一个P7相差的年薪可能够一个P5挣好几年了,你和一个P8说当初咱们都是P5的时候,我比你多挣了几万,意义大吗?
我并不是说大公司并不能带来成长,这并不对。大公司非常锻炼人,给人的提升是非常巨大的。只是它有前提,并不是所有人都能把它的提升发挥到最大。大公司最大的价值不在于技术本身,而在于它代表了一个行业或者是一个技术的前沿方向。比如说你进了阿里的推荐团队,重要的不是你学会了多少阿里做推荐的时候的技术,而是你知道世界上最先进的推荐系统是怎么样的。一个系统想要往这个方向迈进,需要做哪些事情。如果你在阿里任职的时候,能够把这两点学到位了,可以说是直接在推荐领域毕业了,以后去其他公司做推荐,完全可以指点江山。这个老本至少够吃十年的了。
但是想要把这点学到位,显然不是一个新人能做到的了。一般的新人十个有九个也是没有这种视角的,看到的都是眼前的一点东西。我系统里的一些功能,一些技术细节,一些实现方法等等。这些不说没用,只不过是管中窥豹。层次越高的人,看到的东西也才越多,理解也就越深。如果我现在回阿里再待两年,能够学到的东西至少是我之前的好几倍。
从这点上来说,我其实不是非常推荐新人去大公司。因为新人要学的东西太多了,技术沉淀和技术视野都没有,往往看不到也没有能力看到这么大的蓝图。既然看不到蓝图,你去了反而要遭受很大的压力,还会面临大公司里拧螺丝很难证明自己的问题以及其他的种种挑战,那还不如一开始先不要去,先去练练手,把自己的实力提上来再考虑了。
当然公司太小也不行,公司太小了意味着非常不完善,要什么什么没有。既遇不到厉害的牛人指点方向以及学习技术,也没有一个成熟的业务或者是技术领域钻研。做来做去可能都是很细碎的东西,当然学到的东西肯定不少,但是未必都是有效学习,很有可能学到的很多东西只在某个领域或者是某家公司里才适用。比如我之前一个朋友进了一家创业公司,职位是产品经理,经常帮老板写标书。能说写标书的能力没用吗?当然不能,但是对于互联网行业的产品经理来说,职业生涯当中往往是没有写标书这项技能要求的。
所以最适合新人的,其实是发展非常迅速的中型公司。这样的公司有成熟的业务,也有一定的技术积累,不至于要啥啥没有。新人进入这样的公司,往往可以很快肩负起一整块比较重要的领域,有一个明确的钻研方向。并且伴随着公司的快速成长,很容易获得职位上的升级,以及更多的锻炼。
在这样的公司成长到遇到瓶颈的时候,就可以考虑跳槽去大公司了。因为你之前遇到的问题大公司之前也都遇到过,你可以在那里找到你问题的解决方案。并且此时的你,无论是视野还是能力上,都不再是当年可比了。这时候再去大公司,一定可以学习到更多的东西,获取更多的成长。这样才能把大公司带来的提升发挥到最大。
当然,这只是我的个人看法,具体如何,还要看你们自己。
不断学习提升
我自己做Android开发已经是第4个年头了,毕业后两年,有幸加入到字节跳动这个大家庭。在字节的4年,见证了太多人的来来去去,印象很深一个同事,跳槽阿里薪资直接double,但也看到很多人镀着“大厂”的金四处碰壁,终究还是倒在了技术上!
我自己或许也算是个成功的例子,在4年的时间里从1-1做到了2-2,当然,这背后的“辛酸泪”就留到日后再说。总的来说,归功于自己不断地学习,复盘总结,提升技术!以下分享一下我4年来具体的学习路线及笔记文档,希望能帮助到有心提升技术的朋友!
以下完整学习笔记PDF,可以点赞+评论支持下打工人老弟,点击这里免费自取!
- 架构师筑基必备技能
目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。
知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
- 设计思想解读开源框架
随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。
所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。
知识要点:
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
- 360°全方位性能调优
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
4、项目实战
- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
- Android框架体系架构
Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。
Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。
本篇知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析
- NDK模块开发(音视频系列)
NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。
在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。
本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习
- Flutter学习进阶
2019 年无疑是 Flutter 技术如火如荼发展的一年。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门
…
- 微信小程序开发
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
- Android相关源码解读
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。