学计算机专业不一定要当码农做开发写程序

这个文章主旨是要说明:

学计算机专业,在美国就业,并非所有人都要作作码农,天天写code、做软件开发,你也可以找非开发类的职位。

同时声明:

学了计算机专业,如果不肯做大规模软件系统开发、不做编程类的技术活,其实是主动放弃了这个专业的精彩之处和优势。无论你选择做什么,你走的都是小众路线。

第一大类工作是做PM(project/program manager、产品经理)。这几年随着google、apple等公司红火的技术创新,产品经理这个工作也逐渐广为人知。作产品经理,不需要你自己去亲自去写程序,但是需要你有很强的英语口语和交流能力。这方面最有价值的文章是一亩三分地里泡面的帖子《【实例:女生读CS,工作不编程】CS小硕IT行业大公司求职就业记录》和《微软PM(Program Manager)面试答题思路浅见》,她作为没有工作经验的新人,硕士毕业直接找到了微软的pm职位,还在公司内部换到了更好的部门。

第二类工作是数据库。稍有点规模的公司,都有专门的DBA,负责公司的数据存储和管理。大公司数据多,甚至有较大的DBA team。这类职位一般要求有工作经验,入门门槛高,但是进去之后,职位很稳定,公司不会随便调整DBA,比如2009年金融危机期间死掉的几个大金融公司,到了最后一刻,员工裁光了,还保留着几十个DBA。也有些人,并非担任DBA,而是针对一个部门的business需求来提供数据方面的支持,通常也做一些基础的数据分析和报告。这类职位需要精通SQL,而SQL非常容易学。

第三类工作是在大规模商业软件系统上做一些管理和小规模开发,比如某个公司从oracle手里买了Siebel系统,会先在内部做一些测试、调试,确保跟目前系统兼容,也可能做一些customization,给finance、accounting、marketing and sales甚至HR等部门提供IT技术支持。这类职位,更接近Information Systems也就是IT系统在business里面的应用,而不是系统本身的开发,所以技术含量低很多。

Last but not least,你可以去做软件测试(QA or testing)。一般说起测试,大家的思维定式是纯手工点击鼠标去找软件里的错误,但是很多公司里提供自动化测试的职位,主要包括两类: 1)你来开发自动化测试的工具,也就是你的codes来测试别人的codes、用你写的程序来找出软件工程师写的程序里的错误。2)你拿着别人写好的自动化测试工具来做测试,不自己写程序,但是也不手工去找错。前者通常被称为SDET,如果开发的自动化测试工具很复杂,那工作其实已经无限接近SDE了;后者则要容易很多,把自动化工具设置好了,让其运行,然后喝着咖啡找人聊天或者在网上瞎点乱看,抽空阅读一下log文件和测试报告,如果有错,那就分析一下,扔给软件工程师,让他们去解决。

对国际学生来说,第四类职位提供的就业机会,其实远远超过前三类职位的总和,也远超过了EE硬件、统计等专业,在美国的就业机会,仅次于纯粹的软件开发(SDE)。

做这四类工作的人,有很多不是cs专业出身的。如果你学了CS、做这些工作,从技术角度来看,其实是以高打低,生存会更容易。举个例子,如果你所在的组使用各种自动化工具做测试,同事们只会使用工具,而你是组里少数几个甚至唯一一个能写程序、改进工具的人,那你有希望成为组里的技术骨干。

– Warald (Email: iamxiaoning@gmail.com)
博客: http://www.1point3acres.com,微博:http://www.weibo.com/warald
欢迎转载,转载必须在标题注明转载,在文章正文开始之前而不是最后,用不小于正文的字体大小,肉眼可以清楚识别的颜色,一字不漏的附带文章末尾的版权声明,包括作者ID、博客网址和原文链接。否则视为侵权!感谢合作。