『壹』 顯卡的OpenGL是做什麼用的
在這個DirecTX稱霸庶民世界的宇宙中,還有一種迷失的比較嚴重的圖形加速技術的存在……那就是OpenGL
OpenGL是個專業的3D程序介面,是一個功能強大,調用方便的底層3D圖形庫。OpenGL的前身是SGI公司為其圖形工作站開發的IRIS GL。IRIS GL是一個工業標準的3D圖形軟體介面,功能雖然強大但是移植性不好,於是SGI公司便在IRIS GL的基礎上開發了OpenGL。OpenGL的英文全稱是「Open Graphics Library」,顧名思義,OpenGL便是「開放的圖形程序介面」。雖然DirectX在家用市場全面領先,但在專業高端繪圖領域,OpenGL是不能被取代的主角。
OpenGL是個與.硬體無關的軟體介面,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之間進行移植。因此,支持OpenGL的軟體具有很好的移植性,可以獲得非常廣泛的應用。由於OpenGL是3D圖形的底層圖形庫,沒有提供幾何實體圖元,不能直接用以描述場景。但是,通過一些轉換程序,可以很方便地將AutoCAD、3DS等3D圖形設計軟體製作的DFX和3DS模型文件轉換成OpenGL的頂點數組。
在OpenGL的基礎上還有Open Inventor、Cosmo3D、Optimizer等多種高級圖形庫,適應不同應用。其中,Open Inventor應用最為廣泛。該軟體是基於OpenGL面向對象的工具包,提供創建互動式3D圖形應用程序的對象和方法,提供了預定義的對象和用於交互的事件處理模塊,創建和編輯3D場景的高級應用程序單元,有列印對象和用其它圖形格式交換數據的能力。
OpenGL的發展一直處於一種較為遲緩的態勢,每次版本的提高新增的技術很少,大多隻是對其中部分做出修改和完善。1992年7月,SGI公司發布了OpenGL的1.0版本,隨後又與微軟公司共同開發了Windows NT版本的OpenGL,從而使一些原來必須在高檔圖形工作站上運行的大型3D圖形處理軟體也可以在微機上運用。1995年OpenGL的1.1版本面市,該版本比1.0的性能有許多提高,並加入了一些新的功能。其中包括改進列印機支持,在增強元文件中包含OpenGL的調用,頂點數組的新特性,提高頂點位置、法線、顏色、色彩指數、紋理坐標、多邊形邊緣標識的傳輸速度,引入了新的紋理特性等等。OpenGL 1.5又新增了「OpenGL Shading Language」,該語言是「OpenGL 2.0」的底核,用於著色對象、頂點著色以及片斷著色技術的擴展功能。
OpenGL 2.0標準的主要制訂者並非原來的SGI,而是逐漸在ARB中占據主動地位的3Dlabs。2.0版本首先要做的是與舊版本之間的完整兼容性,同時在頂點與像素及內存管理上與DirectX共同合作以維持均勢。OpenGL 2.0將由OpenGL 1.3的現有功能加上與之完全兼容的新功能所組成(如圖一)。藉此可以對在ARB停滯不前時代各家推出的各種糾纏不清的擴展指令集做一次徹底的精簡。此外,硬體可編程能力的實現也提供了一個更好的方法以整合現有的擴展指令。
目前,隨著DirectX的不斷發展和完善,OpenGL的優勢逐漸喪失,至今雖然已有3Dlabs提倡開發的2.0版本面世,在其中加入了很多類似於DirectX中可編程單元的設計,但廠商的用戶的認知程度並不高,未來的OpenGL發展前景迷茫。
『貳』 游戲程序員一定要學DX或者OPENGL之類的圖像處理嗎
那是必須的
『叄』 OpenGL主要是做游戲,但是有3D游戲引擎用他幹嘛而且3D的程序幾乎都沒有做的,那學他有什麼用處
你沒有搞清楚 gl 和 游戲, 引擎 之間的關系.
他們之間的層次是:
游戲邏輯代碼-->游戲引擎-->3D引擎-->opengl/DX --> 顯卡
游戲公司一般僱傭很多程序員來寫游戲代碼.這種代碼現在一般都是用java,c#,lua 這類高級語言寫的. 然後他們寫的這些代碼,會被塞到 游戲引擎里. 然後游戲肯定是需要復雜的圖像來展現的對吧? 所以 游戲引擎里會有一部分代碼來和opengl 交互. 告訴opengl我要畫什麼.
最後opengl把游戲資源(3d模型,圖片 ,等)送入顯卡,進行繪制.
所以 opengl是很底層的東西.一本沒人需要學他.
『肆』 本科生畢業從事圖像處理前景如何
您要是想走網路游戲程序員用OPENGL,此庫用於3D圖像處理,要是人工智慧,圖像識別就用opencv。但搞人工智慧的程序員很少,需求也少。找到應該待遇不錯,但又有幾個能找到對口的工作呢?我估計您也就去華為中興這樣企業。還有一點,會opencv只是說你會用這個庫,但真正的基本功是數據結構,還有C++語法知識。這些扎實,其他的任何類似庫都很容易上手!!!
祝您找到好工作!!!
『伍』 本人想從事游戲開發方面的工作,學過C,C++,java,OPENGL,不知道接下來該怎麼走
實踐的問題,已學過的知識需要梳理融合。
建議做個小demo,比如坦克大戰,多簡單都行,但是盡量把C++和opengl這些用上,能做多少就做多少,有想法了再往上添加。這期間可能會遇到問題,比你預想的還要困難,多google下克服。
游戲開發招聘新人時主要還是看C++基礎這些。
『陸』 在北京opengl程序員薪金多少
北京,兩年工作經驗:待遇10-50萬之間,根據自己的個人能力來定
『柒』 OpenGL怎麼學就業能做啥呢
OpenGL就業主要能做3D游戲開發,學習需要一個系統的流程,如下:
openGL學習建議按照如下的步驟進行:
1、基本的線性代數知識,不需要很深入,大學時的線性代數拿出來復習一下足夠用了,特別是矩陣變換部分。
2、C++開發語言,一定要非常熟練。
3、《計算機圖形學》這個應該是高校教材了,這個也是所有圖形學的基礎知識。
4、《3D游戲編程大師技巧》等基礎入門教材,這一類圖書基本上是將基礎知識和openGL API如何使用結合起來,使得讀者可以開始上手開發。同樣的還有 https://learnopengl-cn.github.io/ 這一類網站,都是比較好的入門資料。
5、《openGL編程指南》俗稱「紅寶書」,《OpenGL Super Bible 5th》俗稱「藍寶書」,不過這兩本書更加適合作為查詢手冊,用到哪一塊需要深入了解時進行查詢。
6、再深入就是了解詳細的管線處理流程、shader語言開發等。
openGL主要屬於計算機圖形學方面的內容,這一塊屬於比較專業的領域了。
目前主要做3D游戲開發這一塊用得最多,大公司做游戲引擎開發主要以openGL為主,即便現在很多基於U3D開發的手游,至少也需要熟悉基本的openGL管線流程和一些shader知識。
其次,做一些專業領域的模擬會很多,再次在做各種濾鏡、特效方面也需要用到openGL知識,不過這些方面還需要圖像處理方面的一些知識。
PpenGL的設計
OpenGL規范描述了繪制2D和3D圖形的抽象API。盡管這些API可以完全通過軟體實現,但它是為大部分或者全部使用硬體加速而設計的。
OpenGL的API定義了若干可被客戶端程序調用的函數,以及一些具名整型常量(例如,常量GL_TEXTURE_2D對應的十進制整數為3553)。
雖然這些函數的定義表面上類似於C編程語言,但它們是語言獨立的。因此,OpenGL有許多語言綁定,值得一提的包括:JavaScript綁定的WebGL(基於OpenGL ES 2.0在Web瀏覽器中的進行3D渲染的API);C綁定的WGL、GLX和CGL;iOS提供的C綁定;Android提供的Java和C綁定。
OpenGL不僅語言無關,而且平台無關。規范隻字未提獲得和管理OpenGL上下文相關的內容,而是將這些作為細節交給底層的窗口系統。出於同樣的原因,OpenGL純粹專注於渲染,而不提供輸入、音頻以及窗口相關的API。
OpenGL是一個不斷進化的API。新版OpenGL規范會定期由Khronos Group發布,新版本通過擴展API來支持各種新功能。每個版本的細節由Khronos Group的成員一致決定,包括顯卡廠商、操作系統設計人員以及類似Mozilla和谷歌的一般性技術公司。
除了核心API要求的功能之外,GPU供應商可以通過擴展的形式提供額外功能。擴展可能會引入新功能和新常量,並且可能放鬆或取消現有的OpenGL函數的限制。
然後一個擴展就分成兩部分發布:包含擴展函數原型的頭文件和作為廠商的設備驅動。供應商使用擴展公開自定義的API而無需獲得其他供應商或Khronos Group的支持,這大大增加了OpenGL的靈活性。OpenGL Registry負責所有擴展的收集和定義。
每個擴展都與一個簡短的標識符關系,該標識符基於開發公司的名稱。例如,英偉達(nVidia)的標識符是NV。如果多個供應商同意使用相同的API來實現相同的功能,那麼就用EXT標志符。
這種情況更進一步,Khronos Group的架構評審委員(Architecture Review Board,ARB)正式批准該擴展,那麼這就被稱為一個「標准擴展」,標識符使用ARB。
第一個ARB擴展是GL_ARB_multitexture。
OpenGL每個新版本中引入的功能,特別是ARB和EXT類型的擴展,通常由數個被廣泛實現的擴展功能組合而成。
『捌』 關於開發單機游戲要求的職業
你好!以下為答案~(關於職業嘛 本人覺得主要是對BC和C語言資深的人士...)
一、游戲程序開發的工作主要包括哪些方面
游戲開發中的程序開發主要由如下幾個方面組成:
1.圖形引擎
2.聲音引擎
3.物理引擎
4.游戲引擎
5.人工智慧或游戲邏輯
6.游戲GUI界面(菜單)
7.游戲開發工具
8.支持區域網對戰的網路引擎開發
9.支持互聯網對戰的網路引擎開發
下面逐一介紹每個部分:
1.圖形引擎主要包含游戲中的場景(室內或室外)管理與渲染,角色的動作管理繪制,特效管理與渲染(粒子系統,自然模擬(如水紋,植物等模擬)),光照和材質處理,LOD(Level Object Detail)管理等,另外還有圖形數據轉換工具開發,這些工具主要用於把美工用DCC軟體(如3DS Max,Maya,Soft XSI,Soft Image3D等)軟體製作的模型和動作數據以及用Photo shop或painter等工具製作的貼圖,轉化成游戲程序中用的資源文件。
2.聲音引擎主要包含音效(Sound Effect簡稱SE),語音(VOICE),背景音樂(Background music簡稱BGM)的播放。SE是指那些在游戲中頻繁播放,而且播放時間比較短,但要求能及時無延遲的播放,VOICE是指游戲中的語音或人聲,這部分對聲音品質要求比較高,基本上用比較高的采樣率錄制和回放聲音,但和SE一樣要求能及時無延遲的播放,SE在有的時候因為內存容量的問題,在不影響效果的前提下,可能會降低采樣率,但VOICE由於降低采樣率對效果影響比較大,所以一般VOICE不採用降低采樣率的做法。BGM是指游戲中一長段循環播放(也有不循環,只播放一次)的背景音樂,正是由於BGM的這種特性,一般游戲的背景音樂是讀盤(光碟或硬碟)來播放。另外一些高級聲音特效,如EAX,數字影院系統(DTS5.1),數字杜比環繞等。
3.物理引擎主要包含游戲世界中的物體之間、物體和場景之間發生碰撞後的力學模擬, 以及發生碰撞後的物體骨骼運動的力學模擬(比較著名的物理引擎有havok公司的game dynamics sdk,還有open source 的ODE—Open Dynamics Engine)。
4.游戲引擎主要是把圖形引擎、聲音引擎、物理引擎整合起來,主要針對某個游戲製作一個游戲系統,其包含游戲關卡編輯器,主要用途是可以可視化的對場景進行調整,光照效果和霧化等效果調整,事件設置,道具擺放,NPC設置,另外還有角色編輯器,主要用於編輯角色的屬性和檢查動作數據的正確性。一般日本游戲公司的做法,他們會把關卡編輯器和角色編輯器直接做到游戲中,所有的參數調整都在游戲中通過調試菜單來進行編輯,所以一般他們把這部分調試菜單的功能做的很強大,同時在屏幕上實時的顯示一些重要的信息,這樣做的好處是關卡編輯器調整的效果直接就是游戲的效果,但是對於程序的重用性來說可能不是很好,比如說要用到另外一個游戲項目中就比較難,除非兩個游戲類型相同,只要把場景和角色數據換一下,還有做下一代產品也沒有問題,只要根據式樣增加調試菜單的功能就可以了。
5.人工智慧和游戲邏輯開發,這部分日本和歐美的游戲開發模式也有很大不同,在歐美游戲公司中運用腳本語言開發很普遍,所以這部分程序開發主要是用腳本語言編寫,而且腳本程序和游戲程序的耦合性很低,有單獨的編輯、編譯和調試環境,這樣比較利於游戲程序和關卡設計開發分開,同時並行開發,所以一般他們都會有專門做關卡設計的程序員崗位。而日本游戲公司腳本語言一般和游戲的耦合性比較高,一般通過一些語言的宏功能和一些編譯器的特定功能來完成一個簡單的腳本系統,所以一般這些腳本程序只能在游戲程序中進行調試,而不能在一個單獨的腳本編輯,編譯環境中進行開發。
6.游戲GUI界面(菜單),主要是指那些游戲中用戶界面設計,有做的復雜,有簡單的,做的簡單就是2D GUI界面,做的復雜有3D GUI界面。
7.游戲開發工具主要包含關卡編輯器,角色編輯器,資源打包管理,DCC軟體的插件工具等開發。
8.支持區域網對戰的網路引擎開發,主要解決區域網網路發包和延遲處理,通訊同步的問題,有同步通訊和非同步通訊兩種做法,非同步通訊用於那些對運行幀速要求比較高的游戲,同步通訊相對非同步通訊來說效率相對低,但是同步通訊的編程模型相對非同步通訊來得簡單一些。
9.支持互聯網對戰的網路引擎開發,目前大部分網游都是C/S結構的,伺服器端軟體配置管理,伺服器程序的最優化,還有游戲大廳、組隊、游戲邏輯處理、道具管理、收費系統等。另外還有一些網路系統是C/S和P2P兩種結構混合的,如XBOX Live等。
二、游戲公司中有哪些和程序員相關的崗位
程序員在游戲公司中的崗位在日本游戲公司和歐美的游戲公司有些不同,日本游戲公司中程序員的崗位主要有技術監督(Director),主程序員(Main Programmer),程序員(Programmer),在日本游戲公司里負責游戲項目開發的程序員,一般不會專門根據工作內容劃分程序員,除了獨立的系統研究室和聲音系統製作部門(這兩個部門是比較獨立的,往往同時給好幾個項目服務),負責每個游戲項目開發的程序員,隨時都可能一人多職,比如說主程序員除了負責整個游戲系統以外,可能還要負責圖形或聲音引擎開發等,程序員除了人工智慧以外還有菜單製作等。這種情況在歐美的游戲公司比較少見,他們分工的比較細,一般有圖形程序員,聲音程序員,人工智慧或游戲關卡程序員,物理程序員,每個組中可能還會有一個Leader。
三、游戲公司一般是如何招聘程序員的
這一點,日本公司和歐美公司也有些不同。日本公司一般喜歡從一些高校中招聘一些應屆優秀畢業生,一方面比招聘有經驗的人要來的成本低,另方面新人是一張白紙,容易培養,像SEGA、KONAMI等都是按這種原則招聘員工的,所以想進入日本游戲公司,你要學好你的軟體課程。而歐美公司希望招聘進來,能馬上進入項目的開發中去,所以他們一般希望招聘有工作經驗的人,即使不是行業中,在相關行業中工作2、3年的也可以,所以想進入歐美游戲公司你的工作經歷很重要。
四、想成為一名游戲開發程序員應該具備哪些條件
我覺的一個游戲軟體程序員,最起碼的要求是熟練掌握計算機本科專業所學的知識,主要包括C語言或C++語言,數據結構,編譯原理,演算法等,另外線性代數、微積分、牛頓力學在圖形和物理引擎開發方面用途也很廣泛,如果要提高的話還有必要了解硬體相關的知識如計算機體系結構、匯編語言,這些對我們學習一個新的硬體平台、編寫最優化代碼、提高自己游戲的競爭力都是非常有益的。另外,保持有恆心、不怕苦(比如說通宵加班)的心態,對游戲的熱情也是非常重要的。對於那些想進入游戲行業,但缺乏軟體開發知識的人,可以通過參加游戲開發培訓來
五、學習游戲編程有哪些好方法
現在有很多人,計算機本科畢業,學了很多軟體開發的知識,但是一旦要用到實際的項目開發時,感覺無從下手,這主要是在學校里運用知識的機會太少了。所以學習游戲編程最好的方法是能實際參與到一個好的游戲項目中和有豐富開發經驗的人一起開發游戲,可能學到很多你從書本上學不到知識和技能。但有時候你一時還沒有機會參與到一個好項目中,沒有機會進入一家好的游戲公司,但是你對游戲開發有一腔熱情,很希望學習游戲開發的技能,那你就應該去參加專門的游戲開發培訓,因為游戲開發培訓班中的老師都是一些有豐富開發經驗的老師,一般都有五年豐富的項目開發經驗,聽他們的課,實際上就是在和他一起分享這么多年的開發經驗,另外游戲開發培訓課程中會專門設計一些項目和課題,它們本身就是可以直接運用游戲開發中,這樣你可以不進入著名的游戲公司,但可以學到這些公司中一些常用的開發技能。另外還有一種方法經濟實惠的方法,參加一些網上志願者的開源項目,這些項目從品質來說有好有壞,選擇一個好的項目非常重要,另外他們中間本身有許多是業內人士,本來你要進入他們公司,才能學習到他們的經驗,但是通過開源項目,你就有向他們學習的機會了,說不定哪一天,你就進入一家知名的游戲公司了,不過目前開源的完整游戲項目好的不多,到是在圖形引擎和物理引擎方面有一些很不錯的開源項目,但要加入進去的話,你的基礎一定要好啊,有些開源的團隊也不是隨便什麼人就能加入的。
1,將rpg(role playing game)融入所有游戲。。。
一款可以令人廢寢忘食的游戲首先必須具有「代入感」,而有代入感的游戲首先必須是rpg。。。任何一種游戲,只要是有生物存在的,都可以將rpg融入。。。這對游戲公司是一本萬利,不用的才是白痴。。。宏觀性的戰略游戲可以用「英雄」的概念成為變性的rpg。。。某種意義說,一款戰略游戲對英雄的操作種類越多它的人氣往往越高。。。比如英雄的成長,個性,生活甚至是婚姻家族等等,有些元素你加在裡面可能只需要幾個位元組的空間,卻可以將一個英雄帶活,繼而帶活整個游戲。。。
相反,將英雄的造型造的很醜也同樣會帶爛整個游戲,歐美游戲經常會犯這樣愚蠢的錯誤,原因就是他們忽略了——
——2,游戲不需要多餘的真實性。。。
對於游戲來說,游戲性的重要性是真實性的無數倍,而二者在很多時候是不可兼得的,因為真實性往往增加了游戲的繁瑣和重復(生活嘛,永遠都是繁瑣而重復的)。。。而繁瑣和重復就會降低游戲性。。。二者的沖突下,必須舍棄沒用的真實性而取後者。。。除非你想創作一款以擬真為唯一目標的游戲(如微軟模擬飛行)。。。
當然很多時候,魚與熊掌可以兼得,比如真實的音效或模型。。。會使真實性與游戲性同時暴增。。。
3,微操與委任的兼容並包。。。
不能微操的游戲都不是好游戲。。。微操不是即時戰略或arpg的專利,任何種類的游戲都允許微操,甚至包括戰棋類,或回合類。。。微操給玩家的快感就是通過技術的訓練達到完成操作的最快速度。。。
微操存在的前提是快捷操作的存在。。。比如無所不在的快捷鍵自定義,或游戲中任何形式的「隨意門」。。。
沒有委任的游戲也不是好游戲,因為你至少要給玩家偷懶的自由。。。尤其是戰略游戲的大後期,將委任的功能強化多樣化是不讓玩家「事必躬親」導致「疲勞勝過快感」的唯一法門。。。
不過委任有個最關鍵的問題是——一定不能比玩家親自操作獲得的效果還好,效果差不多都不行。。。這種創作失誤看似愚蠢,不過可惜這就是很多游戲廠家的智商水平段。。。比如中世紀2的攻城戰。。。
4,多樣性與變化性。。。
英雄無敵之類最大的亮點就是可以操作海量多種的怪物,
而翡翠帝國最大的亮點就是多種招式的切換。。。
多樣性和變化性是游戲生命半衰期的決定性指標。。。
增加多樣性和變化性的方法有兩種,一種就是使游戲本身的內容多樣而富於變化,這顯然會增加大量的游戲製作量。。。
另一種是增加隨機的效果,比如很多戰略游戲中的隨機地形戰略效果;還有記得以前某款國產的三國戰棋游戲的計謀是現場「悟」出來的,隨機性極強。。。增加隨機性的好處是可以通過增加非常少的製作量達到幾乎無限的多樣性和變化性。。。不過缺點是可能會使游戲充斥了點「投機」的成分。。。
不過多樣性和變化性的增加的一個最嚴重的問題是ai的同比降低。。。比如三國志10是三國志系列中打仗多樣性最強的一代,同時也就是成了ai最屎的一代。。。
這樣的游戲,如果你不想讓ai變得非常得屎,最簡單的方法就是在ai中加入隨機函數,讓電腦的行動不可預測。。。
不過對於有些多樣性和變化性強的游戲,只要你用心,也可以造出非常強悍的ai。。。比如很多中國象棋軟體中的ai就是bt級的。。。不過前提是你要把所有玩家的應招全都考慮進去,這就需要長時間的試玩隨訪並隨時調整你的ai。。。
現如今幾乎所有的單機游戲(除了某些格鬥游戲)難度都是通過調整電腦的資源等硬性指標來實現,而很少有通過調正ai高低來實現的,這幾乎是整個單機游戲界的悲哀。。。
5,快節奏和簡介的操作。。。
變速齒輪只會存在於本身的節奏極慢的游戲中,慢節奏的游戲有時就是一種煎熬。。。比如鋼鐵雄心系列就是這樣。。。玩穿了這款游戲的人才如果有朝一日出了家,男的做方丈,女的做師太,絕無懸念。。。
快節奏的簡單定義就是讓玩家每一刻都有事干,在更短時間內體悟更多的東西。。。當然這顯然會縮短整體的游戲時間,只能通過「提高多樣性和變化性」來彌補。。。
另外很多游戲廠家為了在游戲中加入美學的元素而拖慢了整體的游戲反應速度,比如波斯王子4的主選單界面就是個典型的例子——你在主選單中點一個鍵,電腦要先折騰一會才回出子選單。。。第一次看得很爽,第二次就麻木,第三次就開抵觸。。。玩久了就又是一種煎熬。。。能通過點一個鍵的操作就不要讓玩家點兩個鍵,能點兩個鍵就不要去點三個鍵,這是游戲操作中的基本製作思路。。。
。。。。
以上這五條其實是很多單機資深玩家心中默認的好游戲原則。。。但縱覽目前的單機游戲界能包全這5條的卻一個都沒有。。。
游戲製作人員如果不能同時成為一個發燒級的玩家,即使引擎再強大,圖像,聲效再nb,做出的東西也一樣是垃圾。。。這點來看,日本的創意派要比歐美的引擎派強不知多少倍。。。
放眼一觀這年頭歐美的垃圾游戲,60%都是來自當紅電影劇情改編。。。不但佔了無限的銅臭味,就連劇情都懶得原創,這樣的糟粕,玩家的感情和金錢投資簡直與募捐無異。。。
『玖』 為何學習python不好找工作
基礎沒打好,要有經驗。
大部分Python開發者的一門語言都不是Python,可能他們之前就掌握了Java、C++等其他語言和計算機相關的理論知識,而對於他們來說,學Python自然是輕車熟路,只是工作碰巧遇到了Python。
在國內,一個現實情況是大部分業務系統的開發,Python從來都不是主角,而是作為輔助工具在使用,可能是做個數據統計,弄些運維的腳本,寫個測試腳本之類的;
真正用 Python 來開發核心業務的公司少。大部分公司 Python 都是應用在一些非核心業務上。
這點跟 Java 是沒法比的,Java 確實能做到一個0基礎的小白認認真真在培訓機構學幾個月就可以放到工作崗位上去幹活;
但 Python 不行,Python 雖然看起來簡單,但是用好不容易,特別是大規模的團隊對 Python 的要求就更高了,一般招Python都是要求有一定經驗的。
而招Java的崗位初中高級的都有。Java語言的特性決定了一門新手和老手寫出來的代碼差距不會太大(這里肯定有人不會同意),而 Python 的代碼不同的人寫出來的代碼千差萬別。
最後想說的就是,Python這么語言還是很有前途的,這兩年大家都在給Python瘋狂打Call,讓Python成為所謂的第一語言,大家都在學,一個大膽的猜測就是未來 Python 將會像英語一樣成為大家必備的一個技能。
但是如果現在啥都不會,只會Python,去找工作的確有點困難,當然並不見得學Java找工作就容易了,最主要的還是對整個計算機體系的掌握,語言作為工具只是很小的一部分。
(9)opengl程序員招聘擴展閱讀:
應用:
系統編程:提供API(Application Programming Interface應用程序編程介面),能方便進行系統維護和管理,Linux下標志性語言之一,是很多系統管理員理想的編程工具。
圖形處理:有PIL、Tkinter等圖形庫支持,能方便進行圖形處理。
數學處理:NumPy擴展提供大量與許多標准數學庫的介面。
文本處理:python提供的re模塊能支持正則表達式,還提供SGML,XML分析模塊,許多程序員利用python進行XML程序的開發。
資料庫編程:程序員可通過遵循Python DB-API(資料庫應用程序編程介面)規范的模塊與Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等資料庫通信。
python自帶有一個Gadfly模塊,提供了一個完整的SQL環境。
網路編程:提供豐富的模塊支持sockets編程,能方便快速地開發分布式應用程序。很多大規模軟體開發計劃例如Zope,Mnet 及BitTorrent. Google都在廣泛地使用它。
Web編程:應用的開發語言,支持最新的XML技術。
多媒體應用:Python的PyOpenGL模塊封裝了「OpenGL應用程序編程介面」,能進行二維和三維圖像處理。PyGame模塊可用於編寫游戲軟體。
pymo引擎:PYMO全稱為python memories off,是一款運行於Symbian S60V3,Symbian3,S60V5, Symbian3, Android系統上的AVG游戲引擎。
因其基於python2.0平台開發,並且適用於創建秋之回憶(memories off)風格的AVG游戲,故命名為PYMO。
黑客編程:python有一個hack的庫,內置了你熟悉的或不熟悉的函數,但是缺少成就感。
用Python寫簡單爬蟲。
首先,要通過urllib2這個Mole獲得對應的HTML源碼。
可以將URL的源碼存在content變數中,其類型為字元型。
接下來是要從這堆HTML源碼中提取我們需要的內容。用Chrome查看一下對應的內容的代碼(也可以用Firefox的Firebug)。
可以看到url的信息存儲在span標簽中,要獲取其中的信息可以用正則表達式。