前端開發者-到底學不學數據結構與算法?

閱讀完本篇大概須要8分鐘.前端

1、對於前端工程師算法真的重要嗎?

不少人可能不知道,我最開始不是作前端的,我是一名iOS開發者,2014年左右入得坑,那時候iOS是比較火熱的,隨便會搭建界面,出去都是10K起步的,致使不少培訓機構跟風,培養了一大批0基礎入學,4個月出來就是2年工做經驗的大神。因爲每月進入市場的人數劇增,致使市場快速飽和,最後的結果我相信不少人都知道,市場行情就是這樣,供需關係失衡的時候,就是最危險的時候,那麼對於996的程序員們來講,如何才能不會被市場淘汰呢?git

回到主題,前端工程師算法真的重要嗎?程序員

其實拋開語言自己對於程序員來說,不管你是作什麼開發的,前端也好,後臺也罷,數據結構和算法是最最根本的,由於數據結構+算法 = 程序,我想不少人應該明白這個道理,可是,你有沒有和我有一樣的感受,工做中貌似用的並很少,不少算法那已經被高級語言封裝好了,例如JS中的過濾filter,排序sort以及不少關於字符串,數組的操做等等這些,換個角度說,其實咱們天天都在使用數據結構和算法來壘代碼,只不過,咱們天天是站在巨人的肩膀上搬磚。github

那麼對於程序員來講,數據結構和算法對咱們來講影響最大的地方在哪裏?面試

我我的以爲代碼是對一件未知事物經過本身思想表達來解決的過程,語言只不過是一個載體,就比如說話同樣,不一樣語言表現形式不一樣,但最終表達出來的意思是同樣的。換個角度說,數據結構和算法就是你思惟認知的啓蒙,由於他已經爲你提供瞭解決問題的思路的大方向,你只要按照他的方向去走,指定不會錯,畢竟這些東西都是前輩們總結出來的,能經得起時間的驗證,因此我以爲數據結構和算法很是重要,由於他關乎的是你解決問題的思惟方式,關乎你寫出來的代碼的質量和效率,因此我忽然意識到,本身爲何踩過那麼多的坑,工做了那麼久,仍是沒有總結出本身的那一套適合本身壘代碼的思惟方式,因此我想經過算法來刻意訓練下本身,看可否改變下本身的思惟方式,但願本身能有個更大的提高。算法

2、數據結構和算法真的很難嗎?

我有個朋友非計算機專業的,也是前幾年搭上了移動開發這艘火箭的,今年年初開始他買了不少有關數據結構課程逼迫本身每週抽時間學習,算是一節不落的跟完了整期直播課程,前幾天我和他交流,我問他,非計算機科班出身,學數據結構累不累?他直接告訴我,確實很累,學習原本就是個痛苦的過程,由於每一個人對未知事物都會有畏難心理,可是換個角度,拋開天賦來說,每一個人的後天努力都是和你的成果成正比的,你多一份努力,天然會多一些收穫,只不過每一個人的認知能力,理解程度不一樣,對一些事物的接受程度也會有所不一樣,但最終只要你敢去直面困難,都是能克服的,畢竟方法永遠比困難多,考不了清華北大,咱考個985,211也不錯嘛,對不啦!因此天下無難事,只怕有心人,因此面前的這位大俠,要努力哈,畢竟如今的年輕人,都很難!!數組

3、對IT行業變化的一些思考

培訓機構在國內是神通常的存在,由於那裏是零基礎小白入門IT行業走向大神最快的方式,也是市場供需關係的調節體,市場哪一個技術火,哪一個方向火,總會有一批頭部梯隊察覺,帶頭跟風炒一波,畢竟這些是進大廠的必備敲門磚!最近具我觀察,去年開始培訓機構開始出有關數據結構和算法相關的課了,線上學習的較多,固然學習的人數也不少,由於人工智能、5G已經在路上了,而人工智能最基本的就是算法,因此他們對前沿技術是很是敏感的。對於在職人員來講若是你能早點覺察到,這也是機會,省得過幾年被淘汰掉,危機意識必定要有!前端工程師

4、數據結構和算法如何學習和訓練?

這個問題是仁者見仁智者見智的,每一個人的學習方式不一樣,對新知識的接受和理解程度不一樣,天然沒有統一的標準答案,可是我我的以爲,自身心態必定要先要轉變,不少人開始學數據結構和算法都是從入門到放棄,包括我在內,目的或許沒想到這玩意能提高自我壘代碼的思惟方式,以爲會解算法題,大廠面試能夠順利經過,能混個大廠的職位,也是很棒的,畢竟大廠對數據結構和算法是必考,我我的以爲首先得是意識形態轉變,硬技能驅動軟技能,畢竟程序員是拿硬技能吃飯的,從根本着手,紮實的編碼能力,牢固的基本知識,大平臺不可能不喜歡你的,這點是很是肯定的。數據結構

回到問題,學習數據結構和算法什麼方式最好?異步

如下是我總結的幾點,但願能對你有幫助

  • 看書:枯燥乏味,代碼零散,有些東西用書面語描述起來晦澀難懂,有的書籍連貫性不夠好,對於沒有基礎的人來講,會讓你以爲,看完了好幾章後,依舊似懂非懂,一頭霧水。可是對於有知識基礎的人來講,鞏固和提高,看書是一個很好的方式,畢竟權威的書籍,知識體系結構仍是很不錯的。
  • 看博客:博客質量層次不齊,不少博客都是互相抄襲,沒頭沒尾,每一個人的認知和理解不一樣,寫的東西天然也不一樣,可是利用碎片化時間來看博客,也是一種很好的方式,建議看那種連貫性的博客,知識體系完善的,畢竟一個完整的博客能讓你的思路不會混亂,固然我也會超這個方向去努力,輸出的博客也是連貫性的,當年個人CSDN寫iOS博客的時候也是從最基本的C語言UI搭建一步一步開始的。
  • 聽音頻:沒畫面的東西,我以爲仍是算了,聽完就忘記了,時間成本高,建議碎片化時間能夠利用起來。
  • 看視頻:我我的以爲一種很好的學習方式,惟一缺點是有點時間成本高,好在不少平臺能夠倍速播放,能解決掉時間成本的問題,可是必定要看業界有成就的人出的課程,站在巨人的肩膀上你會愈來愈強大!
  • 刷leetcode:這個是必須!可是要分門別類的來刷,從簡單開始,多總結,多思考,而不是隻是爲了刷題而刷題,哪怕每週一道,要理解裏面的原理知識點,這個比你刷一百道都有用,畢竟知識是一通百通嘛。

4、爲何要開始每週一道算法題?

最近我參加了一個學習課程,具體課程就不透露,省得有廣告嫌疑,預計9周左右,每週一節,每節一道算法題,預估我也要跟着寫9篇左右的菜鳥學習總結和心得體會,昨晚上了第一節課,聽得我也是比較爽的,今天一大早就起牀想總結下內容,作個記錄,也但願能經過文字的形式對面前的你有所啓發。

小結

看完上面的內容,不知道面前的你是否有觸動,也歡迎各位留言討論和互動,若是個人分享對你有所啓發,順手點個贊,讓更多小夥伴看到,也迴應我一下哈!

最近的一些分享計劃,但願對你有幫助:

Vue系列電商項目分享

🎉 Vue構建大型單頁面電商應用 開源啦!點我看源碼🚀🚀

從本週開始力爭每週分享一道算法題

最後感謝您的關注!

但願個人分享對你能有幫助,有不正確的地方也但願獲得您的勘誤!本人將不勝感激,另外若是你想獲取前端整期學習視頻和資料掃一掃下面的二維碼,回覆學習便可,也但願在前端進階的路上,咱們一塊兒成長,一塊兒進步!

相關文章
相關標籤/搜索