如果說演算法讓人以更好的方法解決問題,那麼對於以程式解決問題的人而言,演算法理當能讓我們寫出更好的程式。所以隨著鐵人賽來到了終點,經過了沐浴在演算法光輝中的一個多月,程式小學徒順利進化成為了程式大師!!!
不,真實故事當然是,小學徒好不容易從演算法資料地獄中爬出來,依然還是小學徒。
這段時間讀了Grokking Algorithms: An illustrated guide for programmers and other curious people 還有Algorithms Illuminated: Part 1-4部分章節,初步認識了演算法和資料結構。但認識當然只是一個很小的開端,這次鐵人賽還有許多力有未逮的地方,例如沒能多討論演算法在程式中的實踐,或者進而以實作解決一些問題,這些只能做為未來的課題了。
雖然進化不會那麼容易發生,但這段時間還是看到了不同的風景。每每讀到各種反覆出現、環環相扣的概念,還是會驚嘆許多方法還真的是無所不在。
Algorithms Illuminated: Part 1 的開頭寫到,一個好的演算法設計者最重要的原則就是要永不滿足,永遠都要問自己,可不可以做得更好?(Can we do better?)。這個問題不只在面對費時的暴力解時應該問,就算目前的解法貌似已是唯一最佳解的時候也應該問。
所以說演算法無所不在,是因為許多人秉持著這樣的原則,才能在各種領域不斷以更好的方式前進。當然,跳脫演算法的設計與學習,在任何努力的路上也都應該問這個問題,所以最後分享這個想法給所有在各自領域努力的人,也以此期許未來再參加鐵人賽、繼續學習演算法與其他事物的自己。