图:美剧《硅谷》剧照文 | 托马斯
每个人走上程序员的路都不同,而我,似乎从小就注定了这条路。
这类人,我乐于称呼他们为,童子派。
童子派其实是从小学习计算机竞赛,和主流的计算机编程相比是有一定差异的。
在我周围小朋友都把电脑视为传说中的物品时,我妈就给家里添置了一台装有windows95的电脑。后来电脑普及了,我也不意外地被游戏毒害了,一开始连纸牌游戏都玩得津津有味。
真正开始学习编程,是学习一门叫信息学奥林匹克竞赛的学科,和奥数类似,只不过这个是奥计算机。
许多年以后,我带着Google的offer,再去拜访初中的恩师时,他说,那个时候就知道你没问题,毕竟你妈妈是会写汇编语言的。(汇编语言,一种低级程序语言,相对高级语言,如c++、java,更接近计算机运行的本质)
初中学计算机竞赛的时候除了去外面上课,周末两天至少花6、7个小时刷题,那个时候其实也不觉得枯燥,因为题库有记录系统,通过了多少题目,每道题目做了几次通过的,都有排名,和游戏里面打怪一样,有的题目难有的题目简单,花了2、3个小时做出了一道题的成就感还是很强的。
后来有幸去了高中F,因为他们教计算机竞赛的老师比较好,叫O老师。
搞学科奥林匹克竞赛也可以有高低之分,我的理解是,数学>=物理>化学>生物≈计算机,学校的重视程度,某种程度上说,也会因此而不同。
O老师据说就是在这种背景下辞职的,辞职之后我还是去老师那儿补课,一节课要300元,在10年前算是收入不错了,补课就在老师家,老师也不多招学生,大约二十个,分两个班。
O老师在奥计算机圈还是比较有名的,因为年轻,所以受到同学的喜爱,虽然老师不太说话,但是毕竟代沟小而且平易近人,没有架子,还会打游戏。据说O老师刚进入学校时还比较活跃,参加学校的演出活动,做班主任带班级的时候会在放学后和同学一起踢球。
我猜,辞职的导火索是因为老师觉得,计算机竞赛的同学没有得到很好的“照顾”。
一般来说搞竞赛的同学都会进入理科班学习,但是要进理科班,必须参加一个入学测试,有些搞计算机竞赛的同学没有通过,就无法进入理科班学习,不利于竞赛学习。还有比赛前一般会停课集训,也就是不上正常的教学课,只备战竞赛。比如数学竞赛可以得到1个月的停课,但计算机竞赛只有2周。当然这只是我的猜测。
看得出O老师不算是非常会沟通,也不是圆滑会妥协的人。
后来我拿到了上海市竞赛一等奖,也拿到了保送大学的资格(免高考),打算继续在O老师那儿补课,准备上海队选拔,参加全国竞赛。
有一天记得是周五,我爸接我回家开在南浦大桥上,O老师打电话过来。因为O老师不太说话,和人有一些距离感,所以大家都对他保持比较高的敬意,所以O老师打电话过来我有点小惊讶,说话都有些拘谨,心也被吊起来。
“是xxx吗?”
“是的,老师好!”
“那个下次上课你可以不用过来了。”
“额……为什么?”
“你已经拿到了一等奖,就不用过来了,把成绩搞好一些,保送就没什么问题了,然后有时间多玩玩也挺好的。”
打完电话之后有点陷入沉思,好像一般来说,我们被教育应该要更上一层楼,难道拿一等奖的作用只是为了升学?虽然升学是重要,但是如果从一开始就被教育我是为了升学才学计算机竞赛,我觉得我应该学不下去。
甚至可以说保送就像一张诺亚方舟船票,大家都说要有,老师说,同学说,家长说。
可是具体登船的感受,即使拿到了票的人,也不知道那是什么感受。我也相信,大部分学竞赛的人,不仅只是为了升学,而是因为学习的成就感,同时想要证明自己。
我那个时候其实并没有想到这一层。只是觉得老师说的有一定道理,因为上海队选拔赛的难度远大于拿一个一等奖。
虽然我后来还是用了几个月备战上海选拔队,共有6次比赛,感觉已经到了极限,即使在一次比赛中拿到头名,也并不觉得自己可以出线,强人太多。现在回想,也许是重压,也许是准备不足没有自信。
比赛完了,学校成绩也跌到了谷底,有一种破釜沉舟败北之感,也有一种如释重负之感。
高中时期也不全然都是在拼命地刷题,搞计算机竞赛的优势就是,可以打游戏来调剂。
打游戏全凭大家自觉,由于一般玩的都是联机游戏,所以大家一般都会把课间或者午休默认为娱乐时间。
在外面也有大班的补课,那个时候有什么好玩的小游戏,大家借一下u盘,很快就会风靡到很多人的电脑上,比如皮卡丘排球,猫狗大战。
在F学校里一般玩星际争霸和Dota比较多,主要是Dota,因为电脑配置比较差,就好像用扫雷的画质打魔兽世界,但是大家都打得乐滋滋,还给打游戏发明了一个词,叫做“操机”。
有一次大家在机房打操机太嚣张,引得一个机房老师突然出现在了门口,一怒之下老师拉了电,这时还在做题的同学没有保存代码,一下就和老师争执起来,剩下大家纷纷开溜,老师也没有证据说具体是谁在玩谁没在玩,谁在场谁没在场,真人版猫捉老鼠。
W同学一般都正经地在一旁学习,如果操机的同学太认真吵到他,他估计会光火。
K同学在机房打游戏的时候,会把W同学和另一个女生的名字连在一起作为他游戏里的名字,虽然有点幼稚,但W同学觉得K这样的幼稚行为可爱。
W是一个比较脸谱式的人物,有一些距离感,比较难感受到其人性的一面。他屏着一股劲,抱着乐观的心态,和一些自己的想法,想做一份有收入并且有挑战的事。
一开始W带我和K打dota,一起打电脑,W告诉我们要出什么装备,怎么样可以赢。后来我和K上瘾之后,却发现W不经常打,而且他基本只打电脑。所以我想,W也是一个活在自己世界里的人吧。
K和我不仅在同一个初中、高中,还在同一个大学。他主要走游戏路线。他玩手游多点,比如clash of clans,炉石传说,可能还有些其他的。他没有那么热爱打大型游戏如dota,我认为这是控制欲太强的表现,因为dota里面不可控因素太多,主要是人,而且输的挫败感比较强。
K是学术型人物,对工业界不是很感兴趣。工业界就是指去公司工作。学术届是以做学术,发paper,做教授为主。有一些行业学术界比较看不起工业界,即使工业界赚钱多。但计算机行业还好,毕竟计算机本身也不是一门纯理论科学。
W,如果用一个词来形容他,我觉得,是”摩羯座“。
W来自一个不算非常顶尖的上海初中,没错,他也搞计算机竞赛,但我没记错的话,他应该是从高中才开始搞的。第一次在计算机班上听说他时,感觉他很普通,而且之前没有学过竞赛,所以他的存在感便更加低了。
直到我高一时阴沟翻车,连初赛都没有过,而他进入复赛,第一次参加信息学比赛就拿到了一等奖。W在计算机竞赛的上海市队选拔赛中成功和大牛一起入选,不过在全国比赛中没有拿到和大牛一样的优异成绩进入国家集训队。
在工作中,程序员要注重的东西很多,但基本不需要关注计算机竞赛中的重点,算法与数据结构(可以理解为,刀法与刀,写程序就是告诉电脑怎么样用刀切菜)。
虽然有著名说法「程序 = 算法 + 数据结构」,但是这里说的恐怕是最基础形态的程序,比如不超过50行的无引用其他代码库的代码,也可能就是切切青菜萝卜西瓜这样。
这里把程序员狭义地称为:软件工程师。工程这个东西主要是一种技能,而不是一种知识。
比如工程讨论的是要怎么样去切1吨的青菜萝卜西瓜,并且保证以后业务发达了,打算切番茄时,不用对刀法做很大修改。但是算法与数据结构,实质上是一种知识,但不是一种技能。
当然了,计算机竞赛也有锻炼技能,便是写代码的技能。
实质上,对于一个成熟的程序员来说,敲代码可以说是最“简单”也是愉悦的部分。
而写代码之外的很多事情,才是麻烦的。比如要沟通,沟通涉及email、im、开会、面对面、电话,要和各种各样的人沟通,以确保代码写出来是高价值的。
怎样叫高价值?从结果上来说,是满足利益相关者的预期的;从工程上来说,是易于理解的,易于维护的,易于被使用的,没有bug等等。当然工程上的高质量,靠写代码前的沟通是不够的,需要积累和学习。
这些对于刚进入大学的童子派来说,是陌生的,甚至可以说和之前的计算机竞赛学习是迥然不同的。
2013年夏,开始了如火如荼的求职季。我使用的是海投战术,其中有一家不算起眼的公司给我留下了较为深刻的印象。
这家公司的特色是有5轮面试,当天完成,结果也是当天出。第4位面试官,是工程师部门的技术总监。他问了我两个有意思的问题,第一个,上海有多少辆出租车?第二个,闲暇时喜欢做什么?
通过第一个问题,他看出了我的思考问题路径,第二个问题,是对生活的理解。
他说他周末闲暇时喜欢洗车。几年后看到纸牌屋中的主角Frank在家里把皮鞋擦得蹭蹭亮时,我感到会心一击。
第5轮面试是ceo,其实就是聊一聊,之后我拿到了offer,并有幸在公司实习。我发现这家公司可能是中国最有硅谷范的公司,这话不是我原创的,但我表示认同。
公司人虽然不多,但人均贡献超百万的收入。让我感触最大的是,技术团队的每个人都很有灵气,我可以感受到他们的个性,聪慧以及真诚,可以感觉到这家公司对于文化的培养十分用心。
技术总监说,他们的技术员工之所以有灵气,是因为公司给他们提供了一个像家一样的成长环境。
他们和同事聊天,去发现员工真正喜欢的是什么,本质上热爱的是什么,会拿什么作为他们自己的终生事业。然后让员工在公司所做的事情,可以最大程度地和员工的热爱和事业契合。
技术总监说有人的梦想和研究宇宙有关,有人的理想是从事教育行业。他告诉我现在他们在公司做着什么事情,以契合他们的事业。
这一点,我至今没有听说过有第二家中国公司这样做。
后来我没有去这家公司,当时的原因是,我想打造一个这样的组织,而不是加入一个这样的公司。这家公司还是按着自己的节奏在很好地运行着。
大四找工作时,我飞去北京面试谷歌。公司就在清华校园旁,于是约了在清华的高中同学L,他带我逛了校园。
我们撞见W一个人在教室,他刚上完课在自习,我们都感叹这偶遇来得太巧了,连L都感叹非常久没有见过W了,为了感谢这缘分,我们相约一起去食堂吃麻辣香锅。
W计划保送计算机系研究生,自己闲暇时做创业项目,顺便利用研究生的资源多认识一些牛人挺好的。我虽然觉得国内研究生比较扯,但只要是牛人,那读啥都关系不大,是金子到哪都闪耀。
顺便扯了扯IT行业找工作的情况,L直感叹计算机专业简直是就业神专业。不过我的一些高中同学骨子里都适合读phd去美国顶尖学校做研究。L同学后来便去读了phd,K同学亦是。
W读研之后打算提早1年毕业。我内推他去谷歌公司并且拿到了offer,不过他打算去做量化投资方面的工作。最后一次联系,是他发现比特币有个办法可以套利,需要外汇,想和我一起试试,不过后来发现比较困难,就没有继续。
原本是同一个班的同学,多年以后却呈现出截然不同的情况,想必这就是世界的多样性,而对大部分人来说,这个情况有可能在大家10岁以前,甚至更早就决定了。
从客观上来说,女程序员的数量确实比男程序员要少。
首先,硅谷可以说是程序员的圣地,而美国本身又是极其重视平等的地方,这个极其重视的程度,到了“变态”的地步。有个玩笑是,如果在简历里面说自己是拉丁裔女性并且是同性恋的话,得到工作的几率就会大很多。
一个以程序员为核心的科技公司,要考虑的肯定不仅是公平。有研究表明,正常情况下性别的多样性可以有助于整体工作效率,老实说这个道理无需研究大家都懂。扯一句,据说如果团队里成员的文化和背景更加多样性,还会增加团队的创造力等。
所以造成了一些有意思的情况,比如HR部门会以程序员男女比例为指标,有公司研究发现女程序员和男程序员在相同背景下,晋升不如男程序员顺利,我有一次当着一位女同事面说她pretty,被老板私下提醒说话要注意。
其实包括在信息学竞赛中,也有类似现象,比如上海市参加全国竞赛的队伍里必须要有一位女生,所以一个女生只要比其他女生的成绩都要好就可以进入上海队。
回到工业界,谷歌的实习生项目中有专门的女生实习生项目,比正统的暑期实习项目门槛要低一些,而且会收一些低年级的同学,应该是旨在鼓励更多人从事程序员这一职业,同时很多科技大公司也有开展一些针对中小学女生的编程活动。
这些活动推出的同时,反而也体现了大众的偏见。只有当这些活动真的卓有成效,程序员的性别多元化大幅提升,社会的舆论才可能会改变。
但有时候我无法确认,这些活动是公关事件,还是他们真心诚意认为女程序员的比例可以大幅提升?或者只是又一种极度重视平等的体现?
我先前在一家叫做Careem的公司,可以算是中东唯一一家有点全球知名度的公司,不久前融完5亿美元,业务就是打车,Uber是我们的友商。但是以目前技术部门的发展,感觉和一流公司还是有一点距离。无论是薪酬,还是大部分员工的水准。
一位来自印度的大学校友联系我,他之前在南京念本科在上海名校念计算机研究生,因为一些原因被父母召回,现在想在迪拜找工作。可是就像他这样的背景在迪拜找工作很难。
迪拜这个地方以引进为主,而且崇洋媚外,所以一般刚毕业的员工不招,主要还是招有一定工作经验的,而且大部分是国外招过来的,近的印度埃及,远的欧洲美国。
虽然在迪拜做程序员是一个小众群体,那么到底情况是怎样的呢?
首先迪拜生活成本还是较高的,主要就是住。
一个人住,在市区附近找一个40平左右的studio(厨房和卧室和厅都在一个房间),一年13万元是需要的。差不多整个迪拜相对最便宜的studio,一年也要将近7万元,不过好在迪拜交通便捷,30多公里的距离开车20多分钟即可抵达,所以有时候会住得远一些开车上班,租车最便宜一个月在2500多元多,加起来一年10万元。
合租的话,市区附近最便宜的可以住的单人间(不带卫生间),大约一个月6000多元,如果是整个迪拜最便宜的大约是4500多人民币。
但是迪拜还有一个流行的住法,就是合住一个房间。和别人在市区合住一个房间,价格可以控制在4000元一个月。当然夸张的有8个人住一个房间,大部分来自巴基斯坦印度的打工者可能会住在那,一个月1000-1500元。还有labor camp,那住的条件可能就更加差了,迪拜实质是血汗工厂。
总体来说迪拜的生活成本较高,程序员的收入水平更多是由背景决定的,很多其他行业估计也是如此,如果来自欧美一流大公司,那么自然收入水平会尽量和原公司的税后收入持平,因为迪拜不交个税,所以工资是多少到手就是多少。
迪拜程序员这个概念本身就带着一点假的色彩,没有大的科技公司,附近也算不上有优秀的人才供给,所以这绝对可以算是一个小众群体。
不过近年来有改变的趋势。
迪拜已算是中东地区比较先进的城市,中东大部分国家都会以迪拜为榜样,但是迪拜的互联网行业方面,相比国内估计要落后5-10年,当然可能迪拜很多方面都比世界其他地区要落后不少。
随着国内互联网红利的结束,中东这个落后地区估计不久也要成为大家的必争之地。