【猎云网(微信号:ilieyun)】1月29日报道 (编译:蔡妙娴)
7个学期前,我开始了大学生活。那时丝毫没有编程基础的我,却梦想着在科技行业找到一份高端的工作。
很快,招聘季到了,我给好几家公司投了简历,虽然也有后来联系我的,但全都止步于此。然后,就没有然后了,没有面试,什么也没有。
但我不放弃呀,我又盯上了150多家公司。广撒网总是有成效的,于是我接到了数十个面试通知。
我的失败经验可谓丰富,不过没关系,因为只有在失败之后,成功才会显得更加珍贵。
在这一路面试中,我遇到了良师益友,也给雄心勃勃的后来者提供过指导,如今,这些人要么在Airbnb、Facebook工作,要么在谷歌、SpaceX、Snap工作。
至于我,去年夏天,我终于申请到Uber的实习,毕业之后,也可以去自己心仪的公司成为正式员工。在临近毕业之际,我想和大家分享一些这几年总结的经验,当然,我的经验不是万能手册,只是源自我内心助人为乐的热情。
开始之前
不要因为渴望十全十美的工作,而忘记生活的美好。大学是自我发现、自我成长的时期,所以请多多社交,认识各行各业的人。加入几个学生组织,参加各种活动,不要在自己的舒适区混日子。
你可能会想,找到一份高端大气的工作,是证明自己的价值的最好途径。但记住:生活中还有太多重要的事情。
我最美好的大学记忆不是花数周的时间准备面试,甚至不是接到录用通知,而是几个好友结伴,徜徉在街头巷尾,感受那别具一格的旧金山。相较于工作,我更珍视和我爱的人一同游玩的经历。
引用Twitter兼Medium创始人Ev Williams的一句话:工作失败不等于生活失败,人际交往失败才是真正的失败。因此,不要忽视真正重要的东西。
抓好基础
在建高楼之前,你要先打地基。好像是废话?确实。但是,在我所有的经验当中,这是最重要的一条,所以请仔细看。
我的指导针对的是大学生,如果你是高中生,嗯,可以关网页了。开个玩笑,我很敬佩这样的高中生,因为当我在读高中时,根本浑浑噩噩,不知道自己想做什么。言归正传,大学期间,你的首要任务是巩固数学技能。计算机科学与概率、逻辑、数论等数学理论联系密切,不懂数学,你就无法撑过筛选课程,更别提技术面试了。
打基础首先从基础编程课开始,一定要重视基础。大学生经常会有一个错误的观念,那就是:GPA(平均成绩点数)没什么重要的。这话有一定的道理,因为大部分公司不会去查核你的GPA,但是,如果你在基础上有任何缺陷,日后工作一定会出问题。重视GPA,其实就是给自己打好基础。
[菜神译 ]学校的课程涵盖了很多基础知识,但与广阔如海洋的现代科技相比,这些只是浮光掠影。你要做的是,在老师教授的基础课程中探索自己感兴趣的内容,拓展知识的广度和深度,为未来的项目开发奠基。
如果你读的不是计算机科学专业,没关系!
我认识几个朋友,在大三的时候才决定改修计算机科学专业,最终和别人一样按时毕业,并且拿到了很不错的offer。所以,只要你想学,什么时候都不晚,当然,稍微牺牲自由时间是不可避免的。
如果学校里不方便修相关课程,现在网上丰富的资源也足够你自学了。
入门部分我推荐edX上的哈佛 CS50x和Udacity上的CS101;之后,在数据结构和算法方面,我推荐Coursera上的普林斯顿的Algorithms Part 1和Part 2,或者加州大学伯克利分校的CS61B。
一开始搞不懂?不要紧
刚开始学的几周里,我满脸黑人问号。别的同学几小时就能掌握的概念,我要学习几天才能明白,每个星期我都在想,要不要放弃?就我这个水平,怎么赶得上那些智商爆表的学霸?
但是,如果你问我或者我的朋友,我们会告诉你同一句话:学编程和你的智商高低无关,和你多早开始学也无关。贵在坚持。
学编程和学语言是一样的,时间长了才能找到感觉,你可能感觉自己在一个黑漆漆的隧道里,看不到曙光,但请相信我,只要一步一步走下去,总有一天你会走到终点。
如果在过程中失去动力怎么办?我教你一个诀窍。
注重技能累积,而非只看结果
你对自己的要求应当是,在某一个技能上越来越熟练,而不是非要达成某个结果。Heidi Grant Halvorson博士曾经做过一项实验,让两组人去研究同一套问题,第一组人的要求是尽可能得高分,第二组人的要求是将解决问题的过程看作是一次学习的机会。
实验结果令人震惊,第一组人非常沮丧,而第二组不仅坚持下来了,而且解决的问题更多。
抱着注重技能积累的心态,你在遇到阻碍或受时间限制时往往能收获更多。
更重要的是,当你怀有这样一种心态时,你会发现自己在不断成长。每读完一段新内容,解决一个新问题,你的技能都得到了提高。
除了编程技能,你还要了解科技行业的动态
除了让你在面试的时候更胸有成竹,了解行业动态也是发现新机会,更好地规划职业生涯的重要途径。
在线获取信息方面,我推荐TechCrunch、Techmeme、Product Hunt和Hacker News。如果你经常用Twitter的话,可以关注一些科技新闻账号;在Medium和Quora上,你可以进行个性化选择,获取对行业的深入解读;如果你喜欢邮件新闻的方式,不妨试试CB Insights和Mattermark Daily。
如果想要深入了解一家公司,Crunchbase和该公司的博客是最好的选择。你也可以在Glassdoor上熟悉这家公司的企业文化。最后,不要忘记和人交流。我对科技行业的了解,很多都是来自和朋友、同学的日常交谈。
基础打好了,是时候把这些技能运用起来了。
项目开发
你可能和我一样,没什么经验,不过没关系!首先,你要在空荡荡的履历表上填满研究的项目。开始的时候,我因为选择困难症纠结了好几天。“我该做点儿什么呢?万一有人已经做过怎么办?万一别人不喜欢我的创意怎么办?”后来我意识到,其实你做什么无关紧要。认真把项目做完,从中汲取经验,这些更重要。当然,也不是说你想做什么就做什么,如果你的项目太平凡,HR们是无法被打动的;但如果你的项目太复杂,恐怕在完成之前你就已经没了动力。
你要选择一个能在1-2个月内完成的项目,覆盖数据结构、算法和设计等内容。一定要挑自己喜欢的,只有这样你才能一路坚持下去。
编程马拉松是激励自己的最好方式
学校和各个公司会经常举办为期几天的编程马拉松,在这段时间里,你能学到很多东西,迸发出灵感,认识不少有意思的人。
北美地区比较有名的编程马拉松有PennApps、HachNY、MHacks、HackTech、Hacklllinois、CalHacks、TreeHacks、Hack the North、YC Hacks和Greylock Techfair,当然你也可以报名一些开源项目。
不想做项目?调查也行的
如果学校没有大学生研究项目,可以打探一下你的教授们都在研究什么。如果他们的项目看起来蛮有趣的,你可以给他们发邮件,问他们能不能去帮帮忙。我相信你会发现,教授们都非常喜欢积极的学生。
在熟悉之后,你甚至可以问问团队其他成员,能否将你引荐到某些知名公司。
平衡好项目和学业
我经常听到有人抱怨说,“课程那么紧,我没时间做课余项目啊。”每当我自己也产生这样的想法时,我会觉得面红耳赤。每天为项目腾出时间这是很难的,因为和课业不一样,没人给你的项目设定截止时间,也没有考试。在一天的课程之后,我们总会在“是去刷朋友圈呢”还是“做项目”之间犹豫不决。但是,如果你无限期地把项目推后,那么即使到学期末你也还是一事无成。
为了克服拖延症,你要强迫自己撸起袖子干起来。即使只是15分钟,时间一长,你就能养成每天进步一点点的习惯。
这也是编程马拉松和研究项目的优势所在,因为它们往往有一个期限,逼迫你克服惰性。
写简历
写简历听起来很简单,但其实有很多需要注意的细节。毕竟,这是HR对你的初次了解,留下一个好印象还是很重要的。
并且,你要快速给人留下印象,因为HR花在一张简历上的时间平均只有6秒。是的,6秒。
这6秒中内,HR会扫视你的姓名、公司、职位、入职时间、学校、专业和项目名称。你的简历应当尽量清晰明了,让HR一眼就找到他所需要的关键信息。
要点:
1.一张纸。
2.如果没有学过设计,白纸黑字就可以了,彩色会让人心烦。
3.用好标准模版,模版往往更易阅读。
4.尽量简洁,长篇大论只会让HR头疼。
突出重点:
1.名字字体要大。
2.所在公司的名称、职位、入职时间、学校名称、专业和参与过的项目名称加粗,比较重要的内容放在前面。对于学生来说,所填顺序是:教育>经历>项目>技能。
需要简洁明了的:
自我描述要写些实实在在的东西。比方说,“优秀的团队合作者”——这是不行的;“用户转化率提升20%”——这是可以的。HR们通常没有多少技术背景,因此不要写得太专业、复杂。
不能忽视的细节:
1.不要忘记写累积GPA和专业GPA,但是,如果都低于3.0的话,还是别写了。
2.在每一个参加过的项目下方添加演示片或Github报告的超链接。
3.对于自己不愿意回答的问题,不要写与之有关的任何东西。
写完简历后,你可以给同学看看,是不是做到了真诚、一针见血。就我个人而言,我的第一份简历和第十份简历相比,简直是垃圾。
准备面试
面试问题可以分为两类,行为问题和技术问题。你至少要在申请岗位的两个月前就开始练习。鉴于招聘大会都是在8/9月份开始,暑假会是个绝佳的练习时间。
行为问题
行为问题的目的在于了解你的背景,包括是不是真的做过简历上所说的那些事。不要放松警惕,如果表现不好,行为问题照样会降低你被录用的几率。
技术问题
技术面试的核心就在于技术问题,如何顺利闯过这一关,以下4个工具可供使用:
《Cracking the Coding Interview》(申请前2个月)
LeetCode(申请前1个月)
模拟面试(申请前2个星期)
Glassdoor(申请前2天)
征战面试
对于许多人来说,面试是最紧张的一个环节,不过,你放心,面试官是站在你这一边的(虽然看起来好像不是)。
在面试前,我希望你记住以下一点。
展现出热情!
无论录用与否,热情在面试过程中绝对占据非常重要的位置。如今的公司都喜欢谈论认同自己的企业文化的求职者,说白了,他们想要的不过是对其目标和产品有着绝对热情的人。
但问题是,很多人都不知道怎样展现热情。最好的办法就是,在面试之前准备好一个单子,列上你喜爱这家公司的原因。在回答面试官的问题时,尽量扯上单子上的内容。你可以在Crunchbase或这家公司的博客上面找到自己所需的资料。
录用
恭喜!你被录用了!给自己鼓鼓掌,这都是你辛苦赢来的。
但是你的工作还没有结束。首先,你要感谢面试官,接着,再三表达自己对该公司的热诚之心。最后,你就可以要一份书面录用通知了。
总结
希望在读完这篇文章以后,你能比我刚涉足科技行业时更成竹在胸。
最初的时候,你会感觉拿到录用通知几乎比登天还难,但如果你将它看作人生路上的一个小小的里程碑,而不是艰巨的任务,那么事情可能就轻松多了。只要你每天在进步一点点,有一天你会发现,自己不知不觉就成功了。