開發

我的十年程序生涯:建模啟航

我是一個有魄力的人!

我是一個有魄力的人!

請大家記住這句話,只有記住這句話,你才能明白我這十年間的選擇。

十年前我還是象牙塔中數學系的一名普通的大三學生。

六年前我包里揣著3000塊錢來北漂。

三年前我在一家互聯網金融公司做到了技術負責人。

兩年前我辭職了,在一家公司做架構師,入職半年后連跳三級,被領導提拔到研發副總,最多管理超過100人。

現在我是一名自由工作者。

以上其實只是我的職場生涯,業余時間我還做了一些其它的事情。

2016年6月,開始在博客園寫技術文章,當年即被推薦成為推薦博客,陸續成為其它技術社區博客專家,16年年底文章閱讀累計超百萬。 

2017年,在公眾號紅利期早過的情況下,開通“純潔的微笑”公眾號,2 年后讀者關注量超 12 萬,綜合指數排在原創個人技術號中前十。 

2018年,嘗試在網上寫教程,年底成為 Gitchat 專欄銷量前三,后面陸續嘗試線上演講、知乎Live、免費視頻課程、線下演講等等,在每個領域去拔草,不為掙錢只為嘗試,尋找自己最想做的事情。

2019年,我也在期待會發生什么。

你想聽聽我的故事嗎?

題外話

我的個人公眾號介紹只有一句:一個有故事的程序員。說這句話不是吹牛逼,是我非常非常喜歡有故事的人,有故事的事,同時發生在我和我身邊朋友身上的事情,足足夠我寫一輩子了。

生活不是電影,但遠比電影更具有戲劇性,更精彩,更荒誕,更不真實,我想用文字記錄下這些故事,這些故事就是我的世界。

年歸正傳,這次還是先來聊聊我的故事,相信我,絕對精彩!

一件事情

回顧我們的歷史長河會發現,往往在人生的道路上,突然會有一件事影響到我們,從而改變了我們的一生。

我就有這么一件事情影響到了我,讓我找到了自己最喜歡做的事情,就是做一名程序員去 Coding 這個世界。

我的這件事情發生在大學時期,參加了全國大學生《數學建模競賽》。那年,我們小組還得了一個小獎,我把它保留至今。

我給大家從頭講起。。。

一個機會

09年那會是我讀大三的最后一個學期,和許許多多考研的大軍不同,我從來都沒有想過我還要繼續在學業上有所發展。

因為我大學上學家里欠了一屁股的債,所以我對錢極度的渴望,恨不得立刻馬上工作,讓我的家庭我可憐的母親可以喘上一口氣。

我大學學的專業是信息與科學,大家不要被這個高大上的名字所迷惑了,基本上和應用數學沒有太多的區別,整天就是學各種數列、極限、微積分、空間解析幾何等等,還有一本書就是專門證明一毫米之內的世界。一想到學這么多東西和我的就業扯不上半毛錢關系,我就提不起一絲絲的興趣。

大學三年通宵網吧、曠課籃球、掛科重考、探索男女之情,慌慌而過,唯一讓我感謝自己的就是,喜歡看書的毛病沒有變,泡在圖書館看了許許多多的書,中文系的現代文學、經濟系的人物傳記、藝術系的人體藝術都是我常常涉獵的內容,極大的擴充了我的世界觀和人生觀。

大學的碌碌無為加劇了我內心的不甘,耗費了四年火辣辣的青春、還有不知道父母從哪個親戚借來的學費,我總該學點啥吧!

就是那種你感覺渾身哪哪都是勁兒,就是不知道往哪兒使的感覺,我以為我的大學就這樣碌碌無為的過去了,終于等到了一個機會。

干票大的

那年我們學校是抱著干一票大的來準備這件事的,我就喜歡干大的。

雖然我不怎么喜歡數學,但數學系當時是我們學校的名牌專業,但卻被兄弟院校虐了好幾年,《數學建模競賽》從來都沒有拿到過國家一等獎。

于是09年的時候,學校的重視程度也上來了,在系里抽調了幾位有能力的年輕老師組建了一個團隊,并且承諾競賽結束后根據成績重獎。

老師的積極性被調動了起來(這個世界看來還是錢頂用),學校開始從數學系、物理系、化學系、計算機系招募學生,那年夏天一共招募了七八十號人。

招募過來的人,大家都沒有什么建模經驗,學校統一安排高強度培訓,并且兩周做一次模擬競賽,根據競賽結果不斷進行淘汰,最后真正參賽的人員只有十幾個人。

那時候年輕感覺不到累,整個暑假大家都是泡在實驗樓。這也成了我大學生涯中最充實的一段經歷,老師從建模算法、編程語言、論文書寫、歷屆考題分析等幾個維度不斷培訓,每培訓一段時間就來一次模擬競賽,然后宣布淘汰名額。這個過程很爽、很累、也很殘酷。

建模競賽是模擬現實生活中的真實問題,通過一套理論、算法、建立數學模型來解決問題,涉獵的內容非常多。

因此需要團隊配合來解決,每個建模小組由三個人組成,每個人的分工都不同,有的擅長算法,有的擅長論文書寫,有的強在編程實現,相互配合完成整個競賽。

找到自己喜歡做的事情

剛開始培訓的時候大家啥都不懂,也不知道自己擅長做什么,模擬競賽的過程中遇到很多問題,大家都不會,但其實這個并不重要,重要的是你可以學呀。

99% 的問題在搜索引擎的加持下都可以解決,所以競賽對自我學習能力要求極高。另外競賽是開卷的,你可以利用任何你可以搜索到的資料包括書籍。

有的杠精可能要說,既然是開卷的是不是就可以抄了,so yong so simple。《數學建模競賽》強調的是模擬現實解決實際問題,那在現實生活中解決問題當然可以查閱任何資料。

但是并不意味著可以抄,第一,你可以想到的,考題老師也可以想到;第二, 建模都是解決現實中的具體問題,這些具體問題當然是搜索不到的。

我給大家截圖看下2018年數學建模的題目,大家看完就可以理解了。

感興趣可以去這里下載:http://www.mcm.edu.cn/html_cn/block/8579f5fce999cdc896f78bca5d4f8237.html

經過一個多月的封閉培訓、模擬競賽,我終于找到了自己擅長做的事情,那就是用編程來解決問題,我喜歡敲打鍵盤的那種感覺,通過 Coding 實際解決問題簡直太酷了。

那時候老師推薦使用 MATLAB 來做數據處理,但我個人更喜歡使用 C 語言來編程,也就是在那段時間讓我體會到了編程的樂趣,于是心里想終于找到了我喜歡做的事情。

瘋狂三天

2009年9月經過3個多月的拼殺,我們十幾個人總于迎來了最終的考驗,前面提到了我們學校準備今年干票大的,于是把我們整體拉到老校區的招待所里面,好吃好喝伺候,要求只有一個:三天三夜不許出去,完全無干擾的完成競賽。

2009年競賽照片,左小角就是我們團隊。

給大家解釋一下《數學建模競賽》規則,試題出來后會給參賽者三天時間,三天后交出一份解決方案的論文,附帶程序。所以也會涉及到戰術問題,是三天都不睡覺完成競賽;還是第一天睡覺,第二天第三天不睡覺;每個團隊根據情況自行決定。我們是第一天每人睡6小時,第二天輪流睡4小時,第三天通宵。

每次競賽會出四道題,小組根據自己的情況來選擇,我們當時選擇的B組題,解決醫院眼科病床的問題。拿到這道題的時候,我們還挺高興,覺得就是個處理數據的問題,但是做著做著發現并沒有那么的簡單,同時我們嘗試了很多的數學模型,但是結果并不是很理想。

三個人不斷的討論、爭吵,實驗數學模型,調整著細小的參數,時間一下就過去了一天,還是沒有太多的頭緒,腦子都快炸了。這個時候我們組內最小的那個女生(她來自物理系),提出了一個假設,我雖然立刻就否定了她的這個設想,但還是按照她的思路進行了調整,意外的發現找到了解決問題的方法。

當找到解決方案后,最最重要的一件事情就是要寫好論文,因為不論你的模型多么的好,如果不能明白的把它講清楚,那其實效果就大大打折扣了。寫論文我們也會進行分工,有的負責寫開頭,有的負責寫論文的中部,有的專門來寫結尾。我就是那個寫結尾的人。

寫完之后,再按照競賽的標準去審稿,一遍一遍不斷的去審,改個它羅漢十八次后才到定稿。其實到了最后的那天晚上,不管是人的精神還是體力都已經到達了極限,改著改著我在座位上坐著都能睡著了,被指導老師罵醒之后,爬起來接著改。早上當我檢查完所有信息無誤后,點擊了郵件的發送按鈕,拼命三天終于結束。

過了幾個月后,競賽結果出來了,那年我們學校終于揚眉吐氣了一把,獲獎數量和質量都突破了歷史,拿到了學校的第一個國家一等獎。我們小組得了一個省級的二等獎,雖然成績并不是特別好,但我們知足了,三個月的辛苦努力并沒有白費。

后來

2010年畢業的那年,我將曾經練習過的一個競賽題目作為畢業論文進行了提交,沒想到畢業時還成為了學校的優秀畢業論文。

也正是因為數學建模競賽的這段經歷,讓我和編程結緣,為我以后走向編程的這條道路,埋下了伏筆。

大家以為我就這樣直接走向了程序員這個職業嗎?當時我也是這樣認為的,直到我碰了一鼻子灰,走了很多的彎路,甚至還南下去了深圳流水線工廠工作了幾個月,才讓我真正的下了決心走上編程這條路。

當然了我找工作的這段經歷其實更精彩,我會在后面的文章中慢慢來告訴大家。限于篇幅這篇文章就寫到這里,我計劃用連載的方式來記錄我渡過的十年程序員生涯,預計會寫下十萬字,所以故事才剛剛開始。。。

作者簡介純潔的微笑,一個有故事的程序員。曾在互聯網金融,第三方支付公司工作,現為一名自由職業者,和你一起用技術的角度去看這個世界。

我還沒有學會寫個人說明!

驀然回首,Java 已經 24 歲了!

上一篇

阿里面試題:如何保證緩存與數據庫的雙寫一致性?

下一篇

你也可能喜歡

我的十年程序生涯:建模啟航

長按儲存圖像,分享給朋友

ITPUB 每周精要將以郵件的形式發放至您的郵箱


微信掃一掃

微信掃一掃
排球主场论坛