地信专业未来的前景如何,该怎么学习?

广大普通学校GIS专业学生,如果继续在GIS方向发展,而且走开发路线,结合我这几年面试以及带应届毕业生的经验,学习路线我有这几个方面的建议,仅供参考:
1.大一的时候要学好高数、线性代数和概率论,这是基础学科,不要以为很难很枯燥,学好后对你以后学习其他工程学科有很大帮助,因为很多工程学科,如地理信息系统,图形学等,很多公式、原理都来源于它们。就举个例子,图形学的矩阵变换,和线性代数相关性相当大;比如FFT(快速傅利叶变换),就是高数里面傅利叶变换的变形,没有这些基础,对于以后开发会遇到很大困难。
在这里插入图片描述

2.数据结构、数据库等,前面的高数、线性代数、概率论毕竟属于基础学科,和编程关系不大,数据结构和编程关系很大,老师一般会采用C语音来进行教学,对于初学计算机的同学,入门难度的确大了点。但是要清楚的是,编程毕竟只是工具,对于工具,古人有云:无它,唯手熟尔。这放在编程上也适合,大量的编程,自己头脑中就慢慢形成了编程思维,很多同学觉得编程多没意思,黑乎乎的界面,黑乎乎的运行结果框,没有游戏画面来的刺激。在编程上投入的时间多寡,编程差距慢慢就体现出来了。数据结构和C/C++语言是编程的基础,学好了C/C++语言,学JS、Java等都相对容易。
在这里插入图片描述

3.GIS专业课,很多同学觉得GIS专业课很枯燥,各种的公式推算,以及ArcGIS等软件的操作,这些在工作中用到的的确不多,但是学好后,在遇到关键性难点Bug的时候,优势就体现出来了,这也是你学习的价值体现。比如淹没分析算法,非专业和专业同学在算法的实现上,计算结果和误差精度上是有差距的,这是对算法理解上的差距。
在这里插入图片描述

4.打基础到一定阶段后,就可以自学上层的应用,可以扩展JavaScript、Java、C++等编程语言,自学很多都要自己一个人做,遇到了问题很多时候都要自己琢磨,耗费时间和精力,远远没有玩游戏来的爽啊,但是遇到问题,解决问题的过程,就是你积累经验的过程,你拿一本经验书看完了就看完了,没有实践,你也不会感同身受,过阵子就忘了,你实践后,获得的才是自己的。我可以拿举个例子,后台写个数据转换发布服务,将一个3857投影的shp数据转成4326坐标系的geojson文件并进行发布,前端使用Cesium接入这个发布的数据进行显示,并设置这个geojson的线色、线宽等风格。这里面涉及到了Java后台服务开发,前端开发,也涉及到了大量的GIS专业知识点,如果花半个学期把这个系统能正常调试通,你会收获很多。
在这里插入图片描述

5.打通了上层应用流程后,下一步,你需要做的是大量的去做不同方向的应用,这其实是你应用所学知识进行编程开发,并积累开发经验的一个过程。我这里给出几个方向,比如数据管理发布,再结合前端做预览,这个偏向于后台开发,涉及到Java框架使用、数据库的使用等;比如数据处理,将一副影像切成瓦片,发布成标准的OGC服务,前端接入显示,将一副DEM数据切成地形瓦片并发布成OGC服务,前端接入地形并结合影像进行地形可视化展示。大量的做应用DEMO一方面熟悉各种GIS相关的框架,比如Cesium,OpenLayer,MapBox,GDAL,ThreeJS,后端的SpringBoot等框架,,另一方面,掌握了大量工具软件的使用,知道哪种工具做这件事情最快,很多同学只熟悉ArcGIS操作,觉得ArcGIS无所不能最厉害了,殊不知Global Mapper等软件在数据支持、界面操作和处理效率上更胜一筹。比如Tomcat和Nginx,知道使用后你就进行静态代理发布的时候,你的前端网页,静态数据,都能使用工具进行发布,具体哪个好用,只有用过后才知道,这对你以后提高开发效率好处很大。
其实还有很多想说的,在这里不再展开,等以后再开一篇进行叙述。我觉得马克思主义理论中的部分观点很适用工程学科:实践是检验真理的唯一标准。理论是实践的基础,反过来实践对理论具有指导作用,同学们可以在学习马克思主义的时候,结合自己所学的专业学科方向进行思考,并进行各个方向的编程探索,就会深深认同马克思主义的理论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/505350.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IM系统的分布式id生成器

1.背景 在复杂分布式系统中,往往需要对大量的数据进行唯一标识。一般情况下,我们用的都是数据库的自增主键id,但是当数据量大了之后,需要进行分库分表,每个表维护自己的自增id,无法做到唯一。这时候就需要…

关于synchronized介绍

synchronized的特性 1. 乐观锁/悲观锁自适应,开始时是乐观锁,如果锁冲突频繁,就转换为悲观锁 2.轻量级/重量级锁自适应 开始是轻量级锁实现,如果锁被持有的时间较长,就转换成重量级锁 3.自旋/挂起等待锁自适应 4.不是读写锁 5.非公平锁 6,可重入锁 synchronized的使用 1&#…

yolov8添加注意力机制模块-ShuffleAttention

修改 原本打算把ShuffleAttention模块先写进conv.py文件中,然后在引入tasks.py文件中。但是不知道咋回事,在tasks.py文件中引入报红。所以干脆直接把ShuffleAttention模块写进了tasks.py文件中。 from torch.nn import init from torch.nn.parameter i…

【黑马程序员】5、TypeScript类型声明文件_黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程

课程地址:【黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程】 https://www.bilibili.com/video/BV14Z4y1u7pi/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 5、TypeScript类型声明文件 5.1 TS中的…

一文掌握大模型提示词技巧:从战略到战术

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

Python中网络请求超时的原因及解决方案

在进行网络数据爬取过程中,网络请求超时是一个令人头疼的问题。尤其在Python中,我们常常需要应对各种网络爬虫、API调用或其他网络操作,而网络请求超时的原因千奇百怪。在本篇文章中,我们将深入了解网络请求超时的可能原因&#x…

C++:纯虚函数及抽象类

1.纯虚函数 在虚函数的声明后加“0” ,表示当前虚函数无需定义 eg: class Shape //图形类 { public:virtual double circum()const 0;//周长,纯虚函数virtual double area()const 0; //面积,纯虚函数virtual void show()const; //输出,虚函数 }; 2.抽…

SQL窗口函数, 测试题

第一题 create table user_score (logday date, -- 考试时间 userid VARCHAR(20), -- 考试用户 score int); -- 考试成绩Insert into user_score values (2019-10-20,11111,85) ,(2019-10-20,22222,83) ,(2019-10-20,33333,86) ,(2019-10-21,11111,87) ,(2019-10-2…

贪心 Leetcode 376 摆动序列

摆动序列 Leetcode 376 学习记录自代码随想录 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#…

【数据结构】知识点一:线性表之顺序表

内容导航 一、什么是线性表?二、什么是顺序表?1、顺序表的概念2、顺序表的结构a. 静态顺序表:使用定长数组存储元素。b. 动态顺序表:使用动态开辟的数组存储。 三、顺序表的接口实现精讲1.接口一:打印数据2.接口二&…

算法 -【最小路径和】

最小路径和 题目示例1示例2 分析代码 题目 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例1 输入:grid [[1,3,1],[1,5,1…

Ethernet/IP转Modbus TCP网关

产品功能 1 YC-EIP-TCP工业级EtherNet/IP 网关 2 Modbus TCP 转 EtherNet/IP 3支持ModBus主从站 4 即插即用 无需编程 轻松组态 ,即实现数据交互 5导轨安装 支持提供EDS文件 6 EtherNET/IP与ModBus互转数据透明传输可接入PLC组态 支持CodeSys/支持欧姆龙PLC 支持罗克韦尔(AB) 典…