- Department
- CS
- Year
- 2012Fall
- 最后登录
- 2020-4-23
- 注册时间
- 2012-10-12
- 精华
- 5
- 积分
- 2540
- 帖子
- 137
  
 
|
发表于 2013-10-4 18:18:51
|显示全部楼层
本帖最后由 Ranger 于 2014-4-27 11:03 PM 编辑
---20131126 update
对于 Technology Interview Approach 中的2.3),我想更正一点:刷算法不不是首要的,可能有时候会耽误太多时间却没有派上用处(如果刷到一定程度了是肯定有用,但是对大多数小弱来说效率不高)。就我们学校的资源(CPC,Career Fair来的公司)来看,算法并不是第一要考的。首先要考的是基础,就是你上了些什么课,学到了什么,碰到了什么困难,如何解决。
比如一个常见的面试问题:你在 学习/实习 中有碰到什么Challenge?很显然,这个并不是要你简单阐述这个Challenge,而是要看你在这个Challenge中学到了什么。
还有一个常见问题就是说说你学习的相关课程。一旦你列举了一些相关课程,可能接下来的面试问题主要就是围绕这些课程的相关内容了。当然很多问题都不是你学了那门课就能回答的,这就需要准备一些算法题之外的面试题了。对这,一方面是平时学习的积累,一方面是面试经验的积累,另一方面就是针对你学习过的课程做准备(尤其是可以出面试题的基础类,比如TCP/IP, OOP)。
有些公司在面试时的确是主要围绕这两点来问的。如果你有课程的project,你提到了,肯定也会问。
还有学校有除了CPC和Career Fair之外还是有其他的机会的。比如Co-op,只要过了学分这关,经过学校内部的选拔(很多编程经验不足的同学可以计划一下,还是很优惠的),基本都能保证找到一家企业做实习。Co-op是一般在第3个学期申请,然后经过一个学期的校内培训,第4个学期派去公司实习。
--------------------------
今天去参加了CS club的找实习交流会,戴着头盔满头大汗的就是我。
先简单介绍下我的背景,本科非CS,从来没学过任何知识,天天玩,基础 差 ,来Stevens前在软件公司工作过几年,不过依然基础很 弱 。就是我在第一个学期的时候连constructor都不知道是什么东西。
最适合读我这篇分享的可能就是类似背景的同学,相信不在少数。还有本科毕业直接来的背景不强的同学们也很适合。我也知道还是有牛人来Stevens的,请给指点一二。
希望读完这篇我的个人经验,可以对大家有所帮助。
----==== English ====----
English is the 1st threshold. 英语是最第一要素。虽然我觉得英语水平可能不可以突击,但是请一定重视英语。
对于像我这样TOEFL考6次从79考到82的实在最有资格说这种话,但是通过大大小小各种电面面面清楚地感觉到,英语很重要。失败的经验才是真经验!
当然,英语是有突击方法的,尤其在电面的时候。因为实习的电面大部分情况下无非就是让你介绍下自己的经历。这种东西不准备一份偷偷摸摸在电话来了前操练几遍是不行的。
还有面面时准备自我介绍,介绍自己的项目。简历上面写的东西一定要能回答别人,不然就别写。不是说你不能吹,但是你吹了要能准备一套说辞自圆其说。
简历简短一点完全没有关系(比如这个大牛的简历,简单直白内敛而又一股装逼的气息由内而外地升腾出来 http://cs.uga.edu/~ying/resume.png)。
还有,专业知识中那些概念的English说法。
----==== Technology Interview Approach ====----
1. show what you have done
The best way is directly show your programs and codes FACE 2 FACE;
Or, 如有没有好的机会可以让你直接把以前做过的东西拿出来show一下的话,then post your codes(exercise, projects) on github(一个主流代码共享基地,他的出现改变了很多。 git simple guide http://rogerdudler.github.io/git-guide/index.zh.html ), etc.
Q: 如果我之前没有什么工作或项目经验怎么办?
A: Who cares? 找实习,大公司的要求往往很简单,就是基础扎实。只有小公司才尼玛要你这个会干那个会干,最好抓过来用到精尽人亡。
So, approach 2. to have a relatively strong fundamental:
1) 590 不错,精简的pdf,适合入门,没选的自学。有一定基础的也可以在590的基础上自己拔高难度,把里面基本Data Structure都实现一遍。
2) 学熟一门language,常见面试问题(你不能完全答对面试问题没有关系,因为这不是考试,不要求100。很多情况下面试官根据每个人的情况,会一直提问,直到问到你答错或者无法回答;这样他才能了解你到底懂哪些)。
database 的基本概念,join掌握,group by, order by, count等等。这是我的弱项
3) language + data structure + database + algorithm: 一本好书: 《Cracking the Coding Interview》, 当然类似的书还有很多,不过你只需要选一本好的,包含以上4项内容。第一、二学期,你不需要看完。因为如果基础不好一开始会很慢,选比较简单的看,就是 【 Language 基础, DataBase基础,数据结构Data Structure基础 】。
Approach 1 & 2 双管齐下最好,2更重要。
如果你练好基础了,那么我觉得你找到一份实习实在是太太太太太容易了。 (20140427 update: 我想对于找工作我应该收回这句话。目前在找full-time。迄今为止的经验告诉我如果是大公司,技术基础只是一方面,表达沟通也很重要;如果是中型公司,只有基础可能并不够,比如用java,常用的框架基本知识,如何通过java操作数据库,OOP的经验也都会有要求,因为他们会更倾向于招到能有点经验直接可以做项目的。 )
----==== 但是,到底要不要暑期做一份工作?其实是要仔细考虑的 ====----
一个暑假的时间是很宝贵的。如果你没有找到理想的实习单位,那么说明你还有不足,你需要时间去弥补。
如果你现在有一些实习机会,但是 if 【 这不是一家你毕业后想去的企业,实习要耗费你大部分精力时间,而你又学不到什么东西,并且给的工资很少,并且(做外包项目 或者 你无法把做完的东西拿出来用于以后面试且根本是做你不感兴趣的内容) 】 ,
我建议不去实习,这点时间回家和亲人团聚,并且用来做以后 Interview 准备。
为什么这么霸气? 一个暑假你可以进步很多,因为这个时候你知道自己欠缺在那里了。 当然,这里要补充的一点是,对于从来没有过工作或者项目经验的同学,你不懂得太多了,去公司里面看看项目组们在做些什么吧!
辛辛苦苦找到一份实习再放弃值得吗? 值得!
暑假开始之后你还有一年的找工作时间,而不是像毕业后你只有3个月找工作。
与其说好不容易找到了实习机会但是竟然放弃的话,不如说是为今后来的更大的挑战做准备。
因为就算你找到了实习,但是只要这个实习同时满足 【】中所列举的情况,你还是没有拿到一份有可预期价值的实习。进那样的公司实习尚且还不是你这个阶段需要做的事情,
另,实习要付给学校按学分计费的学费,根据你选多少个实习的学分来算。
小节:
我不否认工作经验,尤其是在美工作经验,固然重要。
但是工作经验最多的是帮助你拿到一个面试机会,而不是搞定面试。
另外,对于以后长期的职业发展,我更倾向于先打好基础。
补充:
即便我们都把基本功练好了,在统计上,大部分人找到的实习机会应该还是小公司。
这里不是说小公司一定不好,就算是github依然还是个小公司。
只是说对于自己找到的实习机会而言,自己是否满意。不满意的情况下(【】中所列举的情况),放弃所换来的是节约了自己的时间。
如果是从来没有工作实习经验的应届生,并且背景也不强的,觉得是需要把实习公司的标准降低的。去公司,可以帮助你接触一些实际的工作项目。并且在这种情况下,即使是去公司打杂也不会占用自己太多时间(因为自己并做不了太多,不会是项目的主要负责人,所以不会承担太多责任和任务)。
----==== 找工作途径 ====----
CPC Stevens校园招聘网站 -> 如何注册,参考:
http://sitbbs.com/forum.php?mod=viewthread&tid=3035&extra=page%3D1
请早点注册了吧。
其他,各种:indeed, internship(不推荐), StackOverflow Career, 校友推荐;还有就是很多大公司可以直接去官网投,下手要早,比如现在(基础差的同学还是不要浪费太多时间,先打基础的好,寒假开始后,第二个学期是找实习高峰);
关于中介的问题,即纯外包公司,不可一概而论,有好有坏,希望你能分辨。
还有就是找工作运气成分不小,一时找不到满意的不要灰心,坚持是王道。
----==== 关于选课 ====----
1、基础, 大部分靠自己学习 590 我更愿意称之为Data Structure <-- 选不选都得打扎实了,561 database <-- 选了吧,虽然我没选
下个学期有一门课推荐615 -- System Admin ,适合你对Linux 0基础,跟着这个hacker 学能一下子懂很多,当然花很多时间。
2、感兴趣的
3、好评的
如果你的Admission是general,最好也定一个学习方向:比如图形,数据处理,网页产品开发,加密。这样就可以在打好基础的同时对某个方向有一定的深度。这也是我失误的地方,什么都学了,没有深入。不过这方面和找工作暂时还没有关系。
----==== 第二个学期会很忙,学会管理时间 ====----
Google Calander
总结
在校生的实习interview基本都是很简单的,就算是Amazon的面试,面向招实习的,也很简单(Relatively);
所以如果你原本基础还行,你绝对可以;
如果你原本基础不行,一年多的有方向的努力后,你也可以。
所以,基础,基础,基础,坚持。
TL; DR:
当然,有同学会关心地问,你的 得吧得吧得吧得 说了那么多,你找了哪里啊?
我找的实习单位是个小公司,很不怎么样的一个公司,虽然要求是我面试过的单位中最高的,各种希望你能搞定一切的企图。我选他是因为我能独立负责一个新产品的开发,标准英雄副本精英团队(除了我)。其实我更希望自己能把时间省下来搞 Cracking the Coding Interview.
这家公司有很多我不满意的地方,比如工资低,没有一个人可以教我学什么,全是自己摸索。好在我和另一位小牛也已经快把产品做完了,希望马上可以发布让大家玩玩。
|
-
总评分: 威望 + 10
金钱 + 60
贡献 + 15
查看全部评分
|