我为什么要转到软件工程专业

作为一个转专业的降级生,从计划转专业到现在,总是会听到有人问,“为什么想要转专业啊”。而我每每只能尴尬一笑,然后搪塞过去——不是别的,只是觉得考虑实在太多了,很难一言以蔽之。所以在这个人技术博客的第一篇,我想我有必要再好好梳理下我想要转专业的理由,作为今后走在技术之路上前进的动力与方向。


兴趣

我一直觉得,在考虑专业的选择或人生的规划问题时,兴趣应当是最重要的因素。我相信只有对一件事感兴趣、有热情,才有把这件事做下去、做好的可能。但同时我还觉得,真正意义上的兴趣的发现是很难的事,在深入学习一门学科之前,我们往往并不知道自己是真的对它有兴趣,还是只是崇拜一些高手,或是只看到了它某些光鲜亮丽的部分。因此,我不敢大言不惭的直接说“我对软件工程专业有浓厚的兴趣”。但我仍认为自己在自我发现的道路上,已积累了一些对自我的认识。当把理性作为感性的旁观者,我认识到了一些自我在直觉层面的好恶。而这些,在许多方面是与我对软件工程专业的认识是匹配的。

对秩序和构建秩序的创造力的兴趣

我喜欢秩序。相比混乱的、不稳定的、不断趋于恶化和膨胀的,我更偏爱井然有序的、稳定的和健康平衡的——前者往往带给我一种不适甚至恐慌的感受,而后者则令我安心而向往。我发现自己有着遇到问题总试图找到程序化的解决方案的思维习惯。小到房间的整理,大到高考的准备,我总是乐意在脑中生成一个条理清晰的、类似程序的执行方案,并不断的完善优化其中的“算法”。你可能会觉得这是一种死板和缺乏活力,是一种“装在套子里”的表现,但我相信任何“套子”表现出的死板都是“套子”不够大不够好造成的。而把“套子”做好的过程中体现的创造力更是非常具有活力甚至魅力的事。也许面对一个较为复杂的问题,当前的程式化解决方案会引发各种“bug”,那么改进这个程式,修复这些“bug”在我看来是非常充满智慧和趣味的。对这一点的认识,是我认为我会喜欢软件工程专业的重要原因。“程序”这个东西的本质恰好与我上述所向往的事物属性相符:计算机会根据你编写的程序按照一种绝对的逻辑和秩序执行,不会出错,一旦有问题,则一定是你编写的程序不够好。这一点无需多言。更高一个层次讲,整个软件行业对我有着同样的吸引力。通读过一遍《构建之法》后,我得到的最直观感受就是软件行业的从业者和软件工程学科的研究者们始终在为建设软件工程的秩序而不断努力,书中的几乎每个知识点,各种各样的框架模型流程,在我看来处处体现着秩序与秩序构建的美。

对写代码的兴趣

仅仅是对秩序与秩序构建这样比较形而上的东西感兴趣是不够的,毕竟学习软件工程,作软件工程师,最多的时间还是在与代码打交道。如果对写代码毫无兴趣,甚至有所排斥,那一定是不适合这个专业的。幸好,通过自学并写一些入门级的小程序,我至少可以确认自己不排斥坐在电脑前写代码这件事。更重要的是,在某几次较为复杂的练习中我甚至隐约体验到了忘我的快感。这让我想到高中时读到的阿里巴巴的神级程序员多隆的故事。

多隆是阿里巴巴首批合伙人里唯一的程序员,他做事一个人能顶一个团队,比如说写一个文件系统,别人很可能是一个项目组,甚至一个公司在做,而他从头到尾都是一个人,在很短的时间内就完成了。从 03 年到 07 年,淘宝搜索引擎就是他一个人在写,一个人在维护,而且这还不是他全部的工作,另外他还做了其他很多事情。多隆不擅交际,不常分享,也不玩什么社交网络,一般很难在公众场合见到他,只要能不参加的会议、采访,他都不会参加。就算去,他也常常会带上笔记本。据说他也曾经带着笔记本去outting,在车上写代码。虽然被所有人视为神,但他真的由心底觉得自己是一个凡人,他做的最多的就是默默的坐在工位上,对着屏幕上的黑框,写代码、解决问题。在别人纠结着是不是要转型管理,是不是要转型业务,是不是要发挥更大的影响力,是不是要获得更多的权力,是不是要得到更多的回报时,他却从一直在考虑怎么通过技术改进,把问题解决得更好。

我想多隆在写代码时的状态就是我一直以来追求的所谓 flow的心理状态。这是一种完全忘我的状态,全身心的投入到正在做的事情中。我相信这是人能经历的最优体验,我把它构建为我人生的意义之一。多隆的故事,自己做练习的经历,让我相信写代码是很有可能为我带来这样的体验的,起码我有绝对强烈的意愿追求之。

对创造和编程艺术的兴趣

我热爱艺术。在高中,我渐渐从一个只知道学习和运动的学生变成一个文艺爱好者,艺术成为我生命中最不可或缺的东西。我对一切与艺术有关的事情感兴趣,并有意识的在培养自己的艺术素养和品味。然而,我深知仅仅是有品味,懂欣赏是远远不够的,我必须学会一门手艺,有所创造。世界上最著名的程序员之一 why the lucky stiff (_why) 先生曾在推特上说过这样一段对我影响至深的话:

when you don’t create things, you become defined by your tastes rather than ability. your tastes only narrow & exclude people. so create.

(当你停止创造,你的才能便不再重要,剩下的只有品味。而你的品味会裹挟你,让你变得排斥他人。所以,创造。)

而编程,正是这样一门手艺,一种艺术,一种最适合我在大学本科作为专业学习的创作手段。我相信编程是门艺术,虽然我知道它与其他更传统的艺术形式相比有很大不同——更多时候它是以用户需求为创作导向的——但我仍然认为这里有非常广阔的创作空间和艺术美感。《通灵芯片:计算机运作的简单原理》中对编程作为艺术有如下描述:

程序员的艺术是把心中的构思精确的描述出来的艺术。

对于每种计算机语言,都有莎士比亚级的大师。读它们编写的源代码无异于一种享受。一个编写的好的程序,同样具有风格、技巧,甚至幽默——条理之清晰可与最优秀的散文媲美。

我想编程,是一个足够大的平台,足以满足我对艺术和创造的兴趣。

我为什么要转到软件工程专业_第1张图片
_why先生的自画像


现实

兴趣很重要,但同时也要考虑到现实的因素。我相信未来的世界是属于软件的。2011年美国著名风投Andreessen Horowitz创始人Marc Andreessen的文章 Why Software Is Eating The World 中预测了软件吞噬世界的大趋势。我相信在未来,软件行业将会变得越来越重要,对优秀的程序员和软件工程师的需求将会越来越大,他们的待遇和薪资会越来越好,地位越来越高。而更重要的是,我认为软件行业的工作者与科学研究的工作者不同——勤奋与能力相比运气占据更重要的地位——或者说更有确定感,发力点更明确。因此我相信自己能够通过努力成为一个优秀的待遇不错的软件工作者。虽说要“工作上讲究,生活上将就”,但客观的讲,我认为自己是工作生活都比较讲究的人。我绝非一个沉迷物质享受的人,但我还是非常看重物质生活的品质。这不是什么值得骄傲的事,但坦率地讲是我对自己的认识,是我想要学习软件工程专业的理由之一。


理想

除了兴趣和现实因素外,更加宏大的理想和愿景也是我选择软件工程专业的重要原因。

参与到世界的秩序设计中

事实上,我相信目前的世界已经不只是被软件吞噬,更可以说是在被软件重新定义1。越来越多的行业开始用软件替代传统的人力劳动,世界虚拟化的程度越来越高。世界将会因软件变的越来越有秩序,而我非常渴望能够参与到世界的秩序设计中。我有一个伟大的构想:实现出这样一个搜索引擎,它能够读懂自然语言,并提供一切客观可知世界的答案。比如某个地铁站的第几个闸门离出口最近,某一首音乐的作词编曲或者录音师是谁,奥莱莉亚内莫尔在1972年创作的画作《白色骑士》长什么样(我在上海的蓬皮杜现代艺术大师展上看到后印象很深,回来后却查不到了)……这些问题完全不涉及主观因素,也许经过一定程度的调查都能知道答案,那么为什么不能有一个搜索引擎可以为我们提供所有的客观信息并且不需要任何所谓“搜商”呢?试想这样的世界将会是多么高效而美好。当然我知道这只是一个构想,要实现还是有很长的路要走,包括人工智能和机器学习技术的发展,还要满足一定的商业逻辑,平衡各方利益,等等。但我愿意为之付出努力,因为我相信它的实现能够实现一定程度的信息平等,即我所理解的现代社会真正意义上的平等。学习软件工程,进入软件行业无疑会对实现这一理想有很大帮助。

我为什么要转到软件工程专业_第2张图片
奥莱莉亚内莫尔,《白色骑士》,1972

以计算机为创作工具,成为一名艺术家

成为一名杰出的软件人才是我的职业目标,而成为一名真正的艺术家则是我人生的终极追求。这两者并非平行线,我相信掌握计算机和编程技术可以对我今后的艺术创作有所帮助。软件工程师、艺术家Golan Levin在Ted上的表演让我惊叹不已,他的艺术家网站更是令我看到了新的人生可能性。我渐渐产生了利用计算机来成为艺术家的想法。这个理想可能听来更加虚无缥缈,所谓艺术家并不指向某种特定的艺术形式,只关乎个人对世界和自我的探索和相关的艺术表达;而在这种情况下,计算机是最佳的创作工具,我相信它有无限的潜能,只要具备足够的知识和技术,它能实现各种各样的艺术创想。而学习软件工程专业,无疑是我在这条道路上的最佳选择。
我为什么要转到软件工程专业_第3张图片
Golan Levin, Augmented hand series, 2014


最后

这篇文章作为我的第一篇博客,其实并不是为了要提醒自己“不忘初心”。我一直不相信什么“初心”,我觉得所谓成长,就是不断否定过去的自己。所以可以想见,将来的我也一定会对这篇文章的某些文字感到幼稚,甚至嗤之以鼻。都没关系。以上只是我当前的一些想法,而非要指导我接下来的整个生涯。希望自己在未来还是要时刻保持理性,不断思考前进的方向,然后记录下来。不怕被打脸,持续的成长。


  1. 参见:微信公众号:歪理邪说. 作者:霍炬. 《为什么你招聘不到程序员,以及软件如何定义现实世界》 ↩

你可能感兴趣的:(我为什么要转到软件工程专业)