大家好,我是程序员鱼皮。
来吃个瓜,昨天看到了这么一条热搜消息,号称网安一哥的大厂奇安信官宣 “全员无年终奖”!
不知道这算不算刷新了大厂的记录,上有王者荣耀团队百月年终,下有网安大厂全员无年终。同样是在大厂打工,薪资差距真的也可以有天壤之别!
说实在的,如果我是奇安信的员工,想必也是愤怒到极点了吧,希望大厂都能振作起来,让国内的环境回暖一些。
说到这里,其实我也想做个小调研,对于刚毕业的同学来说,你会更倾向于选择薪资更高的小公司,还是规模更大、技术更先进的大公司呢?
(放投票)
如果让鱼皮来选择,刚毕业的时候可能还是会进大厂吧。虽然我自己也在创业开小公司,但很多其他小公司的技术同学就是在打杂,能学到的东西可能是有限的。
前段时间我收到 编程导航 一位同学的提问,这位同学目标就非常坚定: 我就是要进国内大厂,非大厂不进!
针对这种情况,下面鱼皮给同学们一些学习建议,可供参考。
鱼友提问先简单介绍下这位同学的情况:
1)技术栈(Java 后端方向):
计算机基础: 有算法基础,力扣做了 300 题左右,网络、操作系统、数据库本科学过,不够深入且不知道如何深入需要到什么程度才有掌控感。语言基础:JVM 刚开始。设计基础:主要通过阅读源码进行设计能力的提升,源码刚开始。项目和框架:到 SpringBoot 做过两个前后端的项目(前端用 vue,后端 springboot),springcloud 在学习中。但是感觉没有看到太多应用场景,没有很找到学习这个技术的需求,所以有点迷茫。2)实习经历:一个小厂后端 + 一个百强企业 AI 方向实习
3)具体需求:
参加秋招,冲击国内大厂,且只要大厂!计算机基础感觉掌握地并不牢固,想知道怎么提升这一块?语言 JVM 以及设计源码的这些核心内功,不知道怎么深入学习?取其上者得其中,我想得到一个比较高的标准和策略,一定严格执行。每天差不多能拿出 4 - 5 个小时左右的时间来学习,周末和假期可以 10 个小时以上学习。假期比较多,可以塞满。
鱼皮回答这个问题非常大,但也非常好,针对学历还不错(一本及以上)、想进大厂且只进大厂的同学,我可以给出如下建议。
学历一般的同学,我的建议是不要把自己局限于某规模的公司,还是尽量多投递、多争取机会再做选择。
1、进大厂的门槛:简历简历是进大厂的基础关和门槛,简历上的核心内容就是专业技能、项目和其他经历。
专业技能大家写得都差不多,只要认真按照 编程导航 的 写简历技巧文档 优化即可,不必多说。
实习经历和项目经历是进大厂的关键,这位同学已经有 2 段实习经历,只要表达清楚每段实习的工作和关键成果、能和求职的目标岗位(Java 后端)有一定关联就足够了。
最能发挥的还是项目经历,尤其是要自己做项目,必须要在跟编程导航或者网上的教程完成项目的前提下,做一些换皮和扩展,拉开区分度。
比如看看优秀鱼友对鱼皮智能 BI 项目的扩展,增加了很多有意思的新功能:
如果想稳进大厂,可以有这样一个策略:拿自己的简历去对标工作 1 - 3 年经验的简历,如果感觉项目经历差不多,那么希望很大。
2、进大厂的关键:项目经验和系统设计能力大厂需要的是有能力应对挑战的高手。所以一般在大厂面试中,都会有场景类、系统设计类的问题,比如让你设计一个实时弹幕系统,这些问题能够看出候选人的能力上限。水平差的人可能只知道用数据库存弹幕,高手则能够利用 Redis 等各种中间件、从前端到后端设计出一整套高性能的系统。这个时候,你到底是背书的、还是真正有经验的,一问便知,所以只靠背八股文是不行的。
所以如何提高自己的上限?接下来的时间应该投入在哪里呢?
首先在技术学习上,大厂必备的后端技能一样不能拉下,优先把我的 Java 后端学习路线 第四阶段技能全部学完,并且重点是:一定要运用到项目中,加深理解。
我不是很建议 “通过阅读源码提升设计能力”,因为在你自身项目经验并不丰富、编码能力并不强的时候(比如还不会运用设计模式到项目中),看源码的性价比很低。一方面是效率低,另一方面是不容易吸收,毕竟 “看懂代码” 和 “能自己写出来” 还是有很大的鸿沟的。
所以我建议还不能熟练根据需求设计方案和完成项目的同学,优先把 80% 以上的时间投入到项目上。按照 鱼皮项目学习建议 中的顺序,把几个项目的后端学完、自己写出代码并上线(先只做后端,前端可完全跳过)。
不要觉得自己之前已经有项目经验就不看了,如果你真的很熟悉某些技术的运用,那么可以快进或者跳着看。时间紧急的话,甚至可以只看需求分析部分,能自主设计出方案即可,代码都不用写了,从而快速锻炼自己的系统设计能力。
对于这位同学,每天平均投入 6 个小时、再加上之前有做过项目的前提下,一个月内应该可以完成 5 - 6 个项目,这是针对目标只进大厂的高要求,其他同学不必对此感到有压力。
当你认为自己已经能够熟练运用大多数技术来设计实现方案的时候,再去阅读源码,你学到的就不只是 “背八股文、背了一套解决方案”,而是能和自己之前的项目经验融会贯通,真正理解前人设计的精妙之处。
所有新技术的学习都可以遵循 我的技术学习建议路线 ,找到工作前大多数技术能够做到第 4 阶段(主动运用),有 1 - 2 个技术达到第 5 - 6 阶段(了解原理和深入源码)就已经非常优秀了。
3、进大厂的及格线:基本功想进大厂,必须要有足够高的上限,当然,下限也不能太低。计算机基础和八股文之类的基本功,就是进大厂的下限,是必须要准备的。
除了做项目之外,建议剩下 20% 的时间每天坚持背八股文、继续刷算法。
对于学习计算机网络和操作系统,如果你之前完全没学过相关的课程,只需要背八股文就可以了;尤其对于学习能力强的同学,不需要系统看教程(尤其是像什么黑皮书之类的),比较费时间、性价比不高,因为八股文无非就那些题目,全都能理解透了也能掌握个 70 - 80%,足够应付面试。
当然,如果你现在才大一大二,时间丰富,有空多去看看计算机基础的系统教程,肯定更加分。
背八股文的过程中必须要做的一件事:整理自己的八股文手册。对题目进行分类整理,并且每道题目在别人答案的基础上,给出自己的思考和答案,这样印象会更深刻,整体效率也会更高。
做每日计划这点就不多说了,建议大家平时多阅读网上程序员相关的文章,提升自己的软技能也很重要。