一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 4506|回复: 34
收起左侧

[申请] 机械系转CS的经历

[复制链接] |试试Instant~ |关注本帖
xenophobic 发表于 2015-4-27 23:32:33 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
本帖最后由 xenophobic 于 2015-4-27 23:37 编辑

转眼间最后一个学期马上就结束了,来说说我转CS的经历吧,希望可以帮助一下那些正在转,将要转的人。进入正题。

CS背景:本科大一学了一个学期的C语言,学得很不好,基本上不理解书上讲的。很讽刺的是当时觉得这个学了有什么用。大三学了数据结构和数据库,学得一般般。但是好的地方是接触了那些数据结构,对后来的理解起到了一定作用。

转CS:从去年三月决定开始转CS。因为实在是不喜欢实验室的research,以后也很难找工作,偶然之间听朋友说CS找工作很好找。
        入门:
        1. 看书。《absolute c++》。 之所以选择C++,一个是因为以前有一点C的基础,另一个原因是因为我们学校开C++的课特别多。还记得当年用visual studio 写一个hello world 都写了好久,最后发现没有include <iostream> 写了之后发现没有写 using namespace std。总之各种水啊。但是好在我认真的看了一遍这本书,觉得非常受益,包括后来面试也发现很多面试问题里面都有涉及到。因为白天要上课,还要在实验室搬砖,所以进度比较慢。知道五月份才把书看完。如果你学C++,我强烈建议你看 effective C++,一本非常非常的书!
        2. 做project。五月看完这本书之后。向同学拷了他们上课的project 的spec。完整的做了下来,project 是关于OOP design的,这也是第一次做那么大多project。。主要学到了怎么用visual studio写程序,debug之类的。
        3. 蹭课。暑假学校开了一门算法课,于是我早上去蹭课,下午在实验室搬砖,因为9月要过qualify考试,于是搬砖各种累啊。。。晚上就在图书馆码代码。每天码到图书馆关门再走。由于没有auto grader,自己写的也不是很好,只能自己写test cases,和别人对答案。虽然没有写的很好,但是这些projects 对于我第一次尝试找工作起到了很重要作用。
        4. 刷题。最开始的想法上个学期毕业,所以我六月中旬就开始刷题。可想而知,那会刷题的痛苦,基本上没有一题会做。我的刷题入门书:Programming Interviews Exposed. 一本比较简单的书,但是我还是基本上都看答案过来的。。。看完答案后自己码到visual studio上面去跑。这本书刷了差不多三个星期。第二本书是:剑指offer 名企面试官精讲典型编程题,个人觉得这是一本特别好的中文书,里面教你怎么做题,怎么发散思维,由于已经刷过了第一本书,这本书刷得还是挺轻松的,大概用了两个多星期。有一点很重要的事情是:我觉得刷题一定要记笔记!把一些很好的解法抄一抄,记一记,就像熟读唐诗三百首那样。第三本书就是经典了,CC150. 这本书非常的好,相信大家都有听说过吧。但是还是好多不会做。。。。没办法咬咬牙,看看答案分析,还是一样,自己码到visual studio里面。最后在开学前刷了一遍多。有一个网站,博主非常给力大贴出了自己C++答案,这里非常非常大感谢他,对我的帮助非常之大。http://www.hawstein.com/posts/ctci-solutions-contents.html    于是暑假就在早上上课,下午搬砖,晚上码代码中度过了。期间各种艰难,没有朋友一起刷题,看着周围同学的那么开心的玩。不过这段时间成长的非常之多,尤其是对C++ library的熟悉,这个很重要。
        5. 正式上CS的课。由于各种巧合,给老板发现我在上CS的课,这里我要非常的感谢我实验室的老板。他给我选择,要么让我退了CS的课好好做research,要么让我quit phd 好好学CS,不想让我两头兼顾,最后两头都学不好。再三思考之下我决定quit phd。专心学CS,然后同时做系里的TA,赚学费哈。那个学期我上了三门课,一门操作系统,一门关于web的课。这里要感谢一个朋友,坚持建议我上操作系统。一门毕业要求的数学课。事实证明操作系统非常的好,里面的projects 很好,写在简历上也非常的好。 web的课也很fancy,最后实现了PageRank,做了一个搜索引擎。那个学期是我CS素养提高最多的一个学期。
        6. 面试求职。转眼之间学校的career fair来了。本来都没有想去参加的,第一天都没有去。仿佛冥冥之中自有注定,career fair第一天快结束的时候,我吃晚饭来到学校CS building里,本打算刷题的,不想那里有一个recruiter 的聚会,于是我就本着练习口语的态度去和他们聊聊。于是遇到了cisco的recruiter manager,聊天聊的非常的开心,他说他原来是学CE的,后来也转CS 了。于是他鼓励我明天去找他投简历。于是我通宵准备简历。有一种感觉,当自己实力不好的时候,运气往往会很好。第二天我发出去快三十份邮件,收到了好多面试啊。哈哈哈。。其中有一个公司在career fair那里现场在简历背面出了一道题,我立马搞定,于是决定给我发onsite。还拿到了indeed, bloomberg,extrahoop 等一些公司,但是我其他大公司一个都没有投,因为很多公司都有冷冻期。由于暑假刷题刷的多,面试都到最后的终面了,但是可能那会CS素养还是不行,最后都没有拿到offer。但是这次经历给了我很大的鼓舞!这个学期就在各种熬夜通宵睡图书馆中度过。期间还认识了我现在的女朋友哈哈。这个学期学到的知识主要有:
OS:
     multi threads programming.         
     virtual page
     security
     socket programming
     一点 distributed system
     linux file system, transactions
Web:
     HTTP, HTTPs, TCP/IP
     PHP, MySQL, HTML/CSS
     web security
     PageRank, TF-IDF
        7. 寒假继续刷题。上个寒假可以是质的飞跃。整个寒假哪都没有去就在图书馆里面刷题。这里要感谢一个好朋友和我一起刷题!哎,无奈leetcode oj 上面还是好多不会做。。。无奈接着看别人的答案。。。码上去,这一次也很注重代码的质量,而且更加细致的阅读了C++ library里面的说明,尝试用各种不同的函数,不同的constructor。非常感谢leetcode的开发者们!第一次刷leetcode 基本上是按照AC rate来弄的。于是用了大概快两个月的时间刷了两遍leetcode。第二遍刷的时候我是按照专题来刷的,大部分题目都能一边过,这里要注意:千万不要用leetcode debug,一定要自己多思考不同的test cases,这个在后面面试中很重要的。
        8. 正式开始找工作。为了抢占公司招人的先机,在一月初,我陆陆续续开始找人帮我推荐,这样要感谢各种国人的推荐!稍后我会讲讲我自己面试的一些技巧。也许是我认真刷题的回报吧,很快我二月六号就拿到一个芝加哥的offer,因为公司本身对我来说很不错,离我女朋友也近,还马上给我办h1b,于是我基本上停止了找工作, 就继续把之前安排好的面试给面完。于是整个转CS找工作之旅也就结束了。但这仅仅是CS之旅的开始,发现自己也越发喜欢CS了。

感悟:

        1. 迷茫,不确定。从一开始转CS,心里就有各种不确定,质疑这样真的可以吗?于是我用各种先前成功的例子来鼓励自己,肯定能成的!这里我想说一句,只要你认真学,认真刷题,认真找工作,结果肯定都不会差的。周围几个转CS的哥们都找到工作了。所以要相信自己,给自己制定一个计划,时间表,然后认真努力的执行,再拼一把,从高考到一拼,出国考GRE,托福,申请,一步步走来,我相信大家肯定可以做到的。
        2. 简历的准备。简历是你收到面试的敲门砖!这里要感觉我女朋友的帮助,把我的简历变得profession了好多。我个人对简历的一些看法仅对转CS的同学:1. 我偏好把skills 写在最开始,后来我觉得也挺管用的,因为我们的专业不是CS的,看完education之后,要让他们最快的看到你会写什么。再career fair 投简历的时候,我发现有的时候他们会用笔划一下你会的东西。然后最好去学一些热点的东西,比如现在的大数据。接着我感觉对skills 的build,我感觉最好学一个C++ 或者 java,加上一门脚本语,比如 php, python, 接着就是SQL了,这样看起来稍微面广点。2. education,我感觉最好把你学的CS课写上去,让人觉得你确实学了不少CS 的课,让人不会因为你不是CS专业而不喜欢你。3. project的描述。我比较喜欢写的稍微全面点,比如1. 这个project 是做什么的,2. 用了什么technique, 什么语言 3. 达到了什么样的效果。一定要反复的琢磨,最好让别人也帮你看看。
        3. 面试。我的建议是先投一些小公司联系你的面试。0. 拿到面试之后一定要去各种论坛里面找面筋,我常去的有mittbbs jobhunting, 一亩三分地,glassdoor,careercup。1,要准备一段话来应付,talk about yourself. 还有一些其他的behavior的话。参考:http://hrinterviews.blogspot.com/   2,为每一个project 准备一段话,告诉别人你怎么project 做些啥的,怎么做的,遇到什么困难,做enjoy的是什么,遇到什么困难,有没有和队友有不同的意见,怎么觉得的。参考 CC150的 introduction 部分。which project you like most. 这个问题我被问了无数次了。。3,要提高CS素养,我觉得可以参考:http://www.programmerinterview.com/  我把里面的东西反反复复不知道读了多少次。4,准备linux command line的知识,也经常被问到一些常用的command line。5,我的面试流程:1. 这个问题的case会不会很大,能不能都放到内存里面?2. 某个函数要不要经常被用,如果要的话考虑一下cache 3. 我还会问,我可以assume input都是valid的吗?我告诉他这里要做什么样的check,但是为了节约时间就不做啦。。哈哈 4. 写完之后,告诉他写完了,但是我要跑一些test cases,然后就自己写一些test cases,平时leetcode 自己想test cases 就挺好的。5. 最后,面试的时候一定要自信。

祝大家都能找到工作,一起来对付阿三! 等我六月底入职之后给大家refer。


推荐一些网页:
careercup, glassdoor, geeksforgeeks, leetcode

我的一些个人资料在百度网盘上:

评分

6

查看全部评分

牛逼灿灿闪荣光 发表于 2015-4-27 23:45:17 | 显示全部楼层
首先十分恭喜楼主!!接着我想问几个问题。楼主从phd入学到最后现在毕业一共花了多少时间啊?
然后楼主最后有拿到cs的学位么,就是你上了好些课之后?

最后可否透露下是美帝啥学校啊。感觉选课还挺宽容的。
回复 支持 反对

使用道具 举报

 楼主| xenophobic 发表于 2015-4-27 23:49:03 | 显示全部楼层
牛逼灿灿闪荣光 发表于 2015-4-27 23:45
首先十分恭喜楼主!!接着我想问几个问题。楼主从phd入学到最后现在毕业一共花了多少时间啊?
然后楼主最 ...

我是13年9月入学的,然后今年四月份毕业的,最后没有拿CS到学位,那个我们学校要重新申请,比较麻烦。我在密歇根大学这边,选课还是比较宽松的。
回复 支持 反对

使用道具 举报

牛逼灿灿闪荣光 发表于 2015-4-28 02:51:03 | 显示全部楼层
xenophobic 发表于 2015-4-27 23:49
我是13年9月入学的,然后今年四月份毕业的,最后没有拿CS到学位,那个我们学校要重新申请,比较麻烦。我 ...

嗯。THX学长。感觉其实你只花了一年时间走到这一步挺不容易的,尤其是你只上了一学期的课,课下一定花了不少功夫把。
回复 支持 反对

使用道具 举报

 楼主| xenophobic 发表于 2015-4-28 10:39:41 | 显示全部楼层
希望对大家有用
回复 支持 反对

使用道具 举报

go7going 发表于 2015-4-29 10:16:41 | 显示全部楼层

学长那你找工作的时候不卡专业吗?

还有。。。umich不能转专业?
回复 支持 反对

使用道具 举报

 楼主| xenophobic 发表于 2015-4-29 10:49:54 | 显示全部楼层
go7going 发表于 2015-4-29 10:16
学长那你找工作的时候不卡专业吗?

还有。。。umich不能转专业?

基本上不看专业的,就看你会什么技能,而且转cs的特别多。Umich转专业好像要重新申请,我当时有去问过
回复 支持 反对

使用道具 举报

go7going 发表于 2015-4-29 12:53:39 | 显示全部楼层
xenophobic 发表于 2015-4-29 10:49
基本上不看专业的,就看你会什么技能,而且转cs的特别多。Umich转专业好像要重新申请,我当时有去问过

原来是这样 重新申请的话比较不保险
我还是直接申cs吧

谢谢回答!
回复 支持 反对

使用道具 举报

diehard 发表于 2015-6-2 19:45:31 | 显示全部楼层
看的出来学长上了485 482。学长说的OOP design是381吗?对于转专业的同学,学长还有其他的课程可以推荐的吗?
回复 支持 反对

使用道具 举报

 楼主| xenophobic 发表于 2015-6-3 06:14:40 | 显示全部楼层
diehard 发表于 2015-6-2 19:45
看的出来学长上了485 482。学长说的OOP design是381吗?对于转专业的同学,学长还有其他的课程可以推荐的吗 ...

我没有上过381的,如果可以的话上上281, 484
回复 支持 反对

使用道具 举报

diehard 发表于 2015-6-3 11:25:07 | 显示全部楼层
xenophobic 发表于 2015-6-3 06:14
我没有上过381的,如果可以的话上上281, 484

这两门也肯定会上的。学长还知道哪些课的project比较有内容,可以充实简历吗
回复 支持 反对

使用道具 举报

牛逼灿灿闪荣光 发表于 2015-6-4 04:46:12 | 显示全部楼层
diehard 发表于 2015-6-3 11:25
这两门也肯定会上的。学长还知道哪些课的project比较有内容,可以充实简历吗

回复错了。。。
回复 支持 反对

使用道具 举报

牛逼灿灿闪荣光 发表于 2015-6-4 04:47:02 | 显示全部楼层
诶,我想起来,如果所学专业和工作差别比较大,办理H1B是会有麻烦的。你是怎么解决的啊?
回复 支持 反对

使用道具 举报

afox0810 发表于 2015-6-4 06:25:28 | 显示全部楼层
LZ你好,请问你最开始看的是absolute c++还是effective c++啊?两本都提到过了
回复 支持 反对

使用道具 举报

 楼主| xenophobic 发表于 2015-6-5 06:34:08 | 显示全部楼层
diehard 发表于 2015-6-3 11:25
这两门也肯定会上的。学长还知道哪些课的project比较有内容,可以充实简历吗

这我就不太清楚了,我上的不是很多的
回复 支持 反对

使用道具 举报

 楼主| xenophobic 发表于 2015-6-5 06:35:15 | 显示全部楼层
牛逼灿灿闪荣光 发表于 2015-6-4 04:47
诶,我想起来,如果所学专业和工作差别比较大,办理H1B是会有麻烦的。你是怎么解决的啊?

哎,今年用本科的学历没有抽中,明年继续抽,我觉得问题不大吧,都是工程的,有相关的课就好,再说现在学科交叉非常正常
回复 支持 反对

使用道具 举报

 楼主| xenophobic 发表于 2015-6-5 06:35:51 | 显示全部楼层
afox0810 发表于 2015-6-4 06:25
LZ你好,请问你最开始看的是absolute c++还是effective c++啊?两本都提到过了

我是先看absolute c++这本书比较基础,effective c++是进阶,提升对c++的理解的。
回复 支持 反对

使用道具 举报

牛逼灿灿闪荣光 发表于 2015-6-5 08:00:01 | 显示全部楼层
xenophobic 发表于 2015-6-5 06:35
哎,今年用本科的学历没有抽中,明年继续抽,我觉得问题不大吧,都是工程的,有相关的课就好,再说现在学 ...

好的!祝你明年可以抽中!
回复 支持 反对

使用道具 举报

淡蓝雪域 发表于 2015-6-8 08:40:20 | 显示全部楼层
请问有机械转CS 群么?机械硕士毕业,求转码同行
回复 支持 反对

使用道具 举报

 楼主| xenophobic 发表于 2015-6-9 10:45:02 | 显示全部楼层
淡蓝雪域 发表于 2015-6-8 08:40
请问有机械转CS 群么?机械硕士毕业,求转码同行

我觉得论坛里就有好多好资源的
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-3 18:02

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表