1. 程式人生 > >怎麼看待程式設計師普遍缺乏資料結構和演算法的知識?

怎麼看待程式設計師普遍缺乏資料結構和演算法的知識?

                           640?wx_fmt=jpeg

在很多程式設計師看來,資料結構,演算法這一類的東西感覺沒用,在實踐中都不常用,所以都會很忽視這類內容,但是在很多公司看來,尤其是大公司看來資料結構和演算法這種東西確實最有用,而且經常在筆試和麵試中出現。為什麼會這樣呢?

1、看似最枯燥、最基礎的東西往往具有最長久的生命力

像資料結構,演算法這類東西,還有有一些計算機原理之類的知識,這些東西都是程式設計和實踐的根本。他們看似枯燥和基礎,但是具有最長久的生命力。

我知道,你可能熟悉各種框架,各種開源庫的使用,但是那又怎樣?看著各種框架和開源庫的文件,只要有程式設計基礎,誰不會照著葫蘆畫瓢呢?

不要天天談什麼框架,什麼庫,框架每年層出不窮,可是扒下框架那層炫酷漂亮的外衣,裡面還是那些最基礎的知識和原理。就是這些演算法,資料結構,計算機網路,計算機原理這些看似基礎的東西。如果這些掌握紮實了,你才有更加深一步的可能。

程式語言和程式設計框架等這些表面的東西,對於一個基礎紮實的程式設計師來說,學習起來很快,成長也很快,如果這些基礎和原理都懂,你就可能會寫出這樣的框架來。技術更新迭代快,語言層出不窮,但是資料結構,演算法,計算機原理這類的東西確實沒有變。

2、資料結構和演算法在面試的時候最容易量化和體現能力

什麼意思呢?在面試或者筆試的時候,面試資料結構和演算法,可以面出你的思維能力,思考能力,這個能力對於程式設計來說很重要。比如:如果面試你使用過什麼框架嗎?你說:會,使用過,然後你談了談使用這些框架的一些知識和遇到的坑,以及怎麼解決的?通過這樣的問題,不能看出的思維能力和程式設計能力,只能看出你確實會用這個東西。

而面試演算法和資料結構不一樣了,以為面試這種東西可以讓你寫出來,或者寫虛擬碼,而且這些能力如果你有,你的成長空間也高。面試你程式設計的實踐能力,不可能讓你上機去敲一個模組的實現吧?而讓你寫個演算法和資料結構卻很方便,也可以量化。

所以,很多人平時不用演算法和資料結構,在跳槽的時候,也會提前去複習演算法和資料結構的知識,因為這是面試中很常見的問題。但是我還是建議大家能夠一直有這種能力。不要因為不常用而忽視這些基本的東西,這些東西才是精華。

目前大部分程式設計師是不重視這類東西的。而優秀的程式設計師是非常重視這些東西的,所以他們才優秀。要想優秀的話,你懂得。