传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 20804|回复: 61
收起左侧

[经验总结] [EECS申请与就业专辑]之计算机专业在美国的就业情况+如何选课如何学习(上)

[复制链接] |试试Instant~ |关注本帖
Warald 发表于 2009-7-6 11:25:18 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
本帖最后由 Warald 于 2010-4-19 22:34 编辑

本来想跟我blog前面那个《[EECS申请就业专辑]之EE/ECE各个方向就业浅谈》帖子一样,这个文章分开谈计算机的各个方向。酝酿了一段时间的草稿,逐渐意识到由于Computer Science自身的特点,按照方向谈就业可能没太大意义,所以我换个角度,先写美国公司提供什么样的职位,再谈谈学校的教育,然后写计算机专业的学生,无论是学什么方向的,应该怎么制定适合自己的计划。
. more info on 1point3acres.com
文章肯定是侧重说作为fresh graduate毕业后留在美国去工业界工作的情况,适合大部分人的情况。

1)如果你立志博士毕业后要去当老师,这篇文章不是给你看的;
2)如果你志存高远,计划着将来成为科技行业的明星/老总,也请饶开,我不会养牛,不过我知道很多牛人,也经历过找第一份工作的过程;. Waral 鍗氬鏈夋洿澶氭枃绔,
3)这篇文章也当然不是写给有工作经验的老手或者技术大牛看的;-google 1point3acres
4)IBM/Microsoft这样的大公司也招优秀博士生做research staff,提高公司的科研质量,也不包括在内。

换句话说,这个文章是芸芸众生帖,是新手上路帖,不是精英牛人老鸟贴。
. 鍥磋鎴戜滑@1point 3 acres
先说一下学cs的去公司到底做什么工作。

《一》developer/programmer/software engineer

不管你是硕士,还是博士,不管你是学CS哪个方向的,研究算法(algorithm)的也好,捣鼓人工智能(AI)的也罢,或者是啥软件工程(software engineering)、图形处理(graphics/image processing)、网络(network) etc etc etc,大家将来都有一条共同的也是CS里最大的出路,http://www.1point3acres.com 就是去写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. 1point 3acres 璁哄潧

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

从软件工程的角度来说,http://iamxiaoning1980.spaces.live.com 有人写软件,就得有人专门跟在后面找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来提高效率。-google 1point3acres

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


《三》Database/network administration

developer和qa已经囊括了cs大多数的工作机会,继续写这个类别还是为了满足有些人既想学cs又不想编程的愿望 --- 话说回来,如果不想编程,最好别学cs了。。。。

数据库/网络管理对编程要求也很低,你不需要像开发数据库或者网络管理软件的人那样子,天天耗在编程里。这类工作优点很多:

1)就业范围广,稍微大点的公司、学校或者任何机构都需要有高级管理员来管理维护网络和存储备份数据库;
2)工作经验越丰富越受欢迎,因为很多job就是得经验丰富的administrator才能处理好,不是随便扒拉一个没多少经验的人就能凑合着做的;
3)信息社会,公司对数据库和网络依赖严重,所以有时候一个经验丰富的database/network administrator对公司可能非常重要,如果他突然撒手走了,公司又没有准备好替代人员的话,会损失惨重的。

因此,这类工作工资高,也比较稳定。前段时间有些金融公司即使大幅度裁员,核心的网络和数据库管理员也会被保留。

这类工作的缺点是入门比较难,公司希望你能有相关的实战经验而不仅仅是会点学校里的理论知识,刚毕业的学生往往根本没有这方面的经验;有时候需要在晚上或者周末工作,也可能有on call的情况出现。


《四》Others

其他的工种也有,比如release management,用户界面(UI, user interface)设计,usability,Technical support等等,但是一方面这些工作数量相对少,另一方面,不同的公司里,相同的职位名称可能具体的工作性质不太一样,比如做release managment的,有的公司要求做很多QA的活,有的公司更靠近developers,还有的公司可能让你安装/搭建系统来管理不同的releases,跟个系统管理员似的,所以就不一一详叙。

像计算机这种大杂烩、狗皮膏药类型的行业,如何划分工作种类,可能不同的人因为经验经历不同,看法也不太一样。不过我写文章我做主~~~

敬请关注中篇

---- Warald  (iamxiaoning@gmail.com).1point3acres缃
http://www.1point3acres.com     http://iamxiaoning1980.spaces.live.com
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴欢迎转载,转载请保留我的ID/Email/Blog,谢谢


[EECS申请与就业专辑]之计算机专业在美国的就业情况+如何选课如何学习(中)
[EECS申请与就业专辑]之计算机专业在美国的就业情况+如何选课如何学习(下)

评分

2

查看全部评分

ljcljc 发表于 2009-7-6 12:25:49 | 显示全部楼层
顶啊,好文
cliff 发表于 2009-7-6 14:12:04 | 显示全部楼层
真想知道CS的出路在哪里?
paradox 发表于 2009-7-9 10:41:00 | 显示全部楼层
华丽丽的让我看一下CS的希望
watercc 发表于 2009-7-9 10:44:31 | 显示全部楼层
ding, thanks for warald.
cc0128 发表于 2009-7-9 21:07:30 | 显示全部楼层
dba很有钱途啊。。。为啥当时我做了程序员呢。。为啥呢为啥呢。。。。
Cover 发表于 2009-7-10 18:49:00 | 显示全部楼层
严重关注中篇,LZ快点推出吧
慕尼星 发表于 2009-7-10 19:39:05 | 显示全部楼层
这种贴是要顶的……现在大家普遍都对前途比较迷茫……这种对未来方向的指点还是很有必要的……
feihon 发表于 2009-7-13 15:09:47 | 显示全部楼层
顶Warald!. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
现在对专业方向很迷茫啊,马上就要申请了。
头像被屏蔽
thehousewhite 发表于 2009-8-10 09:32:52 | 显示全部楼层
版主分析的很对...现在对QA的要求也不低了,用脚本去测试是常事
 楼主| Warald 发表于 2009-8-10 22:58:29 | 显示全部楼层
“大家都说做IT的是民工活,其实公司里资历久,对核心产品底层architecture懂的多的技术骨干,工资也是很高的,而且地位高工作也稳定。”
warald能否对“核心产品底层arch懂。。”详细说一下?
ylqfp 发表于 2009-8-1 14:01
. from: 1point3acres.com/bbs

说俗一点,凡是公司里大点的产品/系统,都是经过几年开发的, 早些年有人来打好框架, 后面来的就在这个基础上继续添加东西,因为各种各样的原因,后来肯定弄得越来越复杂了, 有的时候, 新人也只知道如何用某些API啥的, 也不是很了解底层的东西的实现, 往往最早入手的老人是懂得最多的.. from: 1point3acres.com/bbs

如果这个产品比较重要, 公司主要靠这个赚钱, 那这些对这个复杂系统从里到外, 方方面面都了解的人就很重要.
lxandrew 发表于 2009-8-11 15:41:29 | 显示全部楼层
仔细拜读,谢过!
woosah 发表于 2009-8-18 07:31:52 | 显示全部楼层
之前好像在blog上看过~重温一遍还是受用
aaronmin 发表于 2009-8-19 03:48:50 | 显示全部楼层
谢谢!
平凡人 发表于 2009-8-20 01:37:09 | 显示全部楼层
确实很受用,cs啊,我还是不碰你了
乌蝇 发表于 2009-8-30 13:53:33 | 显示全部楼层
1# Warald .1point3acres缃


原来这样啊……目标清晰多了~~
chenxi1999 发表于 2009-9-6 11:44:43 | 显示全部楼层
我想去美国读数据结构博士,将来的就业前景如何?
dukebrando 发表于 2009-9-6 14:08:02 | 显示全部楼层
谢谢 学习了
qc1987 发表于 2009-9-24 21:34:43 | 显示全部楼层
不错不错,很有启发!
pm200061 发表于 2009-10-12 01:18:53 | 显示全部楼层
很好,顶;对于找工作的朋友很有启发!

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-9-25 21:53

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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