chenbo3124的个人博客分享 http://blog.sciencenet.cn/u/chenbo3124

博文

编程——让你具备在“无人区”探索的能力

已有 1748 次阅读 2022-10-2 17:52 |系统分类:观点评述

       本人是自学VC++过来的,1999年那段时间,正值3S(GIS,RS,GPS)技术异常火爆。从专业定位来讲,要想学好3S,就必须要掌握VC++编程,具备底层研发的能力,否则玩个二次开发,感觉没意思,因此,本人把学习VC当成重中之重,因为本人专业是构造地质学,所以,只能自学编程,个中曲折就不必说了。经历3年的刻苦学习,好不容易学会了,3S却不是那么火爆了,但是,却学会了VC++,有了这个本事,其他领域的都能够编。硕士毕业后本人在软件公司编了两年程序,强化了软件技能,后来因为软件公司达不到本人的心理预期,于是辞职读博士,最后把编程技能作为根据用在了科研上。

       学好一项编程技能有诸多好处:

1、解决经济问题

      更准确的说,是解决因经济收入问题带来的心理压力问题。总体上,这些年,学习VC没有给本人多带来哪怕是一万块钱的收入,但是,学会编程让本人心里有底:实在不行就去软件公司打工编程,月薪1-2万还是没问题的,最不济去软件公司干个试用期,自己不至于怎么拮据(读博士期间就是这么想的)。因为心里有底,让本人将心思专注于科研问题。

2、编程会提升掌控数据的能力

       蜗牛和石子待一起,颜色,个头差不多,离远了根本分不清,但是他们之间有一个最本质的区别,一个是有灵魂,一个是没有。

       人们常说什么大数据时代怎么怎么样,其实,不会编程就无法掌控数据,谈不上应用大数据。数据里面隐藏的规律必须要通过编程来挖掘,而且,基础的、重要的研究不会是三年五年的事儿,也绝不是一两次分析就能够茅塞顿开。要长时间和数据打交道,那就是“谁会都不如自己会”,学会编程自己想怎么编就怎么编,而不是要求学生或软件公司按照自己的思路去编程,很难有人会伴随你几十年供你调遣。  

       经典的统计软件,如SPSS等功能已经很完善;经典的数值计算软件,如MATLAB,Fluent等也是无法超越。个人即使会编程也不一定比他们编的好,但是,会编程可以让你在“无人区”随意探索,涉及的内容也比较简单,甚至“小儿科”,但是,仍然是不可替代的。那些应用软件玩的好的,知识技能比较高深的,在最初的探索阶段,这些功夫基本用不上,能够用得上的,多数情况不是什么大发现。

       什么样的人需要掌握编程?

       搞科研的,理工科都应该适当掌握。这些年感觉阻碍创新的最大障碍,就是很多人局限在自己的领域,不跨专业学习和分析。这样就难以发现创新点,即便是发现个别创新点,因为不会编程开发,想法也实现不了,身边太多这样的例子了,实在是遗憾。因为会编程,你的"活动"范围就比其他人大,容易看见或者”感觉“出有潜力的方向。

       需要什么样的编程技能?

       软件:微软的MFC门槛过高,自学的话没有个3年时间是拿不下的,有人教的话会容易一些,本人当年是没人教的。近年来VC使用率,市场占有率下降不少,所以综合来看,为了搞科研而选择学VC,性价比非常低。相比之下Java,.Net更容易上手,很多人是毕业现学现干,最近比较热的还有Python,选择其中一种,适当的学习一下,对搞科研会有帮助。

       硬件:在进一步科研过程中,有可能还需要打通硬件知识,学会硬件开发,当然,硬件的开发更是精彩,如果只是应用的话,就学会调用(顶层设备的DIY),通讯等功能即可。

       换个角度,学一回编程,不会驱动硬件实在是一种缺憾,比如说做个小机器人,执行步进电机,伺服电机,通讯模块,数据采集等。具备了这些软硬件技能,你就可以选个课题钻研了,感觉差不多的时候,可以去啦横向项目,进行知识变现了。

       学到什么程度?纯搞科研的达到以下几点即可:

1)访问数据:无论是文件,还是数据库,可以随便访问,存储,查询,这是第一步。

2)程序界面开发:既然学编程,就要开发带界面的程序,可以任意定制程序的界面来执行你的设计功能。

3)展示数据:一般采用图表,图形,图像等方式展示成果,这部分一般都是二次开发,调用控件(例如VC自带控件,第三方控件)

       如今的编程也不是当初阶段了,整个开发环境集成了大部分用得到的东西,一般这些也就够用了,随着你的编程技能的不断积累,会了解更多开源的软件,控件。

      本人开发的煤矿灾害及地震时空分布展示软件,采用了 数据库 + VC + 数据展示的功能

      数据库:可以随意切换到SQLServer,oracle,DB2,Mysql等数据库,为软件发布方便,本人采用了access数据库; 数据展示:采用地图展示,最初是MapX控件,然后是网上开源的代码,该代码可以访问arcgis的shape文件;中间还找人开发过Google地图的B/S展示软件;近年来还有好多更好的资源,不过,科研的话已经够用了。

       想搞的更好些,需要有一些软件公司研发经历。要把科研搞的更好,高等数学,数值算法都要通,毕竟到了深层次,编程还只是个工具,有良好的数学基础才具备解决问题的能力。当然,这就需要你不断的学习,补充相关联领域的知识,这样的好处就是你越来越”自由“了,即使会编程也不一定赚多少钱,坏处是:学习绝对会伴随你的下半辈子。

       本文指的是那些非“数学、物理、地球物理“等相关领域的学者。 



https://blog.sciencenet.cn/blog-2545905-1357747.html

上一篇:统一地震目录地震时空分布特征(微地震)
下一篇:云南10月15日连续发生两起煤矿较大事故,累计死亡10人
收藏 IP: 101.38.114.*| 热度|

2 陈新平 杜学领

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-23 23:01

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部