唐巧,是国内移动开发黄金时代几乎所有iOS工程师都知道的名字,众多的程序员从他这里走上了iOS之路。而于唐巧本人而言,他编程二十余年,从最初的服务器端研发,到客户端研发,再到现在软硬件、供应链,一直在不停地尝试新的职业挑战,《新程序员》带你走进唐巧的程序人生,希望他的程序人生能给大家不一样的参考。
作者唐巧责编
唐小引出品
《新程序员》编辑部
我是移动互联网时代兴起时的第一批开发者,见证了移动互联网将传统的PC互联网颠覆的过程。也有幸参与其中,推动移动互联网行业的发展。
本文介绍了我从接触计算机到选择职业开发道路,最后再承担起更多非技术工作的过程。希望我的程序人生能够帮助到大家,在面对新的时代机遇时抓住机会,与时代共舞。
接触计算机
我的计算机之旅开始于年,那时我15岁,正在读初中。在我舅舅家里,第一次看到Windows98电脑就被深深地吸引了。但那个时候,我对计算机完全没有概念,也不知道能做什么。我去学校对面的书刊亭,试图购买计算机入门的科普读物,但能够找到的只有《电脑报》。
年,我升入高中,因为成都石室中学开设了NOI(全国青少年信息学奥林匹克竞赛)课程,有幸得以学习计算机编程相关的知识。我还记得当时学的第一门语言是Pascal,教材很难买到,于是老师自行复印了几本让我们学习。
那是一个让人热血沸腾的年纪!每天晚上做完作业后,我就会翻开编程教材,一句一句地读着那些晦涩的代码,希望参透其背后的算法逻辑。这可能是我这辈子学习知识最艰难的时候了,因为全年级参加这个课程的只有不到5个人,几乎没有交流,老师刚开始指导,也不太会讲,所以只能靠自己看书琢磨。
但现在回想起来,这真是一段“打鸡血”的日子。第一天看不懂就第二天接着看,差不多花了一个月的时间,终于把搜索算法看明白了。由于算法的原理大同小异,学完后再学其它的算法突然就容易多了。
也是在那个时候,我发现计算机相关的杂志变得更多了。《程序员》杂志在年创刊,我是它的第一波读者。那个时候,每个月我都会去报刊亭买《程序员》。其实好多内容我也看不太懂,但是它就有一种魔力,让我想读懂它。读着读着,好多也都懂得八九不离十了。
年,我参加全国青少年信息学奥林匹克竞赛,由于太过紧张,平时能做对的一道题目写错了一个条件,本来是应该“小于等于”,我写成了“小于”。于是程序虽然通过了样例,但在更复杂的测试用例上都错了,最后得了一个省二等奖。如果当初这道题做对,我就可以拿到省一等奖,进而拥有保送资格。
虽然没有了保送资格,但因为备赛的原因,我早早就买了电脑,也接入了互联网。我在网络上查到北京师范大学对于省二等奖的学生,提供了报考自主招生的机会。于是,在年的非典时期,我自行从四川到北京,参加了北京师范大学的自主招生考试,并且通过了!我只需要上重点线即可被北师大录取。因为这件事情对我来说过于简单,所以高考整个过程心态都比较放松,最终超了重点线分。
就这样,计算机改变了我的整个中学生涯,帮助我进入了北京师范大学。
玩转计算机
大学开始后,我就继续参与计算机相关的竞赛和社团。竞赛上,我最终获得了ACM-ICPC国际大学生程序设计竞赛的亚洲区金奖(如图1)。而社团上,我则参与创建了北师大最大的民间BBS蛋蛋网。
图12年唐巧代表北京师范大学参加ACM-ICPC
另外,我和室友也不断地接网站制作的外包工作,他负责设计,我负责开发,两个人在大学时期挣了不少钱。我自己还给中学生做竞赛培训的家教,这块其实收费很高,在年,一般的学科家教才收费50左右1小时,计算机竞赛的家教能收费一小时。
所以,到了大学的第二年我就可以不用家里给钱,自己负担学费和生活费了。
到了研究生阶段,我进入了IBM、网易这样的企业实习,每月的收入更加丰厚。那个时候IBM的实习工资一个月有元,加上研究生本身还有补贴,所以我还存了不少钱。
就这样,在大学里,计算机就让我深刻地感受到了它的力量,既满足了经济需求,也收获了足够的社会实践经验。
走上职业开发道路
年,我研究生毕业,拿到了百度、IBM、网易有道的研发工程师Offer,最终选择了变化较多的网易有道,开始了职业开发的道路。
在网易有道,我先做了一年多的服务器端开发。当时正值国外Twitter火热,我有幸参与了网易微博的服务器开发。当时,我负责的是网易微博的搜索服务,为了支持海量的用户发贴能被实时检索到,我们基于Lucene开发了多级索引。整个研发过程对我帮助很大,让我知道了企业级的服务是如何被模块化拆解,并最终完成组合的。
年,iPhone4S进入中国,我预感到移动端才是未来的行业发展机会,在咨询了很多朋友之后,果断申请转做iOS端开发。
当时的情景很像十多年前我刚学编程的时候。iOS技术太新,基本上没有任何可以阅读的资料,公司内的同行也没几个,大家也都不精通,所以只能靠自己。但和初中不一样的是:工作和排期已经安排下来了,我只有1-2周的时间,需要完成自学并交付相关的工作。
又是一段打鸡血的时间,那个时候没有中文资料,我找到了斯坦福大学以及WWDC的视频,结合苹果官方的文档,每天用上下班坐地铁和周末的时间来学习。我从来没有这么高强度地学习英文资料,一段时间下来,不仅掌握了iOS知识,还把我的英文听读能力也练过关了。
为了让后来者们不像我学习起来这么难受,我从那个时候开始写iOS的博客和