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

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


兴趣

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

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

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

对写代码的兴趣

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

我想多隆在写代码时的状态就是我一直以来追求的所谓 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.

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

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

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

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

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

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

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

Golan Levin
Golan Levin, Augmented hand series, 2014

最后

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


声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年8月25日
下一篇 2017年8月25日

相关推荐