看自己幾年前寫的代碼是怎樣的一種感受?

在Quora上看到類似的問題,故想在知乎上了解一下大家是怎麼看待過去自己寫的代碼,有什麼經驗和教訓和新手分享一下。

現在的你如果能穿越到過去,你會對幾年前正在寫代碼的自己說什麼? - 編程


為了回答這個問題,我特地掏出了我的移動硬碟,裡面存放了我珍藏多年的種子(誤

一眼就看到了USACO和URAL目錄,應該有不少陳舊的代碼。

2007年,嗯,高一高二時刷的USACO,讓我們來看看寫的都是些啥。

讓我挑一個位元組數大點的文件打開來瞅瞅……

這一坨函數,看來我在當年已經靈活掌握了函數式編程(誤

等等…… 這TM是什麼

我在懷疑當時我是不是寫了另一份代碼來生成這個代碼……WTF

換個目錄,不然要掉粉了,嚇得我趕緊點開刷ZOJ的代碼庫。

雖然這個裸的BFS框架伴隨了我很久,但為什麼不把裡面的方向以向量形式保存到數組裡啊!!!這後面長得我都截不下圖了……

好了,趕緊讓我上大學吧/(ㄒoㄒ)/

這是某一場校內現場賽的代碼,冥冥之中我感覺這之中應該隱藏了什麼計算幾何的大智慧,有兩行逼格滿滿的 for 循環,但我已經看不懂我寫的是什麼了。

但是,為什麼那個 swap 和 next 兩個教派的會在一起?!看來當時的我已經人格分裂了。

這波應該要漲粉!因為我看懂了這好像是我已經無法手敲的後綴數組,感覺當年的自己好厲害。

然後發現這TM好像是套了模板出的題。

你看我這麼水也能在亞洲賽拿牌…… 你們不參加競賽是不是感覺自己大學被狗吃了。

然後就畢業開始搬磚了,還是做的蛋疼的嵌入式開發。

這段代碼應該至今還在全國各地的海格客車上跑著,是負責把車身CAN信號解析出結果顯示到儀錶上。當時技術老大說我底子還不錯,讓我去寫底層的這一個個DLL插件,但其實也沒啥大難度,整天做位運算操作感覺把自己寫吐了不說,還經常要出差去海格工廠的測試客車上調試,40度的天吶!!

然後就跳槽去了互聯網公司,當時那感覺就是另一個全新的世界。

因為之前競賽經歷,新公司老大讓我跟著他搞演算法模塊,然而這一堆什麼廣告ctr預估根本不懂,硬著頭皮看完了相關論文和老大些的代碼,強行開車上路。

這時候的代碼風格,基本跟現在接近了,無非就是後來加入了不少C++11特性。

比如之前造的輪子,自己動手豐衣足食:

最後的感受就是,這輩子都要走在通往精通C++的道路上了。

突然發現簽名自動變Python話題下的了,Python代碼沒啥好貼的,因為近兩三年才開始碼的代碼,看不大出有啥變化……

謝謝觀賞 ~


我在很早起就形成了穩定的風格和路數,到現在沒怎麼變,所以看老代碼和新代碼差不多。甚至早期會更多地用語言技巧,現在寫的更樸實。

一次開會的時候,在阿凡達的渲染器PantaRay里看到了一段代碼,越看越熟悉,這特么不是我N年前寫給Halo的嗎。

後來搞清楚了授權鏈,發現確實是我的。怪不得看阿凡達的時候發現連artifact都那麼熟悉。


寫了這麼多年Pascal不會指針的我是怎麼靠著開大數組當內存池用活下來的

為什麼begin縮進end不縮進而且還是兩個空格

沒有string沒有vector的代碼看不懂 出邊強行開300的數組覺得夠用了糊過去了


雖然下面這個『速算24點』的小伎倆沒什麼難度,做的也不好。

但是不犯錯就得不到鍛煉的機會為什麼一定要否定過去呢?

如果回到十年前,我仍然會告訴當時的我,『加油,年輕人,相信自己』。


讀以前的代碼或文章,會兩極分化。

  • 佩服自己。我現在未必可以寫出來,或者已經沒有那個耐心去寫了。
  • 還真傻啊,這是我寫的嗎?

自己寫的東西不要扔,回頭看會很有價值。我現在就很可惜找不回讀書時的作文本和試卷。


以前我能hardcode彙編……

現在只能先編譯完copypaste改改了……

記憶力下降得厲害&>&< 該吃藥了

-看到了老年痴呆的未來-


這誰寫的?代碼好整齊,注釋好齊全。

還能這麼用?哇塞好酷炫

這實現好偏們,但是好簡潔啊。

擴展起來棒棒噠

這個api我沒見過欸,用這個省好多事

注釋的作者竟然是我!老夫不信。

卧槽,首次提交也是我


剛看了下自己花兩個月時間寫的畢設,哈哈哈。。。感覺自己,萌,萌,噠。。。

然後,我真的特別感謝我的指導老師,這樣的畢設他竟然讓我過了,真的是良心老師、人類的工程師!有機會回學校,我一定買幾個棒棒糖去孝敬您老人家!!!


窩巢,這爛代碼居然穩定運行了這麼多年

窩巢,原來這裡有個BUG,可是竟然沒觸發過

窩巢,這裡明明可以一行代碼搞定的,竟然用了三行

窩巢,竟然沒寫注釋,真為現在維護我代碼的人感到悲哀

窩巢,手寫紅黑樹也只有剛畢業的孩子能幹得出來了

窩巢,原來C語言解析一個配置都這麼麻煩,我用Python後都不知道怎麼寫C了

窩巢,當時我這麼努力,老闆為什麼看不到

窩巢,看這頭文件注釋,原來都過去了這麼多年了

窩巢,當年我寫這個代碼的時候的女朋友不知道現在怎麼樣了 /(ㄒoㄒ)/~~


爛爆了


12 年:

14 年:

現在:

我覺得再過兩年我的縮進就只有一個空格了。。。


平均兩年換一個工作語言,6年前是Tcl/tk,4年前是c#,2年前是c++,現在是ocaml + c++ 。。

不對,6年前還寫了些C++的,一去看。。。

這是C++嗎?這分明就是C+類+ASM啊,自帶庫除了string一個都沒用,全部自己造輪子。。。

現在寫c++已經完全fp流了


以前寫的太花了,喜歡用各種技巧,比如大量的C++模板,內嵌彙編等等。現在更注重把代碼寫的清晰易懂,時刻注意管理代碼的複雜度。以前喜歡搞框架、用繼承,現在喜歡庫、用組合。


咦?這段代碼是不是有問題?

誒?跑起來居然成功了?

咋回事?

(看代碼看代碼...)

啊!原來是這樣!!

我真是太牛了!!!

居然能想到這麼寫!!!

我要愛上我自己了!!!!!

PS:之前寫的代碼都是很認真的,而且一些特殊需求可能那時候會想很久,然後用一些小辦法把問題解決了。下次看代碼就覺得我當時好牛啊,居然可以這麼做!現在不行了,要乾的活多了就不會好好想細節... →_→


毫無結構美感可言,想到什麼寫什麼,變數想到就隨手定義

變數名各種abcd,ijk

一編譯各種warning

字元串和數字不用宏不用xml不用配置文件,全寫到源碼去

類庫明明有的功能,自己居然親手碼,還碼個上百行出來

卧槽,我這個傻叉居然不會用lamda vector

有時候為了圖方便各種全局變數,各種static,各種extend

有些當年穀歌百度來的直接複製粘貼的源碼,至今也沒看懂原理


我每一秒都認為上一秒的自己是個傻逼,你居然問我幾年前的代碼?


不用看幾年前的,幾個月之前的代碼就夠讓你懷疑自己當初智商的了


看了一下發現就TODO的內容比較有吸引力


年輕的時候腦力好,寫程序不打草稿(不用做設計),邊寫邊重構出來的東西可用性可維護性都很好。

現在不仔仔細細想明白就寫不了程序。總感覺是種倒退。


這是哪個傻逼寫的代碼


推薦閱讀:

比女朋友長的漂亮是怎樣一種體驗?
參加星辯是一種怎樣的體驗?
有一個智障傻逼但是又可愛的女朋友是一種怎樣的體驗?
有一個逗逼同事是一種什麼樣的體驗?
當交通銀行的員工是怎樣一種體驗?

TAG:程序員 | Python | 編程 | Java | X是種怎樣的體驗 |