注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
本帖最后由 Cinder_Umbrella 于 2013-4-13 14:00 编辑
我来说说我的经历。我的CS背景在本科阶段相当于零基础,偶尔的project也是copy别人的code,来了美国中西部没有名气的小学校读EE MS,开始时很迷茫,不知道应该做什么。后来机缘所致学了门理论的算法课,觉得很有意思,于是在去年11月份的时候开始立志恶补CS,从本科最基础的data structure开始上起,到OS,图论,Algorithm,数据库和AI。其中有些课因为是本科生的并不能算MS学位的学分,也就相当于我纯粹出于兴趣,比别人多修了好几门课。上CS课的感觉和EE的课完全不一样,简而言之就是一个字,爽。再也没有那种乱七八糟又毫无用处的公式推导和死记硬背,掌握很容易上手的语言后,接下来就是非常挑战智力锻炼思维的各种编程项目,虽然想的很慢很累,经常熬夜,但当程序能高效地以简洁的代码跑通的那一刹那,还是非常有成就感的,这种感觉是做一百道傅立叶变换或者麦克斯韦方程组这种东西永远没法带来的,而且你还时刻感觉你学的东西是真正有用的——是的,我觉得CS是为数不多的基础学术知识可以大范围被应用在工业界工作中的专业——如此一来学习的动力自然也有了。
说说准备工作的经历。其实我还是花比较多的时间在学校的课业上,只是课余有时间再会看看面经刷点题。和地里的很多大牛相比,我仍然是菜鸟一枚。Cracking the Coding Interview别说过好几遍了,我大概看过一半的题也不到,不过确实cover了一些比较重要的章节,比如string, array, BST, search等等。把一些看到过出现频率最高的经典题做了做,比如reverse linkedlist/string/integer, graph/tree traversal, string中的找最长回文,用stack实现queue,找top 10用minHeap,以及Hash相关等等。DP的问题只写了最经典的最大子序列和,coin change还有edit distance(以及其变种fuzzy string match)的问题,写一个就要花几乎很长时间。事实上很多题写过第一遍,过段时间再回过头去看的时候根本想不起来怎么写了,可见我的水平还是不咋样的。
对于练算法题的资源,除了著名的Cracking一书外,地里也有很多人提到了leetcode,geekforgeek等网站,都是很牛的而且有很好的solution。但我其实只是在搜算法题解法答案的时候(好吧好些题折腾好久都想不出来最后还是去网上查的答案)路过而已,并没有仔细看。更功利一点的方法,我觉得直接上CareerCup/glassdoor/mitbbs上直接看真题,这和考G考T时直接刷机经比漫无目的的听VOA之类的要高效其实是一个道理,其实只要面试时有问过一道你做过的题目,就爽到了,这只是我的个人观点,不一定正确。
下面隐藏的部分是面经。积分设置已降低。设积分主要还是因为NDA,虽然我始终觉得这玩意儿和考GT时填的那些协议一样很诡异,但既然大家都那么谨慎我也不敢大意啊。但面经是一定要说的,因为我自己也得益于面经才能知道是什么类型的真题可供演练,如果大家都不说面经,你的面经从哪儿来,是不?如果你离面试还早的话隐藏部分暂时不看也行,先把基础打好。
作为一年前还不知道ArrayList为何物的我,今天能算有个交待,当真算是对Warald当年所说的“练好编程是王道”,“CS可以速成”深有体会了。我只是地里众多顶着EE学位找CS工作的其中一位,虽然个人感觉拿到这个offer运气成份很大,但也希望用亲身经历来给大家鼓劲。不管曾经背景如何不match,如果你下定决心转CS的话,只要肯花时间学,多做题,offer一定会有的。
最后还是祝地里的筒子都有好结果。虽然真题面经啥的还是mitbbs更多,但这里感觉更是同龄人学生的氛围浓厚些,希望一亩三分地越办越好。哦也
|