位置:首页 > 出国留学 > 美国 > 专业选择 > 正文
美国留学 计算机专业美国就业完全解读
日期:2011-05-27 09:02

(单词翻译:单击)

  文章写给作为fresh graduate毕业后希望留在美国工业界工作的同学,适合大部分人的情况。当然,以下四种情况不再本文所涉及范畴之列:

  1、如果你立志博士毕业后要去当老师,这篇文章不是给你看的;

  2、如果你志存高远,计划着将来成为科技行业的明星/老总,也请饶开,我不会养牛,不过我知道很多牛人,也经历过找第一份工作的过程;

  3、这篇文章也当然不是写给有工作经验的老手或者技术大牛看的;

  4、IBM/Microsoft这样的大公司也招优秀博士生做research staff,提高公司的科研质量,也不包括在内。

  换句话说,这个文章是芸芸众生帖,是新手上路帖,不是精英牛人老鸟贴。

  先说一下学cs的去公司到底做什么工作。

  一、developer/programmer/software engineer

  不管你是硕士,还是博士,不管你是学CS哪个方向的,研究算法(algorithm)的也好,捣鼓人工智能(AI)的也罢,或者是啥软件工程(software engineering)、图形处理(graphics/image processing)、网络(network) etc etc etc,大家将来都有一条共同的也是CS里最大的出路,就是去写code编程做软件开发。

  很多人申请的时候,或者在学校读书学习期间,很在意各个方向的区别,痴迷于某个领域,但是工作几年回过头来一看,没啥区别,大家都有一个光荣的头衔,好听点叫软件工程师,难听点叫程序员,职称(title)和工资高点低点而已。区别无非是有的人通过学校期间的学习或者研究,具有domain knowledge(比如说常见的image processing算法,数据库知识,各种网络协议和分布式系统知识),然后去开发各种相应的domain-specific application(比如图形图像处理软件,数据库管理软件,网络设备/分布式系统上运行的软件)。等你每天写了无数programs之后,可能对领域上的区别早就麻木了;等你工作多年,做了无数个project以后,可能早就不care到底算是那个domain/area的了,来了通杀。

  不管你是在哪个行业工作,IT也好,金融保险也罢,或者是啥咨询、生物技术、whatever,不管你的工作头衔(job title)听上去很好听还是很丢人(比如architect/Principle/Technical Lead vs programmer),也不管你的工资是1万一个月还是5000一个月,最关键的是你的工作性质是什么,只要是以软件开发/编程为主,那么你就是此类的。

  这么一说,可能大家就明白了,原来学CS的,不论你是什么方向,殊途同归啊,那我还计较个啥?区别还是有的,比如说现在cloud computing比较hot,不少公司在做相关的东西,如果你在学校里是研究这类技术的,公司可能会因为你的domain knowledge招你而不是一个研究图形学的,但是你将来的工作性质,跟开发图形处理软件的兄弟们是一样的,说高尚点叫large scale system design and development,说俗了就是coding, coding and coding。

  大家都说做IT的是民工活,其实公司里资历久,对核心产品底层architecture懂的多的技术骨干,工资也是很高的,而且地位高工作也稳定。

  二、software QA(quality assurance)/testing

  每年网上都有很多人发帖子说“我学cs,但是我编程能力比较弱或者不喜欢编程,将来我能不能不去coding?”做软件测试(QA/testing)就是一个选择。

  从软件工程的角度来说,有人写软件,就得有人专门跟在后面找bug提高软件的quality。QA的活一直被轻视,以前曾经被认为是可有可无的东西,不需要专门的QA,现在被越来越重视了,当然还是有些人觉得qa不如做developers更重要,但是不可否认的事实是,QA不可或缺,QA工作现在很多,已经在计算机行业里占了很大的比例了。当年帮我settle down的师兄,03年去了微软,05年被调整做SQL Server软件的QA。

  QA对技术的要求相对低。QA可以粗略的分成两种,一种是mannual testing,全手工测试,你不需编程,基本就是分析软件系统,制定测试计划和用例,然后用鼠标去点击为主,从技术角度来看,的确低级了点,早些年,developers觉得去做QA是降级,跟发配充军一个意思,所以QA不得不到处找,来源很复杂,做QA的整体技术能力也比较低下;现在随着公司对产品质量和测试工作的重视,有CS技术背景出身的qa越来越被青睐;第二种QA,做的是自动化测试(automated testing),就是用软件工具或者自己编程来自动化测试,这个就要求懂技术甚至要会编程,但是要求又没有developer那么高,这种技术性的QA也比较缺乏,现在的趋势是很多公司尽量用automated testing替代mannual testing来提高效率。

  同样经验/教育背景,QA的工资应该比developer低,但是差别也不是很大。很明显,学cs任何一个方向的人,都可以胜任QA的工作。

分享到
重点单词
  • settlev. 安顿,解决,定居 n. 有背的长凳
  • assurancen. 保证,确信,肯定,自信,(人寿)保险
  • networkn. 网络,网状物,网状系统 vt. (以网络)覆
  • qualityn. 品质,特质,才能 adj. 高品质的
  • principlen. 原则,原理,主义,信念
  • applicationn. 应用; 申请; 专心 n. 应用软件程序
  • coden. 码,密码,法规,准则 vt. 把 ... 编码,制
  • scalen. 鳞,刻度,衡量,数值范围 v. 依比例决定,攀登
  • architectn. 建筑师
  • technicaladj. 技术的,工艺的