• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            歲月流轉(zhuǎn),往昔空明

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              118 Posts :: 3 Stories :: 413 Comments :: 0 Trackbacks

            #

            Scenario 2:講師

            剛剛從Esri的論壇上看到一個(gè)帖子,大致的意思是抱怨說,國內(nèi)的講師與國外的差距太大了。

            國外的講師的課我沒去聽過,不過據(jù)說有一個(gè)Survey的專家,他自己說他對GIS了解的不多。這肯定是謙虛了,不過至少說明,專業(yè)很NB的人在GIS行當(dāng)當(dāng)顧問是沒啥問題的。

            扯遠(yuǎn)了。回過頭說講師。都說了,國外的講師我沒聽,但是從國內(nèi)講師的情況來看,中科永生的培訓(xùn)課要比Esri的技術(shù)支持工程師要好。可能是他們講課講的比較多,所以就比較順當(dāng)吧。

            而且不知道是真心的還是僅僅是出于職業(yè)習(xí)慣,培訓(xùn)公司的幾名老大都比較的熱情,相比之下Esri的支持就顯得稍微冷淡一點(diǎn)。

            在所有的演講里面,給我映像最好的是arcfall的關(guān)于GIS柵格存儲模型的講解。不過似乎我這人有點(diǎn)邪門,11月7號,凡是我聽的全部講座的演示,全部都輝煌的失敗了。
            posted @ 2006-11-12 15:31 空明流轉(zhuǎn) 閱讀(378) | 評論 (0)編輯 收藏

            Preface
            ???既然是叫“隨想”,那么也就是想到哪寫到哪,只要能說出我想說的話,就都好了。

            Scenario 1:昨天晚間
            昨天乘坐晚上的火車,早間回的學(xué)校。看見火車剛剛出北京站時(shí)北京二環(huán)外的燈火通明車流不息,竟然有一種熟悉的感覺,于是我下意識的沖著往來的耀眼的光招了招手。然后想到徐志摩這個(gè)老流氓,遂笑。其實(shí)哪里是“不帶走一片云彩”呢,其實(shí)是“一片云彩都帶不走”啊。
            將車窗的布簾拉下,不用看著飛身而過的兩側(cè)護(hù)欄,單單是聽著鐵軌發(fā)出的節(jié)奏,我就已經(jīng)知道,OK,這一周的時(shí)光,將永遠(yuǎn)只能佇立在原地,看著我的背影漸行漸遠(yuǎn)了,即使我偶有回眸,它也不得而知。
            于是我的“它”陷入了悲傷之中。
            但是,我只是剛剛上路。不能回首。

            (后面的暫時(shí)沒時(shí)間寫了。。。)

            posted @ 2006-11-11 22:52 空明流轉(zhuǎn) 閱讀(498) | 評論 (2)編輯 收藏

            前兩天幫別人裝VS2005時(shí),一切都正常的裝完了,但是在新建了一個(gè)console app以后,Compile....Link....OK,本來以為萬事大吉,結(jié)果沒想到突然蹦出來一個(gè)提示:

            沒有找到MSVCR80D.dll,因此這個(gè)應(yīng)用程序未能啟動。

            我當(dāng)時(shí)心里想,玩完了。于是下了一個(gè)Distributed Runtime,問題依舊,SDK,問題依舊。但是后來我將Solution文件夾下面的Debug文件夾刪掉,Compile...Link...Run....一切就都OK了。

            這至少算是一個(gè)解決辦法。但是我自己的機(jī)器上就沒有這樣的問題,這讓我覺得有些詫異。

            在網(wǎng)上搜了一下,發(fā)現(xiàn)問題可能出現(xiàn)在文件系統(tǒng)上,好像只有FAT32才會出現(xiàn)這樣的問題。

            解決方案有三:
            1. 在'Project Properties->Configuration Properties->Mainfest Tool->Input and Output->Embed Manifest' 將 YES 改成 NO 就可以了
            2. 微軟的解決方案。
              在“屬性->配置屬性->清單工具->常規(guī)“下有一個(gè)”使用FAT32解決辦法,設(shè)置為"是"
            3? 找到你的工程的文件夾,如(myproject),找到其下的myproject\myproject\Debug\,Delete it.
            posted @ 2006-11-05 07:47 空明流轉(zhuǎn) 閱讀(779) | 評論 (3)編輯 收藏

            并發(fā)程序的范例來自于一片古老的論文<<concurrent programming concepts>>中的一個(gè)流處理過程的實(shí)例。盡管說并發(fā)從語言級別支持要更加容易的多,但是對于C++來說,現(xiàn)階段編寫并發(fā)的方式還是以Multithread為主。

            程序邏輯很簡單,讀取一個(gè)整數(shù)(實(shí)質(zhì)上為了方便我直接用的是程序生成,偷懶了,哈哈),然后并行處理。注意處理這一步一定是高度并發(fā)的,這里我為了簡單起見使用了sleep的方式來模擬真實(shí)時(shí)耗,然后數(shù)據(jù)改變僅僅是在原數(shù)上乘以二,最后輸出。

            輸入和輸出考慮到通常他們都是序列化的情況選擇了單線程的方式,實(shí)際上如果條件允許,輸入輸出也完全可以是并發(fā)的。

            對于中間的sleep+2乘這一步,才是真正并發(fā)的。之所以用sleep,是因?yàn)樗艿鹊揭欢ǖ臅r(shí)間并在此期間基本上不占用CPU,有點(diǎn)類似于MPU的情況。所以拿它還能做出來一些挺有意思的數(shù)據(jù)來(YY下SMP ^_^)。

            工程文件下載

            注意記得將boost::thread的庫文件的目錄添加到附加庫目錄下。
            只有boost源代碼庫沒有二進(jìn)制庫的,可以訪問這里下載boost::thread所需要的lib和dll。(VC++8.0使用)
            如果想自己編譯boost而又懶得去看E文的,可以看這里的編譯教程。
            posted @ 2006-10-26 22:29 空明流轉(zhuǎn) 閱讀(1456) | 評論 (0)編輯 收藏

            關(guān)鍵字:boost 編譯 安裝

            boost編譯。沒啥新東西,老生常談。

            先給出英文的編譯幫助,有什么不明白的或者我沒說清楚的請查閱并確認(rèn)。
            www.boost.org/more/getting_started.html
            或者你的boost的安裝路徑下的more/getting_started.html

            這里以1.33.1為例。

            1.下載boost包,并解壓到某個(gè)文件夾下。這里用為方面起見$boost_dir代替,在說明路徑的地方如果出現(xiàn)了$boost_dir請用實(shí)際的boost的解壓路徑替代。
            注:如果你下載了boost的一些增補(bǔ)包,這些包一般是在boost從上一個(gè)大版本到新大版本之前被收錄的一些新的庫或者是新的編譯工具,例如新的bjam。請不要以為是重名而把同名文件夾覆蓋了。看準(zhǔn)合適位置解壓就是了。
            2.打開命令行工具。以下的主要工作都將在命令行中進(jìn)行。

            3.首先是編譯jam工具。
            ?3.1 使用命令行
            ??SET PATH=%PATH%;$boost_dir\tools\build\jam_src\;
            ?設(shè)置環(huán)境變量。這一步也可以在“我的電腦點(diǎn)右鍵->屬性->高級->環(huán)境變量->user variable或system variable中"設(shè)置,而且是永久性的。使用set設(shè)置的環(huán)境變量只對當(dāng)前命令行有效。
            ?3.2 ?運(yùn)行build.bat。在命令行中查看結(jié)果。如果結(jié)果顯示“update 1 targets successful"這樣的信息,則表明編譯成功。此時(shí)“$boost_dir\tools\build\jam_src\”文件夾可發(fā)現(xiàn)一個(gè)新的文件夾btn.x86,在里面可以發(fā)現(xiàn)bjam.exe。(不知道會不會有btn.x64文件夾。。。我是X86的機(jī)器,不太清楚)
            ??將這個(gè)文件夾也添加到環(huán)境變量中。
            ??SET PATH=%PATH%;$boost_dir\tools\build\jam_src\btn.x86;
            ?3.3?如果沒能成功編譯bjam,則可能是編譯器的設(shè)置問題。對于Visual C++(2005Express有點(diǎn)特殊)編譯器,找到common7\tools\vcvars32.bat,把它拖到命令行窗口中,運(yùn)行一下,然后再執(zhí)行build.bat。對于2005 Express,這個(gè)編譯器攜帶的是精簡的編譯環(huán)境,你可以同樣找到vcvars.txt,然后更名為vcvars.bat,按照剛才的方式執(zhí)行一邊即可。

            4.bjam編譯好后,就可以利用它編譯庫文件了。將命令行的工作目錄放置到$boost_dir下,然后執(zhí)行一下bjam --help,看能否正確的執(zhí)行bjam.exe。如果提示找不到文件,將bjam所在的路徑添加到環(huán)境變量path中,實(shí)在不行就把bjam復(fù)制到$boost_dir下。

            5.如果試圖使用boost.python庫,則需要添加安裝python,并設(shè)置對應(yīng)的環(huán)境變量,這里的root對應(yīng)的是你的python的安裝路徑,ver對應(yīng)的是你的python版本。
            SET PYTHON_ROOT=X:\Python2.3.4
            SET PYTHON_VERSION=2.3

            6.如果使用了boost.iostreams的compress或者unicode功能,請參閱對應(yīng)的提示。通常你需要zlib和icu這兩個(gè)庫。

            7.編譯選項(xiàng):
            選項(xiàng)參見$boost_dir\more\getting_started.html,這里有詳細(xì)的說明,以下僅列舉一個(gè)很具代表性的選項(xiàng)。

            bjam -sBOOST_ROOT=. -sTOOLS=vc-7_1 --with-thread "-sBUILD=debug release <runtime-link>static/dynamic"

            上面的命令行設(shè)置環(huán)境變量BOOST_ROOT為當(dāng)前路徑,使用Visual C++ 7.1編譯器,僅編譯thread庫(因?yàn)橥暾木幾g耗時(shí)很長,所以建議使用--with-<library_name>來編譯指定庫。類似的還有--without-<library_name>選項(xiàng))。

            編譯好的庫都在$boost_dir\bin下。你可以進(jìn)去搜索所有的lib/dll文件然后剪切出來放到一個(gè)文件夾中,再把其他的中間文件刪掉就好了。

            類似的你還可以編譯其他的類庫,具體的庫可能需要依賴一些其他的庫,你可以參見庫的編譯說明。另外生成的庫運(yùn)行時(shí)鏈接情況也是不一樣的,例如有的庫不能支持靜態(tài)鏈接。這一點(diǎn)請?jiān)敿?xì)閱讀幫助文件。

            8.使用:
            這里可能不太好舉例。先將$boost_dir加入到編譯器的include目錄列表中。然后我編譯好了thread庫,并且將所有的相關(guān)文件都統(tǒng)一放置到了$boost_dir\bin\thread\目錄下,我便可以在我的工程中將該目錄添加到鏈接文件的路徑中。然后依據(jù)情況選擇是否手工添加庫文件。在幫助的“Automatic Linking on Windows”一節(jié),文檔說,很多需要編譯的庫,boost都使用了#pragma指示字指明了庫名稱,也就是說只需要加上庫所在的路徑就好了。

            最后是關(guān)于運(yùn)行時(shí)庫的問題。最好把你的工程選用的CRT與編譯boost庫時(shí)使用的CRT一致起來。這一點(diǎn)可以根據(jù)boost文件的名稱判斷。否則的話可能會出現(xiàn)內(nèi)存的使用錯(cuò)誤(尤其是分配和釋放不在一個(gè)堆的時(shí)候更是如此)。

            最后是一篇中文文檔。這篇也不錯(cuò)。如果不清楚,E文也不是太好的可以參看它
            http://blog.csdn.net/billdavid/archive/2005/03/07/313347.aspx

            posted @ 2006-10-24 22:13 空明流轉(zhuǎn) 閱讀(2462) | 評論 (0)編輯 收藏

                 摘要: 沒有什么實(shí)際意義(boost.threads已經(jīng)加入了讀寫鎖好像),只是說明一下condition的用法。鎖由Mutex和Lock構(gòu)成。Mutex是由condition實(shí)作而成的,Lock和ScopedLock區(qū)別不是很大,分讀寫鎖而已。以下是Mutex的代碼class?read_write_mutex{????mutex?mtx_;????int?read_cnt_;????condition?...  閱讀全文
            posted @ 2006-10-23 19:38 空明流轉(zhuǎn) 閱讀(1803) | 評論 (0)編輯 收藏

            ?扯了這么多,再次回到開始,C++有那么重要么?
            ?是或者不是,這個(gè)答案并不重要,而我也不能正確地給出答案。如果真要說我只能刷刷奸猾,告訴大家“因人而異”。
            ?重要的是,我們用什么樣的思路,用什么樣的態(tài)度來衡量、評價(jià)、解決這個(gè)問題。
            ?下面一段又是個(gè)老生常談,隨便到哪個(gè)搜索引擎上都能搜到一堆的話題:C++是怎么來的,它為什么而設(shè)計(jì)的,實(shí)際上人們又拿它來做什么,它有什么優(yōu)缺點(diǎn)。我接觸編程6年,其中C++占到4年,而且是我用的最好,也是最喜歡的語言。每次說到歷史這個(gè)話題我總是有一大堆羅嗦的話要說。但是實(shí)際上我對C++的感覺到的最大的特點(diǎn),卻是書多,相關(guān)的書非常多,經(jīng)典的著作相比較其它語言而言也算得上是最豐產(chǎn)的了。書多不外乎三種原因,一是流行面廣,而是流行時(shí)間長,三是難度大。C++就那一點(diǎn)點(diǎn)編譯器規(guī)則,一本ISO C++的手冊搭配其發(fā)明者Bjarne Stroustrup的《The C++ Programming Language》就把語言機(jī)制講的很清楚了,為什么它又有那么多的書來闡述一些所謂的Advanced Topics呢?因?yàn)殪`活。C++極度靈活,這種靈活并不是動態(tài)語言的那種靈活,而是在于它承載了太多的需要,導(dǎo)致它變得極度靈活化,靈活的負(fù)面意思就是太多,太復(fù)雜,使得人們太容易混淆與各種語言機(jī)制的Chaos中。似乎南師大的榮耀教授在采訪BS的時(shí)候還是BS在什么地方說過,如果C++要像現(xiàn)在的老師們這樣教他自己都不會去學(xué)。
            ?然后BS就舉了一個(gè)Hello World的例子來說明他所認(rèn)為的啟蒙C++與一般授課使用的C++差別在什么地方,并以此說明C++其實(shí)并不復(fù)雜。好吧,我們就承認(rèn)純正的C++并不難學(xué)。但是不能忘了,我們的C++的對與錯(cuò)不是由我們決定的,而是編譯器。工程上用的C++編譯器絕對不會說不支持單純的,蹩腳的C-Style(不是說CStyle蹩腳,而是說C中蹩腳的部分),不會不讓你使用指針訪問內(nèi)存(指非必要的訪問,例如動態(tài)數(shù)組),甚至不會拒絕你使用一些類似于Hacker的代碼來完成一些極具技巧性和挑戰(zhàn)性的工作。好吧,既然C++都支持,那么便不能拒絕你寫出有此類特性的代碼。更加致命的事情是,它的很多高階機(jī)制,都是建立在底層機(jī)制基礎(chǔ)上。最明顯的例子就是Boost和STL。一旦編譯出錯(cuò),那么它的提示可能出在任何層面上,為了解決這些問題便又需要去學(xué)習(xí)那些較為底層的知識。C++的大坑就是這樣一點(diǎn)一點(diǎn)挖出來的。
            ?C++可供選擇的東西太多。所以BS就出了一本書,叫《The Design and Evolution of C++》,專門討論了每種機(jī)制在C++當(dāng)中被采納的背景、他們當(dāng)時(shí)的考慮、這些機(jī)制的適用范圍。雖然說這本書屬于“入門教材”的行列,但是實(shí)際上我更加傾向于將這本書看成是在你品嘗了C++大餐后的甜點(diǎn)。也就是說,盡管看起來有道理,但是作為預(yù)備知識同樣不適合,于是你只能一邊牢記大量的語言機(jī)制,一邊應(yīng)用,一邊體驗(yàn),一邊讀那些專著來糾正你的錯(cuò)誤并填補(bǔ)你的不足,不可能有機(jī)會讓你只走你需要走的路,大量的知識構(gòu)成了一個(gè)扁平的知識框架,為了達(dá)到相對自由運(yùn)用的水平,你需要學(xué)習(xí)的知識、需要獲得的體驗(yàn)、需要彌補(bǔ)的弱點(diǎn)太多了。
            ?
            ?如果說,只有C++可選的話,那么也就沒什么辦法了,大家只能去學(xué)那個(gè)能讓人死去活來的東西。但是實(shí)際上我們并不如我們自己認(rèn)為的那樣無奈。大量的語言,總有比C++更加適合一般學(xué)生的。靈活的腳本語言Python/VBSP/JSP/Perl/Ruby/Lisp,半動態(tài)的(我是這么叫的。。。)Java/C#/VB/VB.NET/CLI,高效的 Ada/Fortran,桌面開發(fā)用功能強(qiáng)大的Delphi(人家的語言叫Object Pascal,但是也就那么一個(gè)編譯器,所以無所謂了),這其中的絕大部分語言學(xué)習(xí)難度都要低于C++。
            ?一般來說,有不少學(xué)校對于除了與電子和信息相關(guān)的專業(yè)都選擇的是VB(以下說的VB均不指.NET)/VFP作為計(jì)算機(jī)二級的突破口。而這點(diǎn)教學(xué),往往就成為了一個(gè)工科研究生僅有的編程基礎(chǔ)。VFP這種被淘汰的使用范圍狹隘的環(huán)境不討論,VB作為RAD來說著實(shí)是個(gè)不錯(cuò)的選擇。但是為應(yīng)付計(jì)算機(jī)二級所教授的課程來看,并不能教會除了語法外的什么,況且所使用的VB6嚴(yán)格來說是Message Driven兼Object Based的一個(gè)開發(fā)環(huán)境,這都不利于學(xué)生從程序結(jié)構(gòu)的高度(不是數(shù)據(jù)結(jié)構(gòu))去思考所撰寫的代碼。在短暫的學(xué)習(xí)以后我們會誤認(rèn)為界面框架就是軟件的構(gòu)架,于是我們便可以看見在畢業(yè)設(shè)計(jì)時(shí)候,那數(shù)百行可憐的代碼都擁擠于Command1Click這樣的字里行間。Object Based的語言既不能教會我們用過程的方式開發(fā),也不能支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。這些都是VB對進(jìn)階學(xué)習(xí)的最大障礙。
            ?但是畢竟我們熟悉了VB的語法,知道了程序設(shè)計(jì)語言是怎么一回事。這已經(jīng)花費(fèi)了沒有接觸過編程的同學(xué)的相當(dāng)長的時(shí)間,如果說我們還要去牽扯入C++那可怕的內(nèi)存海洋中,還要被C++那恐怖的前后++所威脅,但是實(shí)際上我們不需要它也能過得很好,我們是不是有些冤大頭了?
            ?實(shí)際上,對于研究生階段,最重要的就是要讓我們學(xué)到的那一點(diǎn)點(diǎn)東西在盡可能少學(xué)別的東西的情況下發(fā)揮最大的價(jià)值。
            ?前面我把VB一通好臭,我想VB都會不理我了。那么我們就另結(jié)新歡吧。找誰呢?

            ?VB的弱點(diǎn)已經(jīng)有點(diǎn)數(shù)了(很有數(shù)的話你我就不會在這兒瞎混了,早被M$請去了),那么便要去找一門結(jié)構(gòu)性比VB好,概念又不比VB艱深太多的語言(不是說它不能艱深,而是說,不理解那些艱深的東西我們一樣能用的挺歡,最主要的是用起來要舒服,什么亂七八糟的內(nèi)存管理問題,讓編譯器和RTL/VM去替你擦屁股吧)。JAVA/C#/Delphi/VB.net都算是不錯(cuò)的選擇。雖然從我的角度來說,很不喜歡,非常不喜歡,特別不喜歡微軟,但是我仍然將C#作為我的第一建議。
            ?因?yàn)镃#的開發(fā)環(huán)境好,速度也還算不錯(cuò),桌面開發(fā)、企業(yè)級開發(fā)都很方便,微軟的支持也很到家,但是對面向?qū)ο蟮闹С钟行?qiáng)迫性了,可能初期會有些難度。
            ?JAVA跨平臺,工業(yè)基礎(chǔ)好,從嵌入式到大型的分布式系統(tǒng)都能拿來做,但除了和C#一樣的不利因素外,開發(fā)環(huán)境和程序庫要比C#難用一些。
            ?Delphi對對象和過程的程序設(shè)計(jì)方法都能支持良好,語言干凈利索,檢測嚴(yán)格,能培養(yǎng)出一個(gè)人好的編程習(xí)慣,但是它以后用途偏窄。
            ?VB.NET就不用說(人家都叫VB了),跟VB比較接近,語法跨越小,但是太小了會有學(xué)習(xí)惰性,會低估語義和程序設(shè)計(jì)方法上的差異,弄點(diǎn)不倫不類的東西出來。

            ?C++在程序控制上的能力,基本上都有了,而在在企業(yè)級開發(fā)方面,C++的弱勢也得到了新語言不錯(cuò)的彌補(bǔ)。C++的另一個(gè)優(yōu)勢,效率方面呢?
            ?MATLAB。這個(gè)工具生來就是為了計(jì)算。作為研究生的工程運(yùn)算來說,無論效率上還是功能上來說,通常都是夠用的,而且也非常方便,避免了自行編程所面對的極為復(fù)雜的算法選擇、編寫、調(diào)試的問題(工程計(jì)算程序的調(diào)試難度是很大的)。
            ?再加上VBA/VBSP。為什么要帶上VBA/VBSP?其實(shí)很多你需要完成的功能,往往都在軟件中可以通過調(diào)用某些組件來完成。除了脫機(jī)編寫完整的應(yīng)用程序以外,對于大部分的問題的解來說,都可以直接使用系統(tǒng)所提供的環(huán)境方便的完成。使用這個(gè)環(huán)境所采用的語言,就是軟件的腳本宏,而現(xiàn)有很多的軟件所采用的宏語言都是VBA/VBSP。它的語法、架構(gòu)、程序的設(shè)計(jì)都與VB非常接近,用來快速的構(gòu)造原形或?yàn)榫帉憣?shí)驗(yàn)提供幫助的程序來說,都能比較好的完成任務(wù)。

            ?好了,在一門通用語言+VBSP+MATLAB的幫助下(VBSP基本上是白送的,MATLAB經(jīng)常是必須掌握的,如果你不需要掌握MATLAB,那么你的工作很可能也用不到C++的高效率),你還需要C++么?
            ?如果你的答案是肯定的,那么我只能相信這個(gè)世界真的有愛情存在。我欽佩你的執(zhí)著。那么請?jiān)试S我告訴你我走過的路。
            ?《The C++ Primer》/《The C++ Primer Plus》??不是一本書,但是都是入門的。別為它的厚度嚇倒,能看多少算多少,不難的。
            ?《The C++ Programming Language》???手冊。隨身必備,供查閱。
            ?Platform SDK???????MSDN是個(gè)不錯(cuò)的選擇,講解相近,查閱方便。
            ?
            ?《Thinking in C++》??????從C++開始,接觸OOP的深入解析
            ?《Effective C++》《More Effective C++》
            ?《Exceptional C++》《More Exceptional C++》??技巧、技術(shù)和技藝,編寫C++程序必須注意的若干事項(xiàng)。
            ?
            ?基本上到這里就差不多了,后面的就是諸如泛型、并發(fā)、元編程、模版、設(shè)計(jì)模式一類的話題了,不同的話題都有不同的問題背景和應(yīng)用范圍,這些往往對于大部分語言來說都是相同或者類似的。恭喜你,你們的愛情長跑到站了。
            ?從此以后,研究生和C++過著磕磕碰碰卻幸福的生活。

            posted @ 2006-10-13 21:32 空明流轉(zhuǎn) 閱讀(1918) | 評論 (6)編輯 收藏

            意見僅供參考,如果有不同意的,歡迎留言討論~~~

            ?不能不承認(rèn),這個(gè)世界上就是有全才。數(shù)學(xué)、物理界這種人出的最多,牛頓,高斯,萊布尼茲。偏文方面還有那個(gè)巨無霸的Da Vinci。單純論數(shù)學(xué)界而言,自龐加萊以后,就再沒出現(xiàn)過全才了。我的一個(gè)學(xué)數(shù)學(xué)的朋友在談到龐加萊的時(shí)候那是心神往之,佩服得不得了。

            ?但是我們總不能巴望著自己是全才吧,是全才,那就一定是天才,是天才,就不會待我們學(xué)校了。大家以后都不是什么圣人、天才,大家都是要混飯吃的,所以,醒醒吧。

            ?我們的老師很知道這一點(diǎn),所以他們總會好心的勸我們舍棄一部分,以免落個(gè)極度平庸的下場。這一點(diǎn)來說,老師們都是很明智的。但是很多的時(shí)候,原則上能把握的東西到了實(shí)際中就一定正確選擇么?選擇本身是一種放棄,是智慧,也是智慧的悲劇。難道有的時(shí)候我們沒有覺得,自己放棄的東西太多,或者自己放棄的東西太少,以至于我們在離目標(biāo)只有毫厘之差的時(shí)候餓死或者累死?這個(gè)度是這樣的難以捉摸,使得我們往往會做出過于樂觀或者過于保守的判斷。

            ?工科的人通常會做著悲觀的估計(jì),保守的行動,卻又期待著樂觀的結(jié)果。

            ?今年我們專業(yè)碩士學(xué)位的GIS方向引進(jìn)了一個(gè)據(jù)說開發(fā)做得非常好的人,南大的博士。然后說別的學(xué)院也搶著要他。從我們系主任眉飛色舞的情況來看,他是很中意這個(gè)人的。據(jù)說這個(gè)人能獨(dú)立開發(fā)一套接近于商業(yè)軟件品質(zhì)的作品。當(dāng)然是不是有些吹牛的成分無從考證,也不重要,關(guān)鍵是,這個(gè)人的編程水平,包括軟件工程素養(yǎng)都是不錯(cuò)的。再加上我們一個(gè)碩士學(xué)位卻因?yàn)橛?jì)算機(jī)水平很好而被破格留校的老師的例子來看,其實(shí)大家需要的是那些專業(yè)好,計(jì)算機(jī)更好的人。但是為什么所有老師都只會告誡我們,要學(xué)好專業(yè)課,而又讓那些基本上不怎么會計(jì)算機(jī)的人去做一些難度比較高的程序呢?

            ?因?yàn)樗麄兒鲆暳说诙N人和第三種人的差距。他們所做的一切,都是讓第二種人越俎代庖去完成第三類人完成的任務(wù)。只所以忽視這種差異,恐怕是因?yàn)楦畹俟痰墓ぞ邿o用論的思想。結(jié)果大部分試圖跨過看來不起眼的禮器的人,都被絆了一跤,少數(shù)成功“代庖”的人便成為這種培養(yǎng)模式的豐功偉績的貞節(jié)碑。但是實(shí)際上這種成功具備代表性嗎?一點(diǎn)也不。而那些被絆倒的人很無辜的就被抹殺了。那些成功跨過去完成任務(wù)的幸運(yùn)兒還回過頭來向那些剛剛站到祭臺上的可憐蟲們招手,而那些可憐的人兒連腳下的路都不去看上一眼,沖動的撲過去,轟隆一下,摔得很慘。

            ?所以說,正確認(rèn)識計(jì)算機(jī)技術(shù)及計(jì)算機(jī)科學(xué)在工學(xué)界的地位、作用和他們的參與方式,才能使我們更好的對待、使用它。所有的科學(xué)、技術(shù)都是公正的靈魂,尊重了它,你就會得到相應(yīng)的報(bào)酬。當(dāng)然我知道我在我所在的專業(yè)只是一介平民,甚至連平民都不如,所以這話盡管我認(rèn)為是正確的,但是說得就沒有什么底氣。

            ?一個(gè)碩士研究生,究竟要對計(jì)算機(jī)掌握到什么樣的程度?

            ?工學(xué)碩士,是需要在自己專業(yè)有所造詣的人才能被授予這個(gè)學(xué)位的,很自然的,專業(yè)要被放到第一位。OK,這跟老師們的說法是一樣的。但是,不可能有兩個(gè)第一,所以計(jì)算機(jī),尤其指編程能力,就一定要放到第二位。(當(dāng)然,有想法的除外,碩士,甚至是博士都可以專業(yè)第二計(jì)算機(jī)第一,但是這樣要付出更加艱辛的努力以克服跨專業(yè)帶來的壓力)從一開始,就不要指望他/她的編程能力能怎么樣,核心放在解決問題,而不是給自己制造編程方面問題上。這一點(diǎn)其實(shí)大家都很容易看清,但是,即使看清了,仍然會做出一些不理智的事情,例如一個(gè)只會用用matlab腳本完成一些最簡單計(jì)算的人非要去寫一定規(guī)模的代碼。但是實(shí)質(zhì)上規(guī)模稍微一大,就會容易出漏子,歲月皆蹉跎。這一點(diǎn)以前我還可以說是很多人是形勢逼迫。但就像學(xué)生都在一邊控訴應(yīng)試教育,一邊拼了老命的抓分,老師稍微有些“素質(zhì)教育”都要被質(zhì)疑動機(jī)是一樣,有些人已經(jīng)習(xí)慣于一面控訴老師對編程的要求,一面將自己趕鴨子上架給自己活罪受。不是所有人都能在編程學(xué)習(xí)的煉獄中熬成正果的。所以學(xué)多少,自己的心里面一定要有個(gè)數(shù),我個(gè)人的觀點(diǎn)是,能解決問題(如果你的計(jì)算機(jī)爛到連自己的最基本的問題都搞不定,那還是別想著什么“適可而止”這種自欺欺人的話,好好學(xué)學(xué)才是正道),又不給自己帶來新問題就好,不同專業(yè)不同領(lǐng)域,不同追求的要求都不一樣,所以這個(gè)東西一定是因人因事而異的。

            ?而那些希望在程序上有所突破,成為專業(yè)輔助計(jì)算機(jī)為主的人,在強(qiáng)化計(jì)算機(jī)的同時(shí),不能放棄自己的專業(yè)素養(yǎng),尤其是一些好不容易培養(yǎng)出來的專業(yè)感覺。這些感覺,一旦喪失,沒有了環(huán)境的浸淫,想再培養(yǎng)起來就比較困難了。

            posted @ 2006-10-11 21:53 空明流轉(zhuǎn) 閱讀(1667) | 評論 (5)編輯 收藏

            在上一個(gè)屬性類的基礎(chǔ)上改進(jìn)了類型的注冊方式,并且在開啟RTTI的情況下可以選擇自動注冊類型并使用RTTI信息來對類型名稱字符串化。工程文件請?jiān)?a >http://blog.gameres.com/show.asp?BlogID=170&column=0
            下載。
            posted @ 2006-10-04 20:48 空明流轉(zhuǎn) 閱讀(811) | 評論 (0)編輯 收藏

            研究生,請你拒絕C++的愛(上)

            ????????昨天晚上,考研考的無聊了便沖到實(shí)驗(yàn)室去寫了一點(diǎn)構(gòu)思已久的代碼,在實(shí)驗(yàn)室里面聽見一個(gè)老板說里面有個(gè)女生看見我的一個(gè)師兄學(xué)C++便也要去學(xué)。我真的是覺得這個(gè)女生勇氣可嘉。
            ????????細(xì)細(xì)想來,夸張點(diǎn)說我都有點(diǎn)悲從中來。那個(gè)女生應(yīng)該是做遙感方向的,被逼到C++這條絕路上讓我頗有些覺得悲涼,更主要的是她是自愿跳C++這個(gè)大坑的,這甚至讓我有些想荊軻同志去做Suicide?Bomber時(shí)“風(fēng)呼啦啦啊易河凍死人”的感受。當(dāng)然,我承認(rèn)我的這份感覺是摻雜了95%以上的故弄玄虛的水分的。只是我很想問那個(gè)學(xué)姐,C++有那么重要么?
            ????????我所在的學(xué)校是一個(gè)非常一般的以工科為主的高校,有特色學(xué)科,但是不是什么特色學(xué)校。按照我的感覺,現(xiàn)在的工科專業(yè)對于計(jì)算機(jī)這個(gè)Tool來說,完全是一種極度功利化的態(tài)度,這種態(tài)度讓我感覺很有些不爽。實(shí)質(zhì)上在現(xiàn)有的工科專業(yè)中,計(jì)算機(jī)大約和數(shù)學(xué)是差不多的,都屬于工具性的學(xué)科,只不過數(shù)學(xué)更要基礎(chǔ)一點(diǎn)而已,大家似乎都對數(shù)學(xué)帶有著很敬畏的態(tài)度,而對計(jì)算機(jī)則是有些鄙夷。不合不分,不親不離,工科專業(yè)和計(jì)算機(jī)之間的關(guān)系很是尷尬,就有些像色情小說,是個(gè)男人總希望去窺探那么一把然而又恥于讓人知道。于是這種鄙夷+需要便構(gòu)成了工科專業(yè)對計(jì)算機(jī)有些畸形的態(tài)度。正像我的老板一邊對我說,你學(xué)那么多計(jì)算機(jī)有什么用,一邊又讓我?guī)椭切┎惶珪幊痰膸熜謳熃銈兘鉀Q一些問題。
            ????????但是事情真的是這個(gè)樣子的么?大家都喜歡中庸的文化,所有的老師都建議我這樣對計(jì)算機(jī)有特殊偏好的人對計(jì)算機(jī)的追求要“適可而止”,要精深專業(yè)而粗通“The?Art?of?Computer?Programming”。然后給我舉出一大堆的理由,告訴我單純的編程好的人有多么多么的無能,他們面臨專業(yè)問題的時(shí)候多么多么的無奈。我親愛的老師們啊,在您勸導(dǎo)我不要走上一個(gè)極端的時(shí)候,為什么您要走上另外一個(gè)極端?
            ????????這個(gè)極端便是“極端的中庸”。不可否認(rèn),現(xiàn)代科學(xué),尤其是工程科學(xué)是建立在大量的數(shù)學(xué)規(guī)則、海量計(jì)算和一些看起來合理或者不那么合理的推測和限制之上的。科學(xué)是講究絕對理性的,而這個(gè)理性的基礎(chǔ)卻是感性(公理系統(tǒng)),而工程問題上,感性這一點(diǎn)表現(xiàn)的更為明顯,有很多的問題實(shí)質(zhì)上是半理性半感性所構(gòu)成的,例如一些理想化的經(jīng)濟(jì)學(xué)模型,感性這個(gè)東西是有很多講究的。和諧,美,合理化是理性化的感性所永遠(yuǎn)追求的主題。對不起,扯遠(yuǎn)了。也就是說,計(jì)算機(jī)在這里充當(dāng)?shù)慕巧ǔS?種,進(jìn)行海量計(jì)算,或者是使用理性去分析感性的模型。然而計(jì)算機(jī)本身也是個(gè)感性的東西。隨著工程問題的日益龐大,相關(guān)的計(jì)算機(jī)軟件也越做越大。當(dāng)軟件或者軟件參與的計(jì)算復(fù)雜到一定程度的時(shí)候,便需要有理性化的感性去組織我們的工作使之容易為我們所用,往大了說就是要在工程中構(gòu)造一種和諧的美。如果沒有這種美,那么工程本身就可能會被魔鬼拖向深淵。
            ????????很可惜,有的時(shí)候人對美的感覺并不一定是天生的,后天的訓(xùn)練往往對于美感起到超乎想象的作用。訓(xùn)練本身不一定能讓任何人都對審美達(dá)到一個(gè)不可逾越的高峰,但是至少它可以讓大多數(shù)人都知道什么是美的,什么是丑的,這樣才能樹立正確的方向。
            ????????軟件也是如此,沒有相當(dāng)?shù)挠?xùn)練,寫出來的一堆?Bad?Smell?濃烈的代碼任誰都是不敢用的。然而我們的傳統(tǒng)觀念恰恰在培養(yǎng)這些到處遺留?Bad?Smell?Code的人。如同雞肋,食之無肉,棄之有味。
            ????????換過來來說,如果一個(gè)編程水平扎實(shí)然而專業(yè)基礎(chǔ)太差的人負(fù)責(zé)整個(gè)專業(yè)軟件的開發(fā),這個(gè)軟件的可靠度,易用性,功能完善度,用戶友好度都有待考量。
            ????????我們該怎么辦?這樣的怪胎誕生自受過高等教育的人的手里,究竟是誰之過?
            ????????根本在于,我們忽略了“和諧”這樣一個(gè)關(guān)鍵的詞。和諧,而不是平均,這點(diǎn)在政治上,在美學(xué)上都已經(jīng)是有了定論的,美的極致不是0.5,而是0.618。怎樣去尋找那0.618?
            ????????先來說說,我們現(xiàn)在有些什么樣的人才。
            ????????簡單來說,工科和計(jì)算機(jī)的結(jié)合不外乎以下五種。
            ????????第一種是純專業(yè)化的,除了專業(yè),別的都不懂。現(xiàn)在除了一些做純學(xué)術(shù)的人外這樣的人已經(jīng)不多了,但是不可否認(rèn)的是,即使他們不懂計(jì)算機(jī),他們?nèi)匀皇菍I(yè)領(lǐng)域里面的探路者。道路艱險(xiǎn),雖然他手無縛雞之力,但是他們的助手,同事,學(xué)生都會幫助他劈開荊棘,而如果失去了能看見那來自允諾之地的光的prophet,所有的人都會迷惘的。
            ????????第二種是專業(yè)為主計(jì)算機(jī)為輔的。這些人專業(yè)功底扎實(shí),很扎實(shí),非常扎實(shí)。雖然他們不知道專業(yè)的路怎么走,但是他們能清理掉腳邊的灌木雜草,在茂密的叢林里探尋出一條路,并且能告訴后人這條道的正確與否。但是他們往往執(zhí)迷于自己的路上,越走越遠(yuǎn),直到有一天他們發(fā)現(xiàn)了真正的荊棘林之后,發(fā)現(xiàn)自己無法走通,于是悲慘的死在那里,只留下一個(gè)凄涼的墓碑。
            ????????第三種是專業(yè)為輔計(jì)算機(jī)為主。這些人不知道路怎么走,也不太清楚對于錯(cuò),但是他們都知道那個(gè)擺在遙遠(yuǎn)未知的烏托邦,并愿意為之而奮斗。對工具熟練運(yùn)用的他們是拓荒的中堅(jiān)力量,如果不是他們披荊斬棘,所有人都走不出茂密的叢林。
            ????????第四種是專業(yè)結(jié)合計(jì)算機(jī)科學(xué)。注意,我這里說的是計(jì)算機(jī)科學(xué)。這些人是那些迷路在叢林之中的最好的本地向?qū)АK麄兒偷谌N或者第二種人一樣,不知道真正的方向,甚至連對錯(cuò)都不清楚,但是一旦遇到無法強(qiáng)行撼動的障礙時(shí),他們便會帶領(lǐng)團(tuán)隊(duì)繞開那些阻礙他們的泥濘。
            ????????第五種是計(jì)算機(jī)的專業(yè)人才。對于先知看到的路,他們一無所知,不知所以。在某條特別的專業(yè)小徑上,他們只能低著頭,跟在前四種人后面,做些苦力的活計(jì),卻不能有半點(diǎn)想法,因?yàn)樗麄儫o法提出正確的想法。這些人實(shí)際上是一些悲情的人們,因?yàn)槿绻麄兞粼谧约旱募亦l(xiāng),或者出去尋找一些自己能做的活計(jì),他們一樣能活得很滋潤。但是他們也是值得敬仰的,如果沒有他們,單憑前四類那數(shù)量稀少的人,也是成不了什么事的。他們是專業(yè)領(lǐng)域值得然而沒有得到尊敬的墊腳石。
            ????????你屬于哪一種人?

            posted @ 2006-09-30 20:44 空明流轉(zhuǎn) 閱讀(1642) | 評論 (5)編輯 收藏

            僅列出標(biāo)題
            共12頁: First 4 5 6 7 8 9 10 11 12 
            99精品久久精品一区二区| 久久婷婷是五月综合色狠狠| 久久精品国产亚洲Aⅴ蜜臀色欲| 国产精品99久久久精品无码| 久久嫩草影院免费看夜色| 青青青青久久精品国产| 久久午夜羞羞影院免费观看| 成人午夜精品无码区久久| 亚洲精品乱码久久久久久不卡| 国产一区二区精品久久凹凸| 久久久久久a亚洲欧洲aⅴ| 996久久国产精品线观看| 久久精品国产亚洲一区二区| 青青青伊人色综合久久| 狠狠人妻久久久久久综合蜜桃| 国产精品永久久久久久久久久| 久久久久国色AV免费看图片| 久久天天躁狠狠躁夜夜2020老熟妇| 狠狠综合久久综合中文88| 久久久久99精品成人片| 国产精品99久久久精品无码| 亚洲AV日韩AV永久无码久久| 99久久99久久| 久久AAAA片一区二区| 午夜精品久久久久久影视riav| 久久婷婷国产剧情内射白浆| 国产精品久久久亚洲| 99久久精品免费观看国产| 亚洲国产成人久久综合一区77| 久久无码人妻一区二区三区| 国内精品久久久久久久coent| 亚洲v国产v天堂a无码久久| 伊人久久大香线蕉综合Av| 香蕉久久夜色精品国产小说| 亚洲Av无码国产情品久久| 国产欧美一区二区久久| 中文字幕久久亚洲一区| 久久亚洲高清观看| 久久伊人五月丁香狠狠色| 精品国产乱码久久久久久浪潮| 亚洲国产美女精品久久久久∴ |