程序媛这条不归路

很久很久以前,我便想给大家讲这个故事——我如何走上程序媛这条“不归路”。关于自我定位,关于梦想,关于现实。

6岁开始做Flash动画;
10岁写出人生第一个小游戏《打蚊子》;
14岁为《猫咪大作战》纯手写了个二维物理引擎;
15岁搭建独立个人网站“甜欣屋”。

我是欣欣,那年我高三。了解完情况,桌对面的顾问老师不紧不慢道:“女孩子学什么计算机啊?学数学多好,找工作容易。”

类似的情景,在我的成长路不断上演。我身边出现这样一群人,他们反复说学计算机太累了,女生抽象思维能力比不上男生的,学点简单东西过舒服日子吧。

有时候,他们还会问:“你是真的喜欢计算机吗?”

他们不知道我在笔记本上画的游戏设计稿,不知道我晚自习泡在学校机房写算法题,不知道我半夜蜷在学校寝室的被窝里研究碰撞检测的原理。

凭一个性别,便想否定我做的这一切。

(零)

很多朋友好奇,我是怎么对计算机产生兴趣的。向来不循规蹈矩的我,在这件事上也不例外,我是从“偷师”开始的。

那是我六岁的一天,无意中看到我妈在用Flash软件。她熟练地画出图像,添加关键帧,屏幕上的物体就动了起来,非常有趣。后来我妈有事出门,电脑还开着。刚“偷师”的我双击打开桌面上的Flash,到处东点点西点点,居然也弄出一段动画。

然后被我妈发现了。我妈干脆教我什么是图层,什么是元件。我于是整出一个叫“星球大战”的动画,背景是七彩的,几个飞船打来打去。

断断续续玩到小学四年级,我妈心血来潮教我怎么做按钮。依葫芦画瓢写上几个英文字,按钮会跳转到时间轴某个特定的位置。于是我整出了人生第一个小游戏《打蚊子》,一堆蚊子在屏幕上飞,点鼠标可以拍蚊子。我妈惊呆了,我天马行空,全程只用到她教的那一个时间轴跳转的指令。

也许她看到了我身上的一些特质吧。有天她回家跟我说,她先斩后奏干了件事。我一阵紧张。她说,给你报了个编程班。

我妈除了写按钮外并不太会编程(她说她还会写随机数投骰子的),但她为我指了个方向让我尝试。后来我才知道,她大学时候很想学计算机,却在长辈建议下学了别的。

我是她梦想的延续。

(一)

在儿童编程班,我玩得很开心。我的第一门编程语言是Visual Basic。我学会了变量和循环,还有函数。每节课老师会先示范写一个例子,然后全班照着写。

有一回,老师说要实现让标签框(label)从左移到右再移到左的效果。她写的有一句大致是“label = label – 800”。结果,标签框移动到屏幕最右,就直接瞬移到屏幕最左了。老师一时没想到办法,跟全班说,先这么写吧。

我不甘心,坐在那里使劲想。突然,我有了点子。定义一个变量来记录标签框移动的方向,每次碰到屏幕边缘就把变量的数值取负。老师看了我写的非常惊喜,跟全班说,欣欣来说一下怎么做的。我站起身,有点骄傲又有点害羞地介绍了我的方法。

班上二十几个小朋友,四个是女孩子。我从没有压力,因为我总是做得很好。每次的课前老师会给大家看我脑洞大开的程序。

直到有一天课前,班里一个男孩子的程序比我酷炫,还用到了我不知道的知识——命令行。原来,他爸爸是程序员,给他开了小灶。十岁刚出头的欣欣,心中有点小嫉妒。

也是在那里,我遇到许老师。当时他刚读完大一,勤工俭学教小朋友编程写Pascal。他上课非常意识流,讲着讲着就自言自语“我看下这个怎么优化”。我从他那里有了算法和函数封装的概念,体会了聪明的人是如何思考代码的。课程结束我送了他贺卡,不曾想到很多年后的我们会从师生变为同事。

(二)

家里没有人指导我编程,我自己去书店看书,自学各种语言和技术。高中的某一天,我发现了一本Flash游戏开发的书,爱不释手。我意识到我还非常依赖Flash特有的时间轴来推动游戏进程,所以打算写一个完全由代码驱动的Flash游戏,加深我对面向对象概念的理解。

我要写的是一个类似超级马里奥的小游戏,用方向键移动地图里的小猫到下一关,要躲避所有敌人或者发射子弹消灭它们。我还没有写过这么复杂的游戏,也没有接触过面向对象的编程概念,就按照书上说的写了详细的资源清单,画了表示继承关系和变量方法的UML类图,制定了产品时间线。

我读的是寄宿学校,不让带电脑的那种。我妈便跟老师申请让我在寝室里用手提电脑。

当时我还没有调试的概念,写了一千多行代码,还纯手写了一个二维物理引擎。然后按下运行按钮,哗,一屏幕的报错信息。我只好赶紧修,修完一波还有一波。游戏第一次跑起来的时候,渲染出的图形和实际位置有偏移,我只好继续一边修,一边上微博吐槽。

我按照产品时间线一点一点完成,从六月断断续续写到十二月。就在我快要完工的时候,发现游戏的碰撞检测有问题,而我怎么也找不到错误的地方。我茶饭不思,夜里躺在寝室的床上想,突然灵光一现。为了不让光线打扰室友休息,我连人带电脑一起闷在被子里写,终于在午夜时分写完了这个历时半年的小游戏。

除了写游戏,高一那年我在朋友的帮助下创建了个人网站,还玩了竞赛。每个晚自习我和同学都泡在机房写程序,第二天早自习前飞速补完学校的作业,甚至期中考试也没来得及复习,可谓不务正业了。信息技术课在中小学生阶段非常不受重视,可谁说得清什么是正业呢。

(三)

大学为我打开了新的一扇门。我发现计算机领域不完全是编程,还有很多话题等着我去探索。

在圣路易斯华盛顿大学,我第一次接触到那么丰富的学习资源,并且学到一些非常重要的能力。我学会用谷歌搜索所有想学的知识,学会在框架的文档记录中寻找我需要的信息,学会用Stack Overflow等网站寻找程序问题的解决方案。我疯狂地学习,像个刚会走路的孩子,在计算机科学的世界里笑呵呵到处乱跑。

学了点皮毛的我,自信地跳过了大学的入门编程课,直接上了算法课。结果第一次作业就因为不熟悉版本控制而没交成,最后整门课只拿了A-。

急于证明自己的我,赌气似的选了高级算法课,和研究生博士生一起上课。教授每次作业布置五道题,全班有半个月思考,头二个做出来的同学有附加分。老师有次出的一道题格外难,助教给了提示,还是迟迟没有同学提交答案。我想来想去,用动态规划搭配多维数组解出来,教授非常惊喜。

彼时我准备转学,教授听说我才大二,更是惊喜,非常热情地写了信向其它大学推荐我。

这门课也使我对计算理论产生了浓厚兴趣。刚好有位教授的方向是近似算法,我便去上他的课,学得非常过瘾。他听说我想转学,就鼓励我:“你在我的课上表现很棒,你是好学生(top student),你值得顶尖的学校(top school)。”我感动得回家哭了一路。

后来我录取哥大,当面告诉教授好消息。他犹豫片刻悄悄告诉我,他也要离开了,要去的是全美国计算机系第一的大学。他当时说人往高处走,也是说服他自己。

我的大学生活,每一秒都在燃烧生命。我有时戏言,大学选得好,年年似高考。而充实快乐,正是我想要的状态。

(四)

我找了好久对自我的定位,我到底能做什么工作。

最初,我是想做游戏的。我认为游戏制作要求非常综合的能力,包括技术、美工、音乐、心理等等,非常适合什么都玩一点的我。为此我去找暴雪公司的人交谈,还混进过EA公司的私人酒会。或许是我没有写说明信(cover letter)的习惯,或者我的C++学得一般般,总之我一直没有得到机会进入游戏行业。

我在美国找到的第一份工作是银行的实习。我是抱着病急乱投医的心态投简历的,把能投的公司都投了一遍。印度小哥质疑我说,有这么多游戏相关项目,为什么要来银行。我急中生智,说,游戏制作也是编程能力的一种体现。他才收了我的简历。

银行的活很杂,我被分配去做手机应用的测试。我便将手头的工作先做好。后来我拿到了正式工的offer,打算要接,我爸反对说:“你对自己的要求就只是找到一份工作吗?”

我继续找工作,刚好因为银行的经历,被高盛的量化交易团队看中,邀请我去华尔街的贸易楼层写模型,我却因为对金融了解甚少而踌躇不前。我还投递了UI/UX和产品经理等等职位,后来发现它们对大学专业和工作经历有要求。我想,我学的是计算机科学,当然应该去试试软件工程的工作,为什么非要绕开写码这个选项呢。

经学姐的推荐,我参加了谷歌的面试。第一轮考算法,我绕了十五分钟还没有思路。面试官说,你把问题复杂化了。我再一看题,不小心脱口而出:“这也太简单了吧!”所幸的是,我把题目写出来了。第二轮考到面向对象设计,我使劲回忆的六年前设计UML图时的想法,答上来了。

话说当年教我编程的许老师,大学毕业后来了美国,硬核做研究进了谷歌。而我误打误撞,居然和许老师在异国成为同事,师徒重聚。

(五)

成长路上,我受到过的对我能力的质疑并不少,其中一部分直接或间接来源于我的性别。

基于性别的刻板印象是最愚蠢的。电脑编译时只看代码不论性别,有的人还不如编译器明白事理。(这句话,把性别换成年龄或者学历同样成立)

可怕的是,这种质疑有时候会内化。研究表明,女性对自我的评价普遍低于实际情况,而自信能影响一个人的客观表现。

我总感到一种压力,自己必须要做得很好。不然就会有人说,看,女生是学不好的。很长一段时间里我极力试图证明我自己,直到听到这样一段话,我释然了——

有一种“皇冠”现象(Tiara Syndrome),说的是女性在职业道路上普遍认为要取得某项瞩目的成就,周围人才会认可她的专业度(professionalism)。可这一天是永远不会到来的,因为皇冠不是别人给的,是要由你给自己戴上的。

当我高中听说“女生理科成绩会被男生追上来”的偏见,当我大学发现计算机课学起来非常吃力和想象的不一样,当我找实习没有找到一份完全写码的工作,我曾一次次怀疑过我的能力,再一次次重拾勇气。

每个人,无论性别年龄或学历,都应该有平等的追求梦想的权利。我想用我在甜欣屋写过的这段话,感谢我遇到的良师益友们:

“原来我并不是畏惧平庸,而是害怕天赋永不显露,害怕努力不得回报。可至少有人愿意与我同行,有人愿与在前指引,我也得以跌跌撞撞地一直前进。希望终有一天,我技能强大,内心强大。”

勇往直前,不忘初欣。

评论区

  1. 皮皮 2019年1月19日 回复

    天道酬勤,你投放的回报没白费。

  2. mler 2019年1月17日 回复

    学历高,又长得好看,其他人怎么说女性不适合编程这种话,无论怎样都是一种比较肤浅的认识,你很优秀!
    同时为什么不把顶部标签里的网站名改一下?还是链接

  3. 陈仓颉 2019年1月15日 回复

    甜欣好棒!好欣赏你的学习能力和意志力,羡慕不来呀
    我也是从flash开始打开计算机的大门的,第一次让动画动起来,那种激动和自豪这辈子都忘不了

  4. 菜仔卢 2019年1月12日 回复

    路过打卡

  5. 青山 2019年1月9日 回复

    单凭自己的努力做到这种程度,真是厉害。我16岁建立了自己的博客~,马上17岁。

  6. 飞之梦 2019年1月9日 回复

    牛妹子一枚,极其少见,特别励志,不奋斗真心对不起这么走心的文章了。

  7. Diryh 2019年1月7日 回复

    都是大佬!!

  8. lynn 2019年1月6日 回复

    “原来我并不是畏惧平庸,而是害怕天赋永不显露,害怕努力不得回报。可至少有人愿意与我同行,有人愿与在前指引,我也得以跌跌撞撞地一直前进。希望终有一天,我技能强大,内心强大”
    感谢感谢!一句话点醒了我,读博中途就开始抑郁,害怕平凡

  9. Alex 2019年1月6日 回复

    美女

  10. 鄢落 2019年1月5日 回复

    你真棒,我半年前一鼓作气地报了计算机,现在却有一点点退缩了……还是要好好学敲代码

  11. 大致 2019年1月3日 回复

    从事自己喜欢的职业真是一种幸福啊。

  12. 范明明 2019年1月3日 回复

    6岁 玩泥巴
    10岁 玩泥巴
    14岁 玩泥巴
    15岁 电脑是啥?

    • YIR 2019年1月3日 回复

      对对对!我和你一样!!

  13. NOCOPy 2019年1月3日 回复

    牛牪犇!

  14. 蒲公英 2019年1月2日 回复

    勇往直前,不忘初欣。

  15. Angel 2019年1月2日 回复

    好羡慕

  16. kimeng 2019年1月1日 回复

    2019,勇往直前

  17. Reinhard 2019年1月1日 回复

    能转载在微信公众平台并注明出处吗?

    • 甜菜欣欣 2019年1月1日 回复

      谢谢你喜欢我的文章!公众号搜索“甜菜欣欣”即可,如果能转发就太感谢了

  18. 十三姨爱我 2018年12月31日 回复

    一个女学霸的成长之路!不过好在你找到了自己想要的~😄

  19. demeiyan 2018年12月31日 回复

    看到你的经历我真让人惊讶!随便教育的普及,认为女生抽象思维能力比不上男生的想法会越来越少。

  20. Lolita 2018年12月31日 回复

    观念其实取决于环境,在我上学阶段的小环境里有很多数学好的女生,数学课代表是女生,特级教师是女性,没听过“女生不适合数学”这种蠢话。直到走入社会才听说,居然还有这种说法。

  21. 走来走去的大鱼 2018年12月31日 回复

    欣欣写的真好呀,很多人可能都会对自己产生过怀疑吧,无论性别。有时这种焦虑是没来由的,我的办法就是,不要怂就是干哈哈😄 ,忙起来就好了,加油!

  22. 杨小杰 2018年12月31日 回复

    环境改变一个人的一生,2018即将过去,2019继续加油哦!

    • 甜菜欣欣 2019年1月1日 回复

      一起加油~谢谢小杰在过去的一年给甜欣屋的这么多建议!

  23. Flyer 2018年12月31日 回复

    欣欣同学
    我只能膜拜你!

  24. time.life 2018年12月30日 回复

    每个人,无论性别年龄或学历,都应该有平等的追求梦想的权利!

  25. 鸟叔 2018年12月30日 回复

    鸟叔也是这样认为的,国内交易重视书本知识,轻视动手能力,所以一旦有机会都跑国外去了。教育体制有问题

发表评论

电子邮件地址不会被公开。 必填项已用*标注