鄭州北大青鳥老師,程序員的哲學之我見
“程序員的哲學”這樣的命題,對于老資歷的程序員似乎都有點大了,何況初出茅廬的我呢。但做為北大青鳥鄭州校區(qū)的一員,這里我只想對正在和希望從事程序開發(fā)工作的朋友分享我對程序開發(fā)的理解。這是我的哲學,我所理解的程序員的哲學。
首先跟大家分享這樣一段話:
“我們剖析事物的本質(zhì),從中形成概念,并根據(jù)需要賦于它重要性。這一切很大程度上是源于我們所使用的語言已經(jīng)在其形式中包含了一套為它的使用者所完全接受的規(guī)范,而我們正屬于接受這一規(guī)范的那群人。如果我們拒不接受語言在數(shù)據(jù)的組織與分類方面的原則的話,那我們根本就沒法說話。”
——Benjamin Lee Whorf(1897-1941)
無論你是有數(shù)年開發(fā)經(jīng)驗的程序高手,還是初識編程的青澀小生。我都希望你能將這段話多讀上幾遍,細細的品味其中的內(nèi)蘊。它會為你揭秘程序開發(fā)的本質(zhì)。
那么什么是程序呢?
不同的教科書對它的解釋不盡一致,讓我們來一起看下它的百度名片:
程序(program)是為實現(xiàn)特定目標或解決特定問題而用計算機語言編寫的命令序列的集合;為實現(xiàn)預(yù)期目的而進行操作的一系列語句和指令……
從以上定義,我們不難發(fā)現(xiàn)這樣的關(guān)系圖:
通過對上圖的感知,朋友們對程序的認知是否清晰了些許呢?原來程序就是一段話,一段語言描述,只是其中的句讀,在程序員和計算機的世界里被稱為命令、指令。對計算機工作原理不太了解的朋友可能會問,“計算機為什么不自己去解決問題和實現(xiàn)目的呢,計算機不是自動化和智能化的產(chǎn)物嗎?”關(guān)于這個問題我們可以在《Thinking In Java》這本書中找到如下描述:
“計算機革命的推動力在于機器。于是機器的發(fā)展也左右了編程語言的發(fā)展。然而真正被用作延伸智力的工具的計算機(就像Steve Jobs喜歡說的,‘思想的自行車’)并不很多,它們更多的是被用來表達思想。”
不知道上面的描述,能否起到拋磚引玉的效果。我只是想告訴朋友們,計算機雖然隨著科技的發(fā)展結(jié)構(gòu)日趨復(fù)雜,功能日趨強大,但它更多的仍被用來表達思想。什么思想呢?解決問題的思想,實現(xiàn)目的的思想——讓計算機實現(xiàn)一個預(yù)期結(jié)果的算法。
在我看來歸根到底所有程序都是算法,都是從問題空間指向解決空間的一個映射(示圖如下)。
什么是問題空間(問題模型)呢?說白了它就是需求,對于小的程序它是預(yù)期的結(jié)果,對于大的項目它是項目需求。什么是解決空間呢?它是工具,包含硬件(計算機或其它各種設(shè)備),也包含軟件(前輩們?yōu)槲覀兞粝碌拈_發(fā)平臺,高級語言,編程思想)。
而程序員的工作就在于算法,在于通過算法將問題空間和解決空間關(guān)聯(lián)在一起,從而達到解決問題的目的。無論是使用哪種語言的程序員,其哲學都是相通的,甚至是相同的。區(qū)別僅在于使用的工具不同罷了。個人心得,僅供參考,卑之無甚高論。鄭州北大青鳥老師,真誠的歡迎與每一位愛好程序,喜歡程序的人共同交流,共同成長!
更多相關(guān)北大青鳥鄭州校區(qū)的相關(guān)文章可訪問:http://www.n7362.cn
本文由站河南北大青鳥校區(qū)整編而成,如需了解更多IT資訊類的文章、新聞、課程和學習技巧、就業(yè)案例、招生詳情等問題,可以對在線咨詢老師進行一對一問答!
推薦資訊
- 鄭州學計算機選擇什么學校比較好... 2014-10-31
- 北大青鳥:IT界的你準備好轉(zhuǎn)職了嗎... 2012-10-13
- 鄭州北大青鳥翔天信鴿11月上半月... 2019-11-18
- 鄭州北大青鳥就業(yè)明星T43班蔡小東... 2012-10-13
- 鄭州北大青鳥IT培訓不斷沖擊中國... 2012-06-19
熱點資訊
- 鄭州北大青鳥翔天信鴿校區(qū)的學員... 2023-11-14
- 鄭州北大青鳥校區(qū)創(chuàng)意與趣味的游... 2023-11-07
- 鄭州北大青鳥學子們的項目成果展... 2023-10-18
- 鄭州北大青鳥校區(qū)讓學習不在枯燥... 2023-09-19
- 在鄭州北大青鳥翔天信鴿校區(qū)零基... 2023-09-01