首页 百科知识 在金融界做–工程师自述

在金融界做–工程师自述

时间:2022-08-28 百科知识 版权反馈
【摘要】:在美国做程序员,工资还算可以,压力也还好,另外市场缺口也相对大。作者本人去美之前的学历是大连理工化学工程工艺本科,后来在美国读的CMU的master of chemical engineering,现在在纽约一家面向金融市场的IT公司供职。我也在最短时间做出了调整,第二学期便报名了入门级的CS课程。

在美国做程序员,工资还算可以,压力也还好,另外市场缺口也相对大。

如果你要做一件事情,而你又不知道方法,你就应该去问做过这件事儿的人。这里要注意:问一个聪明人,许多时候远不如问一个傻子管用。因为聪明人很聪明,他们随便怎样便可以很轻松地把事情做成做好,所以他们的经验可能许多时候并不适用;反过来,傻子往往能给出很多不错的建议,因为傻子没有足够的天分和才智,傻子们需要付出十足的努力,收集大量的信息,不断坚持正确的方法,不断地跌跟头,才能获得自己想要的,所以傻子给出的经验和建议大多时候更加可取。

好消息是,本文作者就是这么一个傻子,写下的则是那些傻乎乎但是直白实用的经验与教训。在这里我希望能和读者分享一些自己的体会,哪怕能帮到一两个人也是好的。

作者本人去美之前的学历是大连理工化学工程工艺本科,后来在美国读的CMU的master of chemical engineering,现在在纽约一家面向金融市场的IT公司供职。成绩单放眼一看全是B,找个大写的A很不容易。总结起来就是牛校的非牛人。在国内学的C语言入门,正式学编程是来美国几个月以后,成绩单上一共也就5门CS专业相关的课程,都是自己平时挤时间外加利用暑假学的CMU的比较基本的本科CS课程。如果刚来美国时有人告诉我我将来会做程序员,我是不会相信的。

我跟聪明这个词连边儿都不沾,因为从小就不是尖子生。到了人才济济的CMU,放眼全是清华、浙大、中科的尖兵,配上优秀的印度留学生和美国犹太学生,我的成绩没有可能引起人们的重视(就像我的长相一样)。

但最终有两个好的想法帮我后来获得了还算满意的局面。

1. See the big picture。我很早就意识到了将来就业的问题。第一次学校春招的时候我去凑了凑热闹,发现海海的公司大多都是来招程序员的,招化工人才的相对偏少(而且大多要citizenship),这也很好理解,因为CMU的CS及相关专业在美国是口碑很好的,另外传统行业偏向招募美国公民,而对外来留学生最友善的行业,非IT行业莫属。另外我对之前几届前辈们的就业情况也做了一些研究,发现自学CS课程的在就业市场上的优势更大,而少数完全投奔CS的则早早地就拿到offer了。我也在最短时间做出了调整,第二学期便报名了入门级的CS课程。后来学期结束,我约谈教授,提到了我想入行的问题,教授给我列出了一张课程清单,其中涵盖了做developer所需的基本课程。最后他祝我成功,对我说:“After you went through all those courses I put on this list,you will be very employable.”并同时做了一个数钱的动作。对当时的我来说再没什么比这个更吸引人了。后来我也就大幅增加对学习CS的投入,而那些教授帮我列出的课程对后来就业起到了巨大的作用。这里我并不是说CS就比化工好,或是化工就比CS好,也更不是说学编程就能找到工作,而是说在留学过程中要尽早清楚自己的目标和周围的大环境,并随之加以调整,在有限的时间内让自己尽可能地适合市场。

2. hard things make a difference:学编程并不轻松,开始学编程后经常熬夜甚至要熬通宵编写code。multi‐thread,virtual memory,各种算法,对我卑微的智力简直就是酷刑,而修改bug更成为了家常便饭。大量的咖啡和能量饮料也是现在回想起来都后怕的。

之所以提这些,也是希望大家明白,编程对很多人来说是一个需要大量投入时间和精力的工作。不过我们来美国留学并不是为了度假,而是为了在更高水平的教育下解放自我,提高能力,让自己达到更高的境界,用青春来换取实力。而判断一件事能不能让自己有大的提高,最好的方法就是看这件事容易不容易做成。吃薯条点心很容易,坚持去跑步健身很难;睡觉很容易,熬夜学习很难;看电视很容易,学知识很难。总之,困难的事情,大多都是有更多回馈的。我周围许多优秀的人,有IT的,有投行的,有科研的,在学校时都是熬夜不断天天学习。他们都坚持让自己不断在困难的道路上前进,最终使自己更加具备竞争力。

背景介绍有点扯远了,但基本的意思希望我都表达的清楚了。留学生除了少数大牛以外,大多数人都要面对自己在能力、学校排名、专业就业等方面的种种不理想。留学期间我们唯一拥有的,就是奋斗、学习和选择的机会,把握好这些机会,即使起点稍低,也可以获得巨大的回馈。

从毕业到失业到就业

其实和找工作的历程相比,学校里熬熬夜赶赶due都是小意思。

年底被一堆期末考试和due折磨,终于毕了业。之后就发现自己失业了,under no cover anymore。我在匹兹堡找了三个月的工作,接到了一些电话面试,也去了学校的招聘会,可由于自己专业不对口以及知识学的深度和广度都不够的原因,屡屡碰壁,有时题答得太差被HR羞辱,放下电话后气得拿头撞墙。期间也去过加州onsite,结果第二轮就被淘汰,最后面试官都失去了耐心。在CMU大牛一抓一大把,有同学没毕业就被G家F家相中还有的一口气拿9个offer。传说数不胜数。而我只能一边默默刷题练coding,一边默默查邮箱等面试,第一轮面试面试后悻悻地忍受被拒。后来我反应过来,如果留在匹兹堡我就必须和CMUers竞争,而且都是正经CS、EE出身,而那样根本就不现实。更大的问题在于,匹兹堡是一个我相对熟悉的地方,在熟悉的地方日复一日地过没人管的生活,人也很容易懈怠。于是我便退了房子,一路来到硅谷,一边在Fremont蜗居,一边继续找工作。更换新环境以后我的学习效率提高了不少,对IT市场也有了新的认识:硅谷的机会相当多,在圣何塞街头一晃,满是穿西装配运动鞋,背着旅行包的码农们。硅谷小公司多如牛毛,很多都是start up,这里要说明一下,小公司往往雇佣门槛比大公司要高,因为小公司中单个员工承担的任务会更大,自身想法和实力对公司的发展也有更直接的影响。虽然面试更难了,但对我来说情况却是更好了,因为面试机会增加了,这本身就是很好的提高的契机,在不断面试不断被拒的过程中我一直调整自己,改简历,改穿着,改自己的说话习惯等等,从一开始的第一轮被拒,渐渐过渡到后来面完经理后再收到拒信了(我这人脸皮就是厚)。直到后来6月接到东家的面试。这时已经距离我毕业半年多了,但在这半年里,随着不断地刷题,练代码,看一些计算机系统的书,面试水平也比以前强了很多,脸皮也厚了不少。顺利通过电话面试后一路飞到纽约,无惊无险地通过onsite,第二天就拿到offer了(这里不具体讲流程,因为单个公司的面试过程不具备普遍性,我建议读者到glassdoor上收集面试公司的具体面试流程)。

后来我坐火车从旧金山一路横穿美国到纽约,在饱览沿途风景的同时我也在回想过去的大半年,真正让我找到工作的因素有很多,有CS课程,有刷题,有很多朋友的帮助,但最关键的是不要放弃找工作,不要因为面试被拒就放弃,要每天坚持做正确的事情,以及敢于改变固有的想法(我的简历大改了好几次)。

作者觉得有必要做的事情(We have to do things because things don’t do themselves)随便列一下,没什么特别的,但关键是要每天都去做。

强化个人简历:简历是HR建立印象的第一关,对于大多数找工作的人来说,刚开始的简历和最后得到offer时的简历,是完全不同的:后者要比前者水平高很多。整个找工作的过程中简历应该不断被更新和修改。说到写简历,我倾向于先看所寻求工作的requirements细则,在了解细则以后,要尽量把自己的简历往细则的要求上靠拢。细则要求的,尽量多写,比如说:公司要求应聘者会C++,那么就应该在简历上多突出自己C++方面的经验。细则没要求的,完全可以不写。要记住,一篇臃肿的缺乏重点的长简历,远比不上一篇短小但是符合用人单位要求的简历。决定一份简历第一印象的,是简历上能够引起HR兴趣的关键词,而不是长短、排版、字体这些次要的东西。刚开始写简历时,可以参考网上的模板,也可以使用专业的简历编写器。

做面试题:整个求职过程中最核心的部分,也是最耗时间的部分。虽然说经验是找工作中最重要的,但面试题作为一种直观的、标准的考察面试者思考能力的benchmark,是IT面试者肯定会大量遇到的(这里还要说一点,面试题如果答不出来或是给不出最优解,面试基本就失败了)。leetcode网站上和crack coding interview questions 150上都有练习题,并且大多数情况下都会在面试中遇到题库里有的题。可问题是许多算法题非常繁杂,只有大量的练习才可以让自己面对题时手到擒来。刚开始看到那么多面试题的时候我也头晕,不过练习几个月后就可以把常见的那些都弄懂了。我建议大家先从150题这本书开始,书中除了题目经典以外,还可以帮读者明白面试题的分类和考察方向。以150题为纲要,就可以很好地有计划地处理leetcode上的题目了,虽然不是说刷过所有面试题以后就一定能找到工作,可是没有人愿意因为一个算法题答不上来而被拒:刷题是应对这一问题的最好的方法。

寻找合适的地点居住:这个我深有体会。由于公司需要负担面试者的来往旅行费用,所以大多数公司希望就近招募。我搬到硅谷以后,面试机会比在匹兹堡多了不知道多少,就是因为原先需要公司花上千美元的机票,现在一个几美元的湾区轻轨票就能搞定。同理,很多找石油类工作的人搬去了德州,制药工作的去Jersey,金融的来纽约。搬到机会多的地方非常之重要。

看专业书:我当时一直在看算法类的书和计算机系统类的书。当然读者也可以根据自己的方向决定自己想看的。看专业书相当于“练肌肉”,是增加自己实力用的。由于时间相对有限,找工作时我更侧重于看面试官可能感兴趣的书的重要章节,并练习用英语概括这些章节中我学到的内容。举个例子,在面试官问我virtual memory的时候,我用一个“木工的工作台”来比喻memory,用“有效管理工作台上放置哪些工具”来概述virtual memory的基本想法。这些对于高手来说可能很小儿科,可是对于半路出家的应聘entry level的应聘者来说,是很有帮助的,至少我在面试时这样给面试官讲解,面试官还是很满意的。看专业书并不仅仅贯穿找工作的过程,甚至可以说它贯穿人的整个职业生涯(这是公司senior developer给我的心得)。

在LinkedIn上投简历:这里注意要避免在口碑不好的网站上投简历,浪费时间还容易被ICC骚扰。LinkedIn则非常正规,很多大公司的猎头都在这个平台招兵买马。要注意和HR及猎头保持联系,一个有很多HR和猎头做connection的账户是更吸引眼球的,另外建议大家花钱申一个premium,能够增加自己被搜中的概率。

练习口语:很多中国留学生都会面对这个问题,我的想法是:除了自己练,没别的方法。我一般是假想自己在面试,脑海中要有自己和面试官谈话的场景,然后反复练习回答常见的问题,比如introduce yourself,tell me about××project you worked on,what do you know about××等等。这种练习在进行一段时间以后会非常有用。IT面试不需要倾注太多精力在behavior问题上,而是要更侧重解释自己的skill set和过去做过的projects(这些是HR除了coding题以外最感兴趣的内容)。平时练习用英语来描述这些内容,对实际面试非常有帮助。

接到面试通知后还要上网查阅公司的信息,然后制订几个针对性强的问题,这里指的是和所面试公司的领域,尤其是所用的tech有关的问题。这样在面试官问你还有没有问题时,你可以问些有层次的东西。记住,问问题要比回答问题更难,因为好的问题只有懂得多的人才能问出来的。事先准备不足,很可能就会问stupid questions。最好拿出时间看一下stupid questions汇总,避免犯低级错误。

锻炼身体:非常重要,因为离开学校后就没有了约束,很容易就出现懈怠,锻炼身体是保持旺盛士气的最好途径。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈