前言
感覺這周終於有點步入正軌了,晚上12點左右打卡下班,早上睡到9點半,起來熱個牛奶,收拾收拾去公司。相比上週,沒有了額外學習的時間。
邏輯的碰撞,改變反射腦
不足
覆盤一下, 這周在實現一些功能的時候,只有一個感覺,就是“慢”。
具體:
- 花20%的時間寫bug,然後花60%找bug(如前一篇所言,一方面是設計階段的沒做好,另一方面是自己寫代碼的思路不好)
- 在check別人代碼的時候,反應很慢,一方面是心理因素(心理對看別人代碼有種牴觸),另一方面則是對別人代碼邏輯的不熟悉,需要花時間去了解。
多讀代碼,邏輯的碰撞
在前一篇總結中就寫到,代碼可以反應一個人的邏輯。一個項目需求如果由一千個人來做,可能會有一千種邏輯實現,雖然最後可能都會達到同樣的功能,但實現的細節可能千差萬別。
那麼問題來了,哪種邏輯是算最好的?自古有“文無第一,武無第二”的說法,寫代碼可以算在“武”裏面,因爲有明確的衡量指標(如“內存使用”, “代碼量”,“可擴展性”等等)。
在寫代碼的時候,人們往往會按照自己的直覺來寫(換種說法,就是條件反射),一氣呵成。然後寫完了,發現某些功能支持的不全,或者沒有拓展性,面對更多需求的變化,只能推倒再來。
那麼問題來了, 有改變自己直覺的方法麼?
答案是有,就是去多讀優秀的代碼,多思考優秀的邏輯。
在讀的時候可以按照如下的流程:
- 這個函數實現了什麼功能?
- 先想想這個功能要是自己來實現的話,會怎麼實現,用到哪些數據結構,這麼做內存使用,可擴展性如何
- 再看別人是如何實現的,與自己的想法有無一致
- 如果別人的邏輯比自己的優秀,可以做筆記把實現邏輯記錄下來,每天讀一遍,強行改變條件反射。
套用一句話,“讀書破萬卷,下筆如有神”,閉門造車不可取。
另“反射腦”一詞在《阿里工程師的自我修養》的 “如何在工作中快速成長? 致工程師的 10 個簡單技巧”一文中出現,裏面詳細探討了“認知升級”的方法,感觸頗多,感興趣的同學可以看看。
最後在此先立個小小的flag,希望在今年結束之前,可以看完TensorFlow(v1.2)core部分的源碼,進行總結學習。
計劃
另每天都做的俯臥撐還在堅持,已堅持21天,累計806個。
3月28日:
俯臥撐,45個。 (累計515個)
已堅持 15 天
3月29日:
俯臥撐,46個。 (累計561個)
已堅持 16 天
3月30日:
俯臥撐,47個。 (累計608個)
已堅持 17 天
3月31日:
俯臥撐,48個。 (累計656個)
已堅持 18 天
4月1日:
俯臥撐,49個。 (累計705個)
已堅持 19 天
4月2日:
俯臥撐,50個。 (累計755個)
已堅持 20 天
4月3日:
俯臥撐,51個。 (累計806個)
已堅持 21 天