如何学习编程(测绘篇)

如题所述

学习编程,就跟学其他的东西一样,最重要的就是有目的性。这个目的性指的是明确的工作领域和工作性质,并非你个人的追求。搞科学计算的,Fortran不能不熟;搞符号的,别说你不会mathematica或maple;搞通用软件的,在这个大环境下,不会C++我只能佩服你牛犊般的勇气。说来说去,就一点目的!我学计算器比较早,当时的目的是写OS,后来没能读CS专业,自然这个就只是梦想了。但是自那之后我就陷入一个误区,也就是没目的的学。大一的时候,我看《计算器程序的构造和解释》,看《深入理解计算器》,看《算法导论》,看编译原理,看操作系统,这些算是计算器的内功,看看也罢,不必苛责。但是细细想来,除了前三本书比较靠谱之外,后面看的许多都是多余的。为什么?我不是科班的,就目前的情况看来,转行是不可能的,也是不明智的。那么这些东西在时间导向的任务安排模式中,是绝对要去掉的。其实刚才举的几个例子给人一种感觉这个人太专注于语言(工具),不能明白后面的道理。呵呵,这个是《程序员》杂志上经常出现的表象底层论的。这里我还是多说几句吧。工欲善其事,必先利其器,对于非CS方向来说,你编程的目的是什么?绝对不是理解后面复杂的构架原理或者之类的,重点是解决问题!我要算重力模型,为了能节省时间,就是应该拿着Fortran冲锋陷阵;要做符号运算,熟练运用mathematica能帮助你看清问题,做出合理推导;要生成直观的图,matlab和Plot都是有用的。这个不仅仅是表象底层论,我的目的是解决问题,其他的扯淡的事情不重要,真的不重要!----------------------------工程?No!--------------------------这个其实是前面的续,这里的目的精化了,把所谓的CS科班学习方式给排除开了,也就是说我们已经明确了我们不是要作为一个计算器高人存在。那么当我们看清我们的目标是我们自己的专业后,我们可以抛开无用的课程专注于你要学习的东西。这个案例是我大二的学习方式。大二我也看书,多为.NET方面的,还有就是C++和构架,这两方面我投入了很多的精力,书也不少,还蛊惑周围很多人投入这个。但是仔细想想,我是程序员吗?显然不是。你如果进行过合作,会发现一个项目,讨论到一定时候,有CS或者软件背景的组员一定会不自觉的说到构架问题和效率问题。他们会自然而然的规划是消息机制,还是事件机制还是命令机制,或者要不要采用插件。至于效率问题,他们会关注这里用vector性能高还是用List。其实我也有这个毛病,从这个方向考虑过多了。这些工程方面的东西都是程序员做的,你不是程序员,就算你现在处于程序员的位置,但是记住,你应该做的是你的专业。与其浪费时间纠结这些问题,不如研究一下GeoTiff,看看WKT编程来编程去,编程都不是目的。你不能局限于拖拽控件,不能局限于相应事件消息,打印的问题交给开源库。除非是甲方给出必须解决的,你就应该用手头最熟练的工具,用最少的时间解决掉这些杂碎的工作,然后全身心投入工作中。就像测绘在工程建设中只是支持工作,永无出头之日;同理,计算器技术在你的主业中只是支持工作,你那么纠结其中,也不会有出头之日的!--------------------------------建议路线-----------------------------最后还是给一条建议的学习路线。常规来说,学习编程首先是学C或者C++。要明确说一下,这是两门截然不同的语言!学C的我是反对谭浩强先生的书的,我建议是《C程序设计语言》。但是根据周围人的反馈,这本书对于完全不懂编程的人来说开头有点云里雾里,所以我待会说完全没有建立编程思维的人。学习C++,我看初学者最后还是最喜欢《C++ Primer》。注意,这里没有Plus,有Plus的是莫名其妙的书。学完这里,你可以考虑去买一本《Effective C++》,然后大致学一下,知道C++是一门危险的语言,以后使用要小心,编译错误经常有,编译速度不顺心就够了。接着,根据你所在的部门不同,会有不同的要求。如果是搞GIS的,继续学习C#的可能性很大,这时候,你有福了,C#很简单,看看例子就会了,而且IDE很体贴,不用操心了。如果你还在传统部门,那么100%你会用VC,而且一半可能会用VC 6。VC 6很多人都在用,但是VC 6绝对是垃圾。语法不规范,头文件更不规范,没有对符号的很好的索引,反正就是不舒服。但是搞MFC基本上还是VC 6最好,所以打听好这个,再继续。如果你很幸运的是做运算模块的,那么别的你就别管了,看书看论文,在搞好数学(这个是关键)。如果你不幸要做界面,那看看MFC就好了。图书馆随便弄一本吧,这个方面我不想推荐什么。,会用就行了。
温馨提示:答案为网友推荐,仅供参考
相似回答