数据结构和算法一定要背算法的代码嘛_我们为什么要学习数据结构和算法?
很有趣的現象,我們去面試大廠的時候會發現,不管是社招還是校招,他們面試或者筆試都是會考算法的,想拿到大廠的offer,你就不得不去學習數據結構和算法,這一點理由夠不夠讓你去學習。
但是反過來看看小公司,某些小公司能看懂代碼就能進去。為什么現實的差距會這么大呢?
我們先聊一個更常見的事情——找對象,如果從妹子的角度來說,如果不能從你的身上看到未來發展的潛力,那么你覺得你們能在一起多久呢?畢業季一夜之間變成了分手季。
這些大廠看起來是不是和妹子有異曲同工之妙,他們更加在意你的基礎是否扎實,未來的潛力大不大,能不能培養成一個優秀的程序員。
我之前在一個小公司做過一年的開發,那要求真的是能看懂代碼基本上就可以了,不會寫沒關系,會用Ctrl + C和Ctrl + V就可以,我們一直戲稱自己是CV程序員,公司項目最多的業務邏輯就是增刪改查,復雜一點就是統計查詢。
試想一下,這樣待下去,十年積累如一日,數年以后,還只是個只會CRUD的boy,新畢業的大學生要的工資比你低,加班比你還猛。如果你是公司老板,你會怎么辦?
那時候我明白一件事,為什么大家都說35歲是程序員的坎,CRUD的操作和工地上的搬磚工沒啥區別,大家吃的都是青春飯,干的都是體力活,沒有知識沉淀的我們,一定都會被行業淘汰掉的。
想要在行業里長久的生存下去,就要不斷地豐富自己的知識,我們為什么不去學習最新追潮流的技術,而要去學習這些看起來一輩子都用不上的知識呢?
很久以前,我也是這么想的,追求最新的技術,學習最前沿的框架,但是最后發現沒什么卵用,開發的時候,還是只會調用相關的接口,做基本的CRUD操作,遇到性能瓶頸,還是不會去處理。原來自己只是個前沿的CRUD boy的而已。
我們學習知識是為了用,是為了解決實際工作問題,很多不需要自己實現的框架,并不代表什么都不需要了解,了解原理可以幫助我們更好的開發,做出更加優秀的代碼,更好的解決實際中的問題。
框架的基礎是什么?不就是一堆優秀的數據結構、算法和設計模式的結合體嗎?理解框架的源碼,了解其中的算法思想,才能更好的做出適合的選擇。
比如數組和鏈表,增刪改到底該選擇哪一個,平時我們都感覺不到有什么區別,但是當數據到百萬級,千萬級,乃至億萬級時呢?大企業的數據可都是TB來計算的。
想要成為一個優秀的研發工程師,需要我們有深厚的技術和知識積累。萬丈高樓平地起,基礎一定要牢固。我是準備從頭開始,把自己的基礎再洗刷一遍了,如果下一次的跳槽能薪資翻一番,跟別人吹起來還是很爽的。
我覺得性能是一個很好的衡量代碼質量的標準。同樣的功能,別人的代碼運行起來幾秒鐘,你的代碼運行了幾小時,這比起來還是很尷尬的。
想要提升代碼的性能,就要了解代碼的架構和思想。自己沒有好的編程思維沒關系,我們可以借鑒別人的,去學習優秀框架的編程思想,學習他們的思維方式。
學習框架的源碼,需要我們本身具有扎實的基礎知識,不然很難去理解其中的一些原理。數據結構、算法、設計模式等等各種知識,可以說是基礎中不可少的一部分。
我們學習算法結構不是說為了死記硬背知識點,這樣是沒啥用的。算法本身是一種思想,是一種思維邏輯,可以應用在很多方面,提高大腦的思考能力,改變我們的思維方式。
從知識的角度來說,在學習數據結構和算法的過程中,要建立時間復雜度,空間復雜度的概念,去理解和學會分析代碼,能做到改善代碼質量,提高代碼的性能。
從長遠來說,我們都是在慢慢的改變自己的思維,為了遇見更好的自己。
很久以前就想寫這篇文章了,拖了快一個月了,甚是慚愧。
我有一個想法,一個人走的更快,一群人可以走的更遠,我想招募一群小伙伴,組成一個小團體,希望可以互相監督學習。
當然我會提供這段時間內完成的數據結構和算法學習資料【資料僅供學習交流使用】,期間不會收取任何費用,全過程都是免費的,純粹是為了學習和交流知識。
原課程的時學習周期是四個月,我的計劃時間是五個月時間,大概能趕上明年的春招,我們的學習目標是可以手撕五百強大廠的算法題。
既然定位為小團體,這次招募的人數不會多,定位在12人左右。具體的一些要求如下所示:
總結
以上是生活随笔為你收集整理的数据结构和算法一定要背算法的代码嘛_我们为什么要学习数据结构和算法?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python能表示多大整数_Python
- 下一篇: win10鼠标没光标怎么办 解决win1