如何系统地学习GIS开发?

文摘   2023-07-11 15:50   安徽  

本文转自https://www.zhihu.com/question/382185909

GIS搬砖人:

我一直觉得规划意识大于盲目努力,并不是说努力不好,做任何事都需要努力完成,然后在动手努力之前,先要清楚明确自己未来想从事的工作方向,在明确了方向以后,便需要着手开始规划自己的各项学习,先学什么,后学什么,大脑里有完整的知识体系,体系搭建好了,便可开始动手实践验证其可行性。

一、学习建议:

1.学好理论课:编程开发本身是比较难,但正因为难,也正好说明了他的可替代性差,在学开发之前,可以将基础的理论知识学好,理论知识是GIS的根基。

2.学好GIS底层相关的课程,包括数据库技术、操作系统,MapGIS或ArcGIS等。了解底层逻辑决定着你将来是否能成为一名真正的程序员,亦或是一名普通的码农。

3.参与实际项目或GIS大赛:做项目是可以检验你的专业水平够不够硬,是否做到了学以致用,资源能否串联结合在一起,项目的布局能力,编程思想等是否建立建全。其次,通过项目和竞赛可以帮助我们发现知识体系中的盲点,驱动你有目的的学习,而且参加项目和竞赛,可以大大提高你将来到大厂去实习以及就业的几率。特别是对于那些只上了普通学校的地信专业的学生来说,这个,更是可以提高你将来就业竞争力的不二法宝。

二、规划路线:

大一:学习地理信息导论,对地信有个基本认识,了解GIS的应用领域,了解OGC规范,多通过知乎,公众号等渠道了解行业的前景。

大二:可以正式开始接触编程开发了,比较简单易学的有:python,前端三件套(html,css,javascript),后端语言可以学习了解:java或c++;准备参加全国高校GIS大赛,以此增加自己的项目经验。

大三:大三是需要提前做规划的时候,此时需要确定自己未来的方向,到底是考研,还是毕业后直接实习就业。如果编程基础不错,可以尝试学习数据库技术mysql,或者vue框架,时间充足地情况下,建议系统地深入学习GIS开发。

大四:做好考研或就业前的准备工作,考研的同学需要准备好笔试和复试的规划,准备就业的同学,可以多关注招聘信息。大四阶段需要搭建适合自己的编程知识体系,前面三年学得比较笼统,而在此阶段则需要系统地学习GIS开发,深入了解GIS开发岗位所需要的编程技术和项目,最好能完成1-2个GIS的主流项目:如,智慧城市,智慧政府,智慧交通等项目。如果计划直接就业的同学,可以提前刷题准备秋招面试,考研的同学,会编程做开发的话,在复试中是可以增加核心竞争力,所以也可以提前补一下编程基础。

多做项目:早点接触龙头企业的技术栈,而不是仅仅在学校做的demo,有GIS的项目经验对秋招找工作帮助很大,还有转正留用的机会。

三、GIS开发学习路线,技术栈有哪些?

四、关于webgis开发

GIS作为一个交叉性学科,在很多领域中都会运用得到,像我们现在熟知的:元宇宙,数字孪生,智慧城市,水利水电,载人航天航空,自然灾害,智慧园区,智慧金融,城市规划等。因此从就业范围来说,涉猎非常广。也正因为行业涉猎较广,因此对于从业人员的编程技术要求比较高,需要掌握的技术栈多。可以先从最基础的前端三件套(html,css,JavaScript)开始学习,而框架则需要掌握的是:vue,openlayers,cesium等。

推荐的课程体系:

(小编注:作者是培训机构的,以上仅供参考)

(作者:GIS搬砖人)

cheerfun

GIS开发也是开发,开发其他软件需要的能力都是必不可少的,说起来太多需要掌握的了:前端技术、后端技术、桌面开发、数据库、保存地理数据的文件格式?连接前后端的通信格式:GeoJSON、KML。根本列举不完,也没有必要。

你要都学,就会越来越迷茫,也根本不可能有那么多精力去学。我觉得还是要从目标出发,你掌握GIS开发技能要干什么,做Web应用,做桌面软件,还是开发服务端的软件?根据你的工作需要,或者你的课程需要。需要什么就学什么,边学边用,效果比较好。

其实主要就是缩小你的学习范围,并且边学边实践。目前GIS比较有用的主要是可视化,空间分析应用的不多,你可以选择一个方向继续缩小努力的范围。我本科和研究生7年都是GIS,也是偏开发,要说我自己,可能主要是Web应用和可视化,如果你也对这个领域感兴趣,那你可以按照这个思路来:

前端:HTML/Javascript/CSS是你不可能绕过的,有追求可以上Typescript,有一定基础后可以利用现有的前端库:Vue/React/Angular,具体到GIS相关,你可以看下mapboxgl.js、openlayers、deck.gl、kepler.js等;还有就是Nodejs,现在的前端很大程度上依赖它。

后端:后端是一个很大的领域,对数据库的CURD根本就很初级。你需要掌握两门语言,虽然我觉得Nodejs写后端挺好的,但是后端很少把Nodejs看作后端语言。Golang很好用,我用的挺顺手,Python和Java在GIS的积累挺多,现成的库挺多的,当然C的GIS相关库最多,例如GDAL,有想法也可以多练练C。数据库方面PostgreSQL/PostGIS是你比较好的选择,很多公司用的技术都是它们。GIS还有一个特点,就是各种依赖很烦,比如你装个GDAL,依赖各种其他的库,你想避开这些工具的安装,我觉得你有兴趣还可以看看Docker,容器规模化后,你可能还会想用Kubernetes。

前后端胶水:交换格式,GeoJSON用的多,KML可以看看,Google Earth用这个。

文件格式:Shapefile、GeoJSON。

上面还只是开发普通的应用,或者说能用的应用,如果是流量非常大的应用,你需要考虑和学习的东西就更多了:数据库的连接池、集群,微服务拆分,Linux服务器的知识,哎,太多了,学无止境。

还是要根据工作需要、学校课程要求缩小范围,学和实践,不然真是太、太多了。。

作者:cheerfun

以上观点,仅供参考!

昨天在知乎上看到一段话,复制如下:

其实学习编程%的这个问题我跟很多同学都交流过,他们在学习GIS开发的过程中确实感觉困难.

我把原因大致总结了一下 :

第一是开发范畴太大了,学生需要有学习方向,知道自己应该学习什么。第二是学习要成体系,学了编程语言%、数据库、GIS平台相互之间能调用,串的起来,第二是出现问题要及时得到解答,不能让问题滚雪球·。有时候一个问题卡几天,很难受的

第四是要有项目练手,一方面通过项目练手才能把知识串起来,形成体系。另一方面是学习编程比较枯爆,做出项目可以印证学习成果,获得成就感来驱动自己学习。

开发不易,坚持下去吧!

空间信息勇攀高峰
冰霜林里争先发,川流与天竞入海!
 最新文章