(原創) 身為程序員的你,別再逃避演算法了 (日記)

上星期五看了為什麼PHPer是草根開發者那篇文章,使我很大的感慨,以前的我,是很不想碰演算法的,所以只想依靠Database Server,只想依靠Library,這樣寫程式雖然很快,雖然很爽,但是一旦遇到沒有Database Server,沒有Library的環境下,如嵌入式系統,就會非常的慘,因為之前所依賴的武器都沒了,這時要的是什麼呢?就是演算法了,如ARM環境,你有的武器就是一個C/C++ Compiler,為了效率和size,很可能用純C語言,而捨棄C++,連STL都不能用了,這時完全只能靠資料結構和演算法來寫了,而這正也是一個程序員的價值所在,無論在什麼環境下,都可以將問題解決。

我常覺得像.NET或Java環境,C#和Java其實都只能算是Script而已,也就是說,除非你寫Library或Framework,若只是操縱Library或Framework而已,那C#、Java跟Python有什麼差別呢?Python常和C++搭配,C++負責寫Library,Python負責操縱C++所寫的Library,假如一個C#或Java的程式員,只定位在操縱Library而已,就真的價值不大了。

所以,一個程序員的價值,除了熟悉該語言外,還要有處理演算法的能力。

或許你會說,演算法是資工領域的專長吧,我們想的演算法會比搞資工的好嗎?我也曾經這樣想過,想說既然想出的演算法贏不過資工的,就用資工想出的演算法就好啦,我們專心實作就好,問題是各個Domain都不一樣,念資工不可能在每個領域都熟,在每個領域都已經做出好的演算法,所以到頭來,還是要靠各領域的人自己來想適當的演算法,所以,各領域的程式員,除了熟析語言外,還要增加設計演算法的能力,這就需要加強資料結構,演算法,離散數學,機率等學科的能力,也唯有這樣的程序員,才能在沒有Library的環境下,依然有能力解決問題,而不再只會操縱Library而已,進而還能設計Library,我相信在一個公司中,能設計Library的絕對是資深的程序員,也是公司內較有價值的程序員。

假如你和我一樣,曾經是個逃避演算法的程序員,也應該慢慢覺醒了,唯有能設計演算法,設計Library的程序員,才是有價值的程序員!!

See Also
(轉載) 為什麼說PHPer是草根開發者

posted on 2006-12-09 01:47  真 OO无双  阅读(1560)  评论(6编辑  收藏  举报

导航