什么是编程的基本功?

作者:caoglish
原文链接:http://t.cn/RKcyGX3
来源:知乎

查询和阅读文档能力

原因:你使用编程来解决问题的时候,基本上最终的东西是代码,但是编程的知识太广,总有你不会的,总有你不了解的,总有你记不住的。这个时候,有文档作为资料参考,就可以快速把别人的经验知识转化为自己的生产力和自己的代码。

查询阅读文档是可以分成很多部分。主要是以下几个部分:

  • 教程文档

  • 技术参考文档

  • 第一手的英语文档

  • 代码例子

教程文档,是手把手教会你如何使用这个编程技术的重要文档之一,是入门技术的重要教学资料,如果这个都不会看,那么就已经丧失了自学编程技术的能力了。

技术参考文档,一般来说 API 的技术文档我们说的比较多,很多 API 都没有教程给出,要靠自己查询文档,再根据需求特点来使用 API 。这个相对教程文档更加枯燥。而且这个水平我认为还分几种情况(当然有能力自己编写一个,不靠文档的情况不在这里的考虑范围之内):

  • 知道哪个 API 符合需求

  • 知道哪个 API 接近自己需求,但需要进行数据转换

  • 不知道有没有 API 符合自己需求的,但能找到一个API 接近自己需求的

  • 不知道有没有 API 符合自己需求的,也不知道怎么找的

英语能力

这里有另外一个基本功,就是英语能力。如果英语能力好,再结合英语版的教程文档和英语版技术参考文档,那么这项基本功会对你的编程水平提供很大的帮助。

读第一手英语资料也是很重要的。我最愿意读的文档资料是 PHP 的官网和 jQuery 的官网。PHP 的官网的文档非常有意思,不但自己写详细的 API 说明,有例子,底下还有很多用户在提供很多相关的信息和使用 API 的技巧。英语资料的好处是细致,理解简单,而且更新快,甚至你可以和写文档的人进行交流。

数学

原因:编程到处都是数学的表现形式。就算你不懂数学,但当你编码了,就是在做数学做的事情。
电脑其实就是数学的现实产物,方方面面都有着数学的元素在里面,有人说了,数学是蓝瓶的最大值,这点我很认同。正是前人的努力,我们现在的编程才会如此的容易。但不代表数学现在不重要,编程就不要数学了。在编程中,处处可以看到数学的东西在里面。如果有了数学基础,这些东西理解起来就会更加容易。先说说,编程基础中的数学:

  • 函数 / 方法,数学就有函数概念 y=f(x) ,f 就是函数,x 就是输入,y 就是输出

  • 逻辑布尔值,if 和 while 都需要有一定的逻辑判定,而数学的逻辑学在这里就很有用了

  • 数学运算,这个和数学就一样了

  • 递归,也有一套自己的数学法则

而数学应用的地方就更多了:

  • 2d / 3d 矢量制图绘画

  • 加密解密算法

  • 视频图片压缩算法

  • 文件压缩算法

  • 物理引擎

那么学好数学有什么好处呢:

  • 理解

比如现在流行的函数式编程,就是数学中的函数积分的概念,如果数学学好的话,函数式里面的调用,运算,组合等概念就会非常容易理解了。

  • 转化

把一些算法转化成代码,像 RSA 的数学加密解密算法,都是先有理论,然后有人用代码实现的。把数学算法看懂,转化成可以应用的代码或是 API 。

  • 优化

一些算法其实用数学公式就可以完成,而不需要逻辑流程。最近的有一个例子就很明显了,我编写了两个比特单位转化程序,第一次是用 while 和 if 写成的,第二次是用数学公式写成的,数学的优化特性就在里面显示出来了。

  • 逻辑

编程中充满了逻辑,逻辑不好就无法编程。正是由于编程中逻辑很多很重要,所以好好学习数学的逻辑运算,会对编程特别有帮助。因为可以通过运算,简化你的逻辑条件,使得程序更高效,也可能更加容易读懂,逻辑更加清晰。

  • 分析

有了数学工具,可以进行数据分析,进行数据挖掘。当然也可以对代码本身进行分析,分析其时间复杂度和空间复杂度,作为参考,进行更好的代码优化。

读代码

原因:读代码不产生任何代码,如果不能很好的理解现有代码,又如何改进代码,修正错误呢?

读代码是一件非常困难的事情,甚至可能比写代码还困难。很多人更喜欢自己重写,也不愿意去读别人的代码。但是实际工作中,可能更多的是维护旧代码,公司也没有时间和资源去支持你编写新的代码。而学习编程,更多的是在读别人代码过程中去学习。

所以在编程过程中读懂代码却真的是一项非常重要,却容易忽视的能力。

  • 读懂自己过去的代码

是不是有这样的经历,代码放6个月后自己去读,可能都不知道当时为啥这样写。最好自己慢慢调试,最终明白自己当年写这段代码的思路是啥了。先读懂自己过去的代码,试着优化重构,提高过去代码质量,就是提高了自己代码能力了。

  • 读他人代码思路

自己写的都可能不记得思路了,那么从头开始看别人写的代码就更加困难了。

读别人代码,更多的是了解思考,为什么别人那么写,为什么这样写的好处。理清思路,画出流程图,可能会更好的理解他人的代码。

  • 学习他人的优秀代码结构

学习别人的代码结构,看看别人如何使用数据结构,数据模式的。这样可以转化成自己的知识。

  • 读懂他人代码算法

如果别人是大牛,数学学得很好,很多数学公式,很多递归,如果自己没有一定的数学基础,可能就晕了,这个时候,数学的基本功可能就会在这里发挥作用了。

  • 破解纠错

如果读懂了别人的代码,发现代码有问题,有漏洞,可以破解,可以纠错,然后把漏洞通知作者,也是提高自己能力的方法之一。当然在对付自己过去的代码时候,也会发现破绽,只有读懂了代码,才能进行修复或者改进。

LeanCloud内容推荐(更多内容欢迎关注 LeanCloud通讯微信号)


Atom 背后的故事**
如何在 LeanCloud 上托管 Clojure web 应用**
11 个免费学习编程的高质量网站
超实用 | Python 的学习资源汇总
超实用的 Chrome 插件,保存网页中喜欢的图片

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,988评论 25 707
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,096评论 6 244
  • Block截获对象的情况 输出结果: 代码分析:在Block语法中使用array变量,因此array会被在栈上的B...
    KardelShaw阅读 188评论 0 0
  • 以貌取人,生活事业差不了 找对象,高自尊的人才靠谱。 有个姑娘找对象,她会调查这个小伙子当年高考考了多少分。她给出...
    一枚冰儿阅读 326评论 2 1
  • 精彩的读书会 骑天大胜 焦点,少年班坚持分享第三十天 2017.8.25 我不知道为什么 今天总是打雷,u为什...
    骑天大胜阅读 271评论 0 1