程序媛这条不归路

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

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. TC 2023年1月20日 回复

    哈哈哈哈哈哈这是申请时的 personal statement 吗

  2. 品店科技 2022年12月5日 回复

    挺有意思,文笔也不错

  3. 椰子皮 2022年9月2日 回复

    哥大牛逼

  4. Jdeal 2022年8月24日 回复

    6岁就开始做Flash动画…厉害厉害~

  5. 九凌网络 2022年6月16日 回复

    很棒的姐姐!!!!!你并没有比男孩子差什么!

  6. 宵夜 2022年6月13日 回复

    羡慕!!

  7. 云点 2021年7月28日 回复

    为啥男程序员头发越来越少,而女生不会?

  8. 大庆seo 2021年2月3日 回复

    程序媛,这么漂亮,还这么努力,加油

  9. Luminousail 2021年1月30日 回复

    博主真的好厉害,我是初中正式开始自学编程的,但和博主不同,家人并不理解也不支持,所以非常羡慕博主有这样开明的父母,不管是妈妈打开了编程世界的大门,还是爸爸那一句“你对自己的要求就只是找到一份工作吗?”都让我很感动,希望博主继续这样自信强大地走下去。

  10. Catyo 2020年11月11日 回复

    好美好美喔~

  11. Andy烧麦 2020年11月8日 回复

    6岁做FLASH,和家庭对你的教育是离不开的

  12. 深圳成人高考 2020年10月16日 回复

    加油加油,一起努力!

  13. 史提芬先森 2020年7月7日 回复

    厉害!

  14. 成人之美 2020年5月2日 回复

    这是美女啊。

  15. 演员 2020年4月21日 回复

    条件不错嘛!我们小时候连家里有一台彩电都是奢望!跟别说电脑了!我们每个生来就不平等!

  16. Ryoma 2020年4月14日 回复

    能够从小接触到自己喜欢的事情并且被家人支持是多么大的幸福啊。

  17. 鹏程 2020年3月22日 回复

    上补习班的碰到许老师和你成为同事。想想都好巧好强。

  18. 恶魔菌. 2020年3月11日 回复

    有一个会编程的老妈也是件幸福事嘿嘿~我的老妈都不懂得怎么操作电脑,每次还得我教她……

  19. 行星带 2020年1月13日 回复

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

  20. 杨军 2019年11月21日 回复

  21. 小彦 2019年11月6日 回复

    hi,博主你有兴趣加入『个站商店』吗?是一个精致的个人网站展示平台,上面有300个站长加入了哦!邀请你加入~~
    https://storeweb.cn

  22. Jaykey 2019年9月30日 回复

    字里行间能感受到你的自信!

  23. Viernes 2019年9月28日 回复

    一行代码,探索未来。

  24. VPS234主机测评 2019年9月10日 回复

    程序媛这个物种要像大熊猫一样好好保护,顺便保护下我们程序猿啊,O(∩_∩)O哈哈~

  25. facer 2019年9月1日 回复

    有趣。

  26. 浪里个浪 2019年8月31日 回复

    我也是一个即将去实习的女程序媛,一个小公司进行软件开发。开始很激动开心,现在有点忐忑,害怕自己一去发现什么都不会,被辞退返校。哈哈哈

  27. 浩瀚 2019年8月22日 回复

    天哪,自愧不如,你太棒了

  28. Wonton 2019年8月18日 回复

    许多人想弄清生活的意义是什么?这重要吗?重要的是你从中有所感悟。相信自己,你很自由,充满了无限可能……

  29. Richex 2019年8月15日 回复

    加油,有梦想谁都了不起,真羡慕你~

  30. 白芷非白纸 2019年8月12日 回复

    大佬收下我的膝盖Orz

  31. 木朵爱 2019年8月5日 回复

    你是一个文艺女程序媛,?

  32. iverson 2019年8月2日 回复

    好优秀的女孩子,加油!

  33. hu hsiuwen 2019年7月22日 回复

    你很努力,也很幸运,加油!

发表回复

您的电子邮箱地址不会被公开。