從程式設計師到軟體工程師[2]

才智咖 人氣:2.68W

當時看演算法本身的文件,然後又回頭看線性代數,終於理解了演算法,並用程式表達了出來。由於是嵌入式用的,又花了大量時間進行演算法優化。

從程式設計師到軟體工程師[2]

後來跳槽時終於嚐到甜頭:

1。薪水高,基本上一應聘就是Senior的職位

2。穩定,這個一般大街上招一個程式設計師是做不來的

3。機會多,這個怎麼說呢,反正只要是大公司招人,象微軟、Google等,除了問一些語言本身的問題外,基本上就是演算法和資料結構的問題。

通常面試那些時間你寫原始碼是來不及的,基本上就是寫虛擬碼。或說明你的演算法基礎和思路。答的好一兩句話就解決了。

想走這條路的朋友,我首先建議好好讀讀《資料結構與演算法:C++版》,裡面所有常用演算法和經典演算法及資料結構必須爛熟。其次,建議將大學課本找回來,幾本高數好好複習複習。《線性代數》《概率和數理統計》《微積分》《常微分》等等。

我們不是大牛,基本上創造不出新演算法,但是我們能夠將別人的演算法實現或者能把一個具體問題分解成已知的演算法,那麼你就是一個很不錯的演算法工程師了。

說實在話,語言只是工具,是很容易掌握的。99年2000年泡沫時期,不是很多人突擊那麼三個月就可以上路做programmer麼。就象刀法是很容易學會的。要應用精熟,也不過是長時間的積累而已。

對語言的理解實際上就是對刀法的領悟,有人是頓悟。但是多用總是會漸悟的`。

最重要的是基礎,就是數學能力,那可是內功。可以這樣說,你要想真正和其他程式設計師拉來差距就在這裡。

我朋友的孩子想走計算機程式設計這條路,考大學我就推薦考數學系!

再有就是多做那些大公司的面試題,一是鍛鍊自己的大腦,二是熟悉這些演算法的應用。

好了,現在能想到的就這幾點,這裡給幾個面試的例子,看看能不能用最簡單的描述解答

1.如何生成一組常態分佈的隨機數?

2.有一個二維迷宮,如何找到出口路徑?

3.有資料庫儲存一股票每五分鐘的實時報價,如何生成每小時,每天,每週……的股票價格變動曲線?

====>我的建議答案

1。生成二維隨機數,只取落在常態分佈包絡線內的數

2。二維連通圖深度優先遍歷

3。傅利葉變換