个人编程想法心得(不定期更新)

引言

此篇文章是我在编程的过程中遇到的一些方法和心得, 甚至超出了编程的范畴,以前多记载于纸面或者是备忘录等, 所以并不权威, 可能只是一家之言, 不免琐碎.
引用<大学的观念>(<The Idea of a University>)的作者约翰 · 纽曼的一句话

只有教育, 才能使一个人对自己的观点和判断有清醒和自觉的认知, 只有教育, 才能令他阐述观点时有道理, 表达时有说服力, 鼓动时有力量. 教育令他看世界的本来面目, 切中要害, 解开思绪的乱麻, 识破似是而非的诡辩. 撇开无关的细节.

而知识, 见解, 经验的分享和学习是自我进行学习的一个重要的途径, 所以, 知识的分享总会增值, 非常期待与各位看官切磋想法, 交流心得.


知识的分类

我个人会把我所获得知识分为两个大类, 陈述性的知识和程序性的知识.

  • 陈述性知识: 用叙述事实来思考他, 他维护了真相, 事实的陈述, 举个例子, X的平方根是Y,Y的平方是X. 他是个事实, 也就是原理, 或者说是定义,他并不会帮助你计算出X的平方根或是Y的平方是多少, 他最多可以帮助你检查你的计算, 他会告诉你怎么才可能去检查一些事, 但是他没有告诉你怎样的去检查.
  • 程序性知识: 有了陈述性质的知识, 程序性的知识就非常好理解了, 程序性质的知识可以是对推论事情的具体的描述, 解决一件事情具体的方法, 是一系列行动具体的描述.

一法通而万法通的编程

什么是最好的语言之盖棺定论

当你接触到了编程, 开始编程后得一段时间, 你会感觉到你所写的代码, 对于目前来说, 他们已经把你所需要的变量, 类型, 甚至一部分功能都已经准备完全了或者说是原材料都准备好了. 你需要做的只是那他去编写程序, 或者说是根据这些原材料去制作菜肴, 一个菜谱最根本的其实就是一堆原材料所构成, 包括了柴米油盐等等.
1936年图灵展现了6种最基本的数据类型,可以在计算过程中, 表达出任何含义来, 六个基本类型,你可以规定整个世界, 6个,你可以编写任何的程序, 一种编程语言能够做的事情在另一种编程语言中你也能够做到, 所以上文说道, 没有一种编程语言是best language, 他也叫图灵兼容性


Alan Mathison Turing

参考于Quora
六条基本指令
1.read
2.write
3.erase
4.move left
5.move right
6.halt

基于此我个人觉得计算机或者说是编程知识的体系结构应该是成一个倒立的金字塔形状或者是一种菱形.
有趣的是, 在目前来说, 或者是目前的大部分人来说, 都是先建立起金字塔的最中心部分,在去针对深度, 广度, 和高度去拓展(我一个老师确切的提到这三个角度, 当时觉得很有意思) 最后才形成了金字塔或者说接近于金字塔的形状

所以基于图灵兼容性我可以得到以下结论

总会听到一些话, 什么什么语言最好, 但是经过你仔细的思考你就会发现没有 best language 他们在某些情况下,某些环境中, 会比其他的语言更好用, 有更强的功能, 更强的适应性, 更适用, 这个世界有上百或者说是几百种编程语言, 有的甚至是专门用来解决一种问题. 所以初学者要想好你想做什么, 你是真正的热爱编程还是想要拿她去赚钱, 养活自己, 或者说, 你在接触到or对编程有一定了解的时候, 你就会非常理智的选择自己学习的语言了, 而不是一味的跟风, 一味的什么火 才去学习什么.


对于编程人员来说(主要为新手)十分重要的事情

再讲这个事情之前我会把一个程序的要素分为语法和语义

  • 语法: 语法的含义就是, 在语言中合法的表达, 或者说是在这个语言中一句话or一个功能的合理表示是什么.
    所以需要你掌握一个语言正确的语法, 需要对你怎么把写好的表达式合理的放在一起进行描述
  • 语义: 语言的含义, 或者说在编程中可以直接的表达一定的含义的一段代码, 我更倾向于把他归类为整体(这个整体甚至可以小于一行代码)的含义. 或者说, 当我运行了这段代码他会发生什么

对于新手来说, 经常性的会出现的问题就是BUG, 这并不是说老手或者是大神就不会出现这种问题, BUG是每一个编程者都无法躲避的东西.


痛苦的debug
痛苦的debug
为什么针对新手说呢?

这就是一些新手经常性的犯一些语法的错误, 如果你犯这种错误, 恭喜你, 目前绝大多数的开发平台都会以一个大大的红色叹号或者是一个黄色的警告提示你,他很容易会被发现, 而且你一般无法带着这种error去运行程序, 你会很容易的修正他.

什么是不容易被发现的错误 & 有什么后果

但并不是所有的错误都是语法上的错误, 或者说是被开发平台所捕获, 有一些问题会躲过检查, 这些错误多是语义的错误, 是程序无法去做出判断的, 或者说你的逻辑超出了开发平台的侦测逻辑.
这些没有被侦测出来的错误就意味着你成功的运行了你的程序, 你的程序给你返回了一个值, 但是这个值却不是你想要的, 最可怕的是你可能会分辨不出来, 甚至这个错误会与你的程序整体产生联动, 沿着程序的运行一直的传播下去, 直到他深埋于程序的最深处, 你却找不到他在哪, 产生可以称为灾难性的后果.

有什么解决的方法

因此, 所有的程序员都会希望开发平台可以提示出所有的error, 但是并不能做到, 但是这就是一个程序员需要做的事, 解决BUG, 甚至是这种BUG也是我们工作的一环,所以, 当你的代码中语法没有错误, 而且也没报错的时候, 你就需要考虑你的语义是否有问题了, 为了解决这种错误避免他的发生, 除了你要对本身所学习的语言所有了解, 你还需要一种不会触发这些错误的编码风格 — 无论你在学习或是使用哪种编程语言, 所以你需要形成一种良好的编码风格, 一种容易发现程序中的语义BUG的风格

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • TITLE: 编程语言乱炖 码农最大的烦恼——编程语言太多。不是我不学习,这世界变化快! 有时候还是蛮怀念十几、二...
    码园老农阅读 5,183评论 2 35
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 10,981评论 6 244
  • 黑夜漆黑 但是有漫天的星斗 有未尽的空间 有无限的时间 无限大 无限广 无限长 伟大和磅礴都不足以形容 他是时间和...
    子风乄阅读 205评论 0 0
  • 每一片叶子都不一样~
    天野丢阅读 624评论 1 3