北美计算机专业的失败者心得,与学习找工作的建议(找工作篇)

11854
52
本人作为计算机专业的普通人想根据自己的经历给大家分享一些心得,教训与建议。
本人背景:
美本top100, 硕士top 50, 计算机专业,23年初毕业至今还在icc苟着。

找工作方面:

本人经历:
本人21年本科毕业后,获得了两个top50 大学的cs 研究生offer。虽然我本科学的也是计算机,但不是软件开发(班里就没有中国人的那种),所以为了我研究生能顺利毕业,我在看完研究生需要学习的课程后,21年的暑假我自学了Java 和 Python。因为研究生的学习压力非常大,我跟上课程的进度就已经非常吃力了,根本没有精力去刷leetcode和考虑实习的事情(也有可能是我当时都不知道leetcode, 或者是低估了leetcode的难度)。当时还有另一个背景就是很多人非常轻松的就转码上岸了。所以我当时给自己的大致规划是研一寒假刷leetcode,第二学期投实习,暑假边实习边找全职。 很可惜事与愿违,由于本人没有任何刷题与算法经验且美国寒假较短,我并没有达到预期的目标。所以我决定改变计划跳过实习,暑假拿出前两个月刷题,然后差不多8月初开始海投。我当时把能投的大厂全投了,很可惜当时meta不招ng且开始疯狂裁员,且 亚麻9月份就不发面试结果了,9月底ng基本上就结束了,然后10月份貌似开始撤offer了(由于时间过于久远,时间线记得有点混乱,大概就是这么个情况)。我当时身边所有在meta实习的同学全都没有return, 亚麻的我也没见到几个拿return的。22年的秋招我迎来了人生中第一次工作面试,不出意外挂了然后就再也没有机会了。

实习的重要性:
实习非常重要,首先你可能能拿到return, 其次可以知道你在学校学的和实际工作环境的区别,且技能可以得到锻炼(还有不少的钱拿哈哈哈),最后也是能在简历上写一笔好找工作。

下面我说的话是根据现在的大环境而言的,并不代表未来:
实习对于美本的cs同学:
就我的经验而言,大一的同学一般不会选什么专业课负担也不是很重。如果没有任何编程基础,请好好选择一门编程语言认真学习且开始刷题。大二开始就要准备投实习了。这样算下来在研究生开始前就至少有三次的实习机会(大一千万千万别摆烂躺平)。就现在的环境来说实习还是有机会拿return的。如果非常不幸三次都没有,我觉得大可以再读一年。如果同时有研究生的offer和实习的return, 如果不是大牛校,请直接选择return, 且要工作个2-3年。美国公司也看学校排名的。 就美本cs的且有强烈留在美国的意愿的同学,本科的stem opt 请一定一定要用好用满,千万别因为研究生就放弃了(三次抽h1b的机会啊,错过就太亏了)。

实习对于美国cs研究生同学:
如果你是转码的请在大四暑假好好刷题,研一的暑假开始实习。研一就是你实习的最后机会了,万万不能放弃!

总结一下:实习刷题比gpa重要的多(留在象牙塔的除外,因为你毕业就跟大学没有半毛钱关系了),当然成绩也不能太差挂科,得过且过就行。实习期间一定要认真努力拿到return, 这样你后面的路就会好走很多。

PS: 这些都是我踩过的坑,我已经回不去了,但是学弟学妹还有机会,请一定好好珍惜把握。
注意: 申请ng岗位的同学一定要提前看好要求,这些岗位都是有毕业时间要求的。像tt,你过了他的岗位毕业时间要求他也会给你发oa, 但是不论你做的多好,系统自动就把你拒了(我当时以为我刚毕业不到一个月也算是ng吧)。 所以请一定看好!!!

美国招聘迷思:
大家不妨看看现在公司自己的招聘网站,除了ng和intern 现在找的全是需要2+,3+ non-intership experience 的岗位。就现在的情况甚至很多有5+ yoe的人来争,我感觉这个+用就非常魔幻哈哈哈哈。而且linkedin和indeed 这种招聘网站上可以说是99%的岗位都是虚假的,过时的,请问1年以内yoe的同学该何去何从?

国内招聘迷思:
由于美国的竞争极其激烈,有人劝我在国内投投看。我投了以后确实收到了不少面试(感觉像年底hr刷kpi的),但是非常恐怖的是面试流程一走完就跟你说没有hc或者让你一直泡池子hr原地消失。国内竞争非常激烈。个人感觉国内对国外学历的认可度越来也低,且这个岗位面试通过的人比较多,肯定要先招背景强大的(国内卷的飞起)。

投简历迷思:
我投的岗位没有上千家也有几百家了,可是我连简历关都过不了。到了icc我知道简历是可以夸张(就是造假),看着满满都是工作经历以及技术栈的简历,我突然有了一种感觉,之所以我投的过不了,是不是我的简历不够出彩呢?后来我找到了一个专门帮别人写改简历的机构看看,他给我了一个之前给别人写的模版,我看完当场就傻眼了。简历上技术栈的那一栏堆满了技术。举个例子前端angular, react, vue,编程语言 java, python, go, c++, js, typescript 等等, 后端框架 microservice, spring, springboot, Django, 等等,数据库 mangoDB, MySQL, DynamoDB, 等等,还有云服务的经验 AWS, Azure, 微服务框架。还有docker, k8s, spark, kafka, 还有rabbitmq 等等。简历里面的项目涵盖前端,后端,数据库,部署,测试,还有机器学习。我当时是真的非常震惊,这个简历仔细看的话虽然没有这么多实际工作经验,但是实际上项目内容和技术栈其实比icc的还夸张。当时我认为应该不会有人敢这么做吧,但是看过我一些朋友的简历,他们确实也是这么写的,这里不乏有人有大厂实习经验或者牛校背书。他们说这么做是为了过简历关键字筛选。前两天我看到了一帖子,有人对这方面提出了质疑,但是也有人认为他们有人实习过很多次所以应该是会的。但是就我在研究生接受的cs教育和我周围人在大厂工作或实习的朋友在公司干的内容来看,我是不信的。这简历通货膨胀的也太严重了吧,所以我想呼吁一下,如果有面试官朋友看到这个帖子,以后再遇到这样的简历面试时请加大力度。

System design 迷思:
就现在对要不要对实习生或者ng甚至只有两年以内工作经验的人面 System design (ood不算哈)的问题来说,我是持保留意见的。因为我有icc的面试可能会考系统设计,所以复习了一下。系统实际里面涉及到的知识与组件非常多,但是如果你只是个造轮子的,你怎么可能真的造的出来一辆完整的汽车呢?当然我也能说我知道,车不就是发动机,变速箱,壳子和轮子吗,这还不容易,可是你真的知道变速箱内部的原理吗?你只是知道轮子是用来和地面接触的,引擎是提供动力的,变速箱是改变速度的,全部都是面向面试学习这个真的有意义吗?再来举个例子,如果说你在油管搜索system design, 你会发现有一个叫Mark的ex-Google EM 在模拟面试。我当时乍一看觉得这个人很强,但是在我多看了两三遍后我觉得有点怪怪的,他的回答其实都是很表面很套路化的,总感觉在真实的场景下他一定会挂的。当然了,上面都是我的主观想法改变不了什么,如果大家面试要面到system design,请大家务必好好准备。

刷题的迷思:
之前我为了准备我人生中第一个,也是到目前为止唯一的一个自己投的美国面试,我疯狂的在地里看面经,做面经的题。就笔试而言我觉得最后一题的难度都很大。就面试算法题而言,我感觉如果你不在短时间内一遍给他bug free的a出来,如果面试官提醒你了,这次面试你基本上就没了。刷题是一个非常痛苦的过程,一道题就算反复的做,过几天可能就忘了。我个人认为如果要达到美国面试的水平的话lc周赛必须要在2300分以上才有机会。之前有个大佬跟我说,要通过美国的面试你一定要达到leetcode easy难度读题加写要5min以内,medium 15min以内,hard要在25min以内。之前我觉得太夸张了,但经过唯一一次面试我发现他说的对。一般情况下面试是由两个mid 加两个followup组成算下来时间差不多的。所以给我感觉连续面过好几轮进大厂的都是人均acm水平,更不用说xhs上面在大厂工作的网红程序员小姐姐了,那个就是神,哈哈哈。

某些培训机构或者所谓xhs上面的保offer
对于某些找工作的培训机构,他会培训你算法然后给你规划路线,但是我觉得它们的性质基本上等于留学中介。首先算法讲解与算法题的解析在网上都能找得着而且非常多,肯不肯下功夫练就是自己的事情了。其次找规划方面他无非也就是告诉你什么时间该做什么事,帮你简历润色,给你mock几次。我认为这些东西都是自己可以规划的。他们动则就大几万rmb的收费实属不值。如果你真的要找他们,请在研究生入学前的暑假就找,如果到了研究生的中后期发现自己不行再找他们补救就完全没有意义了(我身边有真实的例子)。
对于xhs上面的保offer, 大家一定要慎之又慎(本人完全不推荐),他们确实存在给你发offer的可能,甚至告诉你实习后能转正。但是那些给你发offer的公司很有可能就是为了骗你钱的野鸡公司,你在实习期没准就找个理由给你裁了。

icc:
作为留在美国的最后一个选择,也请大家谨慎,就目前的情况不到万不得已别来。首先,icc会有高额的赔付违约金。其次因为现在市场不好,icc里的面试也非常少。最后,如果你一年都没在icc上岸,你就会有一年的空窗期,这对未来找工作会有非常大的影响。如果临近毕业没找到工作,请先考虑国内的厂。

面试作弊
首先,我非常鄙视和反对这个事情,但是我也能理解,毕竟你工作可能连二分都用不到,这就印证了之前为什么有人作弊入职,但工作后并没有因为能力不足被开除。其实如果你投了几百封简历只有一个面试,或者你挂的只剩下一个面试了,那我也只能建议你八仙过海给显神通吧。
PS:当然还有读博这条路,现在本人还在探索。如果不成就只能等着回国黄袍加身了(蓝袍也行哈哈哈)

补充内容 (2024-01-31 23:32 +08:00):
关于indeed里面的码农工作是真是假的问题,实在不好意思,可能我说的有些绝对了。如果你真的有3+yoe or 5+yoe 那确实可能是真的。如果你没有,那你基本上就没有什么可以投的岗位,因为你的竞争对手里面有大量被裁的有经验的程序员。但是linkedin 是这不行❌。

补充内容 (2024-02-01 01:03 +08:00):
有朋友提出了lc 周赛2300 的质疑,说我危言耸听,对于这点我可以给出以下回应:
如果你有2300,就代表你可以平a北美面试笔试所有算法题无需面经。而且你并没办法预测面试官出的是什么题,面经有的时候并不准。举个自身的例子,有一个北美厂的一面市场45min,首先自我介绍加项目浅挖 15min。然后给了一道lc easy 的题,我5min 写出来了,但是在写之前面试官要求我讲思路举例子,这就有5min。 最后25min lc41,我先说了暴力的思路,然后面试官要求我要O(n)的时间以及O(1)的空间,请问如果你没见过这个题,你能在25min内bug free做出来吗?

补充内容 (2024-02-01 05:57 +08:00):
刷题迷思(扎心的话)
下面的话都是本人主观看法,请大家理性分析:
就当前环境刷题的重要性,先说结论:意义越来越小,就这个结论我做出了以下分析
首先,咱们要看看竞争对手是谁
24届校招: 24届应届生+23届应届生+25届应届生+可能还有某种方法装成应届生招聘的往届生或社会人士。
社招:23届及以前没上岸的同学,加上无数被裁的(我听说甚至有人有10年yoe)
我之前看到一个帖子,大厂发布一个岗位不到一天就有几千份简历,但这个岗位就现在可能就招很少的人。你费尽千辛万苦好不容易过了简历关和oa来到了面试,如果candidates 太多了,面试官为了区分水平很有可能出hard(他可能并不是不想招你)。之前我说lc要刷到2300分(现在我觉得都说少了)因为你不知道你决赛圈有多少对手后面站着acm 金牌选手或lc 2500+的选手。前两年可能说hard我做不出来但是我跟面试官聊了思路,思路正确他就放你过去了。但是如果今天你的对手不仅思路说对了还一次就bugfree的做出来了。在当前如此激烈的环境下你的面试结果很可能是goose egg zero。 现在刷题有没有性价比,这事儿我其实也不知道。(有些话已经说的很直白了,希望大家可以理解)
  • 124
52条回复