如何自学编程?
选择一种编程语言。初学者一定要从主流语言开始学习,比如中级语言C和C++。这两种语言是任何一名合格、专业的程序员都必须掌握的,因为它们称得上是软件开发界的主流。
但是最好不要从高级语言开始学,如Java,因为这些语言对于初学者来说难度未免太高(高级语言可以以后再学,但是C语言和C++应该作为你的基础)。
然而对于完完全全的门外汉的来说,可能C和C++都有点困难,那么你也可以从Python开始学,这种语言被大家广泛认为是适合初学者的。
熟悉以下关键东西,可以边学边做,定期训练,经常思考,长期积累:
1、语法
2、基础理论(数学、数据结构、算法等)
3、设计方案(编程原则、设计模式、框架设计等)
4、库(核心、基础、UI、扩展、游戏引擎等)
5、计算机相关(操作系统、网络、图形学等)
6、领域知识(游戏设计、网站设计等)
7、开发工具(编辑器、IDE、自动部署等)
8、项目管理(进度管理、分工协作、Bug管理、版本控制等)
最普遍的也是最重要的能力:创造力。努力分析并理解好做什么以及怎么做。要知道上面那些东西一开始都是不存在的。
具体方法包括:
1、快速阅读入门教程和书籍,适合学习语言和基础库。比如我学Java读的《Java编程思想》,练习题做过一点,然后学ActionScript就没读过书,只读过Adobe官方文档《ActionScript 3.0编程》。
2、阅读库的文档、实例、源码。比如Flash、Flex开发,熟悉官方API很重要,很多细节要具体使用时才注意到,这时候最好做个笔记,虽然我从没看过我的笔记。
3、做一个自己感兴趣或熟悉的小项目,比如我就以黑白棋游戏作为多个语言的试水项目,一样的逻辑,便于把关注点放在语言特点上。
4、自己动手丰衣足食。厨师有菜谱,程序员可没菜谱。比如我做游戏,最关键的游戏编程知识全部是动手学出来的,很少有专门针对某个业务领域(如游戏)的编程书籍,要么是入门书,要么是模式书(如算法)、理论书(图形学),很少有书籍教你如何开发一个45度角地图系统加编辑器的,全靠自己思考,以及看前人的代码,需要时找些网络资料。关键是,可以培养最重要的创造力。
对于算法和设计模式,可以研读下,但是关键还是靠平时如何使用了。新手勉强不来的。
项目管理方面的,就得靠工作经验了,多思考多提意见不要只走流程。
学习任何一门编程语言,都需要掌握其编程的语法规则,可以通过阅读一些编程书籍,了解一些编程中的概念思想和基本语法。这对于后续的编程学习十分重要。 三、上机实战 学习编程最重要就是需要多上机练习,所以电脑上需要安装所学语言对应的编译软件,多看书,多敲代码,实践出真知。 四、多向他人学习 编程的学习离不开借鉴模仿,初学编程可以多看看厉害的人的编码,多总结他人代码的优缺点,反思自己如何能够从哪些方面改进代码,优化代码。
开发者知道,人脑最不擅长的就是线性枚举,即便我们认识几千个汉字,但是我们无法去线性地去将所有认识的汉字枚举出来,我们的大脑,本就不是用来进行线性思考的,而复杂度上了一定程度的知识,线性的掌握,基本不可能。
有难度的知识,往往是这样的:为了搞懂A,而去学B,为了学会B,而去学C,这叫递归学习,递归虽深,但有回溯,它最终会回溯到我们的起点。
所以开发者的学习更偏向于递归式的学习,而且可能会以一个知识点为起点,去完成树状知识外围的遍历。(有点像搜索引擎去爬虫)