我曾經也是一名程式設計師(儘管未必合格),從本科開始一直到博士期間,用過了幾乎所有的語言。但是軟體開發是吃青春飯的,IT產業的新概念、新思想層出不窮,我們多數人是跟著人家的屁股跑,疲於奔命地去學習新思想、新語言等。公司的技術人員往往能及時將新技術應用到系統開發中,但是高校教師由於工作特點,往往在理論上比較超前、實踐上比較落後。也即並不是所有的老師都能及時掌握最新的程式設計思想和程式語言。指導教師的工作不是指導學生具體的哪一個功能如何實現、哪一個語句有什麼錯誤,更應該側重於總體上控制、把握系統,告訴學生程式設計的思想和理念,告訴他們解決問題的方法和思路,而不僅僅停留在解決具體問題上。
每一個教師的知識面都是有限的,即希望老師能幫你解決所有問題是不現實的,甚至說解決大多數問題都是不可求的,對於程式原來講最好的老師就是網路、是Google、是本專業程式設計的BBS。什麼功能都從零開始編寫程式碼已經不適合現在快速程式開發的模式,我告訴學生程式設計的思路是:將需要開發的功能提煉出來,到網上搜索對應的程式碼,進行單體測試後,根據需要修改,然後融合到自己系統中,最後有時間的話認真學習看懂。這種方法儘管不一定是最有的,但可能是開發速度和上手最快的。這是我作為一個程式設計師十幾年的體會。
所以說,自學是每一個程式設計師的基本功,我對學生說,你們不會問我,我不會問誰去?同樣一個道理。問我們共同的老師:Google,ESRI BBS。
從前的一個同事,一個絕頂的Oracle高手,他是我迄今為止見到的一名我死心塌地佩服的資料庫高手,好像沒有什麼他不知道的。我總是一臉虔誠的請教他為什麼知道這麼多,他把自己寫的word文件給我看了一下說,全靠這個。原來他有一個良好的習慣,碰到什麼問題怎樣解決的隨時記錄下來,有事沒事的時候的翻一翻。慢慢的碰到的難題多了,解決的次數多了,自己的水平就自然提高了,這個習慣我也保留下了。我們都有這樣一種體會,有的問題出現時自己感覺這個問題曾經碰到過而且也自己解決了,但是忘了如何解決的,因此只好自己再一次冥思苦想的找資料動腦筋,將整個過程再來一遍。為什麼不將他們全部記錄下來呢?程式設計序是一個積累的過程,兩年的程式設計師與五年的程式設計師的差別是非常明顯的,除非你是一個天才。
我曾經也是一名程式設計師(儘管未必合格),從本科開始一直到博士期間,用過了幾乎所有的語言。但是軟體開發是吃青春飯的,IT產業的新概念、新思想層出不窮,我們多數人是跟著人家的屁股跑,疲於奔命地去學習新思想、新語言等。公司的技術人員往往能及時將新技術應用到系統開發中,但是高校教師由於工作特點,往往在理論上比較超前、實踐上比較落後。也即並不是所有的老師都能及時掌握最新的程式設計思想和程式語言。指導教師的工作不是指導學生具體的哪一個功能如何實現、哪一個語句有什麼錯誤,更應該側重於總體上控制、把握系統,告訴學生程式設計的思想和理念,告訴他們解決問題的方法和思路,而不僅僅停留在解決具體問題上。
每一個教師的知識面都是有限的,即希望老師能幫你解決所有問題是不現實的,甚至說解決大多數問題都是不可求的,對於程式原來講最好的老師就是網路、是Google、是本專業程式設計的BBS。什麼功能都從零開始編寫程式碼已經不適合現在快速程式開發的模式,我告訴學生程式設計的思路是:將需要開發的功能提煉出來,到網上搜索對應的程式碼,進行單體測試後,根據需要修改,然後融合到自己系統中,最後有時間的話認真學習看懂。這種方法儘管不一定是最有的,但可能是開發速度和上手最快的。這是我作為一個程式設計師十幾年的體會。
所以說,自學是每一個程式設計師的基本功,我對學生說,你們不會問我,我不會問誰去?同樣一個道理。問我們共同的老師:Google,ESRI BBS。
從前的一個同事,一個絕頂的Oracle高手,他是我迄今為止見到的一名我死心塌地佩服的資料庫高手,好像沒有什麼他不知道的。我總是一臉虔誠的請教他為什麼知道這麼多,他把自己寫的word文件給我看了一下說,全靠這個。原來他有一個良好的習慣,碰到什麼問題怎樣解決的隨時記錄下來,有事沒事的時候的翻一翻。慢慢的碰到的難題多了,解決的次數多了,自己的水平就自然提高了,這個習慣我也保留下了。我們都有這樣一種體會,有的問題出現時自己感覺這個問題曾經碰到過而且也自己解決了,但是忘了如何解決的,因此只好自己再一次冥思苦想的找資料動腦筋,將整個過程再來一遍。為什麼不將他們全部記錄下來呢?程式設計序是一個積累的過程,兩年的程式設計師與五年的程式設計師的差別是非常明顯的,除非你是一個天才。