一週總結,來一次100天挑戰

之前買了極客時間上的一個課程《左耳聽風》,發現作者發起了一個挑戰挺有趣的,ARTS,堅持100天。

Algorithm-一週至少一道算法題

Review-閱讀並點評至少一篇英文技術文章

Tip-學習至少一個技術技巧,總結和歸納在日常工作中所遇到的知識點

Share-分享一篇有觀點和思考的技術文章

看到這個挑戰後自己也想實踐一次,作爲今年的100天挑戰,再次出發。

第一週:200511-200517

Algorithm

leetcode-230:https://leetcode.com/problems/kth-smallest-element-in-a-bst/

leetcode-94:https://leetcode.com/problems/binary-tree-inorder-traversal/

leetcode-144:https://leetcode.com/problems/binary-tree-preorder-traversal/

leetcode-145:https://leetcode.com/problems/binary-tree-postorder-traversal/

leetcode-897:https://leetcode.com/problems/increasing-order-search-tree/

leetcode-997:https://leetcode.com/problems/find-the-town-judge/

Review

1、Implementing a Key-Value Store – Part 1: What are key-value stores, and why implement one

點評:

作者介紹了kv存儲及爲什麼要實現,kv是一種簡易的數據庫,用於存儲數據。比如現在的redis,是一種可支持快速讀/存的數據庫。可以有多種數據結構實現KV存儲系統,比如哈希表和平衡樹。

要實現kv存儲系統的原因是爲了提升後端程序員的技術棧,而且閱讀書籍和wiki太無聊且缺少實踐。

作者爲了回顧以下後端相關知識點:

  • C++

  • 面向對象編程

  • 數據結構和算法

  • 內存管理

  • 多線程、多進程和併發

  • 網絡編程(server/client)

  • 磁盤管理的I/O問題以及文件系統使用

文章的結構很清晰,先介紹了存儲系統,以及作爲後端通過實踐去實現一個,而且重點並不是造輪子,只是在參考已有KV存儲系統的實現,取其精華,去其糟粕,實現一個更好的KV存儲系統,同時也提升自己技能樹。

這樣的學習習慣可以借鑑,帶着目的去學習和練習,目標清晰,也不會被其他東西打斷。自己的學習也可以參考列一下自己要學習的知識點,不能總是東拼西湊的,知識點需要能串起來。

2、如何閱讀論文(https://www.cc.gatech.edu/~akmassey/posts/2012-02-15-advice-on-reading-academic-papers.html)

總結記錄:

  • 首先讀簡要和結論:

    找到作者想表達的內容和研究的課題

  • 快速過一遍論文,得出:

    目的、結構和研究方向

  • 不用每一個字都讀了,如果遇到不懂的,可以暫時先跳過,繼續往下讀,後面的內容可能會解釋前面的內容

Tip

參數校驗,定義通用參數,把方法寫在類裏邊,在請求到來時或者在攔截器調用類的校驗方法。

模型是人們對一類事物的概括與抽象,可以幫助我們更好地理解事物的本質,更方便地解決問題。比如,數學公式是我們對物理與數學規律的抽象,地圖和沙盤是我們對地理空間的抽象,軟件架構圖是軟件工程師對軟件系統的抽象。

通過抽象,我們更容易把握事物的內在規律,而不是被紛繁複雜的事物表象所迷惑,更進一步深刻地認識這個世界。通過抽象,伽利略發現力是改變物體運動的原因,而不是使物體運動的原因,爲全人類打開了現代科學的大門。

關於認爲做“最新東西”寫的亂點沒問題,反正最後會重構的問題;這個理論對麼?當然對,但是有一個前提,就是做的東西簡單, 更確切的講, 好測, 能很容易驗證基本邏輯或者系統的normal path; 對於不好測,且出一個bug就影響重大, 可能會導致黃掉整個項目,那麼程序複雜度就不能過於給系統添麻煩,程序複雜度和業務複雜度不成基本線性關係,說明這個程序員寫程序沒有scalability,做點簡單東西還行,做複雜東西就原地爆炸;程序員產出的code能不能在複雜度這個維度上scale,是我想指出的東西。(阿萊克西斯-知乎)

Share(在第二篇文章中給出)

blog-【總結】從0到1的項目經歷

挑戰看起來不容易,做起來好難,堅持下去更難,把挑戰暴露出來,希望能接受大家的監督,完成這個挑戰。

這是第一次挑戰的記錄,排版有點亂,還在學習怎麼做好排版,之後會繼續改良。如果有錯誤的地方,歡迎指正。

原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

如果本文對你有幫助,請點個贊吧,謝謝^_^

參考鏈接:

左耳聽風ARTS

https://time.geekbang.org/column/article/85839

編程到底難在哪裏?

https://www.zhihu.com/question/22508677/answer/276595266

Advice on Reading Academic Papers

https://www.cc.gatech.edu/~akmassey/posts/2012-02-15-advice-on-reading-academic-papers.html

Implementing a Key-Value Store

http://codecapsule.com/2012/11/07/implementing-a-key-value-store-part-1-what-are-key-value-stores-and-why-implement-one/

更多精彩內容,請關注個人公衆號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章