如何学好webgis开发

看到这个问题的前两天,偶然看到大牛(GIS520社区站长)写的一篇经验介绍。

贴原文:

主要介绍小白是如何成为一名初级WebGIS开发工程师的,只适合相应人员参考(WebGIS前端的技能要求和互联网前端的要求有差距)。后续会有关于中高级WebGIS开发工程师的文章。

程序员这个职业岗位,一般公司会根据技术能力区分等级。每个等级都有相应的薪资范围。

如果不区分层次,可能这家公司不是技术驱动型公司,R&D团队管理不够专业。有些大公司可能会归为阿里,p1~p10,腾讯百度也差不多。小公司可以简单分为初级开发工程师、中级开发工程师、高级开发工程师、技术经理和专家/技术总监。

小白一开始的目标应该是做一名初级开发工程师,然后通过努力,成长为中级到高级水平。那么我来介绍一下成为一名合格的WebGIS开发工程师需要具备哪些技能。

基本技术要求

1.掌握JavaScript和CSS/HTML;

2.掌握ArcGIS API for javascript或openlayers中的至少一种;

3.了解mysql或oracle或postgresql

4.掌握Arcgis server或geoserver发布的地图服务并显示;

5.了解Java后端语言是额外的奖励(不是强制性的)。

以上要求是基于我个人的经验和对一些GIS公司工作的了解。如果满意,可以随意找webgis开发岗位。具体什么工资,每个公司会有一点不同,也要看个人技术的整体情况。

注意,我描述技术的关键词是“精通”,不是“熟练”。如果精通,至少应该是中级开发工程师。接下来,我将详细解释如何学习这些技能,以及它们如何对应初级WebGIS开发工程师的掌握。

1.掌握JavaScript和CSS/HTML

这里最重要的是html和JavaScript,其次是css。对于webgis公司来说,系统页面和美学效果相比互联网网站有一些差距,所以对css的要求不高。解释一下为什么js最重要,因为js用的最多,所有的网页逻辑都是js实现的。一般来说,你js能力的大小,可能决定了你工作的效率和你能承担的任务的难度。

Js、css、html加起来占WebGIS作业技术的70%(也就是100分里,这里占70分,看你能拿多少)。

对于小白,我的建议是先学html,再学css,最后学js。从学习难度上来说,html是最好学的,其次是js,比较容易上手,css需要时间才能入门并学好,需要慢慢来,多练习。js入门不难,难的是学好,熟练,精通。

这里推荐三本书:

JavaScript权威指南,第6版

JavaScript高级编程,第3版

CSS权威指南第三版

初学者不要读很多类似的书,只需要读好一本,看懂一本就够了。推荐的书都是数一数二的。如果一开始看不出来,可以用一些网站,比如问w3cschool网站手册,或者海量开放在线课程的一些视频教程。循序渐进,掌握了基本语法之后,再尝试多做练习。如果你不知道该做什么,我会帮你的。

2.掌握至少一种ArcGIS API for javascript或openlayers。

作为一名合格的WebGIS开发工程师,这项技能是必不可少的。但是arcgis和openlayers地图框架都是一个api库。

这里解释一下什么是API,因为全白的人可能不懂。API可以简单理解为一个工具箱,里面有锤子、钉子、螺丝、螺母等工具或零件。如果你需要什么工具去做什么或者修理什么,你可以找到这个工具箱,然后你可以用锤子去找锤子。这是最简单的比喻,但其实有点不一样。如果不了解,可以暂时了解一下。

掌握ArcGIS API for javascript或openlayers的前提条件是编程语言javascript过关。越熟悉越好。如果熟悉使用JavaScript,可以用ArcGIS API for javascript或openlayers来做,在阅读文档的同时也能达到同样的效果。如果学习的话,去相应的官网看文件就够了。官方演示也更详细,没有哪本书比官方文档更好。这里不推荐书籍。

3.了解mysql或者oracle或者postgresql。

在工作中,我们可能经常会做一些业务功能。业务可以简单理解为增、删、改、查,对这些数据的操作都是基于数据库的。数据库,程序员必须掌握熟悉的技能,基本的sql应该会写。不管什么数据库,sql语言都很相似。一开始,你只需要选择一个来学习。首选Mysql或oracle。

4.掌握Arcgis server或geoserver发布的地图服务并显示。

这就是软件的使用。在实际工作中,发布地图服务的工作可能由技术支持人员操作,但说到学习,开发者也必须掌握。

一方面可以通过学习安装软件,发布地图服务。有了地图服务,可以在程序中调用地图服务,可以做自己的webgis系统和编程练习。

另一方面,只有了解地图服务的知识原理,才能更好地理解WebGIS是什么,以及WebGIS地图是如何显示和工作的。

5.了解Java后端语言是额外的奖励(不是强制性的)

一些小公司可能会把WebGIS开发工程师叫做GIS开发工程师。如果你懂Java,可能会接触一些后端开发工作,接口编写等等。

我个人认为懂一门后端编程语言更重要,了解未来的学习以及前端和后端的工作流程非常重要。而且你可以自己搭建后端,自己写前端页面,这样你就可以自己完成一个网站了。

当你有能力自己完成一个网站的时候,整个过程你会学到很多,从数据库表结构设计、后端框架构建、界面设计、编码实现,到前端框架构建、前端编码页面实现。如果你知道后端,不知道怎么开发一个网站,可以来找我,我来指导你设计和实现。

当然,小白建议忽略这个技能要求,因为学习前面的技能需要花费大量的时间,你将来追求更深的技术层面时会考虑到这一点。

写在最后

以上技能要求是针对小白或入门级的。如果你不在这个组,你可以忽略他们。如果你已经是初级或者中级开发工程师,但是你发现自己有一些不足,那么你就要规划好自己的技术成长路线。未知技术学习建议:

1.首先,掌握你所在公司使用和涉及的技能。

好处:帮助自己更好更快的完成任务,可以减少加班;领导发现你能力不错,对你自己也有好处。当然,如果你觉得公司用的技术低,你在混,建议你尽早离开,不要浪费时间;如果你到处闲逛,我建议你转行。

不要满足于现状,无论是技术上还是其他方面。

技术是无止境的,一个公司的技术栈很长一段时间都不会变,可能是3年,5年,也可能是10年。

当然,传统的软件公司或者小公司可能不会改变。不要以为工作了几年,有了经验出去了就吃好了。要有危机感,跟踪最新的技术发展,观察大公司流行什么框架技术,自己去尝试学习和了解。

不要找借口说没时间学习。如果你把时间花在学习上打游戏或者看电视剧会是什么样子?