-
1 # 我低端就改我名
-
2 # 千鋒頭號粉絲
從面試和日常工作兩個方面來討論這個問題先說面試.有種說法叫,面試造火箭,工作擰螺絲.拋開面試官想"技術pk"的可能性,我對這個的理解是,面試官想盡可能瞭解你程式設計能力的極限.所以面試中有個一兩道演算法題不奇怪.我們不需要對演算法有畏懼的心理.一般正常的演算法題,面試官也不會出得非常難,會被控制在正常難度.還有一點就是,面試的時候,面試官往往更加欣賞你對題目的解決思路,用虛擬碼來闡述解題的想法,也是一個很好的方式.再說工作.具體一點,我們是來講演算法在前端工作中應用.web前端工作中,確實沒有太多演算法上的需求.以vue等著名框架的虛擬dom的diff演算法來講,框架已經被很好的實現了,你在使用框架的時候是不會涉及到具體的diff演算法.但是理解演算法,可以讓你更好的理解框架,從而也能更好的使用框架,提高頁面的效能.再寬泛的來講演算法,很多特殊的需求也會需要你來設計一個演算法.比如某個需求有很多個非同步請求要傳送給伺服器,全部完成之後,可以繼續下一件事情.可能很多人要說,這個很簡單,一個Promise.all就可以解決是的,沒有錯但是請你考慮下面稍有變化的情況,因為伺服器的壓力問題,限制同一個客戶端只能在同一時間只能傳送2個非同步請求,所以你就必須對Promise.all做出適當的修改在這樣的情況下,你就需要設計到一套演算法去高效完成它再舉個例子,很多人在web前端之後轉向了H5遊戲假設現在是個戰棋遊戲,裡面涉及到尋路演算法,那麼也需要你對演算法有了解或許,你說可以從網上找現成的尋路演算法.但是因為遊戲需求的多變,可能你所在公司的遊戲對於道路有著不同的設定,這導致網上的演算法不能直接套用,這就需要你的理解已經進一步的修改所以這些都是現實的問題最後,演算法是程式設計的"裡子",不管你是前端還是後端,作為一名計算機工程師,具備一定的演算法能力,是一種基本要求.
回覆列表
任何跟程式碼有關的工作都需要學習演算法知識。
一,更好的理解自己的工作,並寫出更有效率的程式碼。
二,更容易讀懂別人的,特別是大神的程式碼,更快提高自己的程式設計能力。
三,更容易學習其他的程式語言,給自己的程式設計生涯帶來更多可能性。
四,更容易理解底層系統,大大減少恐懼感,帶來更多自信。
最後,不用一次學到多高深,學一步,寫一些程式碼。配合演算法的資料結構也同樣重要。