程序员最重要的编程习惯

有那么一类程序员,他们的产出总是很高,遇到问题他们就像变戏法一样,能直接找到关键点,而且他们似乎很少加班。另一类程序员,在电脑前坐很久很久,不停的敲着键盘,不停的运行代码,找问题,非常努力,但经常是解决一个问题,引入了更多的问题。

        成为一个专业的程序员,不可能有一个万能公式,一般都是很多方面混合出来的,不同的人很可能走了很多不同的路径。但是有一些非常常见的错误,却会极大的阻碍一个程序员的成长。这里边最常见的一个就是写程序不经过大脑。我们一定要记住:

程序是用大脑写的,而不是用手写。

        初看这句话简直就是一句废话,根本就是不言自明的嘛。然而,越简单的概念,我们越容易忽视,认为他不重要,实际行事的时候却经常反其道而行。

        看一下几种常见的编程方式:拿到任务,马上开写,把功能实现了再说,结果一般是,只实现好了正常流程,失败异常流程往往是在之后再打补丁,不断的修改,结果就是混乱的结构,意大利面条式的代码。还有另一种场景,遇到一个bug,上手就开始试,改改这里,改改那里,然后忽然改好了,提交之后万事大吉,大部分时候这只是修改了一个表层原因。这些行为的主要原因其实都是在用手写代码,而不是大脑。

        详细点说,用大脑写代码的意思就是程序应该是在脑袋里成型的。首先,即便是上边那些混乱的写法,也肯定要过大脑的,毕竟不经过大脑,你其实很难下意识打出一行代码的,但问题就是过大脑的部分实在太少了,每次就那么几行上下文。真正高级的做法是,你能够在脑袋里把整套代码的流程推导一遍,让程序在你的大脑里运行一遍,这时候你会发现写下来会是非常轻松的体力活。有那么一些程序员几乎不加班,但是效率还是很高,那就是因为他们其实无时无刻都能在大脑里写程序。成为一个高级程序最重要的就是要有在大脑里完整的写完一段代码的能力。

        最重要的编程习惯就是开始真正敲代码之前,在大脑里先把程序写好。

        如果接受了大脑写代码的说法,那么你会得到一个非常有意思的结论,

语言不重要,重要的是思想。

        这句话也是很多人在说,但其实不知道在说什么。我们先看一个问题,在大脑里写程序的时候,你觉得需要使用某一门专门的语言来思考吗?类比一下,这就如问你,你平时思考的时候,需要用中文来思考吗?这又是一个看起来非常简单,但很多人没有去思考过的概念,结论是不需要。这里就需要个人去深刻的体会一下了,如果你会多门语言,那么会更有能力自省出来,你会更容易发现自己其实并没有总是在用某一门语言思考。

        大部分时候,思考会是一些多种东西的混合,比如思考怎么游泳,你脑海里会浮现出一个画面,有一个人在水里游泳,而不会去思考怎么用语言去描述这个游泳的动作。同理到写程序,你其实是在思考的程序逻辑和程序结构,更可能是思考方式会是这样的,你想着这里需要一块东西,里边要存一些信息,然后你会想一些对某些东西要做的操作,有时候你又会想如果处于某种情况,要怎么给出错结果,诸如此类的。

        这些东西,其实很少会和具体的语言绑定,你并不太可能去用一门语言的具体语法去思考类怎么写,函数怎么写,更多的会像一种你自己在使用的伪代码。甚至有时候你可能会用图像化的方式去思考,比如一个树状结构的东西,上边挂着些东西,你用什么方式去遍历她的叶子。

        不过这里边有个需要注意的,如果你没有学过一些编程的基本概念,那么你就可能无法运用它去思考,比如当你完全不知道函数是什么,那么你在思考程序的时候,就只能一条程序写到底。所以从这个层面来说,语言又很重要,因为你需要他去学得一些编程的基本概念,让你有东西可想。

总结一下:

写程序是用大脑写,而不是用手写。

        用大脑写程序指的是,在动手敲代码之前,在大脑里先运行一遍你的程序。

        语言不重要,重要的是思想,但你需要学习语言来获得编程的基本概念来让你有东西可想。



作者:素书_
鏈接:https://www.jianshu.com/p/16460af82f89
 

成都市作为中国西部地区具有战略地位的核心都市,其人口的空间分布状况对于城市规划、社会经济发展及公共资源配置等研究具有基础性数据价值。本文聚焦于2019年度成都市人口分布的空间数据集,该数据以矢量格式存储,属于地理信息系统中常用的数据交换形式。以下将对数据集内容及其相关技术要点进行系统阐述。 Shapefile 是一种由 Esri 公司提出的开放型地理空间数据格式,用于记录点、线、面等几何要素。该格式通常由一组相互关联的文件构成,主要包括存储几何信息的 SHP 文件、记录属性信息的 DBF 文件、定义坐标系统的 PRJ 文件以及提供快速检索功能的 SHX 文件。 1. **DBF 文件**:该文件以 dBase 表格形式保存与各地理要素相关联的属性信息,例如各区域的人口统计数值、行政区划名称及编码等。这类表格结构便于在各类 GIS 平台中进行查询与编辑。 2. **PRJ 文件**:此文件明确了数据所采用的空间参考系统。本数据集基于 WGS84 地理坐标系,该坐标系在全球范围内广泛应用于定位与空间分析,有助于实现跨区域数据的准确整合。 3. **SHP 文件**:该文件存储成都市各区(县)的几何边界,以多边形要素表示。每个多边形均配有唯一标识符,可与属性表中的相应记录关联,实现空间数据与统计数据的联结。 4. **SHX 文件**:作为形状索引文件,它提升了在大型数据集中定位特定几何对象的效率,支持快速读取与显示。 基于上述数据,可开展以下几类空间分析: - **人口密度评估**:结合各区域面积与对应人口数,计算并比较人口密度,识别高密度与低密度区域。 - **空间集聚识别**:运用热点分析(如 Getis-Ord Gi* 统计)或聚类算法(如 DBSCAN),探测人口在空间上的聚集特征。 - **空间相关性检验**:通过莫兰指数等空间自相关方法,分析人口分布是否呈现显著的空间关联模式。 - **多要素叠加分析**:将人口分布数据与地形、交通网络、环境指标等其他地理图层进行叠加,探究自然与人文因素对人口布局的影响机制。 2019 年成都市人口空间数据集为深入解析城市人口格局、优化国土空间规划及完善公共服务体系提供了重要的数据基础。借助地理信息系统工具,可开展多尺度、多维度的定量分析,从而为城市管理与学术研究提供科学依据。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值