如何扎实,牢固的学习一门编程语言?

2018-09-28

  


 编程语言的学习,入门容易,学精了难。要是能快速学习,扎实掌握并且投入到实战项目中,应该是很多程序员需要的。我自己学习的一点经验分享出来,仅供参考。

第一步:

首先要理解这门语言的优势,为什么学这门语言,很多编程语言都有自己发挥长处的领域。比如要完成一个文件批处理,字符串处理,去学习汇编语言来解决,就太不适合了,可以选择Shell脚本处理,Python等就较为适合。

第二步:

接下来就是一个记忆力,理解能力的考验。记住语言的基本语法:【关键字,输出,输入,变量定义,数组等基本数据结构,条件判断,循环,跳转,函数,返回函数,面向对象语言还包含对象,继承,包含,接口,抽象接口。。。】在这个过程中,需要学习的就是一个个的例子,照猫画虎,每一个都把规则记下来,理解这些规则的基本应用场景。学习中不要使用copy+paste,要自己动手一行一行的敲代码,一个一个编译运行,这个过程是个苦力活,一定要熬出来,这是最基本的要求。

第三步:

掌握这门语言的一些基本预置库,语言提供的基本库和函数的使用。一般来说包括【文件操作,IO,系统提供的一些数组,队列,字符串函数】等,这些对于后续项目中的实战是必不可少的,我个人学习的经验是,用第一步第二步已经学到的知识,设计并实现一个学生成绩系统。用文件记录一个班学生的学号,姓名,年龄,年级班级,成绩。然后该系统可以增加一个学生的信息,删除一个学生的信息,更改学生的信息,可以对学生信息列表进行成绩排序,名字排序。能完成这个小小的项目,并在输出终端显示每个需求的操作结果,算是学习该编程语言,入门了。

第四步:

任何一门语言的学习,最终是要进入项目实战的,光用来写"Hello World",写个简单的学生信息系统,永远也不可能单独完成一个工程项目,永远停留在修修补补项目中的bug,只能理解一些局部的代码业务逻辑,终将碌碌无为,迷茫度日。其实很多程序员也是停留在这个阶段,年复一年,没有太大的成长,每次遇到一个让自己单独完成的任务,都会在恐惧和不安中煎熬,和项目经理交流中也处处体现着退却和莫名的种种抵触,最终的完成效果也差强人意,如何突破这一步,至关重要。下面列出一个学习的大概纲要,仅供参考。

1 多线程编程与访问加锁,2 网络通信编程,3 数据库访问。4 如果需要还有UI部分。

4.1  a 新起一个线程,b 结束一个线程,c 线程同步,d 多个线程同时访问一个变量时候的加锁保护。

4.2  a 打开网络请求,b 发送数据,c 接收数据,d 关闭网络请求

4.3  a 打开数据库,b 创建数据库,c 创建表,d 新增数据,更新数据,删除数据,e 遍历数据,f 关闭数据库

4.4  a UI页面的底层层次结构和组织方式 b 控件之间的继承关系  c 控件的数据,显示,事件调用逻辑  d 控件的使用(窗口,按钮,输入框,输出框,Lable, 进度条,图片显示,列表,单选框,多选框。。。)等等。

根据上面的几项基本训练,我的经验是每个,都对应一个小的项目。

4.1 用当前学习语言,设计并实现一个大楼里边的,电梯实时运行模拟系统。

4.2 用当前学习语言,设计并实现从一台电脑发送一个文件到另一台电脑。

4.3 用当前学习语言,用数据库存储来实现以上第三步中的学生信息系统需求。

4.4 这个并不是每个语音学习都需要的,如果需要完全可以一个一个控件过一遍,组合起来做一个收银台系统。

当你从第一步开始,一点一点走到第四步结束,应该说算是一个中级程序员了,而且已经具备中大型项目的实战能力了,也可以独立完成一些中小型项目的设计实现工作。

当然,学无止境,学海无涯,如果要独立设计并完成一个大型复杂项目,需要的知识不仅仅是编程语言和一些基本的库函数的使用,还需要很多其他方面的知识,操作系统,计算机网络,编译原理,架构设计(业务高度抽象与程序设计映射能力),设计模式,模块抽象,函数设计,通信设计,等等。。。。。

当你登上一座山峰,向远处眺望,你会发现远处有更高的山峰,更美的景色。