第三十七章 外包
第二天,杨坚极其罕见地睡到了自然醒。睁开眼时,十一月芝加哥初冬的晨光,正透过百叶窗的缝隙,在地板上投下斑驳的光影。
昨天先是雷厉风行地帮凯文找好了律师,埋下了解决婚姻烂帐的法律引线。接著又在南郊的地下车行砸下重金,订製了属於自己的出行工具。
几件迫在眉睫的事情顺利步入正轨,再加上帐户里那接近四百万洗白美金带来的绝对底气,杨坚脑子里那根紧绷了许多天的弦,终於在这一刻彻底鬆弛了下来。
重生以来,他一直在步步为营地算计和谋划。而现在,隨著这三天等车交付的休息时间到来,人类骨子里的那点懒惰惯性终於占了上风。
他今天什么正事都不想干,只想舒舒服服地躺在这间南区的老房子里,彻底放空大脑,当一回什么都不用操心的废人。
杨坚舒舒服服地躺在略显破旧的床垫上,顺手摸过床头的智慧型手机。在2011年,这已经算是不错的配置了。他本能地想要像前世那样刷会儿手机来消磨时间,但大拇指在屏幕上划拉了两下,那种索然无味的感觉就涌了上来。
这时候的youtube,首页推荐算法还很稚嫩,充斥著画质感人的猫咪视频和无聊的家庭录像。
facebook上也全是大段大段的文字状態更新和构图极其隨意的低像素照片。对於一个经歷过十几年后短视频时代信息大爆炸和精准算法餵养的现代人来说,此时的移动网际网路,简直就像是一片荒芜的数字沙漠,无聊得让人打哈欠。
“算了,还是干点正事填饱肚子吧。”
杨坚把手机扔到一旁,翻身下床,趿拉著拖鞋走进了厨房,决定好好犒劳一下自己的胃。
他打开冰箱,拿出鸡蛋、全脂牛奶、厚切吐司和一包培根。作为一个对生活品质有追求的单身汉,做一顿完美的法式吐司並不算难。
他在一个平底碗里打入两颗鸡蛋,倒入適量牛奶,撒上一点肉桂粉和一撮细盐,用叉子快速打散搅匀。接著,將两片厚切吐司放进蛋液里,让麵包那多孔的结构吸饱汁水。
点火,热锅。杨坚没有急著放黄油,而是先將几片红白相间的培根平铺在平底锅上。“滋啦——”隨著温度升高,培根里的油脂被迅速逼了出来,浓郁的肉香瞬间霸占了整个厨房。
等培根煎到焦脆、边缘微微捲起时,他將培根夹出放在厨房纸上吸油。隨后,他直接利用锅里那层泛著金黄光泽的培根猪油,將吸满蛋液的吐司下了锅。
高温让吐司表面的蛋液迅速凝固,散发出一种混合著奶香、蛋香和油脂香的罪恶气息。煎至两面金黄微焦后盛出,最后再就著锅底的一点底油,单手打入一颗鸡蛋,煎了一个完美的单面半熟煎蛋。
把吐司装盘,叠上酥脆的培根,盖上煎蛋,最后淋上一圈枫糖浆。配上一杯刚手冲好的黑咖啡,这顿热量和幸福感一块儿爆炸的美式早餐就算完成了。
杨坚坐在餐桌前,用刀叉切下一块吐司。酥脆的培根、吸满糖浆和蛋液的鬆软麵包,再加上被戳破后流淌下来的浓郁蛋黄,丰富的口感在口腔里爆炸开来。一口下去,不仅胃里暖洋洋的,连灵魂都仿佛得到了升华。
吃饱喝足,用黑咖啡清了清口腔,杨坚端著马克杯坐到了书桌前,打开了那台崭新的笔记本电脑。
这是他用敲诈互利公司拿到的第一笔预付款顺手买的。顶配的性能,纯黑的金属机身。至於台式机,他打算等之后家里换了更好的家具后再攒一台性能怪兽。
按下电源键,新笔记本的触感极佳,风扇运转的声音细微得几乎听不见。手指搭在键盘上的那一刻,杨坚有一瞬间的恍惚,仿佛又回到了前世那个在深夜里敲击代码、运筹帷幄的资深程式设计师时光。
在这种舒適的工作环境下,他的大脑很快进入了高度专注的心流状態。
他打开记事本,开始系统地分析《2048》这款手机游戏的开发架构。
作为一个重生的网际网路老兵,他很清楚自己的短板:目前他只刚刚入门了java。如果要在2011年独立开发这款游戏,安卓端(android)用java勉强还能对付,但苹果的ios端此时用的是极其晦涩的objective-c语言。要兼顾双端开发,对他现在的技术储备来说,挑战难度太大,而且极其耗时。
但如果直接把核心代码外包出去,以他目前半吊子的技术水平,很容易被对方用垃圾代码忽悠,甚至存在被盗取创意的风险。
“必须得找靠谱的人,还得做好技术隔离。”
杨坚在屏幕上敲击著键盘,梳理著系统设计。在2011年,虽然前后端完全分离的概念还不如后世那么普及,但为了安全和效率,他依然决定將项目拆开:
前端(客户端):其实《2048》的核心逻辑极其简单,就是一个4x4的矩阵,加上上下左右滑动的数字合併算法(matrix sliding)。甚至都不需要用庞大的游戏引擎,直接用cocos2d-x这种轻量级跨平台框架,或者乾脆用html5/js写个网页,然后用phonegap套个原生的壳子就能搞定双端。前端只负责渲染ui动画、接收手势操作,以及在合適的位置(比如游戏结束界面)接入admob等第三方gg平台的sdk,预留出普通的gg展示格。
后端(伺服器端):需求不多,只需要开发轻量级的api接口。负责处理用户註册登录、排行榜(leaderboard)数据同步就足够了。
但在杨坚的规划里,后端的重头戏並不是这些常规功能,而是隱藏在暗处的数据埋点与分析。
他需要后端悄无声息地记录下每个用户的日活跃度(dau)、次日留存率、七日留存率,以及单次游戏时长。在没有智能推荐算法的2011年,这些极其直观的留存数据,才是他用来证明这款游戏具备恐怖成癮性的最核心资產。只要留存数据足够漂亮,前端的那些普通gg格,自然能变成源源不断的印钞机。
敲完回车,看著屏幕上的架构图,杨坚確认了整体工程量其实非常小。几个技术熟练的计算机大学生,最多一两周,就能把双端可运行的初代demo(mvp测试版)做出来。至於后期的机型適配、ui打磨和上架流程,再花点小钱让他们慢慢修就行了。
问题是,去哪找便宜好用又听话的大学生呢?直接去技术论坛上发帖招人,良莠不齐,还容易被坑。
突然,杨坚脑海中闪过一个人影。
他拉开抽屉,翻出了之前参加芝加哥大学技术沙龙时拿到的一张名片——芝加哥大学工程学院,郝斯特教授。
这个老头子在芝加哥大学混跡多年,手底下管著大批计算机系的高材生,人脉极广。通过他来介绍几个基本功扎实的学生牛马,绝对是手拿把掐的事。
而且学生普遍比较单纯,只要杨坚把任务拆解得足够碎,不让郝斯特和那些学生看清整个《2048》背后那套极具成癮性的心理学机制,他就能安安稳稳地闷声发大財。
思路理顺,杨坚拿起手机,照著名片上的號码拨了过去。
没过多久,电话接通了,那头传来了压低的声音。
“你好,这里是郝斯特。”
“教授,您好。我是杨坚。几个月前我们在芝加哥大学的技术沙龙上见过面,当时您还对我的一个算法设想指点过几句。”杨坚语气温和、不卑不亢地攀著交情。
郝斯特显然对这个有些特別的亚裔青年还有印象,轻笑了一声:“哦,我记得你,那个对算法效率极其苛刻的小伙子。怎么,今天打电话来,是有什么技术问题要探討吗?”
“不全是。实际上,我手里有一个校外的商业小项目,需要几个编程底子扎实的帮手。”杨坚直奔主题,“我想,或许您可以给我推荐几位您的得意门生。当然,报酬方面绝对是按商业標准来。”
郝斯特这种老江湖自然心领神会,给学生介绍私活赚外快,顺便自己还能落个人情,这种事在高校教授圈子里再正常不过了。
“没问题,杨。只要项目靠谱,我手底下有几个聪明的小伙子完全可以胜任……”
郝斯特的话还没说完,电话那头的声音突然顿住了,紧接著传来一阵轻微的布料摩擦声,似乎是教授站起了身。
“抱歉,杨,稍微等一下。情况有点不对劲……”郝斯特的声音压得更低了,带著几分疑惑和慍怒,“周末大学的阶梯教室被借用来承办sat(美国大学入学考试)统考,我刚好来赚点监考的外快。但我好像发现了一个代考的傢伙。”
“代考?”杨坚挑了挑眉毛。
“是的。”郝斯特在电话那头小声嘀咕著,像是在仔细观察,“一双无精打采的死鱼眼,鼻子挺得像个希腊雕塑……见鬼,这小子虽然穿著套头卫衣,但那种混不吝的劲儿根本不像个准备申请大学的老实高中生!而且我发誓,上个月承办act考试的时候,我也在这间教室见过他这张脸!这混蛋绝对是个在各种標准化考试里流窜的职业枪手!”
死鱼眼?希腊雕塑般的鼻子?sat职业代考?
这几个精准的標籤组合在一起,杨坚的脑海中瞬间浮现出了一张总是带著桀驁不驯表情的脸。
菲奥娜的大弟,加拉格家的智商担当,南区出了名的代考天才——菲利普·加拉格(phillip gallagher)。
杨坚嘴角忍不住勾起一抹玩味的弧度。这芝加哥还真是小得可怜。
“教授。”杨坚握著手机,看著屏幕上《2048》的架构图,慢条斯理地说道,“如果你描述的这个小子,刚好是我认识的那个傢伙的话……我建议你先別急著叫校警抓人。”
“为什么?”郝斯特教授有些不悦。
“因为如果真的是他,那他完全有能力拿满分。他现在做这些题,纯粹只是在精准控分,替客户考个符合自身水平,且不会被怀疑的平庸分数而已。”杨坚向后靠在椅背上,眼中闪烁著算计的光芒。
“控分?”郝斯特教授愣了一下。
“没错。教授,既然你抓到了他,不如用点特殊的手段。”杨坚轻笑了一声,顺势引导道,“你们考场为了防作弊或者应对突发情况,手头应该都准备了另一套难度稍微高一点的备用sat卷子吧?”
“有是有,但这混蛋破坏了教育公平,我为什么还要给他做另一份卷子……”
“那就直接把那份备用卷甩在他脸上,告诉他不用再藏拙,让他当著你的面放开了考。”杨坚语气平缓,却带著极强的说服力,“如果他做不出来,说明他只是个背答案的水货,你再叫保安也不迟。但如果他能在你眼皮子底下,轻轻鬆鬆拿个接近满分的成绩……”
杨坚顿了顿,语气变得意味深长:“教授,你不觉得,比起把一个为了赚生活费的穷小子送进警局,亲手验证並挖掘出一个拥有怪物般天赋的超级天才,是一件更有成就感的事情吗?”
电话那头沉默了十几秒。
大学教授往往都有一种爱才的通病,郝斯特显然被杨坚这番话挑起了强烈的好奇心。
最终,郝斯特教授的声音里透出了一丝混杂著怀疑与兴奋的情绪:“杨,你现在直接来芝加哥大学我的办公室。等我把这个『死鱼眼』小子处理完,咱们好好聊聊你的项目,顺便……看看你口中的天才,到底能不能靠他自己的脑子,从我手里把这份备用卷啃下来。”
昨天先是雷厉风行地帮凯文找好了律师,埋下了解决婚姻烂帐的法律引线。接著又在南郊的地下车行砸下重金,订製了属於自己的出行工具。
几件迫在眉睫的事情顺利步入正轨,再加上帐户里那接近四百万洗白美金带来的绝对底气,杨坚脑子里那根紧绷了许多天的弦,终於在这一刻彻底鬆弛了下来。
重生以来,他一直在步步为营地算计和谋划。而现在,隨著这三天等车交付的休息时间到来,人类骨子里的那点懒惰惯性终於占了上风。
他今天什么正事都不想干,只想舒舒服服地躺在这间南区的老房子里,彻底放空大脑,当一回什么都不用操心的废人。
杨坚舒舒服服地躺在略显破旧的床垫上,顺手摸过床头的智慧型手机。在2011年,这已经算是不错的配置了。他本能地想要像前世那样刷会儿手机来消磨时间,但大拇指在屏幕上划拉了两下,那种索然无味的感觉就涌了上来。
这时候的youtube,首页推荐算法还很稚嫩,充斥著画质感人的猫咪视频和无聊的家庭录像。
facebook上也全是大段大段的文字状態更新和构图极其隨意的低像素照片。对於一个经歷过十几年后短视频时代信息大爆炸和精准算法餵养的现代人来说,此时的移动网际网路,简直就像是一片荒芜的数字沙漠,无聊得让人打哈欠。
“算了,还是干点正事填饱肚子吧。”
杨坚把手机扔到一旁,翻身下床,趿拉著拖鞋走进了厨房,决定好好犒劳一下自己的胃。
他打开冰箱,拿出鸡蛋、全脂牛奶、厚切吐司和一包培根。作为一个对生活品质有追求的单身汉,做一顿完美的法式吐司並不算难。
他在一个平底碗里打入两颗鸡蛋,倒入適量牛奶,撒上一点肉桂粉和一撮细盐,用叉子快速打散搅匀。接著,將两片厚切吐司放进蛋液里,让麵包那多孔的结构吸饱汁水。
点火,热锅。杨坚没有急著放黄油,而是先將几片红白相间的培根平铺在平底锅上。“滋啦——”隨著温度升高,培根里的油脂被迅速逼了出来,浓郁的肉香瞬间霸占了整个厨房。
等培根煎到焦脆、边缘微微捲起时,他將培根夹出放在厨房纸上吸油。隨后,他直接利用锅里那层泛著金黄光泽的培根猪油,將吸满蛋液的吐司下了锅。
高温让吐司表面的蛋液迅速凝固,散发出一种混合著奶香、蛋香和油脂香的罪恶气息。煎至两面金黄微焦后盛出,最后再就著锅底的一点底油,单手打入一颗鸡蛋,煎了一个完美的单面半熟煎蛋。
把吐司装盘,叠上酥脆的培根,盖上煎蛋,最后淋上一圈枫糖浆。配上一杯刚手冲好的黑咖啡,这顿热量和幸福感一块儿爆炸的美式早餐就算完成了。
杨坚坐在餐桌前,用刀叉切下一块吐司。酥脆的培根、吸满糖浆和蛋液的鬆软麵包,再加上被戳破后流淌下来的浓郁蛋黄,丰富的口感在口腔里爆炸开来。一口下去,不仅胃里暖洋洋的,连灵魂都仿佛得到了升华。
吃饱喝足,用黑咖啡清了清口腔,杨坚端著马克杯坐到了书桌前,打开了那台崭新的笔记本电脑。
这是他用敲诈互利公司拿到的第一笔预付款顺手买的。顶配的性能,纯黑的金属机身。至於台式机,他打算等之后家里换了更好的家具后再攒一台性能怪兽。
按下电源键,新笔记本的触感极佳,风扇运转的声音细微得几乎听不见。手指搭在键盘上的那一刻,杨坚有一瞬间的恍惚,仿佛又回到了前世那个在深夜里敲击代码、运筹帷幄的资深程式设计师时光。
在这种舒適的工作环境下,他的大脑很快进入了高度专注的心流状態。
他打开记事本,开始系统地分析《2048》这款手机游戏的开发架构。
作为一个重生的网际网路老兵,他很清楚自己的短板:目前他只刚刚入门了java。如果要在2011年独立开发这款游戏,安卓端(android)用java勉强还能对付,但苹果的ios端此时用的是极其晦涩的objective-c语言。要兼顾双端开发,对他现在的技术储备来说,挑战难度太大,而且极其耗时。
但如果直接把核心代码外包出去,以他目前半吊子的技术水平,很容易被对方用垃圾代码忽悠,甚至存在被盗取创意的风险。
“必须得找靠谱的人,还得做好技术隔离。”
杨坚在屏幕上敲击著键盘,梳理著系统设计。在2011年,虽然前后端完全分离的概念还不如后世那么普及,但为了安全和效率,他依然决定將项目拆开:
前端(客户端):其实《2048》的核心逻辑极其简单,就是一个4x4的矩阵,加上上下左右滑动的数字合併算法(matrix sliding)。甚至都不需要用庞大的游戏引擎,直接用cocos2d-x这种轻量级跨平台框架,或者乾脆用html5/js写个网页,然后用phonegap套个原生的壳子就能搞定双端。前端只负责渲染ui动画、接收手势操作,以及在合適的位置(比如游戏结束界面)接入admob等第三方gg平台的sdk,预留出普通的gg展示格。
后端(伺服器端):需求不多,只需要开发轻量级的api接口。负责处理用户註册登录、排行榜(leaderboard)数据同步就足够了。
但在杨坚的规划里,后端的重头戏並不是这些常规功能,而是隱藏在暗处的数据埋点与分析。
他需要后端悄无声息地记录下每个用户的日活跃度(dau)、次日留存率、七日留存率,以及单次游戏时长。在没有智能推荐算法的2011年,这些极其直观的留存数据,才是他用来证明这款游戏具备恐怖成癮性的最核心资產。只要留存数据足够漂亮,前端的那些普通gg格,自然能变成源源不断的印钞机。
敲完回车,看著屏幕上的架构图,杨坚確认了整体工程量其实非常小。几个技术熟练的计算机大学生,最多一两周,就能把双端可运行的初代demo(mvp测试版)做出来。至於后期的机型適配、ui打磨和上架流程,再花点小钱让他们慢慢修就行了。
问题是,去哪找便宜好用又听话的大学生呢?直接去技术论坛上发帖招人,良莠不齐,还容易被坑。
突然,杨坚脑海中闪过一个人影。
他拉开抽屉,翻出了之前参加芝加哥大学技术沙龙时拿到的一张名片——芝加哥大学工程学院,郝斯特教授。
这个老头子在芝加哥大学混跡多年,手底下管著大批计算机系的高材生,人脉极广。通过他来介绍几个基本功扎实的学生牛马,绝对是手拿把掐的事。
而且学生普遍比较单纯,只要杨坚把任务拆解得足够碎,不让郝斯特和那些学生看清整个《2048》背后那套极具成癮性的心理学机制,他就能安安稳稳地闷声发大財。
思路理顺,杨坚拿起手机,照著名片上的號码拨了过去。
没过多久,电话接通了,那头传来了压低的声音。
“你好,这里是郝斯特。”
“教授,您好。我是杨坚。几个月前我们在芝加哥大学的技术沙龙上见过面,当时您还对我的一个算法设想指点过几句。”杨坚语气温和、不卑不亢地攀著交情。
郝斯特显然对这个有些特別的亚裔青年还有印象,轻笑了一声:“哦,我记得你,那个对算法效率极其苛刻的小伙子。怎么,今天打电话来,是有什么技术问题要探討吗?”
“不全是。实际上,我手里有一个校外的商业小项目,需要几个编程底子扎实的帮手。”杨坚直奔主题,“我想,或许您可以给我推荐几位您的得意门生。当然,报酬方面绝对是按商业標准来。”
郝斯特这种老江湖自然心领神会,给学生介绍私活赚外快,顺便自己还能落个人情,这种事在高校教授圈子里再正常不过了。
“没问题,杨。只要项目靠谱,我手底下有几个聪明的小伙子完全可以胜任……”
郝斯特的话还没说完,电话那头的声音突然顿住了,紧接著传来一阵轻微的布料摩擦声,似乎是教授站起了身。
“抱歉,杨,稍微等一下。情况有点不对劲……”郝斯特的声音压得更低了,带著几分疑惑和慍怒,“周末大学的阶梯教室被借用来承办sat(美国大学入学考试)统考,我刚好来赚点监考的外快。但我好像发现了一个代考的傢伙。”
“代考?”杨坚挑了挑眉毛。
“是的。”郝斯特在电话那头小声嘀咕著,像是在仔细观察,“一双无精打采的死鱼眼,鼻子挺得像个希腊雕塑……见鬼,这小子虽然穿著套头卫衣,但那种混不吝的劲儿根本不像个准备申请大学的老实高中生!而且我发誓,上个月承办act考试的时候,我也在这间教室见过他这张脸!这混蛋绝对是个在各种標准化考试里流窜的职业枪手!”
死鱼眼?希腊雕塑般的鼻子?sat职业代考?
这几个精准的標籤组合在一起,杨坚的脑海中瞬间浮现出了一张总是带著桀驁不驯表情的脸。
菲奥娜的大弟,加拉格家的智商担当,南区出了名的代考天才——菲利普·加拉格(phillip gallagher)。
杨坚嘴角忍不住勾起一抹玩味的弧度。这芝加哥还真是小得可怜。
“教授。”杨坚握著手机,看著屏幕上《2048》的架构图,慢条斯理地说道,“如果你描述的这个小子,刚好是我认识的那个傢伙的话……我建议你先別急著叫校警抓人。”
“为什么?”郝斯特教授有些不悦。
“因为如果真的是他,那他完全有能力拿满分。他现在做这些题,纯粹只是在精准控分,替客户考个符合自身水平,且不会被怀疑的平庸分数而已。”杨坚向后靠在椅背上,眼中闪烁著算计的光芒。
“控分?”郝斯特教授愣了一下。
“没错。教授,既然你抓到了他,不如用点特殊的手段。”杨坚轻笑了一声,顺势引导道,“你们考场为了防作弊或者应对突发情况,手头应该都准备了另一套难度稍微高一点的备用sat卷子吧?”
“有是有,但这混蛋破坏了教育公平,我为什么还要给他做另一份卷子……”
“那就直接把那份备用卷甩在他脸上,告诉他不用再藏拙,让他当著你的面放开了考。”杨坚语气平缓,却带著极强的说服力,“如果他做不出来,说明他只是个背答案的水货,你再叫保安也不迟。但如果他能在你眼皮子底下,轻轻鬆鬆拿个接近满分的成绩……”
杨坚顿了顿,语气变得意味深长:“教授,你不觉得,比起把一个为了赚生活费的穷小子送进警局,亲手验证並挖掘出一个拥有怪物般天赋的超级天才,是一件更有成就感的事情吗?”
电话那头沉默了十几秒。
大学教授往往都有一种爱才的通病,郝斯特显然被杨坚这番话挑起了强烈的好奇心。
最终,郝斯特教授的声音里透出了一丝混杂著怀疑与兴奋的情绪:“杨,你现在直接来芝加哥大学我的办公室。等我把这个『死鱼眼』小子处理完,咱们好好聊聊你的项目,顺便……看看你口中的天才,到底能不能靠他自己的脑子,从我手里把这份备用卷啃下来。”