① 地理信息系統專業
考研吧,本科學不到啥東西
需要掌握的技能
認真看完下面的,相信你知道該做些什麼了。
(一) 打好編程基礎
這篇文章僅給那些GIS專業的,想學GIS開發的,但現在還沒怎麼入門不知道該從哪學起的在校生參考的。這篇文章不是討論GIS開發是否有前途的,也不是討論做GIS是不是就一定應該做開發的帖子。
先就幾個大家在學生時代都很迷茫,我也曾經迷茫過的問題,說一下自己的觀點:
1、
現在開始學習編程,是不是晚了?
如果以大四畢業找到一份GIS開發方面的工作,並對得起3K左右的月薪為目標的話, 從大四開學開始努力就不晚。
2、
學校不教編程,怎麼辦?
大學里學校教不教只是指個方向,學習都靠自己,既然已經決定要做GIS開發,方向已經有了,學校教不教又有什麼關系?
3、
GIS學生編程不如計算機的,搞測繪不如學測繪的,搞地理不如學地理的,我現在開始學習編程再怎麼學也趕不上學計算機的怎麼辦?
這個問題簡單,如果現在去睡覺能趕上他們的話,完全可以去睡覺嘛。
如果你是一名大二的學生,能意識到自己以後打算做開發,並開始努力,那是再好不過了。這個時候大部分學生還處在比較迷茫的時期,或者還在享受幸福的大學生活。這個時候開始努力,你就比別人起步早,自然會比別人更有優勢。這時候學校一般都會有一些計算機相關的課程,計算機基礎啊,VB啊、C啊什麼的,對於不想從事這一行業的學生來說,應付過去就是了,但對於已經有想法的學生,這時候就要抓住機會,把這些課程學好,除了老師布置的作業,要盡量的去多編程,多敲代碼,多學一些東西。學計算機不要局限老師教的內容,要自己去拓寬學習范圍。下面細說一下這些計算機基礎課程應該怎麼去拓寬知識面。
學計算機基礎的時候,除了把word, excel的基本操作弄熟,去學一學高級應用,比如說用excel做一些漂亮的報表、做一些數據的處理,篩選啊、統計圖啊等,用VBA的做一些小應用,用Access做一些常用的資料庫管理程序,像學生信息管理系統啊之類的。不要覺得這些東西沒有,我去浙江地理信息中心,筆試上機題目,有一道就是excel相關的,要求用編程和不編程兩種方法實現。我沒做出來。。。囧
如果學校開了C語言的課程,不要只會做個從1加到100的程序。像C語言中比較難的部分,非計算機專業在教的時候都會迴避。這個時候你就不能迴避了。哪些部分呢?文件讀寫操作,位操作,內存操作,指針的操作,這些都學一學,很有用的東西。還有數據結構要多了解一些, 除了那些大家亂熟於耳的冒泡排序等演算法,像什麼鏈表、二叉樹,圖什麼的都去了解了解。最後有和C語言去實現這些數據結構,可以去買一些數據結構的書來參考。
如果學校開了VB的課程,那就要多去做點小應用。VB是一個很容易上手的語言,通過很短時間的學習,就能做出像模像樣的東西,這對於學習GIS二次開發來說是個很不錯的工具,編程的難度降低了,可以把重心放在怎麼設計開發GIS功能上面去。所以,在學習VB的時候,如果你聽說過MO,嘗試著用一用,並做一些小程序。你還可以去用VB寫一些程序來操作word,excel,cad等,這些東西都沒什麼,就是個對象模型,熟悉它的對象模型了,就好操作了。另外,在用VB編程的時候,應該融入一些面向對象的編程思想,雖然VB不能算是面向對象的語言,但這也除低了學習面向對象的門檻,嘗試著把一些常用的功能,演算法寫成函數或封裝類。不要把代碼復制來復制去的,搞的整個程序到處是重復的代碼還沾沾自喜。還可以用VB嘗試一下連接資料庫,做一些資料庫管理程序。還可以做一些控制項,做一些dll,然後自己去調用,體會一下組件式編程帶來的優勢,等等。。。這些學校上VB課的時候,都不會教,都要靠自己去學。
(二) 目標明確,有選擇的學習
上面說的那些基本上都是大二的課程,什麼大學生計算機基礎啊,VB啊,C啊,如果能在大二時做到上面的全部,那就是非常非常牛的人了,我大二一年都貢獻給war3了,還掛了好幾科,VB學到變數那一章就直接廢掉了。考試完全靠突擊,才突擊了個中。那大三的時候做什麼呢?大三的時候一般會開各種專業課,說實話,編程是一個很費時間的事情,如果你已經決畢業後做GIS開發,那麼,一些不相關的專業課,完全可以放棄,考試能過就行了,不要太花時間。拿我的課表來說,像什麼人文地理啊,土地經濟啊,自然地理啊,都是沒用的課。有很多人以經濟愛好者自居,看到帶經濟的課就兩眼放光,其實這些課真的是很沒意思,不是看了本什麼地理經濟你就算搞經濟的了,看了本地籍管理,以為自己可以去房地局管地籍了,什麼都想學,往往最後什麼也沒學好。所以,該放棄的課,是一定要放棄的,把有限的時間用在刀刃上。還有另外一些專業課,和GIS相關的,像GIS概論,遙感,GPS,數字圖像處理,攝影測量,GIS地圖設計,GIS項目管理,空間資料庫原理及應用。。。等等(我只是根據我的課表列舉一些,各個學校專業背景不同,具體課程也不同),這些課程都是要用心去學的。在這些課程中會碰到一些需要編程來解決的問題,不要偷懶。另外,這個時候會接觸到一些GIS軟體,什麼cad,arcview,arcgis,mapinfo。。。很多,但是有兩個軟體是學GIS的一定要掌握好的,包括它們的二次開發,其他的軟體都可以無視。一個不用說,當然是arcgis了,把arcgis desktop玩熟,最好去買一本實習教程什麼的,有數據有步驟,一本書做下來,就差不多了。第二個軟體是autoCAD,這個軟體在GIS和測量行業中的地位是不可忽視的,cad的強大和易用性自然不必多說,cad的格式是一代數據格式的標准,GIS數據的來源無外乎測量和遙感圖像,測量數據基本上都是dwg格式的,像國土部門,地籍部門都充斥著大量的cad原始數據,但是cad數據雖然靈活,確不能用GIS來管理,而且數據質量存在很大的問題,所以,如何將原來大量的cad數據轉移到GIS平台,是很多部們和單位在解決的問題, 如果你精通CAD及CAD的二次開發,處理這些問題時你就能得心應手。所以,把CAD學好,至少掌握一個CAD二次開發的方法,lisp,vba,objectARX,lisp和VBA比較簡單易學,objectARX比較難,剛開始可以不用管它,以後工作中如果用到了,再學也不遲。
編程方面,在大二的基礎上,要開始了解一些面向對象原理和方法,除了VB和C,建議另外學習C#和Sqlserver,基本的sql語句要會,ADO連接資料庫要會,不然,你連一個北大青鳥的學生都不如(僅限IT行業的coder工作)。這些東西不難,有編程基礎和面向對象知識,上手很快,不過如果你想學習C++,那就要下大功夫了,呵呵,作為一名GIS的學生,學習C++倒不是很必要。
這個時候,如果學校的課不多,或者你覺得學校的課沒有挑戰性,有兩個選擇,一個是去軟體公司實習,一個是去參加超圖或ESRI的競賽。如果精力足夠旺盛,可以一起做。總之,要踏踏實實的做一些東西,做一些事情,不要荒廢時間,也不要只學習不踐,應該在實踐中不斷的學習,才能進步。這個時候沉迷游戲的同學該醒醒了,絕對不晚,我大二的時候是在家教和游戲中度過的,大三的時候,覺得自己不能幹一輩子家教,然後就看了一本面向對象的書和一本asp.net的書,當時因為啥都不懂,只是囫圇吞棗的看下去了。然後我去找實習,經歷了一番波折,找到了一個小IT公司,算入了軟體行業的大門。面試的時候,我就把書上的詞,能想起來的,全都說出來,估計那個面我的人有點崩潰,不過後來我知道,面我的那個,也就是公司的副總,是校友,大我十年。
(三) 個人對GIS二次開發學習的理解
先回答一個問題,有人問為啥做為一名GIS的學生,學C++不是很必要。其實准確的講,我的意思是,目標為GIS二次開發的本科生,在學生階段,可以不學C++。無論C++頭上有多少光環,大家都說C++如何有前景,如何高薪,但有一點必須得承認,C++不好學,對於計算機相關專業,把精通C++作為畢業奮斗的目標是無可厚非的,而對於我們這種學GIS的半路出家的coder,缺乏很多基礎的計算機知識,想在畢業前把C++學好然後藉此找一份工作,是比較困難的。這是其一。還有一點,目前做GIS二次開發,幾乎不會用到C++,對於一些急功近利的小公司,聽你說只會C++不會C#,甚至會直接拒絕你,雖然你比一個C#的coder要花費多的多努力。而做GIS底層的公司又不多,這樣看來在學校里學C++最後畢業了還是個半吊子,似乎有點不劃算。但C++如果學的好的話,能在除GIS之外的IT領域有很好的發前景,基本上知名的大公司筆試都是C或C++的內容,當然語言只是載體,主要考的是數據結構,如果你有信心和計算機專業的學生競爭並且一心想去做技術的話,完全可以拋開GIS,絕對比去你做GIS二次開發強。但是如果你還是想在GIS二次開發上混 ,用一些容易上手的語言,在學校里多做出一些東西,看得見摸得著的東西,對找工作還是非常有用的。做GIS的,當然都不希望一輩子做coder,即使做二次開發,也要不要把精力全放在編程上面,應該更多的放在理解業務上面,放在積累行業經驗上面,而不僅僅是積累編程技巧。也許有一天,你的角色是僱傭別人來完成你的想法,而不是天天抓頭解決一個程序的bug,為一句代碼通不過而吃不下,睡不著。
因為我現在是做C++的,如果相學的話,我可以提供一個大致的學習路線和學習的書籍。
學習路線基本上是:C -> C++ -> windows程序設計 -> MFC
各階段的書:
C就無所謂了,學校教的就行,或者就是譚浩強那本書吧。
C++ 推薦C++ primer和高質量C++編程
Windows程序設計,有一本書,就叫windows程序設計。我看不下去,但我 知道這本書非常好。
MFC,孫鑫的VC深入詳解,候捷的深入淺出MFC,我也看不下去。也是非常好的書。
反正我覺得我C++學的很爛,越學越爛。囧,現在做C++痛苦死。當然強人是很多的,可惜我很菜。
進入正題,怎麼看待GIS二次開發。說實話,我在大學里除了用過MO+VB做過GIS二次開發,其他的都沒用過。現在工作連arcgis都難得用一下,更別說engine,server了。但是不要把GIS二次開發看的太神秘,或者說以為自己會用arcengine就比學計算機的有優勢,如果讓你和一個完全沒聽說過GIS的計算機專業的學生同做GIS二次開發,你的優勢不過1個月,他需要向你請教如何配置環境,如何入門,但過了這一階段,你會的,他都會了。GIS二次開發學不過就是組件式編程而已,和excel二次開發,cad二次開發無本質區別,組件式編程只會讓編程更簡單,而不是更復雜,這對學計算機的來說,是降低難度了。而你在編程上的劣勢很快就會突顯出來。所以,我認為,對於GIS二次開發的學習,不要局限於專門去學arcengine什麼的,先把資料庫學好,把編程的基礎打牢,把面向對象理解透徹,把arcgis桌面軟體用熟,然後,再去學二次開發,一邊學一邊實踐,參加比賽,或是做項目什麼的,都行。很多人都是上來就生搬硬套一些例子,好像也做出了一些東西,中看不中用,知其然不知其所以然,這樣是很難深入的。總之,是在編程的基礎上學習arcengine,而不是在arcengine的基礎上學習編程。
下面具體講二次開發的學習,因為我沒做過太多,所以就說一下我了解的,我知道的,肯定不是很全面,大家可以補充。
現在做GIS二次開發,基本方向有桌面GIS,webGIS,移動GIS這些。3DGIS感覺算底層,也順帶說一下吧。
1) 桌面GIS二次開發,語言無疑C#是最佳選擇,感覺很多人都在做這個,個人覺得做這方面要學習:C#,SQLServer,網路編程,資料庫編程,最後才是學習AO,AE。
2) WebGIS:這個近來很熱,內容也很多,可深可淺,我覺得要想做webgis,一定要先把web做熟。你可以等到畢業之後再去學arcgis server,只要你會做網站,有項目經驗,絕對能找到工作,但你絕對不可以自以為學會了arcgis server,人家問你css的東西你都不會,問你javascript的東西,你一頭霧水,這樣出去是沒人要的。有人一開始就學asp.net,與此同時,直接上手arcgis server,好像拖拖控制項,改改屬性,和桌面軟體開發也沒啥區別似的。Asp.net雖然上手快,但我覺得不是學習web的最佳語言,它把很多web細節給隱藏了,這樣對初學者來說是很不好的,我建議學習web先學習前台,從html,css,javascript開始,這些學好後,能做一些簡單的頁面,能寫一些腳本,了解一些web原理和標准之後,再選一門後台語言進行學習。做web最好是能去一些公司實習,短短兩個月,就能讓你水平飛漲,因為做web的公司加班起來都是玩命的,而且web本身並不難,有人帶著學,非常快。能做一些簡單的網站後,再去做webgis,我想應該會好的多。
3) 移動GIS:這個目前好像也挺火,不過感覺對開發者來說,移動GIS還是桌面GIS區別可能不是太大,因為移動GIS的平台基本都是wm系統上的,wm系統上的開發和windows開發有很多相似之處,只是各方面的資源變的緊缺了。我感覺做移動平台,最關鍵的就是數據傳輸,無線通訊這塊。移動GIS也主要和導航、GPS定位聯系在一起。所以,做移動平台,我認為要關注的重點就是:
通訊和數據傳輸。如藍牙、GPRS、socket編程、webservice等。
GPS定位。GPS原理,和wm系統對GPS的介面等。
導航、實時路況等具體的應用可以多了解一些,能做一些相關的項目最好。
最後一個3DGIS,了解不多,算是底層開發,C++和C應該是要精通的,opengl是必須要會的。3維圖形演算法和數據結構也要多研究。
(四) 關於找工作....
1、找工作前的准備。
都說GIS專業不好找工作,我倒不是覺得不好找,而是找不到好的工作。工資普遍偏低。這也是沒辦法的事情,我現在就覺得做GIS的公司似乎都在撿計算機類專業找不到工作剩下的,因為人家好歹是學計算機的,會編程,而學GIS的好多學生不會編程,關鍵是不喜歡編程甚至鄙視編程,培訓arcgis和arcengine顯然比培訓你編程要效率的多。更何況,編程編不來的,對這些二次開發組件的理解又能好到哪兒去呢。
對於GIS專業,我的建議是,利用大四的時間,去找一份編程的實習,針對性的准備一下,只要不是電腦盲,花些時間,針對性的准備一下,一般情況都能找到的,當然也要靠一些運氣。但是可能你找到的公司很爛,天天加班,給的錢還少,沒關系,這只是過渡,為了讓你畢業找工作時,不用再經歷一次這種爛公司了。所以,哪怕沒有報酬,也要全身心的投入到裡面去做。至於和GIS是否有關系不重要。這樣等到你找工作的時候,你就有了一些編程的經驗,無論在面試還是筆試的時候,都會有很大的幫助。
如果實在是找不到實習,可能有的學校不在上海北京這種大城市,找軟體類的實習並不容易,那就只能盡量在學校里做一些編程的項目了。像課程設計、畢業設計,如果想混打哈哈就過去了,但如果想做好,還是能學到不少東西的。但這種學習壓力就小了,而且沒人帶,效果並不好,尤其是像我這種自控力差的人。如果學校里也找不到項目,那就找書,做書上的例子,哪怕對著書本把代碼打一遍進去,能把它調通,也是好的。總之,就是在找工作之前,一點要寫過一些代碼,而不是就拖拖控制項。學GIS的很容易染上這個毛病,MO拿過來,拖一下,顯示一下,ok,學會了。AE裝一下,拖一下,顯示一下,ok,又學會一樣。server,mobile全都是一個套路,一周就把arcgis一整套東西全都學會了,沒拖過這些控制項的一看你做出一個能顯示地圖的軟體或網站,崇拜的不行,實際上,多大工作量,自己心裡最清楚了,一分付出一分收獲,如果你對GIS開發的學習僅到此為止,那就不能怪找工作難了。
2、找工作的途徑
肚子里有貨,再去找工作,就容易多了。了解找工作的途徑也很重要,很多學生都是等著工作來找自己,如果你在武大這種GIS專業很出名的學校,那要恭喜里,坐著確實能等到工作來找你,如果不是,那就要自己主動出擊去找工作了。
1)招聘會。對於GIS專業,普通的招聘會都沒啥對口的單位。所以盡量去那些GIS專業比較好的學校里擠,或者像一些GIS專場招聘會。一般的招聘會就別去浪費時間了。
2)網投。專業性論壇,應屆生,自己學校的BBS等,這些網站是要天天去點的。對了,有csdn的論壇,偶爾也會出現一些招GIS開發的程序員,也要經常看看。看到了合適的就投。我說的合適不是指你能符合他的要求,那樣的話沒什麼可投的公司了。而是它能符合你的要求,而你只要能符合它的其中的一小部分就可以投了。像51job,chinahr之類的網站,就別浪費時間了,這上面投簡歷跟往水裡投石頭沒區別。除了看招聘啟事,還可以搜集GIS方面的公司,然後到公司網站上去投。
3)老師、學長學姐、家裡,同學、朋友,甚至網上認識的同行業的朋友等等。不但要動用一切你能用的人際關系去找,還要盡量去挖掘潛在的,可能會對你找工作有幫助的人。這種途徑往往找到的工作比你自己去瞎撞的好。
3、簡歷。
1)一定要控制在一頁裡面,針對招聘要求來修改你的簡歷,他要你會什麼,你就寫會什麼。他沒要的,你覺得公司會感興趣的,也可以寫上。但是離題萬里的就別寫了。比如你應聘程序員,別寫你熟練office,還會裝電腦,還會photoshop等等。
2)簡歷最顯眼的部分,也就是一張紙的中上部,要寫最有用的東西,比如你的技能和項目經驗、相關的獎勵等。什麼自我介紹,興趣愛好,入職宣言之類的都放到後面充字數。什麼當過課代表班幹部就別寫上去了。
3)如果是應聘國企和事業單位,如果你是黨員的話,寫上去。不是就算了。私企和外企你是不是黨員都不用寫了。
4)適當的誇大自己水平,但是一定要經得住問,你先假想一下自己是面試官,拿著你這份簡歷,你會怎麼問,然後看看自己是否能答的出。
5)把自己的做過的項目和作品,做一份匯報PPT。有時會用到。發簡歷時也可以附上。不要和簡歷打成一個壓縮包,分開上傳,這樣別人只想看里簡歷時,不用下PPT,因為PPT很大,網速不好的話都不一定下得動。
6)不是投外企,而且不要求英文簡歷的情況下,別用英文簡歷。
4、筆試、上機和面試。
公司招聘選拔的過程大致有這幾種。只面試、筆試後馬上面試、筆試篩選後另行通知面試。
一般的,小公司不筆試,去了就直接聊,這種情況都是對著你的簡歷問,面試前一定要把自己的簡歷弄熟,自己寫上去的技能比較生疏的,抓緊時間在面試前看一看,囫圇吞棗的混個眼熟,然後能說就行。簡歷上寫的項目,回顧一下整個過程,用到了哪些知識,做了哪些事情,實現了些什麼功能,怎麼實現的等等。面試過程中,盡量多談自己熟悉的東西,迴避不熟悉的東西。小公司面試過程中可以瞎扯,可以聊一下與面試無關的話題。聊聊公司的發展前景啊,做什麼產品啊,聊一些自己的興趣愛好啊什麼的都可以。除非面你的人很嚴肅,否則自己不要顯得太嚴肅。
GIS公司都會筆試或上機考些什麼東西呢。編程方面的,我只能提供C++的筆試經驗,其他方面沒怎麼做過。C++一般都是林銳的那本高質量C/C++編程,那本書弄熟了,C++筆試基本都能過。專業方面的,既然是GIS專業,當然要考點除計算機以外的東西,一般來說,大點的公司,或是好點的事業單位,會考基本功,一些基本的GIS演算法和原理,典型的,折線的緩沖區生成,多邊形面積計算,坐標轉換等等。小公司一般會考針對特定技能,如C#和AE,資料庫等。還會碰到一些演算法掃盲題目,冒泡排序、查找、字元串處理演算法等。
還碰到的一種面試方式是,直接做匯報,自帶電腦,演示你做過的項目。像這種,最好是做一份PPT,然後在需要的時候運行你的程序。這個做匯報,前面講過了,只揀最重要的講,時間要控制好,一般5分鍾到10分鍾,講的過程中注意觀察面試你的人的表情,他感興趣的可以多講一點,不感興趣的盡快跳過。
② 地理信息科學專業的介紹
地理信息科學專業(geographic information science)原名地理信息系統專業(Geographic Information System或Geo-Information system或GIS)2012在教育部日前印發的《普通高等學校本科專業目錄(2012年)》中,在地理科學類專業中,地理信息系統專業已改為地理信息科學專業。研究地理信息採集、分析、存儲、顯示、管理、傳播與應用,及研究地理信息流的產生、傳輸和轉化規律的一門科學。地理信息科學是近20年來新興的一門集地理學、計算機、遙感技術和地圖學於一體的邊緣學科,主要培養具備地理信息科學與地圖學、遙感技術方面的基本理論、基本知識、基本技能,能在科研機構或高等學校從事科學研究或教學工作,能在城市、區域、資源、環境、交通、人口、住房、土地、災害、基礎設施和規劃管理等領域的政府部門、金融機構、公司、高校、規劃設計院所,從事與地理信息系統有關的應用研究、技術開發、生產管理和行政管理等工作的高級專門人才。1地理信息科學是1992年Goodchild提出的,與地理信息系統相比,它更加側重於將地理信息視作為一門科學,而不僅僅是一個技術實現,主要研究在應用計算機技術對地理信息進行處理、存儲、提取以及管理和分析過程中提出的一系列基本問題。
③ 地理信息科學就業方向及前景
地理信息科學就業方向及前景:
畢業生可以去基礎設施和規劃管理等領域的相關部門從事與地理信息系統有關的應用研究、技術開發、生產管理和行政管理等工作,也可在科研機構或高等學校從事科學研究或教學工作。
礦產、工程類企業:地質勘查、攝影測量、生產管理、技術開發。
IT類企業:項目規劃設計、項目實施開發、GIS設計與開發、遙感技術、無人機。
建築類企業:數字城市建設、城鎮規劃建設。
地理信息科學專業介紹
地理信息科學主要研究地理學基礎知識、地理信息系統、資料庫原理、遙感原理與技術等,運用3S(GPSGISRS)技術,將地球系統內部的物質進行信息化,例如:根據城市地貌製成手機查詢的電子地圖、遠程遙控無人機、實時定位導航等。
主要課程:《攝影測量學》、《GIS空間分析》、《GIS設計與開發》、《遙感導論》、《自然地理學》、《計量地理學》、《遙感數字圖像處理》、《衛星導航定位原理與應用》等。
④ 請大家談一下對地理信息系統的認識和理解,希望詳細一點,最好能談一下國外的情況,謝謝。
【純個人觀點,如有偏差敬請諒解,歡迎參考與交流,禁止肆意復制!】
GIS發展正在走向大眾化,正在走向社會的各個行業,正在走向我們每個人的移動終端,決定了GIS的未來有著美好廣闊的發展前景!
我主要從事政務地理信息系統建設,以國內情況,政府各個部門從大到小、政府各個級別從高到底都已經建成或正在建設或正在規劃政務地理信息系統。
以政務地理信息系統建設為例,該領域的行業前沿是數字城市新技術、空間地理信息共享、空間地理信息數據組織與政務GIS新應用等等。