程序设计的基础方法(发刊词)

2020-12-25 10:55:51 +08:00
 Braisdom

前面也有过讨论,本次正式发布,保持每周更新一篇: https://www.v2ex.com/t/736407

将文章写短,节约读者的时间,而不是彰显作者专业度。通过简短、浅显的代码示例,讲解抽象且复杂编程模型,而不是掺杂大量术语或单词缩写。以客观程序的事实为基础,而不是过分表达个人主观理论,上述是我写这一系列文章的基本宗旨。当然,写文章和写代码一样,也需要不断的迭代和版本更新,同时也需要根据读者反馈调整一些文字的描述和框架结构,从而形成一套基础编程的方法体系,而不是对现有有理论或框架技术应用的解释。透过现象看本质,通过对基础编程方法的学习,掌握基本的技术发展规律和趋势,形成自身看软件编程世界独特的方法。

理解概念、灵活运用是一个层次,但发现背后遵循的规律是一个更高的层次。学习理论的结果是一个层次,学习理论背后的原理和发展的过程是一个更高的层次。学校老师或书籍教导我们的更多是结果,很少谈及“为什么?”,本系列有一个副标题“凡事就怕问为什么?”,这是本系列的主要线索,探寻更多“为什么”。

现实中,我们能够找到的编程知识,大多数告诉你:是什么?如何用?却不告诉你为什么?“怎么用”,“如何用”是表象,不同人有不同的理解,也会形成自身的理论体系。但不同人之间总是使用同样的方式解决问题,尤其是一些优秀的项目,潜在遵循的规律是什么?这是一个值得去深究的课题。

经济学提供了一种客观分析的视角,一套方法论体系,一种以边际为主的分析方法,以研究人类的活动和发展规律为主要线索。在程序设计领域,更多是偏主观的理论,总是带着强烈的个人色彩。虽然有价值,但同时也拉长了基础编程的学习路径。尤其是初学者,看到繁多的技术理论更是无从下手,这也就是我写这一系列文章的初始动力,通过哲学式的思辨,讨论程序设计中的各种元素背后所遵循的规律,以浅显的语言描述,简单直白代码示例讲解背后的原理。虽然有个人主观的认知,但更多是基于开源项目的代码总结的规律。

软件编程的历史并不长,理论体系的发展却很多,所谓的编程方法类的书籍,更多是讲各种编程语言的特性和语法,一本书里代码比概念的阐述还要多。再就是讲解流行的框架技术或软件工程理论,通过这类书籍的学习可以快速进入工作状态,也能在面试的过程中顺利通过,这只是基础工具应用的学习。而真正要写好每一行代码,是在进入不同公司后,学习特定领域下的编程范式,更确切的说是符合某个个人编程理论倾向,缺乏程序设计方法相对客观的认知,同时也会局限于当前的编程模型,久而久之,形成固有的思维方式,却忽视了背后存在的原理,即使写了很长时间的代码,灵活运用了各种工具,但对软件技术和理论的创新,显得力不从心,用一名常见的古文来表达:“事要知其所以然”来表达最为恰当。掌握内存的逻辑和背后的规律,才能对现有的技术提出挑战,创造出符合软件发展规律的项目或产品。

其实,所谓背后的原理和规律,是前人在一次次惨痛的 Bug 中积累的经验,是不同程序员在处理类似问题时采用的共性的方法,是软件发展过程中不知不觉演进的方向,“读史可明鉴,知古可鉴今”,同样了解软件的发展过程和最原始的动力,有助于我们更理性的看待今天的发展,更智慧的理解未来的趋势,更重要的是形成自身独特的方法体系,创造更优秀的软件项目。

第一阶段 Java 基础编程元素的理解

个人项目: https://github.com/braisdom/ObjectiveSql

同时本人正在求职,有合适机会的微信联系我:braisdom

关注微信,及时收到信息,V 站也会发:

1784 次点击
所在节点    程序员
6 条回复
Kirsk
2020-12-25 12:58:34 +08:00
不如结合原则来讲解 更能体现怎么去做设计 什么样的写法符合原则(不是教条) solid kiss 等 或者一套方法论
Braisdom
2020-12-25 13:01:57 +08:00
@Kirsk 原则往往比较空洞,而且原则很难适用于多变的应用系统,需要的是讲解不同人处理同样问题而使用同样的方法,背后遵循的规律。
Kirsk
2020-12-25 14:34:00 +08:00
@Braisdom 正是因为原则抽象层级高 更值得讲 原则对人和系统都有普适性 什么样的做法符合原则 你后半句讲的就是原则
Braisdom
2020-12-25 14:40:13 +08:00
@Kirsk 空洞的原则和规律没有太大意义,就像面向对象的基本概念,封装、多态和继承,还有一些抽象的基本原则。太空洞了,看似包含了一切,其实啥也没有。我需要阐述的是具体的,实际的,就像“为什么要定义一个方法”,分析优秀的开源项目,从中找出可以验证的实例,并说明为什么,这些才是有意义的。
xuanbg
2020-12-25 19:48:52 +08:00
程序设计的目的是什么?我认为这一点要先讲清楚。
Braisdom
2020-12-25 21:42:40 +08:00
@xuanbg 这是一个好问题,但相对宏观一点,属于软件工种类的问题,重要的是先从微观去分析,如何去写好程序。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/738819

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX