三本EE到亚马逊实习offer--2015找暑期实习总结及转专业自学指南

avatar 99321
wy193777
35479
91
[align="left"]今天晚上刚刚收到Amazon的实习offer(希望不是发错了人), 本来就一直想写篇文章回顾一下自己自学CS的经验 现在有个offer在手, 应该更有说服力了. [/align][align="left"] [/align][align="left"]先上干货, 后面回忆性的文字太长太啰嗦, 不想看就算了. [/align][align="left"]能拿到Amazon实习offer的积极因素:[/align][align="left"]1)虽然是转专业, 但是来美国前已经学会了python, C++.[/align][align="left"]2)第一学期在Coursera和学校分别上了三门算法课, 基础知识足够, 刷leetcode不会完全看不懂.[/align][align="left"]3)Leetcode虽然到现在也只刷了一半多点, 但是总还是刷了一些, 能应付简单的算法面试. [/align][align="left"]4)Amazon实习面试确实比较简单, 不会考太难的题, 而且经常出重复的题, 地里的面经会有很大帮助. [/align][align="left"]5)内推很有用!![/align][align="left"]6)第二学期课选的比较水, 有时间刷面经和leetcode. [/align][align="left"] [/align][align="left"]海投简历基本都被拒的一些原因:[/align][align="left"]1)转专业简历上没啥东西.[/align][align="left"]2)没有能直接转化为生产力的实用技能.[/align][align="left"]3)第一学期没有把必要的技能点上, 如SQL, Linux, 数据库(三月才加到简历里).[/align][align="left"]4)没有积极找内推. [/align][align="left"] [/align][align="left"]一些比较好的入门资源[/align][align="left"]1)udacity.com: 有很多免费的入门课, Java, Python和前端开发等等. 这个网站所有课程都是可以免费上的呦, 不要看见free trail就以为必须交钱. [/align][align="left"]2)coursera.org上面有海量的CS入门和进阶课程, 如果时间比较多, 可以挑自己感兴趣的跟一跟. 而且网络课程可以一次选很多, 然后听一听, 再把不喜欢的都退掉. 其中普林斯顿和Rice的算法课非常扎实. 还有Scala发明者教Scala, 等等等等. [/align][align="left"]3)codecademy.com, 非常好的CS入门网站, 交互式的学习方式让学习有了打游戏过关式的快感. 如果还不知道编程能干嘛的同学请迅速来看看, 跟着他的教程一步步就可以做出有动态效果的网页. 可以学Python, js, HTML, CSS, jQuery和Ruby[/align][align="left"]4)class.stanford.edu 比较扎实, 上完就可以把SQL和数据库设计增加到简历里面了. [/align][align="left"]5)book.douban.com, ruby发明者写的, 内容比较浅显易懂, 适合培养兴趣.[/align][align="left"] [/align][align="left"]下面是回顾:[/align][align="left"] [/align][align="left"]楼主国内某三本EE毕业. 本科阶段比较热衷于参加科技竞赛. 我们学校计算机的氛围不浓, 第一学期以后学的好CS学生好的都往ME和EE转. 所以参加科技竞赛的都是嵌入式, 单片机和机械设计, 要不就是数学建模. 本科参加科技竞赛也稍微接触了一点CS的知识, 不过写单片机只用C语言, 而且也用不到CS的那些算法, 数学建模竞赛又基本打了酱油. [/align][align="left"]大三的时候利用寒假在家不想背单词的时间在Codecademy上学了Python和JS, 从此开始了我的CS之路. 大三下学期开始接触MOOC, 在Coursera上先后上了几个比较简单的CS课, 大概接触了一下ruby on rails, 安卓开发, 图像算法. 还有很多其他只看了一点就放弃的课, 算是对CS的各个方向有了一点了解. 大四的寒假我还上了那个Scala发明者开得函数式编程入门. 因为Scala借鉴了很多C++和java的东西, 比如泛型, 只学过C和Python的我根本无法理解. 当时上的完全云里雾里, 靠着上Github搜答案勉强拿到了证书, 不过Scala到现在我都不敢写到简历里面. [/align][align="left"] [/align][align="left"]本科的最后一学期因为很闲, 而且做毕设有个有网的实验室可以去, 所以在那里上了北大在Coursera上得C++的课. 这门课非常扎实, 第四周作业是写一个大整数的四则运算类. 加法我写了一下午, 减法一下午一晚上, 然后乘除写了三四天才通过了他的OJ, 后来还有个叫魔兽世界的作业, 没啥算法, 就是各种控制逻辑非常复杂, 我也写了好几天. 最后终于做了出来. 讲完了C++的基础知识后又讲了些算法思想, 枚举啥的, 完全不知所云, 干脆放弃. 最后拿了60得到了证书. 在这段时间还看了一本用Python讲算法的书, 对排序, 链表, 栈, 队列以及哈希表有了一些认识. 学完C++基本坚定了我转到CS的信念. [/align][align="left"] [/align][align="left"]本科毕业到来美国之前, 看了一本Ruby发明人写的书: 代码的未来. 这本书介绍了一下各种编程语言的特性, 以及现在计算机领域发展遇到的一些问题. 具体内容我已经都忘了, 只记得体会到了哈希表的神奇.[/align][align="left"] [/align][align="left"]八月来到美国以后, 租好了房子申请完转专业就开始在Coursera上刷普林斯顿大学的Algorithm I以及Rice U的Algorithm Thinking. 同时在学校也选了一门算法课入门课以及另外两门水课(看课程介绍感觉是我比较喜欢的内容, 没想到那么水). 于是第一学期基本上就是分别用C++, Python和Java各学了一遍算法. 同时必须要说, 普林斯顿的算法课非常牛逼, 基本上未来面试会用到的算法基本上都讲到了, 而且作业也比较有挑战性. 同时学三门算法课的结果就是: 1)我觉得学校那门入门算法课非常简单, 作业随便就做出来了. 2)做作业的时候顺便把Java也学了. [/align][align="left"]第一学期快结束的时候开始刷leetcode, 同时开始投简历. 由于我的简历上面没啥CS的Project, 基本上还是本科EE的那些东西, 而且可能基本的技能也还没点全, 比如没有数据库, Linux以及web相关的, 所以简历投的很不顺利, 基本上都被先后直接据掉了. 由于寒假基本无心学习, 加上同学来玩, 第二学期开学的时候leetcode总共刷了六十几题. 而且开学以后陆陆续续收到了很多rej, 感觉人生无望, 面试都拿不到, 刷提还有啥用. 刚刚开学时在学校网站上投了一些纽约的金融公司. 只有瑞士信贷给了面试. 第一轮完全是behavioral question, 面完以后第二周被拒掉. 后来有个在亚马逊上班得学长帮我内推内推, 同时教我改了一下简历, 把普林斯顿算法课的课后作业写了上去. 现在的简历上是三个普林斯顿算法课的作业当project. [/align][align="left"] [/align][align="left"]学长给我内推完没多久就收到了OA通知, 立刻就有动力使劲刷题了. 对照着地里的面经, 加上每天额外刷几道. 到2.19第一次电面的时候总共刷了80道题. 第一次电面题目都做出来了, 由于考了原题, 直接打开leetcode照着写了代码. 等了一周亚马逊非常罕见的又给我安排了一次电面. 问HR, 答复说面试官没有得到足够信息决定是否雇佣我. 我估计是简历上东西太少导致. [/align][align="left"] [/align][align="left"]3.5号第二次电面, 又出现了原题, 再一次打开leetcode抄. 由于害怕亚马逊拒我, 3.5面完以后继续海投了一些公司, 其中包括Facebook. 其中一家小公司和Facebook很神奇的给了我电面机会, 不过还没来得及面, 亚马逊的offer就来了. 小公司肯定不如亚马逊, 其实还是挺想去FB的. 不过估计过不了电面吧.[/align][align="left"]
[/align][align="left"]求加米![/align][align="left"] [/align][align="left"] [/align]
  • 90
91条回复