gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:6251回复:9

GIS研发部门,技能要求? 【知乎】

楼主#
更多 发布于:2015-05-26 18:00
一句话,千万不要被GIS上了。

狭义的GIS目前仍然是计算机领域的偏门。

目前的现状:
1 GIS学院派的教授们在玩各种新概念数字城市、智慧地球等等,比较迎合政府的政绩冲动;
2 官方机构用测绘资质、地图牌照、行业准入、保密法等幌子形成行业壁磊;
3 政府项目除了部分专业领域的行业平台之外(比如规划、国土、警用GIS等),大多诸如数字城市之类的项目容易沦为形象工程;
4 狭义的GIS项目大多为政府项目,资金也绝大多数来源于政府,因此决策权与行规掌握在官员手中,官员构成金子塔尖、官办机构(测绘地理信息局等政府机构及下属国企)构成包工头、权力关联企业构成二级包工头、广大小微私企构成承包商沦为底层的行业分工体系;
5 GIS有它自成体系的一套理论,但它注定是一个实证学科且理论根基不厚,它的所有细节莫不是计算机、数学、工程领域所涵盖的。

学GIS,尤其是学技术,不应该跳出狭义GIS范畴,应该到群众中去,会发现学地图吧,都是图形学、拓扑学、算法相关的知识;学软件研发吧,不能光会GIS二次开发,更可以花时间去学习这背后的技术实现,并且不带任何GIS的概念;学产品设计吧,产品从来都是应用为王的,没有哪个产品一上来就说是基于GIS的某某;

GIS只是一个敲门砖,知道它有点用就行了,从思维上跳出GIS的圈子,做到这样,GIS再也上不了你了。
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2015-05-26 18:01
我只从研发的人员招聘上来reply问题,尽量不走偏:-)


1、有做研发的欲望
一般来说,研发部门都是公司花钱来养一帮人为现在,更是为未来赚钱的,所以研发这个群体相对比较稳定,做事干活都可以按部就班。因此,细化到GIS研发工作,它不同于做项目开发,也不同于互联网研发(还没有达到互联网那种节奏),以GIS平台研发为例,少则1年,多则3、5年才能出好产品,周期相对较长,有可能会面对长时间的平淡而忙碌的工作,属于慢工出细活的类型,不适合那些火急火燎,速战速决的选手;而且研发工作通常比较专注某个领域,做深做强,而不是上下游通吃,左右互搏类型。
在这样的工作前提下,面试时就能过滤一多半人。或许年轻人们节奏都太快,不喜欢或不适应这种相对凝重的工作节奏吧。

2、扎实的计算机软件技术功底
Coding,就是这么简单。数据库、图形图像、算法等领域比较懂行的,或者Web、Java、C++、.NET等语言比较精通的,均可。虽然不少简历都写着各种精通,让我拿着简历的时候手指都被电到,但事实上精通一词要慎用,小心在精通二字前被加个‘不’字。

3、GIS背景更佳
毫无疑问,有GIS背景是个巨大的优势,至少很多基础理论都清楚。
但是如果仅仅是GIS科班出身,而没有掌握诸如地图制图、GIS原理、地图投影等知识的话,我只能当你不是GIS的了。

4、对现有产品或者技术有独特见解
如果能对你面试和即将从事的研发方向有独特见解,深刻吐槽,能让我感到心跳加速、面红耳赤的话,你很有希望和我们一起make a change。

并不是大家都适合做这个行当,但终究要有人做;火坑也好,冰窖也罢,总有人适合在这样环境中成就一些事业。
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2015-05-26 18:01
GIS本身是一个很小的学科分支,与其他很多实用型学科一样,归根到底都是以基础学科的为理论基础。老一辈的GISer都是从地理,测绘,遥感,数学这些基础学科过来的。时代的发展需要跨学科的知识,因此GIS也就随之出现。关于GIS和地理信息行业想说几点:
1 关于学科的发展,很多专业出身的学生会觉得什么都学了,但都不深入。国际顶级论文也不容易从GIS这样的学科中诞生,因此实际上到硕士以下都是实用型教育,博士才会更多偏向理论研究,而且基本都不会在GIS方向(没办法,没论文毕不了业);
2 现在GIS行业的现状可以说是测绘部门这样的冷门衙门争取话语权的结果,所以才有了携保密安全之鸡毛出台了互联网地图资质以令各互联网大佬的事情。结果表明他们还算是成功,另一方面也表明地图确实是一个关键的入口,而这个入口的基础恰巧又掌握在测绘部门手中。
3 要想进入GIS行业,走技术、数据、销售、支持、销售路线都可以。相对来说技术这种有一些门槛的路线发展会更好一些,这在哪个行业都一样。走技术路线的童鞋很简单,一般的软件类、互联网类企业的要求打个8折就是GIS公司对你的要求了(有时更低)。而这种情况不止GIS行业存在,毕竟互联网行业火热,发展迅速,人才也相对集中。当然想要在GIS公司发展好,最好还是要懂GIS的基础,能专业地说出个一二。
4 关于数字城市、智慧城市这些东西,正如其他行业一样,政绩工程而已,很多时候是以这个名义在建业务系统。虽然这些概念都是从国外引进,但经过中国特色的转化,基本也只剩下特色了,你懂的。GIS企业也就是长期在这样的环境下发展,靠食政府的牙慧生存,这也是为什么GIS企业发展不大的原因,没有核心竞争力,没有自我造血的能力,根本无法靠政府救济长大。好在现在很多有远见的GIS企业意识到这个问题,也正在打造自己的商业模式,无论是作为数据供应商,还是导航,亦或是互联网地图或是LBS,都算是不错的模式,因为他们接触到了真正的客户,而不是提着钱袋子的政府官员。
5 GIS企业的整体研发水平是落后热门行业很多的,所以想要学技术最好别去GIS公司,但是泛GIS行业还是可期待的,绝对是值得男入女嫁的行业,我也希望更多高技术人才进入一个行业,现处于行业内的人也行多跳出圈子以更大的思维宽度去思考。
6 记住GIS仅仅是种工具,与空间位置相关的一切业务系统都能自称为地理信息系统。如果你的公司是走行业路线,精通行业业务是正道;如果公司做GIS产品,那么精通编程技术及其他软件类公司的要求是根本,当然还是要理解GIS的基础理论,其实最多的就是地图投影、计算机图形等;如果公司是数据类,理解行业知识并能够编写处理工具就可以;如果是地图、LBS这类公司,那就以互联网公司的要求来要求自己就好。
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
3楼#
发布于:2015-05-26 18:01
作为一个GIS专业毕业的学生,你一定要对GIS有一个深刻的理解,比如你要知道什么是矢量数据、什么是栅格数据,多元数据如何进行匹配。给你一堆数据你如何整理成有用的数据,也就是如何建立一个地理信息数据库,如何利用你手头上有的数据去更新一个地理信息数据库。这些都需要对GIS相关概念,相关软件具有一个深刻的理解。你一定要对坐标投影有一个深刻的理解。事实上很多科班的,包括研究生,甚至一些GIS的老师都理解不透,一知半解是不行的。这个知识点是非常重要的,你在工作中肯定会碰到这个问题的。怎么办,多看书,多看论文,多操作!
好了,你会说,我的问题是“GIS研发”,你怎么扯了一对的数据生产相关要求的东西呢?其实作为一名GIS软件开发工程师,GIS专业要求更高。你不把握这些基础性的东西怎么进行开发?
说起GIS研发,目前大概分为两类,一类是针对诸如ESRI提供的二次开发接口进行的二次开发,还有一类是进行底层库的开发。他们的要求是不一样的。ArcEngine开发要求相对低一点,熟练使用C#或者java(目前国内针对deskto程序开发一般是使用C#语言)、熟练应用SQL Server、Oracle等数据库、熟悉ArcEngine、ArcGIS Server等类库等专业知识,其他的就是如熟悉项目文档的编写,具有团队合作精神,具有不断学习能力等要求。看了这些要求你就明白了如果你想从事GIS二次开发等工作,你赶紧学好一门计算机语言,学好基础的SQL查询脚本,最好结合ArcEngine做一些demo。如果你想从事底层技术的开发,你更要学好GIS的基本原理,学好图形图像学,多研究研究GDI+底层接口技术、GDAL开源类库相关技术,没事多研究研究算法如遗传算法、元细胞自动机、粒子群算法等。语言最好选择C++。多看看别人的类库是怎么写的,各个模块之间是如何衔接的,尽量做到可扩展性、通用性、友好性等要求。
如果你是一个应届生,你的学习笔记都应该保留下来,你做的demo也应该保留下来,这样找工作的时候别人会看到你的努力和你的能力。
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
4楼#
发布于:2015-05-26 18:02
曾经我以为GIS是测绘一个分支,现在才发现GIS是计算机学科的分支,一个老师说过,现在搞GIS的人面临一个危机,专业搞GIS的做出的产品往往不如计算机出身的,不管是界面还是功能。如果真要做GIS研发,个人认为,了解GIS的基础知识,坐标系投影等等,还有空间分析的一些概念,剩下的就是投入到编程的大军中去吧,根据自己的方向选择不同的语言和平台。
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
5楼#
发布于:2015-05-26 18:02
比较赞同giswei的说法。我的经验是(当然我的经验非常有限)教一个developer必要的GIS知识比教一个GISer必要的软件开发知识要相对容易。对于前者可以大学四年完全不学习GIS知识,经过短期培训照样可以胜任GIS研发岗位,而对于后者,可能需要学习相当一段时间的软件开发知识才行。

工作两年多,觉得唯一用得比较多又跟软件研发不太相关的是地图投影相关的知识。事实上在公司里我是唯一一个有GIS背景的研发人员。不要误会,我们公司开发的确实是“GIS”,至少公司是这么宣称的。之所以打上引号,是因为在很大程度上我倾向于认同Bill Dolans的观点:“IMO, GIS is a myth. There are info systems/apps that use spatial data and methods but GIS doesn’t exist.” 原话有点绝对,但我觉得大致意思是对的(当然这里涉及到“什么是真正的GIS”的讨论,这个问题比较大已经超出我小宇宙的理解范围了)。在市场上见到的大部分GIS应用都是如此,极少见到空间分析与建模(spatial analysis and modeling), 空间模拟(spatial simulation), 地理统计(geostatistics), 空间数据挖掘(spatial data mining)等的应用。大多只能在高校接触到,而且个人感觉(感觉不太准)整体的数量较少成熟度不高。

上大学我是在别人的推荐下选择的GIS这个专业,进大学的时候学长们老师们也说这是一个非常有前景的行业。八年过去了,它依然是一个“非常有前景”的行业。不太清楚已经有前景多少年了也不知道还将继续有前景多少年。但按我现在的理解(知识比较有限),我不太推荐别人选择这个专业,我推荐读Don Meltz的这篇文章: GIS is Dead -- Long Live GIS
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
6楼#
发布于:2015-05-26 18:03
楼上李德的回答基本已经涵盖了,我再概括下,希望能对你有所帮助,GIS开发一般分为2种:
一、基于一些现有GIS平台提供的各种API,结合用户需求做一些功能定制,也就是二次开发;
二、直接做GIS平台的研发,即研发GIS基础平台;
以上2种开发类型对研发人员(主要指coder)的要求各有不同:
1、先说二次开发,国内大多数搞GIS的软件公司做的都是这个事情,此类型的开发多是结合具体行业做相应的行业应用,比如:国土、电信、电力等等。由于是基于一些现有的GIS平台做二次开发,所以,首先就是要了解一个GIS平台有哪些功能,大概提供了哪些API,一开始不用太清楚,只要知道个大概再看看帮助,或者百度基本能弄清楚。
其次,至少掌握一门开发语言(比如JAVA,C++,C#等等),因为开发过程就是使用开发语言+API实现需求的过程。
第三,至少掌握一种数据库技术,现在的GIS基本都是使用关系数据库存储数据,所以掌握一种数据库技术是必须的。
第四,了解必要的行业业务知识,因为二次开发多半是为了实现用户的业务需求,所以了解一些业务知识才能深入地理解需求,最后做出来的东西用户才满意,要不做出来的东西也没人用就悲催了。
2、研发GIS基础平台
此类型的开发我接触的少,根据我的了解,对技能的要求应该是掌握各种GIS算法,对GIS的基础概念、原理有认识,数学知识要好,还有计算机图形学很重要,同样必须熟悉开发语言,由于是玩基础平台,所以语言估计是C、C++,一些开源的平台也用JAVA。
3、做为一个coder,不论是做什么开发都需要的能力:
自学能力,因为技术发展实在太快,总是有新的技术出现,当然了解技术的核心是关键,否则只能被技术拖着走。找准学习方向,不要贪多,软件行业的知识域很大,自己要清楚学习的方向,才不至于迷路。
英语,很多资料都是E文的,这个不用多说。
注意积累,最好能建立自己的知识库,这样以后遇到类似的为就不用愁了。
好的编程习惯,写干净、易扩展维护,给人看的代码!!!
暂时能想到东西就这些,希望对你有所帮助。
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
7楼#
发布于:2015-05-26 18:03
作为一个本科硕士GIS出身,现在从事互联网地图开发的人,奉劝那些叫兽不要光吹嘘GIS多么牛掰了,还是实实在在教点能学以致用的东西吧,相比GIS学科那些基本概念,计算机开发能力更为重要。当然你要是从事测绘那另当别论
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
8楼#
发布于:2015-05-26 18:03
贡献知乎第一个答案,只说webGIS的研发方向,这个方向需要的技能就和现在互联网热炒的前端差不多。
语言:前端你的html+JavaScript+css、后端的python/php/Nodejs任何一种都可以,都会更好。还有就是数据库方面的了,比如mysql、sqlite等关系型数据库得会sql,现在比较火的mongoDB了解下也更好。现在的HTML5 css3 需要了解并在日常开发中加以运用。
GIS相关的类库比如OpenLayer D3.js HightChart.js Echart.js Leaflet.js等等了解的越多越好,并且能进行开发,练练手,做点小项目。
各种API的开发,比如百度地图API,ArcGIS for JavaScript API、微博API等等。
网络爬虫技术--利用爬虫获取网络中的地理数据是非常有用的技能。
前端技术:js的jQuery,需要灵活运用,当然,初学者还是学原生js,后期用了jQuery后可以去看看它的源码。ajax json 等等需要会用,css的框比如现在烂大街的Bootstrap,jQueryUI,easyUI等等。css预编译的Less,前端框架比如Angular.js 现在很火的React.js等等
举报 回复(1) 喜欢(1)     评分
一起来听雨
路人甲
路人甲
  • 注册日期2015-06-18
  • 发帖数11
  • QQ
  • 铜币12枚
  • 威望2点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
9楼#
发布于:2015-06-18 11:28
gis:贡献知乎第一个答案,只说webGIS的研发方向,这个方向需要的技能就和现在互联网热炒的前端差不多。
语言:前端你的html+JavaScript+css、后端的python/php/Nodejs任何一种都可以,都会更好。还有就是数据库方面的...
回到原帖
有帮助
举报 回复(0) 喜欢(0)     评分
游客

返回顶部