美文网首页Android开发经验谈
“我985毕业生,凭什么和你专科生在一起?”同样是困扰程序员晋升

“我985毕业生,凭什么和你专科生在一起?”同样是困扰程序员晋升

作者: 程序员面试秘籍 | 来源:发表于2020-09-08 15:25 被阅读0次

    一、引言

    学历意味着什么?有学历的程序员永远不懂没学历的痛,就像白天不懂夜的黑。

    最近,有一篇文章火遍了全网的文章!作为程序员的我也在想,我们不是也有这样一种经历吗?工作经验丰富,技能高,工作资历久,却因为学历没有相应的待遇!甚至有些能力很强的专科生却连大厂的门都进不去!改变命运的不能仅仅是高考考了多少分,而是在进入社会的过程中有没有不断去提高自身素质,有没有不放弃学习!我始终相信只要提高自身实力,我就可以和那些研究生,博士生,站在一起!


    二、为什么企业都只招收高学历

    为什么企业要求学历?这个问题得从公司管理者角度解释,招聘时,学历只是一个公司在招人时的最低门槛,然后面试时,通过你的言行举止,你的细节动作,来揣测评估你平时的一些习惯,为人。看看你是否能快速融入团队,大多数的公司会更喜欢性格开朗的员工。但是为什么一定要看学历?

    其中一个方面是因为读过书的人对待的事情有一定的逻辑性和思维。有人说读书没有用,但大家都没注意到,读书会潜移默化影响我们的思想,一些处理事情的方法,更多的一个人的创新思维。另一方面,没有学历的人中会有这么几类人:

    第一种那就是千里马,也就是无文凭人才,很多知名公司会发现,但是少之又少。

    第二种人不思进取,安于现状的人 很多人做上领导 就放弃努力了 。

    第三种人没原则,没学识,等着天上掉馅饼的人,等等......像无学历的这种人才在大公司非常少,而且混在人团队中,如果你是管理者,你要怎么分辨哪些是人才,哪些是蠢才。何况你的领导是这样的人,你敢多待一天?

    有些人可能会说能力最重要,能力确实很重要,技术来说,无非就是熟练不熟练,入门先后而已,其实,学历只是代表你的过去,只要你有学习的能力,未来更加可以期待 。

    抽空提高下学历是有必要的,最近几年一线落户越来越看重学历,但也不要无畏的认为学历可代表一切,除非你去创业,那么你牛逼,大家只会敬仰。

    三、数据分析

    在这里先给大家看张,不同学历的程序员收到的平均面试邀请数据统计图。从图中不难看出,单看收到的面试数量,专科、本科、硕士所收到的邀请数量相差不大,博士生收到的面试邀请反而较少。当然,这也许和他们的专业更精准聚焦有关系吧!

    再看这张图,工作经验在6-10年的专科生平均年薪超过本科生!工作年限越长,反而低学历占了优势!

    那么,这是什么原因呢?

    因为相比于其他行业,IT是个更注重应用的行业。在日常工作中,很多技术大牛们能够行云流水般打出一连串让人瞠目结舌的高级代码,更多靠的是大量严谨的逻辑锻炼和实践经验。而这些,靠一纸学历证书是获得不来的!

    许多人也许在传统应试教育领域并未取得所谓意义上的成功,但这并不能说明他们能力不强,更多的只是方向和兴趣点不同罢了!

    所以说,虽然学历在一定程度上代表了更优秀的学习能力,但在互联网高速发展的现在,在IT行业中,“学历至上”已经不是企业选择人才的唯一标准。比起一纸证书,企业更看重的是你编程水平的高低,是你在实际工作中能力的强弱。否则,即使你有一张敲门砖的文聘,也只不过是一个滥竽充数的南郭先生。

    四、努力提升,技术为王道

    永远别看低自己,更不要低估自己的潜力,每个人心里都有一个属于自己的千里马。

    逆袭微软

    • 准备

    之前导师跟我说他认识一朋友在微软可以帮我内推,我说能够内推苏州就好,上海或北京不考虑。后来导师询问了之后发现那朋友所在部门在上海,而且在苏州并没有分部,遂作罢。

    所以微软直接走的正式批,投的STCA苏州的software engineer。然后等到了统一的笔试,想着不能重蹈覆辙了。

    • 面试

    微软这次的笔试平台换成了amcat,而且笔试全程不允许切换窗口、鼠标不能离开窗口,这对我们来说难度突然增大了,因为微软笔试就是几个算法题,不能跳出窗口、全程手撸代码就太恐怖了。

    出乎所有人意料的就是微软今年的算法题突然简单了许多,可以说手撸代码完全没问题。一共五题,好几题就是简单几行代码就能写出来了,最难的一个就是换硬币了,其实就是非常明显的动态规划。所以笔试毫无压力,只有两三个测试用例没有通过,坐等面试通知了。

    等了好几天后收到了微软苏州现场面试的通知,值得一提的是,同实验室好几个笔试做的不错的同学没有收到面试通知,所以微软恐怕不是单纯根据笔试成绩来发面试通知的。

    之后就是去苏州微软现场面试了,签到的时候就看到签到表上密密麻麻全是南大和浙大的学生。面试一共四轮,在一个会议室坐着,面试官带出去面试的模式。微软的面试模式出了名是啥都不问直接白班写代码,这次也不例外。


    • 一面

    一面大概持续了半个多小时。面试官最开始就让我介绍我最闪光/特质的地方,上来就把我弄懵了,因为只准备过自我介绍。跟面试官说等我想两分钟后,我就开始说了,切入点就是我学习能力强,而且学的好;我主动说我本科是学的武器,花了接近两年的课余时间准备考研考上了南大,准备考研期间自学了计算机四大专业课和附属课程,在研究生阶段也学的很好之类的;面试官表示满意。

    然后就问算法题了,问的是一道经典算法题,两个字符串大数相加,这道题是LeetCode原题,所以很快就写出来了。然后面试官扩展问如果是小数该怎么修改算法,我说把数的整数部分和小数部分分开处理,照之前的算法分别相加并处理完小数向整数进位问题后再拼起来,面试官表示赞同。然后问我对于小数还有没有别的方法,我说还可以直接把小数当整数对待,相加完成之后算出小数点的位置,再插入到字符串中就好了,面试官让我写出来,我就很快在纸上写出来了。紧接着面试官让我想想可以设计哪些测试用例来检查算法正确性,我写了几个测试用例。

    再然后面试官问了我一个概率题,掷一个骰子n次,每次掷完骰子后,可以选择立即停止、以当前骰子的值作为结果,或忽略当前骰子的值,继续掷骰子,问用什么策略可以得到最大的数。这题我就犯难了,因为之前想过类似的问题还把自己绕进去了,这次也马上就把自己绕进去了而且越想越迷糊,最后干脆说每次掷的超过3就立即停止,不超过就继续掷;面试官马上就举例子说假设一共可以掷9次,掷第1次的时候就掷到了4,那应该立即停止吗?我答不上来。

    面试官提示了我两三次后说应该考虑后面还会掷多少次,我就明白不应该看前面掷的情况,应该根据后面还有多少次没有掷来计算后面掷骰子会超过当前值的概率,概率大于50%就应该继续掷,随后写出了计算概率的公式。面试官对我的这个答案表示赞同,随后他补充说还可以用动态规划的思想来看。最后面试官跟我说我太紧张了,需要放松。

    • 二面

    二面差不多也是半个多小时。面试官最开始让我介绍了我做的项目,对我的科研项目很感兴趣,多问了一些,但没有深入。随后开始做算法题,主题是二叉搜索树,问了我搜索的时间复杂度,让我在纸上举例各种情况下(最好、平均、最坏)的时间复杂度,然后让我分析如何在二叉搜索树中寻找仅小于指定结点的结点(就是中序遍历的前驱结点),于是就跟面试官讨论了不同树的形状下如何寻找前驱结点,然后面试官让我写出这个算法。

    我想了想其实中序遍历就能搞定,于是默不作声写了个非递归逆中序遍历,然后给面试官看,并解释了原理;然而这并不是面试官想要的结果,面试官希望我通过结点父子关系来寻找前驱结点,而非遍历的方式。我想了一下,然后跟面试官说,这样每个节点就必须有一个parent指针指向其父结点,面试官说可以有parent指针。

    然后我就顺着之前讨论的各种情况一一写出了寻找前驱结点的方法。面试官看了我写的代码表示赞同,但跟我说其实我的代码还可以精简,其实就是两种情况不断向上遍历判断。然后面试官让我设计测试用例,来检查我写的算法的正确性,我很快写了几个。然后让我再之后面试官简单问了我如斐波拉起数列的问题,就愉快结束面试了。


    • 三面

    三面也差不多半个小时。三面面试官也是先让我介绍项目,我介绍了我的科研项目,他问了一些性能参数后,问我有没有考虑到手机耗电问题,我说没有,主要因为这个领域都不做这个,他就谈了谈他对耗电的看法,我表示赞同。然后面试官问我前两轮面试有没有问英语,我答没有,面试官就说从现在开始我们用英文交流,所以接下来全程英语了。然后就是做算法题了,不同于前两轮面试是在纸上写,这次直接在墙上的白板写了。问的是LeetCode上的原题——判断镜像二叉树(LeetCode 101),这题我早有准备。

    首先画了个镜像二叉树跟面试官确认了我没有理解错题意,然后就很顺畅地开始写了,一口气写完之后就让面试官来检查了。面试官首先问为什么我的传入参数是用a和b表示两个树的,我答为了简单起见,然后面试官说可不可以用left和right来表示两个树(递归结构,这里指左子树和右子树),我答不可以,因为第一个参数不一定一直是left、第二个参数也不一定一直是right,如果用left和right反而会让人误解,面试官表示赞同。然后面试官让我设计测试用例,我写出了七八种测试用例,面试官看了后说其实我漏掉了最重要的一种测试用例,我想不通,于是问面试官是哪种,面试官说我写的测试用例都是来检查算法不正确的情况,而测试用例最先应该检查的是算法正确的情况,即正常的测试用例,我说这确实是我没想到。然后三面也结束了。

    • 四面

    四面就是部门大佬了,一共持续了大概四十分钟。最开始还是让我介绍我的科研项目,他表示很感兴趣,还让我介绍一些系统中的一些细节,于是我就在墙上白板上用整个板面画了我设计的系统的整个流程和一些细节,中间穿插着面试官的问题。然后就进入正题开始做算法题,也是LeetCode上的原题——通配符匹配(LeetCode 44),看到面试官出这题我惊出一身冷汗,因为前一天复习的时候就见过这题,然而没有做出来,而且因为这是一道Hard难度的题,我觉得面试不会问,也就没有去找答案做出来,然而就这么遇到这题了。

    于是我就主动跟面试官说这题我前一天晚上还见过,但我没有做出来,这题的最优解法应该是动态规划,但我不会;面试官回答说现在是不是很后悔当时没有看这题,没关系现在再好好想想,争取做出来。然后我就在白板前站着想了好几分钟,万幸的是总算想出来了,用递归来做,然后慢吞吞写出了代码。然后给面试官看,还逐行解释了算法工作过程,面试官说挺好的,这不是做出来了么。然后就是写测试用例了,吸取了三面的教训,这次测试用例很快就写出来了。这样就结束了四面。

    四面结束后回到会议室,问HR什么时候能出面试结果,HR说等差不多十分钟就有结果了。于是坐在那等,然后有HR叫我,出去跟我说我的面试情况挺好的,现在在hirable list中,大概等两周就可能有是否发offer的决定。然后我就愉快回学校了。

    但是等微软offer的日子是漫长的,在HR连续跳票两次后总算接到了offer电话。惊喜的是我拿到了微软的sp,并且今年苏州微软的薪资待遇较往年也有较大提升。

    五、谁说学历及一切

    学历,确实是一个敲门砖,我们没有这个敲门砖会辛苦很多,但是可以努力提升自己,学历不行,有学历要求的公司,自己实在想去,可以一边工作,一边自考提升学历,万物都有解决办法,就看你愿不愿意去做。我是以专科渣校进入的一个小公司,可是我没有放弃,因为我瞄准了讯飞一个不大不小的公司。在这个小公司工作花了2年,在这期间一直没有松懈过,一边工作一边自考。

    一次就考上了本科成功拿到了讯飞Offer。于是我再次把目标定在了微软,花了3年时间一边考研究生,一边准备下一次机会的来临,功夫不负有心人。终于我还是做到了,一个专科生到研究生,一个小厂到所有程序员梦寐以求的微软我的“逆袭”花了整整5年,尽管很辛苦,很孤独可是我还是做到了不是吗?

    最后,送一句话给大家,哪些打不倒我们的困难,终将使我们变得更加强大!

    六、五年期间我的学习笔记分享

    网上高级工程师面试相关文章学习资料鱼龙混杂,要么一堆内容,要么内容质量太浅, 鉴于此我和身边好友趁着这次疫情花费了6个月整理了上述安卓开发高级工程师核心学习笔记以及面试题和详细的答案解析帮助大家顺利进阶为高级工程师,在当下大环境下也想为安卓工程师出一份力。

    群文件夹有以下学习笔记,自行下载!

    • BAT大厂面试题、独家面试工具包,

    • 资料免费领取,包括 数据结构、Kotlin、计算机网络、Framework源码、数据结构与算法、小程序、NDK、Flutter,


    相关文章

      网友评论

        本文标题:“我985毕业生,凭什么和你专科生在一起?”同样是困扰程序员晋升

        本文链接:https://www.haomeiwen.com/subject/hkmdektx.html