【編者按】唐巧,是國內移動開發黃金時代
幾乎所有IOS工程師都知道的名字,眾多的程序員從他這里走上了iOS之路。
而于唐巧本人而言,他編程二十余年,從最初的服務器端研發,到客戶端研發,再到現在軟硬件、供應鏈,一直在不停地嘗試新的職業挑戰,《新程序員004》帶你走進唐巧的程序人生,希望他的程序人生能給大家不一樣的參考。
作者 | 唐巧 責編 | 唐小引
出品 | 《新程序員》編輯部
我是移動互聯網時代興起時的第一批開發者,見證了移動互聯網將傳統的PC互聯網顛覆的過程。也有幸參與其中,推動移動互聯網行業的發展。
本文介紹了我從接觸計算機到選擇職業開發道路,最后再承擔起更多非技術工作的過程。希望我的程序人生能夠幫助到大家,在面對新的時代機遇時抓住機會,與時代共舞。
接觸計算機
我的計算機之旅開始于1999年,那時我15歲,正在讀初中。在我舅舅家里,第一次看到windows 98電腦就被深深地吸引了。但那個時候,我對計算機完全沒有概念,也不知道能做什么。我去學校對面的書刊亭,試圖購買計算機入門的科普讀物,但能夠找到的只有《電腦報》。
2000年,我升入高中,因為成都石室中學開設了NOI(全國青少年信息學奧林匹克競賽)課程,有幸得以學習計算機編程相關的知識。我還記得當時學的第一門語言是Pascal,教材很難買到,于是老師自行復印了幾本讓我們學習。
那是一個讓人熱血沸騰的年紀!每天晚上做完作業后,我就會翻開編程教材,一句一句地讀著那些晦澀的代碼,希望參透其背后的算法邏輯。這可能是我這輩子學習知識最艱難的時候了,因為全年級參加這個課程的只有不到5個人,幾乎沒有交流,老師剛開始指導,也不太會講,所以只能靠自己看書琢磨。
但現在回想起來,這真是一段“打雞血”的日子。第一天看不懂就第二天接著看,差不多花了一個月的時間,終于把搜索算法看明白了。由于算法的原理大同小異,學完后再學其它的算法突然就容易多了。
也是在那個時候,我發現計算機相關的雜志變得更多了。《程序員》雜志在 2000 年創刊,我是它的第一波讀者。那個時候,每個月我都會去報刊亭買《程序員》。其實好多內容我也看不太懂,但是它就有一種魔力,讓我想讀懂它。讀著讀著,好多也都懂得八九不離十了。
2002年,我參加全國青少年信息學奧林匹克競賽,由于太過緊張,平時能做對的一道題目寫錯了一個條件,本來是應該“小于等于”,我寫成了“小于”。于是程序雖然通過了樣例,但在更復雜的測試用例上都錯了,最后得了一個省二等獎。如果當初這道題做對,我就可以拿到省一等獎,進而擁有保送資格。
雖然沒有了保送資格,但因為備賽的原因,我早早就買了電腦,也接入了互聯網。我在網絡上查到北京師范大學對于省二等獎的學生,提供了報考自主招生的機會。于是,在2003年的非典時期,我自行從四川到北京,參加了北京師范大學的自主招生考試,并且通過了!我只需要上重點線即可被北師大錄取。因為這件事情對我來說過于簡單,所以高考整個過程心態都比較放松,最終超了重點線 100 分。
就這樣,計算機改變了我的整個中學生涯,幫助我進入了北京師范大學。
玩轉計算機
大學開始后,我就繼續參與計算機相關的競賽和社團。競賽上,我最終獲得了 ACM-ICPC 國際大學生程序設計競賽的亞洲區金獎(如圖1)。而社團上,我則參與創建了北師大最大的民間BBS蛋蛋網。
圖1 2004年唐巧代表北京師范大學參加ACM-ICPC
另外,我和室友也不斷地接網站制作的外包工作,他負責設計,我負責開發,兩個人在大學時期掙了不少錢。我自己還給中學生做競賽培訓的家教,這塊其實收費很高,在2000年,一般的學科家教才收費50左右1小時,計算機競賽的家教能收費200一小時。
所以,到了大學的第二年我就可以不用家里給錢,自己負擔學費和生活費了。
到了研究生階段,我進入了IBM、網易這樣的企業實習,每月的收入更加豐厚。那個時候IBM的實習工資一個月有4000元,加上研究生本身還有補貼,所以我還存了不少錢。
就這樣,在大學里,計算機就讓我深刻地感受到了它的力量,既滿足了經濟需求,也收獲了足夠的社會實踐經驗。
走上職業開發道路
2010年,我研究生畢業,拿到了百度、IBM、網易有道的研發工程師Offer,最終選擇了變化較多的網易有道,開始了職業開發的道路。
在網易有道,我先做了一年多的服務器端開發。當時正值國外Twitter火熱,我有幸參與了網易微博的服務器開發。當時,我負責的是網易微博的搜索服務,為了支持海量的用戶發貼能被實時檢索到,我們基于Lucene開發了多級索引。整個研發過程對我幫助很大,讓我知道了企業級的服務是如何被模塊化拆解,并最終完成組合的。
2011年,iphone 4S進入中國,我預感到移動端才是未來的行業發展機會,在咨詢了很多朋友之后,果斷申請轉做iOS端開發。
當時的情景很像十多年前我剛學編程的時候。iOS技術太新,基本上沒有任何可以閱讀的資料,公司內的同行也沒幾個,大家也都不精通,所以只能靠自己。但和初中不一樣的是:工作和排期已經安排下來了,我只有1-2周的時間,需要完成自學并交付相關的工作。
又是一段打雞血的時間,那個時候沒有中文資料,我找到了斯坦福大學以及WWDC的視頻,結合蘋果官方的文檔,每天用上下班坐地鐵和周末的時間來學習。我從來沒有這么高強度地學習英文資料,一段時間下來,不僅掌握了iOS知識,還把我的英文聽讀能力也練過關了。
為了讓后來者們不像我學習起來這么難受,我從那個時候開始寫iOS的博客和公眾號,也由此結交了許多同行。一年下來,我認識的iOS開發者就遍布了幾乎所有的互聯網公司。
寫博客的積累也讓我有機會將自己的知識慢慢梳理出來,最終我出版了《iOS開發進階》,該書重印了5次,風靡一時。
從開發者到更多角色
2012年,我在網易的上司郭常圳邀請我加入猿輔導,作為核心員工參與在線教育行業的創業。在線教育行業在2014年開始火爆,而猿輔導的估值也以每年翻番的速度在增長。
在猿輔導,我的身份角色不停地在變化。
-
剛開始我是iOS開發的負責人,指導并招聘了很多iOS工程師。
-
2014年,小猿搜題立項時,我成為它的產品技術負責人,開始接觸產品工作。
-
2019年,開始接觸投放和運營的工作。
-
2020年,組建了智能硬件團隊。
-
2021年,開始接觸供應鏈的工作。
每一次角色的變化,對我來說都是一段似曾相識的“打雞血”的日子。我會夜以繼日地努力學習新領域的知識,希望自己的成長能夠快速跟上業務的需求。有些時候,我做得還不夠好,但好在公司一直給我機會,讓我持續累進。
在從工程師成長為技術管理者的時候,我一邊思考一邊實踐,慢慢形成了自己的方法論,即:將管理工作拆解成為管理業務、管理團隊和管理技術。
-
管理業務時,我通過Scrum敏捷開發將整個業務開發流程管理起來。
-
管理團隊時,我主要關注人的招聘、一對一指導,以及打造積極向上的團隊工作氣氛。
-
管理技術時,我主要思考業務發展與技術方案是否匹配,是否需要做及時的技術儲備以應對業務增長。
從技術管理者到產品管理者,我主要學會了一些產品的核心方法論,主要為用戶思維和數據思維。
-
用戶思維是指能夠將自己代入到用戶場景中,思考解決方案的優劣性。在這個方向上,我學習了大量MVP(最小可行性產品)的構建和測試方法。
-
數據思維是指一切以數據導向來評估產品方案。NPS、A/B測試、用戶研究是數據思維的具體實踐方法。
從產品負責人到業務負責人轉變時,我更加關注商業模型的重要性,進而對市場端的獲客工作有了大量的思考和實踐。
在負責硬件和供應鏈團隊時,我感受到了實體產品交付的挑戰,對硬件產品在產品創新、供應鏈管控、渠道、品牌建設上的競爭局勢有了更深刻的認識。
創業的這十年也是移動互聯網高速發展的十年,我見證了抖音、滴滴、拼多多、美團的高速崛起,也見證了技術對于行業的變革。這也是技術開發者黃金的十年,很多開源的技術或社區能夠在商業層面上帶來巨大的回報。比如:
-
2017年,MongoDB上市,現在市值超200億美元;
-
2018年,GitHub被微軟以75億美元收購;
-
2019年,Elasticsearch上市,現在市值超80億美元;
-
2021年,國內的開源分布式存儲公司PingCAP完成新一輪融資,估值超過30億美元。
這也是人工智能顛覆行業的一年,我們見證了圍棋、德州撲克被AI統治,L2級自動輔助駕駛已經廣泛應用,信息流推薦和廣告投放領域也早已被深度學習統治……各種商業化領域,都開始用深度學習進行功能改造。在教育領域,我們用AI來做:
-
語音識別,幫助學習者糾正不正確的發音;
-
語義理解,幫助學習者批改中文和英文作文;
-
圖像識別,幫學習者檢查口算作業;
-
自適應學習,給學習者推薦難度適中的題目,提高練習效率。
這黃金的十年給了我們太多的商業機會,鍛煉了很多程序員成為行業專家,我個人也是這行業十年紅利的受益者。
未來的機遇與挑戰
我是幸運的,趕上了移動互聯網的紅利,成為第一批的移動開發者。那個時候移動開發剛剛興起,資料匱乏,而我抓住了這樣的機會,在為行業分享移動開發心得的同時,也收獲了技術的成長與行業的紅利。
中國發展太快了,隨著全球格局的變化,未來面臨的發展機會和挑戰都會越來越多。對于我們這一代技術人來說,只要順應時代的變化,未來的機會只會更多。
對于新一代的開發者來說,我認為未來的領域會更加集中在用技術和算法進一步改造各種傳統的行業,例如:汽車、物聯網,以及用技術將人類社會朝著數字化的虛擬世界發展。所以,我推薦大家關注自動駕駛、人工智能、產業互聯網、推薦系統、虛擬現實等領域,可能會有新的行業紅利出現。
期待大家與時代共舞。