身为理科弱鸡,我为什么一定要转行学CS
每次有人问及我的专业,我都会假装冷酷而轻描淡写的说一声,我?咳,学CS。然后紧接着就像是磁带放到某个章节,接踵而至的声音,女孩学这个太苦了吧,将来一定富得流油吧,看你发际线挺靠后啊,小心啊这专业活不长(囧)亦或是,读这个专业轻松就业,你纯粹就是为了留下来吧云云。每当我打算气定神闲写一篇专业介绍文,都一定会有愤愤不平的声音,说我一定是想号召全民一起读cs。当我谈及经过努力有机会就职得到年薪十万多的offer,一定会有声音响起,说我金钱至上不讲求个人兴趣等等。其实学哪个专业好就业,学什么未来能够得到更好的发展这些都是比较客观的事实,倒不是说专业有三六九等,但每个专业的市场需求和份额确实是个较为硬性的指标,在我从大一时经历了从学护理,到心理,幼教,生物等一系列大幅度历史性变更之后,最后打算斩钉截铁学cs,这不是一拍大腿后的冲动,而是无数深思熟虑的结果。我想说的是,引用各类数据和活生生的例子来看,学习cs确实是个门槛较低,学习过程艰苦但学成之后可以较为容易的解决吃饭问题的专业。
计算机科学所研究的是计算机系统,软件设计,和相关的理论。计算机沟通要求具有十足的精确性,所以熟练掌握编程语言是必不可少的。决定改行走IT路线其实对一个从小不爱玩电脑游戏,而且家族中没有任何一个成员学计算机的我来说是个可观的挑战。前期选择专业走了太多弯路,我发誓也要让自己成为一名优质程序员。然而突然让一个理科白痴去学习逻辑思维十分精密的机器语言并完成种种指令,这真的是天方夜谭。但我还是硬着头皮上了,并努力和本系天资聪颖的印度大兄弟们结下深厚友谊,在刚接触写代码的日子时,每每不会写代码就只能楚楚可怜的找他们帮忙,只想把大学利用好,学成一门过硬的,可以看家的技术。我们学校的cs是以理论为主,毕业需要修够四门数学,一门算法课,两门硬件软件设计课,一节应用课,还有网络管理,数据管理等课程的选择。学校会安排很多该领域基本原理而不是很多实际操作的课程,其实还是为了打造更加优秀的程序员,一个程序员不懂算法,操作系统,网络,即使会打码,在遇上设计的时候,想不到一些潜在的问题,也会给以后带来无穷无尽的麻烦。
记得当时一名在Facebook工作的学长语重心长的教育我说,在他的世界里,大学只有两门专业,cs和非cs。现在是全民学编程的时代,未来对码农的需求只会增加不会减少。这些话听来十分夸张,但这也坚定了我学cs的决心和动力的源泉。
但不得不承认,这门专业也不是适合所有人,稍微总结了下,以下几类人群是无需依靠学CS走人生巅峰的:
1明确知道自己永远不会和cs结下梁子并擅长打码的
2对自己喜欢的专业无法割舍并且无比热爱的
3不希望整天对着电脑接受辐射的。但事实上市场上绝大多数职业都需要以电脑作为主要工具,包括秘书,金融等等。
4不愿意源源不断扩充并学习新的技术,希望拿一个短期内不会变更过多,并且越老越吃香的学位,比如律师、会计师。但无论学什么总会有新知识扩充,只是不像科技行业更新速度之惊人。
5留学只是为了镀金,找工作不需要靠CS学位
6对CS无特殊嗜好,家里有随时可以接手的公司,不需要呕心沥血在美国弄饭碗
7以为毫无基础几个月速成就可以轻轻松松落户硅谷成为高级码农坐拥十万年薪的
cs着实是个有难度并且很有挑战性的领域。它不像文综历史科目,即使头脑一片空白,到了交论文的deadline,不管内心再怎么枯槁还是有希望精心烘焙出一篇像样的文章,它不像数学,即使完全无从下手的题目,拿给老师稍作分析就可以略知一二,它也不像生物化学那样付诸时间去记忆那些像贪吃蛇一般越记越长的单词。在程序员的世界,会就是会,不会就是不会,不可能跟电脑说几句好话,就可以让程序跑起来。有人跟我说,数学是研究世界的本质,自然科学是研究上帝的意志,而计算机则是揣摩屌丝人类的意志。它只是某个小程序员在某个茶余饭后或者深更半夜顶着层层压力挑灯拼凑起来的,我们所做的,就像是沿着一条戴着脚铐的路径,慢慢摸索起舞。它是一门不允许你有一丝一毫逻辑漏洞的学科,是一门即使只是错打了一个小标点就全盘皆输的学科,是一门需要你全身心投入,不能有半点分心的学科。每一行代码都必须严格遵循逻辑的号角。这就是为什么我很热爱cs,因为计算机科学面对的是人类的创造,如果人类的某个数据库令我十分不爽,我只需要造一个更完善的数据库,但如果我对一个物理定义不爽,难道我能背着手望着天空呐喊,为什么光速要这么快?可以慢点,让我看清楚吗?计算机是听话的,是服从的,是满足于人类意志的,只要我们给他的指令百分之百正确,它就一定会严格遵守我们的指挥,给我们精确的输出。Codenever lies! NEVER.而人类却不具备这种能力,人类善于用感情判断,用感性思考,给我们一个硬性输入,每个人呈现的结果都是不同的,因为每个人的思维模式五花八门,但计算机却能够一如既往给你正确的答案。这一切都令我更加热爱CS,并在这条路上走的铿锵有力。
计算机领域并没有绝对的“完美”,我们做的就是解决源源不断的生活中人们真正会遇到的问题,比如如何让这座一百层楼高的电梯更加有效率的载客,如何给聋哑人设计一款闹钟。这门学科的务实性,相比数学而言更令我觉得迷人。科学家们为了让自己的研究看上去更加高深和专业,会习惯性用一些严谨而生涩的字母表示出来,有时再来几个拉丁字母,而这种形式化的表达往往对解决实际问题没有过多的帮助,但是程序猿和科学家不同,他们在成本控制的前提下,依靠已有的理论基础去创造发明,不受过多的环境限制,互联网行业依赖的正是这些千千万万有想法的年轻创业者,利用公司的平台实现自我价值,追求自己真正想要的东西,而这一切不需要过多大公司和大权在握的决策者的参与。
如果你喜欢数学和逻辑思维而且痴迷于解决实际生活的问题,还乐忠于抽象化思考,擅长创造力,批判性思维,严谨,倾听,那么cs很适合你。你要是问我将来学cs到底能做什么,其实计算机的运用层面极其之广,它可以做生物信息的处理,电子商务图书馆,人机交互等等。IT领域目前发展越来越成熟就业方向也会更加广阔。我身为cs学生,对写代码的热情没有对与人交流,统筹,管理的工作更为感兴趣,这也就是project manager的职务,协调小组工作进度,统领大局。想做数据?可以搞data analysis。在IT行业里,想做什么都有发挥你长处的一席之地,只要你有源源不断的吸收知识养分的欲望。
有人说IT行业起薪高,还有人感慨说年龄大,写不动程序,是个吃青春饭的工作,青春饭这种说法我认为是个stereotype,每个行业都有自己的上升路径,cs也同样,只是周期性略长,但不得不承认有些行业越老越吃香比如土木,是个经验致胜的行业,但是cs确实需要不断的学习新的事物以免被领域淘汰,被后浪拍死在沙滩上。还有人叫嚣着说信息技术行业泡沫性太大。我觉得关于某个行业高速发展能持续多久,什么时候崩溃这类话题是个谁都说不准的问题,泡沫是一定存在的,但这样大规模人才流入CS行业是个好事,是生产力转型的必须。就像当年珍妮纺织机导致大量纺织工人下岗一样,其他存在生产力过剩的行业人才(例如生物化工等)向cs转行是完全符合经济学规律的。这几年的信息化革命,影响将会十分深远,而这一切并非短短几年的cs热。IT行业泡沫到底多大现在谁也预料不到,但只要有类似Google,Microsoft,还有后起而勃发的Airbnb和Uber这种超级英雄的存在,就依旧会有源源不断的风险投资者持续注资给创业公司们,灌入源源不断的能量。即使将来泡沫被戳破,那些持续盈利的大公司也不会垮掉,就像即使某一天汽车行业全体倒闭,人们出行也不会突然改成骑牛骑马骑驴一样。人们希望得到更好的生活,而这一切的根基就要靠科技去实现,这就是我要学CS的原因,也是信息技术蓬勃发展的基础。
我爱CS,希望它更加爱我。