很久很久以前,我便想给大家讲这个故事——我如何走上程序媛这条“不归路”。关于自我定位,关于梦想,关于现实。
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)。可这一天是永远不会到来的,因为皇冠不是别人给的,是要由你给自己戴上的。
当我高中听说“女生理科成绩会被男生追上来”的偏见,当我大学发现计算机课学起来非常吃力和想象的不一样,当我找实习没有找到一份完全写码的工作,我曾一次次怀疑过我的能力,再一次次重拾勇气。
每个人,无论性别年龄或学历,都应该有平等的追求梦想的权利。我想用我在甜欣屋写过的这段话,感谢我遇到的良师益友们:
“原来我并不是畏惧平庸,而是害怕天赋永不显露,害怕努力不得回报。可至少有人愿意与我同行,有人愿与在前指引,我也得以跌跌撞撞地一直前进。希望终有一天,我技能强大,内心强大。”
勇往直前,不忘初欣。
博主的文笔很不错
哈哈哈哈哈哈这是申请时的 personal statement 吗
挺有意思,文笔也不错
哥大牛逼
6岁就开始做Flash动画…厉害厉害~
很棒的姐姐!!!!!你并没有比男孩子差什么!
羡慕!!
为啥男程序员头发越来越少,而女生不会?
程序媛,这么漂亮,还这么努力,加油
博主真的好厉害,我是初中正式开始自学编程的,但和博主不同,家人并不理解也不支持,所以非常羡慕博主有这样开明的父母,不管是妈妈打开了编程世界的大门,还是爸爸那一句“你对自己的要求就只是找到一份工作吗?”都让我很感动,希望博主继续这样自信强大地走下去。
一起加油!!
好美好美喔~
6岁做FLASH,和家庭对你的教育是离不开的
加油加油,一起努力!
厉害!
这是美女啊。
条件不错嘛!我们小时候连家里有一台彩电都是奢望!跟别说电脑了!我们每个生来就不平等!
能够从小接触到自己喜欢的事情并且被家人支持是多么大的幸福啊。
上补习班的碰到许老师和你成为同事。想想都好巧好强。
有一个会编程的老妈也是件幸福事嘿嘿~我的老妈都不懂得怎么操作电脑,每次还得我教她……
无论性别年龄或学历,都应该有平等的追求梦想的权利
赞
hi,博主你有兴趣加入『个站商店』吗?是一个精致的个人网站展示平台,上面有300个站长加入了哦!邀请你加入~~
https://storeweb.cn
字里行间能感受到你的自信!
一行代码,探索未来。
程序媛这个物种要像大熊猫一样好好保护,顺便保护下我们程序猿啊,O(∩_∩)O哈哈~
有趣。
我也是一个即将去实习的女程序媛,一个小公司进行软件开发。开始很激动开心,现在有点忐忑,害怕自己一去发现什么都不会,被辞退返校。哈哈哈
天哪,自愧不如,你太棒了
许多人想弄清生活的意义是什么?这重要吗?重要的是你从中有所感悟。相信自己,你很自由,充满了无限可能……
加油,有梦想谁都了不起,真羡慕你~
大佬收下我的膝盖Orz
你是一个文艺女程序媛,?
好优秀的女孩子,加油!
你很努力,也很幸运,加油!