毕业三年内,小公司上班,可以往哪方面提升自己

训练里有部分是已经工作且在小公司的小伙伴,所以这篇文章就讲一讲,对于这种毕业三年内的同学而言,我应该如何去学习,如何去提升自己,以此来保证自己后面更加具有竞争力,也能一步步跳槽到更好的公司。

写这篇文章之前,我也咨询了好几个小公司工作两年,最后跳槽到美团,蚂蚁金服,腾讯等的同学,以及工作多年,在管理岗带团队的大佬,最后结合自己的思考,写下了这篇文章。

这篇文章我就分析了个大概,具体每个人的处理方式还是不同的,因为我觉得对于已经工作的人来说,每个人的情况都是不一样的,比如业务不同,比如忙碌不同,比如对未来的期望不同,等等,这这些不同,都会导致一个人的学习动力。

不过最核心的就是,我觉得很多人比较迷茫的就是,找不到一个学习的方向,找不到一个可以发力的方向,所以这篇文章最重要的就是,让你们有一个属于自己的学习方向,之后你再来学习,需要的东西,我大部分都能提供。

这里给下提纲
一、先聊一聊单单工作上的业务能学到什么
二、聊一聊跳槽互联网知名公司考什么
三、大厂社招大致面试流程
四、我们可以往哪些方面学习
五、调整我们的学习态度
六、具体需要学习的有哪些(Java开发)
七、小公司跳进大公司的机会大吗?
八、最后就是多阅读

一、先聊一聊单单工作上的业务能学到什么

我最近看过不少在小公司干过几年的人的一些简历,好几个都是让我帮他们改一改简历,我一看简历,只看到他们列了五六个项目,并且这五六个项目都是类似的,比如开发了 xxx 管理系统,总的来说就是大部分项目都有点像「工具类」,很难涉及到高并发这种。

那这种业务值得做吗?做了对自己有提升吗?

我的答案是,对于刚工作的人来说,这些项目都是值得做的,但是连续几年都做这种类似的项目,就很难成长,反正我看他们写项目经验,就和写流水账一样,不知道他们干了什么,只知道他们做了一个项目,这个项目有诸如订单模块,用户模块等功能,并且这些项目看起来都差不多一样的功能。

这样的简历,写的太差了,别人看了估计也不知道问什么,一看就觉得你是干外包的,当然,这里并不是贬低外包。

好吧,这里有点说多了,扯到了写简历到事了,我们继续回到主题上。

我说个实话,即使是在大公司,一开始去干的活也是很杂的,就是写个简单的接口,和很多人在小公司一样,大部分也是干 crud,但是对于第一年工作的人来说,这其实也是有不少提升的,这个时候的提升是指实践能力的提升。

比如我们 git 用起来更熟练了,linux 用起来更熟练了,遇到错误,也大致知道怎么排查,也会部署项目,等等,干起活来 相对比较流畅了,不像一开始蹑手蹑脚的。而这些,可以很大提升我们的工作效率。

所以我觉得,去了公司,很多时候,我们是接触不到高并发这些玩意的,更多的还是干一些比较杂的事情,大公司小公司都差不多,只是说,在大公司的话,你后面有机会负责一个模块,基于这个模块不断优化,并且对于开发的规范,要求比较严格一些,而且很多时候,考虑的也会严谨一些。

而在小公司的话,可能没有那么多规范,并且项目一个换一个,这种的话,对于第一年来说,大家的成长都是差不多的,但是往后几年,如果自己不去主动学习,在小公司的成长确实会少一些。

也就是说,很多时候,无论是大公司还是小公司,一开始入职干的活,其实大家都差不多,都很杂,很多时候也都是 crud,但是这些也是有用的,可能让我们更好着去使用一些工具以及一些开发相关的规范

而在往后,在大公司的话,会让你慢慢负责更多的东西,对新人往后的成长会比较好,而在小公司,则可能还是原来那一套,没有一个比较好的培养体系,毕竟小公司的人口流动也更高。

所以看简历的时候,感觉小公司的那些项目看起来,就是千篇一律,没啥竞争性。

其实大家总体学到的东西都差不多,就是开发一些接口供别人使用,但是在大公司的人,之所以很受欢迎,就是大家觉得他基础好,可以很快接受陌生的东西,学起来快,并且写的代码健壮性更好

但是你说让大公司的人去小公司,从 0 开发一个管理系统,说实话,他可能还真干不过那些在小公司工作的人,但是没办法,越是大的公司,你负责的模块越小,并不需要你写一大堆,而是需要你实现一个小小的功能时,能够考虑全面一些,并且让你去负责一个新的模块时,你能够快速去掌握所需要的知识。

不过需要说明的是,即使在大公司工作,如果自己没有私底下去自学一些东西,其实去面试时,还是会不好面,因为面试,和工作是有区别的,下面我们讲围绕面试来讲一讲我们需要去学的东西。

二、聊一聊跳槽互联网知名公司考什么

有时候我们会听到,校招看中基础,社招看中项目,但是对于工作几年的人来说,社招面试,八股文还是会占据挺大一部分,因为问项目的背后,还是问你八股文。

比如你在你的简历上写了一个项目,虽然写了有啥功能,但是面试官短短几分钟,是很难知道具体细节的,只能从你的描述中,来问你一些问题,而且很多时候是问你通用问题,不过也正是因为这样,可以让我们有更多的机会去引导面试官问我们熟悉的东西。

也就是说,对于互联网知名的公司来说,社招虽然项目很重要,但是八股文也非常重要,因为项目完全由你自己描述的,你只要对线对的过面试官,那就可以了,而对线时,很多时候是在讲理论。

你看,现在很多培训机构,各种对标阿里 P7 的,他们的目录,很多还是这种理论知识,也只有这种理论知识,我们能够通过花时间来掌握,但是项目经验,则是一个漫长的过程。

好吧,下面总结一下社招面试考什么:

1、对于工作几年的人来说,如果你去跳槽比较知名的公司,他们会问你项目,但是项目其实由你自己编,最后问的还是八股文。

2、由于结合了场景来问你,如果你想要能够灵活着回答,那么你就需要有 一定的项目经验 + 扎实的理论 基础,只有这样,你才有机会对线稳住面试官。

三、大厂社招大致面试流程

这里针对 1~3 年工作经验的一个大厂面试流程,我这里说的是大厂哈,虽然有些人可能不是要跳槽大厂,但是我们也应该把大厂做为一个标杆来学习。

这里我需要先强调的是,面试的成本很高,比如在腾讯的话,能够当面试官的,至少是 T9 极其以上,这就意味着,一个面试官花几个小时来面试,成本是很高的,特别是面到了四五面的,可能还得总监出门把关。

也就是说,面试成本很高,越往后,面你的面试官的级别越高,也就是成本越高,所以呢,在大厂中:

1面:一面很多时候就是问一问基础,比如 JVM 啊,多线程啊,集合啊,计算机网络啊,甚至扔给你一两道简单的算法题,目的就是先过滤一下,看看你值不值得继续问,如果你连这些基本的都不懂,或者说的马马虎虎,那么就不用惊动后面的面试官了,所以一面就是一个基本功面,所以大家要至少有一定的基本功。

一般1~3年的大厂社招有 4~5 面,下面我简单说一下每一面大致问啥,当然,只是说大部分是这样,不意味着都这样。

2面:二面有大概率会结合你的项目来问你,比如问你项目遇到难点,怎么解决,然后基于你项目来问一些八股文理论啊,或者问数量大了怎么办怎么办啊。

3面:如果一面和二面都通过了,意味着你这个人基础等方面不错,是有可能进入部门的,三面有可能是组长或者总监,当然这个不一定,只能说三面的级别还是挺高的,他可能不会无聊问你八股文啥的,可能会和你聊一聊工作,聊一聊你的个人经历,从工作和个人经历中,可以很好判断一个人,所以我觉得这个时候,自信,敢于挑战困难的态度还是挺重要,就是如果你给他讲你这几年一直持续学习,热爱技术等,别人肯定会喜欢。

然后还会问你一些技术问题,考考你这个人的逻辑思维啥的,一开始可能会简单,但有可能是连环炮,一步步考察你,要能够 hold 的住,还是得有一定的理论基础。

4面和5面:4面和5面可能是GM面和HR面,GM面就是问问你为啥离职啊,谈谈你对公司的认识,价值观啊,等等。HR面就是商量你未来工作相关的了,薪资福利啊,什么时候入职啊等等。

所以 1~2 面,是硬核技术面,3 面通过聊天中,体现你这个人是值得成为同事的,所以千万不要畏畏缩缩,比如你是外包的,就特别害怕提到外包,这大可不必,把你的自信表现主要。当然,自信往往来自于自身对知识的把握,所以大家还是要多学习。

四、我们可以往哪些方面学习

在面试的时候,如果你的简历都是流水线项目,这一看有点想外包,那么你的简历就会失去了很多优势,面试官会觉得你可能就是半路出家,并且这几年也没有努力去补基础,觉得你肩负不了重任。

但是工作就是这样啊,没基础接触其他,平时就是 crud,而且计算机基础,各种理论我也用不到啊,那么该怎么办呢?

上面我说了,项目是由我们自己写的,那么我们就可以包装自己的项目,把项目包装的更加高大上,而且我说个实话,我认识的一些人,也是说项目必须包装,比如把你平时自己做的项目,部分功能嫁接上去,因为我们平时做的项目,就是为了面试来准备的,很容易包装。

到时候在和面试官聊时,你能够扛的住就可以了。

但是这里有个点,就是很多在小公司工作的人不够自信,这点很伤,导致在面试时,就慌了,而不自信的源头就是基础理论不扎实,没有形成自己的理解。

所以如果要提升,我觉得可以往下面的知识学习:

1、缩短与大厂程序员的真实差距:说实话,真实差距,很多时候就是理论基础的差距,而这些是我们可以补充的,像履历这种,已经写死了,我们无法缩短,所以我们要去补充自己的根基,一方面这可以让我们更加自信。而且像大厂程序员,可能也会经常看一些技术文章,各种理论啥的,但是很多基础不扎实的就不行了,因为看不懂,这也是为啥说理论基础这种,即使你不熟练,你简单了解过都行。

2、拓展自己的知识面:初次之外,我们还有多接触下一些比较流行的技术,比如 es 啊,docker 啊,springcloud 啊,等等,这些如果你工作没用到的话,自己简单入门下,知道这么一回事就行。

五、调整我们的学习态度

上面说的这些东西,是告诉你为啥要学习这些东西,属于分析局势,具体应该如何学,应该具体学什么,这其实每个人的情况不同,比如我打个比方:有些人太忙了,每周可能只能学习几个小时,这时让你去学习操作系统,你可能学了后面,忘了前面,而且也感觉不出有啥用,于是就学习不下去了,特别是占线拉太长。

所以我觉得,为了让我们的印象可以更加深刻,我们一是专注,二是战线不拉太长,三是硬着头皮看完一门知识。

有时候你学习一门知识,你看了一半,可能这个时候也确实没啥用,这个时候很多人可能就不想继续看了,但是你坚持看完另外一半,你可能就能 get 到一些东西了。所以我们学习的时候,一定要硬着头皮学完一门知识,不能半途而废。

所以,当你决定要学的时候,就一心学习吧,享受学习的快乐,如果你中途突然摆烂了,比如玩上了游戏,那么很容易就一直摆烂了,越久没学,那么学习就会变的越痛苦。

六、具体需要学习的有哪些(Java开发)

下面我们说一说一个大致的学习路径:

计算机基础:首先我们需要学的是计算机网络 + 操作系统,计算机网络看书 + 视频,操作系统看视频 + 看文章。

中间件:mysql + redis + mq,这几门重要一些,然后 springcloud, docker,zookeeper 这些,我们需要接触。

Java:JVM + 并发 + Spring一些原理,这个比较重要。

算法:会写基础数据结构 + 掌握常见算法思想题,能够做出常见的算法题。

总的来说就是,我觉得大家可以把这些大致过一遍,你去看那些培训机构几万块的课程,有很大一部分也是这些,显然这些学了也会忘,但是你以后要面试了,捡起来很快,至于这些需要学习多久。

说实话,如果一天能够两个小时来学习,1 年内是可以掌握个大概的。

至于学习顺序的话,我认为要一个一个学,不能同时学习太多,因为你还要工作,没那么多时间,专心研究一个东西,可以让你学的更加来劲,当然,你说我要学习两种可以吗?当然可以。

七、小公司跳进大公司的机会大吗?

我觉得如果你愿意卷,那么就很大,如果没怎么学,那么基本很难,一般我觉得,卷个两年,跳进大公司没问题,快的甚至一年多。

另外就是,要求是本科学习,大专确实会容易在学历被限制。

当然,一个比较好的方式是,先从小公司跳到稍微有名气一点的公司,之后在跳去大大公司,这个过程并不容易,毕竟要一边工作,每天还得学习,还得坚持那么久,这确实很不容易,需要找到一个可以持续学习下去的动力。

当然,我这里只是讲了一个大概,具体的八股文学习,我会给你们安排大致的顺序。

八、最后就是多阅读

系统的知识学起来很慢,并且容易忘记,但是其中很重要的并不多,但这并不意味着系统学习不重要,相反这很重要,所以我是建议大家,主线系统学习,副线多阅读,通过阅读优质的文章来理解重点的知识,而这些,我已经给大家准备了,就是课程大纲的优质文章,大家要记得多看看哦。

发表评论

后才能评论