深圳Web前端學習:前端工程師到底要不要學習演算法知識?--【千鋒】

andy888168發表於2019-11-14

深圳Web前端學習:前端工程師到底要不要學習演算法知識?--【千鋒】


我從面試和日常工作兩個方面來討論這個問題


先說面試.

有種說法叫,面試造火箭,工作擰螺絲.拋開面試官想"技術pk"的可能性,我對這個的理解是,面試官想盡可能瞭解你程式設計能力的極限.

所以面試中有個一兩道演算法題不奇怪.


我們不需要對演算法有畏懼的心理.

一般正常的演算法題,面試官也不會出得非常難,會被控制在正常難度.


還有一點就是,面試的時候,面試官往往更加欣賞你對題目的解決思路,用虛擬碼來闡述解題的想法,也是一個很好的方式.


再說工作.

具體一點,我們是來講演算法在前端工作中應用.

web前端工作中,確實沒有太多演算法上的需求.

以vue等著名框架的虛擬dom的diff演算法來講,框架已經被很好的實現了,你在使用框架的時候是不會涉及到具體的diff演算法.

但是理解演算法,可以讓你更好的理解框架,從而也能更好的使用框架,提高頁面的效能.


再寬泛的來講演算法,很多特殊的需求也會需要你來設計一個演算法.

比如某個需求有很多個非同步請求要傳送給伺服器,全部完成之後,可以繼續下一件事情.

可能很多人要說,這個很簡單,一個Promise.all就可以解決

是的,沒有錯


但是請你考慮下面稍有變化的情況,因為伺服器的壓力問題,限制同一個客戶端只能在同一時間只能傳送2個非同步請求,所以你就必須對Promise.all做出適當的修改

在這樣的情況下,你就需要設計到一套演算法去高效完成它


再舉個例子,很多人在web前端之後轉向了H5遊戲

假設現在是個戰棋遊戲,裡面涉及到尋路演算法,那麼也需要你對演算法有了解

或許,你說可以從網上找現成的尋路演算法.

但是因為遊戲需求的多變,可能你所在公司的遊戲對於道路有著不同的設定,這導致網上的演算法不能直接套用,這就需要你的理解已經進一步的修改

所以這些都是現實的問題


最後,演算法是程式設計的"裡子",不管你是前端還是後端,作為一名計算機工程師,具備一定的演算法能力,是一種基本要求.



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69947096/viewspace-2664155/,如需轉載,請註明出處,否則將追究法律責任。

相關文章