GIS职业生涯规划
当前的GIS教育现状,大家或多或少有所了解。我在《GIS初学者》第一期的《中国GIS本科生学习现状调查报告》一文中进行了简单的调查、阐述与分析。由于有太多的阻力因素存在,教学改革不是一朝一夕就能开展的,因此迷茫的朋友们,还是不要指望学校会给你喂好饭吧。作为一个成年人,应该有自己的思想和意志,走自己的路。
路径选择,首先要知道自己在哪儿,要去哪儿——这是给自己的所在地和目的地定位。所在地的定位没什么问题,能考上大学的人,差不多都对自己的知识和技能、素质和能力、性格和品格有一定的认识,只是精度不同而已。目的地的定位却是个大问题,大多数人只能笼统地说出工作、做学问或创业,再想看清晰一点却是难于上青天。窃以为这是很多人迷茫的一个重要的方面。想当初,从小喜爱地图的我怀着一腔热情报考GIS专业,却也弄不清自己到底想做什么,使得两年的大好时光白白浪费(尽管用传统的衡量好学生的标准我可谓是相当成功),加上考研,一共是三年青春向东流,现在每每想来,总是痛心不已。值此毕业之际,我将自己的思想整理了一下,希望能为迷茫的朋友做个导航。
方向1:开发工程师
毕业后要工作的朋友,得考虑下有哪些工作和自己喜欢什么工作。由于目前GIS就业市场的形势是供大于求、僧多粥少,因此更多的还是考虑市场需求比较好。
GIS开发者》第六期的《中国GIS人才生存状况调查报告》一文,在众多GIS单位中,其主营业务大多是工程开发或软件研发和销售。从事数据处理的单位比例也达18%”单位对人才需求最多的是资深开发人员,其次是程序员和项目经理。由此也可看出,如果想从事GIS行业,较强的编程能力才是通行证’”。打开各大论坛的求职招聘版,也可以看到几乎每个单位都招开发人员。这里了很典型的一则招聘启事:
职位:GIS开发工程师
要求:熟练掌握C#/C++使用;熟练掌握ArcGIS Engine 9.0以上版本的使用;有C#/C++结合Engine项目经验者优先;
这则启事简单明了,一共三点要求:语言、组件、经验。客观地说,对应聘者的要求还是很低的,我想一个普通的高中毕业生认真地自学一年应该能够胜任。然而,按部就班的优秀本科毕业生却未必能满足这些要求。第一,学校基本上只教VBC这两门基础的教学语言,
目标是过二级、三级,然而考级对编程的要求与工作中对编程的要求完全是两码事,不是一个方向。第二,曾经风靡的两种GIS组件MapXMO正在退出社会舞台,然而在课堂上仍然是主打。第三,有开发经验的学生太少了,很多学校完全不教二次开发,即使教,对学生的要求也不高,实现简单的浏览、查询就行了,这根本算不上项目经验。因此,想从事开发工作的朋友们,必须在校园里开展自助学习。个人认为,认认真真地参加一次ESRI或超图办的开发组比赛,就可以达到普通公司的要求了。下面再看一则要求比较高的:
1、计算机或GIS专业本科及以上学历;
2、熟练掌握C/C++语言、JavaJSPC#等语言,熟悉VC++JBuilder编程环境;
3、熟悉设计模式、UML,能用Rose等建模工具构建系统模型;
4、熟练掌握SupermapArcgis等主流GIS平台及二次开发技术,有GIS软件平台底层开发背景,熟悉GIS常用算法,对Web Gis系统的技术架构、性能、安全等有较深刻的理解;
5、熟悉SQLServerOracle数据库开发。
6、有良好的团队精神,有良好的交流与沟通能力,具有跨平台软件开发或嵌入式软件开发经验者优先;
这份工作网友们有说工资少于5000没人干的,也有说这种高人没有10K是供不起的。但其实认真自学四年,满足这些要求是绰绰有余的。用一年自学计算机基础、语言(除了VBCC#C++JavaVB.NET四者应当有一)、网络开发,用一学期学习商业GIS桌面软件和组件开发(建议参加比赛),用一学期学大型数据库和分布式系统,用一学期学软件工程、系统分析与架构,用一年学习开源GIS软件并练习底层开发(比二次开发技术含量高,钻研能力强的人可以走这条路。需学习算法与数据结构、计算机图形学、数字图像处理很多学校开了这些课,但一是跟GIS结合不紧,二是实践不够以至于理论不能掌握。),用一学期了解跨平台、嵌入式、虚拟现实等前沿技术。
肯定有人会指责,这样的规划一是过于偏重IT而轻视地学和数学,二是太理想化没人能学出来,三是要学校还有什么用。正常来说,应该有少数人会冷嘲热讽或破口大骂的。下面我未雨绸缪,提前一一作答。第一,上文只是对想从事开发工作的人说的,对开发人员来说,计算机技术是最重要的。对这部分GISer,只要能把G的基本知识和发散思维引入IS,就非常好
了,术业有专攻嘛。至于其它的路,下文还有探讨。第二,世上无难事,为之,则难者亦易矣,不为,则易者亦难矣,对于毅力匮乏、眼高手低、光说不练的人而言,这的确太理想化了。另外,上文所列的内容只是指引方向,并不是要求全部掌握,而且学校毕竟不是工作,不用每样都学很深。第三,对于想走这一方向的人来说,除了学位证书那一纸遮羞布,学校确实用处不大。从课程设置和教学内容来看,大多数学校似乎都是想培养科研人才的——当然培养方式还有待改进。不只是GIS专业,很多学科都存在理论脱离实践、教学脱离实际、校园脱离社会的问题,何必盲从呢?成绩可以光耀门楣,可以赚取奖金,就是不能给你带来一份好的工作——你看拿家GIS公司的招聘要求里写了成绩优异者优先录取?当然,在大家能力都不行的情况下,成绩好的便成了矮个里的将军。
小结一下,这条路是通向开发工程师的,发展得好可以成为项目经理吧。这里需要补充的是,开发并不仅仅是指编程需求分析软件架构也是开发的重要组成部分,这些工作不做好,编程的时候就会比较乱,而且系统的健壮性也不容易好。不愿意编程的人,比如说女生,可以考虑往这方向走,不过最好对GIS编程也有一定接触。
方向2:三维工程师
自学编程能工作吗
其实也应该属于开发,只是觉得很多初学者对三维比较感兴趣,因此单列出来。还是先看一则招聘启事吧:
职位描述:在高级开发工程师/系统工程师指导下进行地学三维相关模块的设计与开发工作;
职位要求:
1.计算机、地理信息系统、应用数学或者相关专业本科以上学历;
2.掌握VC开发技巧,熟悉c/c++编程,对OpenGL或者D3D技术有一定了解,
3.英文水平良好,阅读英文技术资料没有障碍;
4.较强的逻辑分析能力, 学习能力, 创新能力和团队协作能力;
5.有三维仿真、游戏引擎开发经验者优先
这应该出乎很多初学者的意料:搞三维也得会编程的!没错,三维开发可以简单地分为两块:建模和编程。用GIS软件建立的地面模型和用3DMAX等软件建立的地物模型是静止的,
要对他们进行动态控制需要编程。举个小例子,桥梁每时每刻都因受到风和汽车的力而发生形变,要想了解形变的情况,可以在桥梁上装上若干GPS即时的获取位置信息,同时用软件建立桥梁模型,通过编程使得GPS数据和桥梁模型关联起来并加以夸张,这样每当GPS数据发生了改变,模型上的桥梁也就发生相应的可观察的形变。
要想从事这种工作,在计算机方面要自学3DMAXMAYA,在编程上要深入学习用C++进行OpenGL技术开发,在GIS上要注重学习DEM和虚拟现实的内容。这些课堂上基本都是很少涉及的,必须自学。
方向3:数据工程师
数据是GIS的血液,一个项目很大一部分资金都是注入到数据的采集、生产和维护中的,因此这也是一个比较大的方向。还是先看一则招聘启事:
职位要求:
1.相关专业本科毕业,应届也可
2.有良好的专业知识,熟悉ARCGIS软件操作
3.有地图数字化方面工作经验,有数据库相关操作经验
4.GIS工作抱有热情,有良好的团队合作精神
岗位描述:GIS数据的生产和维护
我的感觉,这是一个很辛苦的、技术含量最低的GIS工作。前些时候去江苏省基础地理信息中心参观,看到数据处理的地方就像一个工厂车间,很宽敞,一排排的电脑,大家就带着立体镜根据测量图纸在ArcGIS中的遥感影像立体像对上矢量化,录入到空间数据库中。矢量化是我们的拿手好戏,这里就不赘述了。这种工作,一般中专生培训培训也能做。
再有就是遥感和航测数据处理,学过遥感和摄影测量课程,会用ERDASENVIER MAPPER,以及VirtuoZO就行。