layout | category | title | tagline | tags | excerpt | comment | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
post |
algorithm |
需要达到什么水平才能找到一份计算机实习? |
by 阿秀 |
|
需要达到什么水平才能找到一份计算机实习? |
false |
这是四则或许对你有些许帮助的信息:
1、👉 最近我发现了一个每日都会推送最新校招资讯的《校招日程》文档,其中包括往届补录、应届实习校招信息,比如各种大厂、国企、银行、事业编等信息都会定期更新,帮忙扩散一下。
2、😍 免费分享阿秀个人学习计算机以来收集到的免费学习资源,点此白嫖;也记录一下自己以前买过的不错的计算机书籍、网络专栏和垃圾付费专栏。
3、🚀如果你想在校招中顺利拿到更好的offer,阿秀建议你多看看前人踩过的坑和留下的经验,事实上你现在遇到的大多数问题你的学长学姐师兄师姐基本都已经遇到过了。
4、🔥 欢迎准备计算机校招的小伙伴加入我的学习圈子,一个人踽踽独行不如一群人报团取暖,圈子里沉淀了很多过去21/22/23届学长学姐的经验和总结,好好跟着走下去的,最后基本都可以拿到不错的offer!此外,每周都会进行精华总结和分享!如果你需要《阿秀的学习笔记》网站中📚︎校招八股文相关知识点的PDF版本的话,可以点此下载 。
作者:阿秀
最近有不少学弟学妹私聊问我一个类似问题:我现在大二/大三/研一/研二,我需要达到什么样的计算机水平才能找到实习?如果能去大厂实习就更好了。
前段时间我们组一直在招实习生,趁着吃午饭的功夫跟技术leader聊了聊,感慨现在招人确实不容易,求职的也不容易。
今天也跟大家唠唠:你需要达到什么样的技术水平,才能找到一份至少是看起来不错的计算机实习。
每天HR都能收到很多简历,这些简历不会第一时间就被人工去进行筛选,第一轮要经过的是算法筛选即有一个简历初筛系统,它会提取你简历上的内容,并从中提取一些关键性字样。
比如你的学校、你擅长的技术栈、你做的过的项目中用到的技术、你的英语水平、你的获奖证书等等,这些关键字被提取出来以后系统会用一个算法去进行打分,比如从你的简历中提取到了”熟悉常见数据结构及算法,比如栈、链表、二叉树,十大排序等“,就给你的简历加5分。
最后得到总分数,比如说60分及格,只有达到60分的简历才会被筛选下来,不到60分的全部筛掉,这也就是传说中的简历面。
很多人都很奇怪为什么自己投递很多次都没有得到面试机会,就是这个原因,就是因为你的简历压根就没被人工看到,第一关简历都没过去。
投递次数越多,失败次数越多,后台记录次数越多,最后你投递过来直接GG。
并不是你们想象中的HR挨个替你们人工筛选,那性价比太低了,公司招人来干活也是有成本的,能让机器算法干的事就不会让人工去干。
所以特别是那些跟我一样是普通双非学校出生的人,简历真的很重要,至于怎么给自己简历加分后文再说,先给你几个选项,看看如果你是面试官你会让哪些人通过面试。
A:211出身,竞赛经历丰富,算法题OK,虽然不如A选手解题速度快,但是都能顺利解出来,计算机基本功扎实,进程线程三握四挥常规问题对答如流,索引优化侃侃而谈,手写SQL不在话下。
B:普通学校出身,ACM奖牌在身,面试过程中算法题几乎妙解,并且能给出最优解,但面试计算机基础不够扎实,经过提示也能顺利解出来
C:北邮出身,简历上很厉害,各种精通XX技术,面试考察算法题拉胯,冒泡排序也写不出来,计算机基础更是一塌糊涂。
如果你是面试官,你会让哪个同学通过面试?
如果我是面试官,我会让AB通过面试,刷掉C,并且在面评上给AB记录:算法ok,计算机基础扎实,建议通过面试。
可能有的人认为虽然北邮和华科的牌子响当当,这两个学校在互联网是个金字招牌,可以横着走了,即使答得再差,也会面试通过。
但C真的会被刷掉,因为A、B已经证明了他们有很好的计算机功底,不管是良好的算法基础,还是扎实的计算机基础知识,这些都不是一两周能学会的,AB在面试中表现出来的足以说明他们具有良好的计算机基础了。
C则不然,除了学历比较好,其余都不如A、B,这样的人招来给自己和小组添堵。
允许你基础差,只要你态度好,愿意踏实学,但不允许你态度有问题,对工作不上心。
上周隔壁组有个实习生在上班的时候看美剧,被直接辞退了,哪怕你是在B站看编程视频也说得过去,你这直接看美剧,学英语吗?
这就属于态度有严重问题,直接被辞退了!
我想很多实习过的学弟学妹都有这个困扰,那就是自己好不容易去了一个BAT类的大厂实习,结果组长也不给分配活,自己也不知道干啥,每天除了拿快递就是摸鱼划水,很忧伤,代码也看不懂,自己也拉不下脸去问问题。
其实很简单,不是不愿意给你分配活,而是很多时候给你分配活还不如不分配。。。
因为带人很麻烦,特别是从0开始带,并且正式员工基本都是有自己的研发任务,都挺忙的。
以前我一直是充当”被带“的角色,自从一月之前开始充当”带人“的角色,真的是太TM麻烦了,真的是把实习生一把屎一把尿慢慢拉扯大,好在他也比较上进,至少态度上比较ok,愿意学。
所以更多时候,一些正式员工大多数时候都是直接丢文档或者代码给实习生,先让你自己看,看不懂再去问。
如果你不是个善于交谈的实习生,也不愿意开口问,那肯定就是越来越跟不上节奏,最后的结局就是转正失败!
所以大多数时候,并不是不让你们写代码,而是你们写了还不如不写,写的代码最终也很难通过代码评审,特别是那些实习一个月的同学,光上手你可能就需要三四周时间。
对于大多数实习生来说,如果真给你分配需求了,需求能不能cover住先不写,最基本的代码规范都是问题。
比如有的部门的前端小组约定了JS代码缩进2个空格、CSS缩进2个空格、Vue缩进两个空格,局部变量使用下划线开头,全局变量使用大写字母;
后端小组使用驼峰式命名,函数名大写开头,接口规范使用RestFul等等,这些基本都是细节,是这个小组所约定俗成的细节。
你要想融入甚至是切入这个小组,这种基本的细节肯定要注意到,如果你没注意到,代码review也不会通过,组长一般都会让你返回去fix,更不用说功能了。
说到这里,我想起来我去年在面试华为的时候,写算法题,面试官让我写了一个快排,花括号是紧跟在函数名后的,而不是另起一行;函数名用的是驼峰式,而不是test;局部变量是用的numA,而不是a。
如果你面试官,下面两个函数,你看哪个比较顺眼呢?
int quickSort() {
int numA,numB;
.....
}
int test { int a, b;}
毋庸置疑,肯定前者比较ok,后者比较不ok。
其实这些都是最基本的细节问题,面试一个人并不是要全看他的硬实力,这些软实力也是需要注意的,因为往往于无声处才见惊雷!
这里说的的能力包括你的学习能力以及理解能力、沟通能力,这些东西比你在求职时自身已有的技术水平要更重要。
因为技术水平是可能通过后续的学习慢慢提上来的,但是学习能力、理解能力是你自打幼儿园开始就慢慢养成的,到你大学毕业的时候至少已经过去十三四年了,如果你十三四年都没养成一个习惯,怎么可能指望你踏入工作后养成呢?
沟通能力更不用说了,现在正常的互联网IT工作不是单打独斗,基本都是要与人协作、甚至是跨部门协作,跟人工协同工作的前提就是你”听懂“别人说的话,理解别人想要表达的意思,让别人”听懂“你说的话,让别人理解你想表达的意思。
至于你的学习能力怎么考察,可能会看你的基本功是否扎实,一些具体的技术细节是不是清楚,比如计算机网络三握四挥,那我两次握手行不行?三次挥手行不行?为什么不行?;
看你的逻辑思维是不是严谨,思考问题是不是全面,比如一些算法题中边界条件是不是很好的考虑到,有没有做相应的处理;
看你快速上手的能力是怎么样的,面试中经常会问你一个问题:我们部门目前采用的技术栈是XXX,跟你现在已有的技术栈不太匹配,是否接受转语言等。
计算机技术层出不穷,语言火了一个又一个,框架流行完一个又一个。
现在Python、Golang这么火,谁还记得2014、15年如日中天的PHP呢?
或许你们都听过一句调侃的话:PHP是世界上最好的语言,原因之一就是因为14、15年的时候PHP确实火上天了,当时有个主打PHP的培训结构叫做兄弟连,它比现在的黑马+尚硅谷加起来还要火。
现在唯一还在用PHP的大厂应该只有百度了,谁又能说现在的Python、Golang不会步七八年前的PHP后尘呢?
少看这些应用层面的技术&框架,多去看看计算机原本的基础原理,这才是一名合格的计算机从业人员应该具有的基本素养和正确认知。
这些才是你需要重点学习去掌握的,而不是XX语言、XX框架、XX新技术,在面试的时候跟面试官谈论程序编译过程、计算机多级流水线远比XX框架酷多了,面试官给你的评语也会是:计算机基本功相当扎实,建议录取,而不是:该生熟练掌握XX框架,建议录取。
那么回到标题本身,如何才能武装自己、加强自己,找到一份不错的实习甚至是一份不错的工作呢?
说的明白一点,透彻一点,你找工作的过程其实就是展现你学习能力、沟通能力、理解能力的过程。
你理解了上面的内容其实就能理解:为什么一些公司,特别是中大厂、BAT这种该公司更爱招收985/211的学生?
原因很简单,因为高考已经帮助这些公司检验过他们的学习能力了,在一个相对公平的全国性考试中你都没干过人家,凭什么让这些公司放弃211以上的学生去招收你呢?
这没什么不公平的,换我当老板,我也会去这么干。
但这也不代表一考定终生了,你在出身学校不如别人的情况下,就像我一样,只是个普通学校毕业的,你该如何证明自身能力呢?。
还是有很多方法的,比如:
-
参加一些比较知名的计算机方向的科学竞赛,比如ACM或者蓝桥杯,当然ACM含金量远比蓝桥杯大得多。
也会有人说自己学校没有ACM参赛资格,也没有蓝桥杯参加资格,那LeetCode周赛你总能去参加吧,这是网络上的公开赛,注册个账号就可以参加,你拿不到力扣周赛前100名正常,因为前100名基本都是打ACM出身的,那300,500,800不可以吗?
-
多去研究一些看起来比较枯燥的东西,尝试去做一些能够体现你能力的项目,比如自己去尝试写一个编译器,做个mini操作系统等。
-
多在开源社区活跃,有一个上千甚至上万star的github开源项目或者跟人一起去维护一个知名项目;
-
多写写博客,做做笔记,将自己的学习过程以文字的形式记录下来,甚至做成网站去把自己的学习笔记开源出来。就好像我的求职笔记一样,现在也已经有超过 340,000 人次的访问了,这在我日后换工作求职的时候也是一个加分点。
-
....
上面的这些内容但你拥有凡有一个,都不至于让你的简历过不了简历关。
最后给那些跟我一样的普通学校出身的同学一个建议:对于我们来说,简历关很重要,远远比你们想象中的重要。
一个合格的简历能在无形中帮你增加很多面试机会,你可能会很疑惑为什么自己投递简历后得不到面试机会,你去找个已经工作的人,让他看看你的简历,你也许就知道原因了。
在计算机如日中天的今天,转行来CS的多不胜数,有太多比你们背景好的学生了,这些公司的可选项太多了,我们组每天就能收到很多简历,可最终通过面试的寥若星辰。
如果你还在学校,趁着大学四年或者研究生两三年,多干点能写在简历上的事吧。
就好像一些学生出国留学,用海外留学经历来给自己镶金一样,你们也可以给自己镶金,点亮自身的技能点,形成自己的优势。
试着让自己”蠢“一点,多去看看一些比较”无趣“的东西,少看一些应用层面上的项目。
少一点急功近利,多一点稳扎稳打。