Groups
Groups
Sign in
Groups
Groups
ArcGIS
Conversations
About
Send feedback
Help
闲谈GIS专业导向与个人定位问题
38 views
Skip to first unread message
geogle
unread,
Jul 3, 2007, 2:24:21 AM
7/3/07
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to arc...@googlegroups.com, Google 地图 API 讨论组
转贴:OWL
GIS发展到今天,已经完完全全成为一个大杂烩。
在一个综合性的大型GIS会议上,"搞GIS"的人,谈论的可以是相差十万八千里的东西(一个人可以是在 发表一种新的空间索引结构,另一个人则是在展示他用桌面GIS软件画出的几张本应用专业的专题图)。可能有些人认为后者不够"专业",算不上"搞 GIS",我个人则认为只是分工不同,正是所有这些人员共同构筑起了不断壮大的GIS产业。从另一方面说,GIS涵盖的范围的扩大和涉及的不同专业的增加 又使得学习GIS的人往往有重点不分无从下手的感觉,因为有太多的东西可能都有用,好象都应当学,结果很可能是什么都没学好或者正好漏掉了将来工作中要用 到的东西。
说实话,有鉴于目前地理信息科学内涵之广大,我个人对于在本科阶段开设一般性的GIS专业持保留态度(有些观点前些天在隔壁数据结构版贴过了,现在再重复 一下),特别是如果师资不具备或者教学体系不灵活的话,很容易搞成四不象,还不如老老实实拿应用专业(地理规划地质环境等)的学位。
至于对于GIS有特别兴趣的学生,在最后一年到一年半选修几门课,做个设计就可以以XX专业GIS方向毕业了,真正专业化应该放到研究生阶段。不过,三年 硕士可能太长,可以模仿英国的课程硕士(taught-course master),开设一年的研究生班(或者双学位班?),根据本科的不同背景来补充选修一些课程并做个设计了事。对于那些真正想钻牛角尖的XDJM,可以 继续上两年拿正常的硕士或继续攻博(有RMB的当然可以本科毕业后直接到英国这类地方一年就混个国家承认的硕士然后海龟一把)。从这个角度看,目前大量的 GIS专业也许应该改成为"GIS及XX应用专业"(而计算机系里的GIS专业-如果有的话-则应该称为计算机软件及GIS应用或者是软件工程及GIS应 用专业)。
话说回来,目前必须面对的现实是大量的GIS专业已经开设,大量的学生已经在读。对于这些XDJM,我个人的建议是要有个侧重点,要么强化计算机方面的技能,要么选择一两个应用领域深化,这样将来就业时的灵活性要大得多(搞不了GIS你至少还有个过得去的专业)。
否则的话,计算机比不过计算机科班出身的毕业生,而比其它专业的毕业生又强不了太多;另一方面,应用专业方面可能比计算机毕业生强一些,但是与应用专业科 班的水平又差距甚大。这样的知识结构的后果可能是什么都能做点儿但做什么都费劲。对于外行而言,某些应用领域可能很容易入手,而其它一些领域可能很久都 "沉"不下去,因此只有早做准备。
***************
暂且先不谈研究,初略地说,和GIS有联系的人员可以分成几类:
1- GIS软件系统和通用功能模块开发人员;
2- GIS应用系统和应用功能模块开发与应用系统维护人员;
3- GIS软件的直接使用与简单应用开发者;
4- 定制的GIS应用系统的使用者。
我想,上述前三类人员都足可以称为"搞GIS"的。
这三类人员中,第三类其实多数是其它行业(地理,规划,环境,地质等)的专业人员。他们主要是使用通用或专用GIS作为工具对本专业的空间数据进行一些处 理,可能也涉及一些宏语言级别上的简单开发。对于这些人,在高教阶段学习几门结合本专业的GIS基础课程应该就足够了。许多在地理规划环境等院系从事 GIS研究的人士基本也处在这个层次上。
作为"GIS专业"的学生(本科或研究生),将来不论是在教育界或者是在企业界,其定位都应该是在上面的第一二类人员,而一个最关键的问题则是在计算机技 术和一个或数个本人比较感兴趣的应用行业的知识之间寻求一个良好的平衡,结合自己的条件能力和所在院系的师资情况,为自己的未来发展制定一个切实可行的计 划。
挂一漏万地设想一下上述一二类GIS从业人员的具体工作和相关技能:
-GIS软件系统开发:
相对而言,无疑这是计算机专业人员(软件工程,数据库,计算几何,图形学和网络等之综合)的势力范围。从确立用户需求的角度考虑,一定的测绘制图空间分析等的应用域的输入也是必要的。
当然,这个方向上能有几个坑可以种多少萝卜也是不言而喻的。
-GIS通用功能模块开发:
这一般是指开发基于GIS基础软件的专有或第三方的通用扩展功能软件模块,也可能是功能专一但规模较小的独立系统(例如,注记系统,扫描矢量化系统等)。 这些系统或模块偏向应用,但往往是为多个应用领域使用。许多中小型GIS软件公司开发的往往是这类产品。从事这类开发仍然需要较强的计算机背景,但是同时 应用域知识的重要性也大大增强了。
-GIS应用系统和应用功能模块开发:
这应该是GIS产业中最大的一块(ESRIBOY网友说"半边天"似乎还有些保守了),恐怕大多数"GIS公司"的主要生意都在这一块上。
基于GIS通用软件的GIS应用系统可大可小,可以是一个"数字城市",也可以是(打个比方)放在PDA上让某位村长管理村里的那几个"一亩三分地"。做 应用系统,除了对软件的熟悉之外,软件工程的概念十分重要(尤其是做大系统时),此外再加上对应用行业的深入了解,才有可能搞出好的系统设计,顺利完成项 目。现在太多的应用系统是"鉴定验收等于葬礼",一半的原因恐怕就是没有在项目实施时很好的运用软件工程的原则外加对应用领
域的理解不确。
GIS应用功能模块的概念有些含糊,除了为具体用户量体定制(例如,根据其管理流程和组织结构)的一些模块外,也可以包括一些功能非常具体的行业化应用模 块。这些东西和上面所提通用功能模块的界限不是十分清晰。基本而言,应用模块开发对于应用域的知识的要求相当高,而对计算机技能的要求相对降低。
-GIS应用系统管理:
上面提到了存在许多"死掉了"的应用系统的一半原因,另一半原因就是用户方面的管理问题。大中型的应用系统如果没有专人维护(一般意义上的系管网管应付 GIS这样的专业系统多半有些勉为其难),即使开发商提供技术支持,也是很难运转良好的。这不仅是国内的问题,国外也有的是失败的事例。随着应用系统的增 多,对GIS应用系统管理人员的需求也会不断增加。
一个GIS应用系统管理员除了需要熟悉系统使用的GIS软件外,往往还需要具备一定的操作系统和硬件知识。此外,可能还需要担负起培训系统用户(上述第四 类人)使用该系统的职责,并且参与到业务中,提供一些应用方面的服务(对于小规模应用系统的管理人员,这种可能性尤其大)。
由后面这两点可知,对于系统所服务行业知识的了解,即使不是必需,也会非常有帮助的(例如,如果我是规划局长,我会选一个或者至少要配备一个计算机还过得去但是懂一些规划的GIS专业毕业生而不是一个计算机高手来管理局里的规划管理信息系统)。
需要说明的一点是,上面谈的是工作性质,而非工作单位。即使是专业GIS软件公司,里面也不全是计算机疯子(我有个以前的同事在OHIO州立地理系跟着 Marble老头做了个硕士然后去了ESRI做"产品专家",基本不编程了)。不同单位里各类GIS人员大多都有一些,差异在于比重不同机会多少而已。
基于上面的这些讨论,我想一个"GIS专业"学生的最基本的知识结构可以概括如下:
-数学方面:数学分析;线性代数;概率统计
-计算机方面:基础程序设计;数据库系统原理与数据库设计导轮;软件工程导轮
-地理测绘方面:基础地理学;计量地理导论;地图学与测量学导论
-GIS原理方面:GIS原理;空间分析(也许可以和计量地理合并);基本GIS软件使用(矢量栅格各一)和基础二次开发
上面这些内容中,对于铁了心往应用领域发展的人而言,数据库和软件工程也许不是必需,GIS软件二次开发也许也可以适可而止。
基础编程方面,我很吃惊VB成了很多人的第一门语言。当然,VB容易上手,也确实是个好工具,可以很快搞出些"红红绿绿"的东西,但是对于想往计算机方面倾斜的学生而言,VB因其语言成分的局限,绝对不是学习编程原理与方法的最佳工具。
如果在以前,pascal可能是最合适的(pascal本来就是作为教学语言设计的),现在大概只有C/C++了(开始时学到Object-based就 可以了,高级部分可以开为第二门课讲),JAVA也许可以用,但从了解计算机原理的角度看,还是太高层了(用Delphi?)。另外,学编程一上来就和 GUI"亲密接触"绝对不是好事(这也是不应从VB入门的原因之一)。
如果想往计算机方面发展(成为某种"实用计算机专业"的毕业生),上面地理测绘方面的内容有可能合并成一门,下面这些内容则需要学习:
-可以自己看书掌握一点基本概念的:计算机体系结构;操作系统原理
-应该学习到至少是入门程度的:离散数学
-需要认真学习的:数据结构与算法分析;高级编程;
-搞应用或相关研究需要认真学习的:GUI,网络,因特网与WEB编程;GIS软件二次开发进阶
假设用C/C++入的门,在高级编程阶段可以深入学OO和generic programming,可以同时结合数据结构来学习,有事半功倍之效果。学完C++再学JAVA,会容易得多。有了扎实的PL概念,学其它语言或框架也会快多了。
-如果还想往GIS的最底层走:高级数据库原理;计算机图形学;计算几何
-视兴趣而定,也许还可以学习一些其它计算机课程(模式识别,数据采掘等)和测绘制图课程(毕竟测绘制图是GIS的原型和表现方法的基础)。
最后,如果想往某个应用方向倾斜,除了该领域的专业课程外,我想最重要的是要强化一下数理统计和空间(统计)分析,这是正确合理使用几乎所有高级GIS功能的关键。
上面这些只是我个人一个很片面的概括,供现在在读的同学需要根据自己的情况参考而已,而个人的设计要实现也需要一些外界条件:必要的院系师资配备和(需要时)足够的跨系选修的自由度。可能的话,不妨和指导老师或系里讨论一下。
另外还有几句也许算是题外的话想说一下。在论坛上常常可以看到一些很明显是寻求作业的现成答案的帖子(甚至是几个贴主同一内容,大概是同班同学吧?)。对 此我十分不以为然。如果连一个很简单(当然,对于初学者而言可能不那么简单)的问题都不肯自己动手编一下程,那么如何指望提高水平,将来如何做大项目呢? 蒙混一时
也许不成问题,蒙混一世古今能有几人得逞?远的不说,毕业找工作多少还是需要些真才实学的(当然,哪位有好爹妈有好路子则另当别论)。如果做不出来,可以 和同学讨论,可以把自己的结果和遗留的问题都贴上来,至少也显示一下自己已经思考了努力了。说白了,这是一个基本的学习态度的问题。
我有个在英国某大学计算机系教书的朋友,前些日子和我联系时谈到他的一个学生交来的作业上的JAVA程序里的括号是"往一边走"(只有"{"!这哥们大概 是个坚定的左派)。当然他没法给此人高分。没想到此学生拿着截屏打印的结果找他发难:"我的结果和别人的一样,为什么只给我这点儿分数?!"我的朋友也火 了:"你这程序能编译吗?你先告诉我你这结果是哪里来的!"那学生一下子给闹了个大红脸。
我想,这学生以后能成啥样子可想而知,没人愿意象这么个样子吧(公司招考真枪实弹的时侯可是没处找现成答案的)?
另一个问题以前已经提到过,同样大量的帖子是找这找那的(当然不象是找作业答案)。我回过的一些基本都是现搜GOOGLE,在一两分钟内找到答案的。我不 知道这些帖子的帖主有多少是自己找了但搜索方法有问题没找到还是根本没找,我不认为全是后者,但觉得至少有相当部分是如此。不管怎样,这不是态度问题也是 方法能力问题,都是需要加以改进的。
说到底,大学四年,如果能够培养出一种认真勤奋的学习态度,基本掌握到独立自主的自我学习提高的方法能力,即使其它什么都没学到,也算没白费时间,也不用害怕未来了。
最后想谈一下GIS研究与创业的一些问题。
最近看报道称某校研究生抄袭作弊被捉,有人为之辩护称导师不够资格或是指导不力(方向都要自己选等等)云云。又听友人称其国内同学带研究生带得不止是扶上马送一程,简直是手把手无奈中几乎要替学生写论文了。
我不太清楚现在国内对于硕导博导的期望与要求究竟如何,只想在此简单谈一下英国的情况,供大家参考。
英国没有什么"博导"之类的头衔,基本上是"你是PHD就可以指导PHD",因为对导师主要的要求是指导研究
方法和保证研究质量。因此,当讲师不久的PHD自己也开始带PHD的比比皆是。另外,如果在三年本科阶段成绩突出,可以直接读PHD,否则先读个课程硕士(一年)或研究硕士(MPhil,一到两年),也可以读博士。
如果学生拿的是带项目的奖学金,研究的大范围自然一开始就确定了。如果是拿一般性的奖学金或自己出钱读PHD,那研究方向主要取决于你自己,导师会提些建 议,会看看你自己的研究动议是否可行,但不会迫使你去搞某个特定方向。导师可能在大的研究方向上和学生搞的东西差不多,但很可能对学生搞的细节了解并不 多。
上面这样一个系统的主要目的是传授研究方法,训练学生的独立研究能力。我想可以这样说,一个好导师是可以在研究方向上给予具体指导的老师;一个合格的导师是不给学生帮倒忙给予不符合学生实际情况的指导的老师;一个坏导师则是抢夺学生成果或给学生错误引导的老师。
关于最后这一点里的成果问题,如果学生拿的是导师搞来的钱,即使成果完全是学生独立完成的,按惯例老师也是有份的(例如,英国研究评估时老师带的博士或博士后的文章都算老师的成果,对博士生等研究生和博士后等research staff不独立考虑)。
当然,署名问题很复杂,各专业惯例不同(GIS和CS大概是比较乱的),不同导师的习惯(或者还不如说道德水平)也不同。非常好的和很糟糕的我都见过听说过。
伦敦帝国理工的医学院有位老师,有个项目,其中有个小的本科生实验。学生稀里糊涂做完了把数据随便分析了一下交给了老师就抛到脑后去了。过了很长一段时 间,该老师告诉学生说那个实验的结果发表了。学生找来期刊一看,文章完全是老师写的,第一作者是这个学生(主要贡献人-功劳也罢苦劳也罢),中间夹了一堆 该实验所属项目的其它参与人员,最后是那个老师(项目大老板),完全是按照行业的惯例。后来,该学生在找工作时因为有此论文(虽然不长)而受惠不少。
另一个例子是牛津的一位老师,他的学生写了文章,如果把他署第一作者,他就顺水推舟,如果把他放后面,他就假惺惺地说没参与,不要署名了(然后就是小鞋伺候)。有个他带的中国学生为此干脆三年PHD一篇不写。
国内的情况我想类似,也是什么样的鸟儿都有。如果准备读研做研究,对这些问题要有思想准备,最好事先了解一下情况,找以前的学生可能最清楚,不然看一看未 来导师的文章的署名规律也能看出些名堂来的。另外很重要得一点是,即使遇到了一位好导师,也还是要努力培养自己独立的研究能力。从另外一个角度说,对导师 不要有过多的依赖感,而对于导师的付出(具体指导也罢,经费津贴也罢),即使不需要感恩戴德,也别贬得一文不值。导师具体研究做得可能少了,但是一方面教 学负担不轻(要不谁去教课?),另一方面科研管理(定方向拉项目搞经费招学生等)也成为一个主要任务(要不学生都喝西北风,大家全玩空手套白狼?),这在 哪儿都是一样。
具体到GIS研究方向上,前些天ERSIBOY网友提到的搞应用还是底层开发的问题以及重新发明车轮的问题事实上是两个非常关键的问题。
前面已经提到,今天GIS所涵盖的范围实在太广,对所有方向即使只是浅尝辄止也几乎是"mission impossible",能够有些基本概念就不错了。搞GIS研究,在一个时期内(例如读硕读博),只能是选择一个主要方向深入下去。当然,其它方向可以 也有必要有所了解,掌握基本概念。
选定了方向(不论是搞底层还是搞应用),第一件事就是读文献。这实在是老生常谈了,但从实际情况看,还有强调的必要。不了解行业的进展,首先可能根本没法 深入下去,其次很可能在重复别人早就干过的东西,全无新意(写文章发表就别指望了,硕士答辩也许还可以"狡辩"过去,博士大概就没门了)。另外,新想法往 往也就在看别人的东西时冒出来(然后还要继续再看文献确定是不是真的是新想法-往往不是)。最后一点,文献看够了可以写成"回顾"性质的文章投稿发表(这 类文章和"书评"一样,往往成为研究人员的处女之作)。对于这类文章,每个学术期刊都还是有一点需求的。
以底层开发为例,许多基本计算几何问题都已经有了大量的算法和大量的源码的实现。在了解现有进展的前提下,如果只是为了技能训练的需要而自己从头设计算法 或者对已有的算法做实现,这还是可以理解的,也是有意义的。如果不是这样,那不仅仅是重新发明车轮,发明的很可能还是牛车木轮了。
前些日子有人问判断点线关系的算法(即点在线段的左面或右面的问题),有位网友贴了个长长的函数,使用了一次平移加一次旋转变换,还加反三角函数算角度 值。这个方法原理上没错,但是即使不考虑大量计算的累计误差,光这计算量就相当可观了。事实上,如果不需要知道共线时的具体情况,用基于三角形面积或者矢 量原理(二者在计算上等价)的话,五六行代码就搞定了。这在好一点的计算几何或图形学的教科书中都有,网上更是一找就有。这个问题已经不属研究的范畴了 (还需要研究的是浮点计算的误差问题)。
另一个例子是TIN的算法。好几位网友谈到在做TIN,但是提到的算法都是比较陈旧和不太强壮(容易因浮点计算误差导致出错)的。我想这主要还是教科书内容和指导老师的问题。
说实话,我个人也不喜欢看文献,但是还是不得不看。一句话,看文献不是万能的,但不看文献是万万不能的。
至少,今天的文献条件比起前些年已经是一个天上一个地下了,大量的东西都在网上,动动手指就拿到了,基本用不着花钱费力去图书馆复印了。咱们要站在巨人的肩上向前看,但是在眺望之前,首先要确定咱们的确是站在人家肩上,而不是脚背上。
还以底层开发为例再谈点儿研究的具体问题。在CS研究方面现在有种趋势,搞研究越抽象越好。我见过一些在计算机系里号称搞GIS的人,几乎从不编程,写的 东西象数学论文但是很多往往又没有数学的严密性,甚至想实现也没法实现。这些文章里不乏杰作,但对其多数我实在不敢苟同。我个人还是比较倾向于研究结合实 际应用,研究的东西要能动起来,哪怕是个很简单的原型都可以。
Reply all
Reply to author
Forward
0 new messages