如何提升编程能力
来源:互联网 发布:淘宝化妆品店推荐 编辑:程序博客网 时间:2024/04/30 11:20
作者:姚冬
链接:https://www.zhihu.com/question/27574436/answer/37185893
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
其实很多人学编程都会遇到困难,我觉得其中一个根本原因是他们没搞明白学编程到底是学什么。
编程不是一种知识,而是一门手艺。
我们从小到大的学习都是学习知识,流程一般是课前看书预习,上课听讲,下课做作业,然后复习考试。但是学手艺可不是这么学的。
我们先拿游泳举例,游泳不是知识,而是技能,也可以算门手艺吧。
需要预习吗?需要上课听讲吗?不需要,因为两岁小孩都能学会游泳,他们连话都不太会说呢,怎么可能听课预习呢。游泳是通过在水里的练习,教练手把手地传授动作,一点一点提高熟练度学会的。
我们再来看看弹琴,学钢琴一定要有钢琴,音乐基础知识也是老师在练琴间隙传授的,并且一定会结合练习,另外练琴时间是很重要的,必须保证一定的练习量,有些理想远大的琴童练琴时间可以用惨无人道丧心病狂来形容。
千万别把编程看作知识,计算机科学是知识,但是编程是手艺。
既然是手艺就要用学手艺的思路去学习。
以动手练习为主,看书学习为辅,甚至极端点,初学的时候除了看必要的文档都可以不看书,等有了一定编程基础后再去看书,看完书立刻动手编程去验证书上的理论知识。
练习一定要循序渐进,把手艺分解成几个简单的动作,反复练习直到熟练,然后再把基本动作组合起来练习直到熟练。拿C语言举例,比如从认真写好一个Hello world开始,然后去熟悉 if for while 等基本关键字,然后熟悉字符串操作,内存操作,练习查找 排序 二叉树等基本算法数据结构,然后学习一个小型Framework。。。。
找个师傅,手艺的一大特点就是自学是很慢的,而且容易走弯路,而有人手把手教要快得多,手艺有很多细节,实际操作经验,需要去体会感受的东西,这些细节书上基本不会有。
坚持做大量的练习,以代码行数为例,每年50000行左右是比较一般的练习量,有毅力的话可以挑战10万行。(有人说代码行数不代表什么,行数多不见得程序就对,写得好的程序代码很少blablabla,滚,去跟朗朗说去,告诉他其实不用练那么长时间琴。)
回忆下自己当年是怎么学会骑自行车,学会游泳,学会打篮球的,按照那个思路去学编程,而不是用你学大学课程的思路去学编程。
记住,编程是手艺,不是知识。
======
最后再强调下,对编程能力本质最好的比喻就是弹琴。但是有了编程能力还不能算优秀的程序员,优秀的程序员是作曲家,他们不仅能想出优美的旋律,并且能弹奏出来,就像优秀的程序员不仅能想出优美的算法架构,而且能把它变成可执行代码。你很难想像作曲的人不会任何乐器。
很多人的问题是想当作曲家却不肯下功夫去练琴。
打个预防针,估计有人会举出反例说我就知道某某某作曲家不会乐器(其实真的有)。
我要说的是,等你成了公认的著名作曲家之后再说自己不会乐器,那你牛逼。
在成名之前就这么说那是煞笔。
- 如何提升编程能力
- 如何提升文档编写能力
- 如何提升文档编写能力
- 如何提升自己的能力
- 如何提升文档编写能力
- 如何提升个人专业能力
- 如何提升个人销售能力
- 提升编程能力的11个技巧
- 提升编程能力的11个技巧
- 转自知乎 关于提升编程能力
- 提升编程能力的11个技巧
- 提升自己的编程能力(源码阅读)
- 如何提高编程能力
- 如何提高编程能力
- 如何提高编程能力
- 如何培养编程能力
- 如何提高编程能力
- 如何提高编程能力
- 673[Medium]: Number of Longest Increasing Subsequence
- 控件输入限制总结
- Turtle库快速参考
- 通过PXE远程安装CentOS和Ubuntu系统
- Revit二次开发winform简单的标准模板以及wpf简单的标准模板
- 如何提升编程能力
- 1103木棒还原(重写)
- 接口
- Java四种线程池和工作队列
- MyBatis Generator系列(八)----MyBatis Generator自定义插件实现自定义Mapper
- 微信PK阿里出新功能,小马哥躺着赚钱!
- GYM
- 第11章 开发板做中继功能
- Java基础知识学习之路-07-第五章-面向对象(下)