好几年前了,在成都的一个QQ群里,有人问,C语言要学多久才能学会,我回答了,4天!一堆人骂我,说我是大忽悠、瞎扯的,唉,心塞……

 

知识点已经很多了,如果有大把的时间,大把的精力,当然可以花1年,甚至更久的时间学习了。但是,我们学习C语言的目的是啥?能解决什么问题?这才是学习的关键!

 

拿来主义,站在巨人的肩膀上成长,不要重复造轮子,这些经常听的学习理念,同样适用于现在的学习方式,以C语言为例,如果仅仅是为了在性能测试活动中,能够利用LoadRunner完成测试脚本的基本开发、优化,能够调用dll文件,那我觉得4天绝对够了。

 

第一天:了解程序编译的方式,不用去理解原理,照葫芦画瓢,装上编译器,如DevC++,抄个C语言代码,如“hello,world”,跑起来就行。然后学习数据类型,不用考虑那么多的,只需要知道int、float、char就行了,什么长短的,你管他干啥接着常量、变量定义,写些简单小代码,熟悉熟悉就可以了。

 

第二天:顺序、选择、循环执行方式,写个案例小代码,搞定,练习可以用小球自由落地,三色球组合等。

 

第三天:学习数组,函数,主要弄清楚基本的业务逻辑,比如函数的调用,输入输出,是否有返回值等,至于什么按值输入,按引用输入,什么指针,你管他干啥...

 

第四天:多记记C语言常用的函数,起码以后用到或者想用的时候,能够联想起来有这么个函数,然后再去查。

 

四天,C语言学完了,然后再用到LoadRunner里就行了,出问题咋办,百度啊,百度不行,就google啊,再不行,问同学,问老师,问技术大神啊……

 

 

其实,现在任何人学习,尤其是进入社会的,在学习的过程中,根本没有那么多时间给我们,如果你的领导给你一个任务,就要求你在三天内搞定,你怎么办?你需要多久?完全取决于你的学习方法及学习能力,人性化,只是相对的,人才,也是在这样的环境下显现出来的……

 

对于Python,从学习到应用,我花了半天时间,当然,写出能用的代码,解决项目中的问题,还得结合实际项目来说。

 

Python1-介绍

Python2-安装

Python3-基础

Python3.1-输出

Python3.2-输入与输出

Python3.3-变量与数据类型

Python3.4-运算符与表达式

Python3.5-字符串格式化

Python3.6-程序练习(猜数字)

Python4-控制流语句

Python4.1-if选择结构

Python4.2-while循环结构

Python4.3-for循环结构

Python4.4-for循环练习(九九乘法表)

Python4.5-break与continue

Python5-模块及函数

Python5.1-模块

Python5.2-函数定义

Python5.3-函数变量

Python5.4-函数参数

Python5.5-函数返回值

Python6-数据结构

Python6.1-数据结构定义

Python6.2-索引操作符与切片操作符

Python6.3-列表的操作

Python6.4-字典的操作

Python6.5-字符串与列表的转换

Python7-异常处理

Python8-最主要的编程思想-面向对象编程

Python8.1-面向对象编程思想

Python8.2-类和对象的定义

Python8.3-类变量和对象变量

Python8.4-面向对象语言的特性

Python9-程序与系统文件进行交互

Python9.1-文件读取

Python9.2-文件写入

Python9.3-程序练习(成绩统计)

Python10-程序与数据库服务器进行交互

Python10.1-数据库连接

Python10.2-数据库操作

Python10.3-程序练习(数据库)

 

以上是孙得雄老师的python学习视频的目录,新手学习挺好的,网易云课堂和腾讯课堂上都有上传,大家可以按部就班的学,但我的学习方法不是这样。

 

与C语言学习一样,我还是配环境,然后写一个常见的代码,如“hello,world”,起码我有个能够保证代码运行的环境,这也是最基本的。

 

接下来,学数据类型,学变量、常量定义,学语法控制结构,再然后,就直接应用到案例。

 

在C语言中,只有面向过程,没有面向对象,那如果我学习Python,怎么办呢?

 

我以一个案例介绍下,其实就是把我们日常的思考行为,转化为代码,就容易解决了。

 

练习:假如有一辆汽车,速度是60km/h,从A地行驶到B地(距离100km),计算耗费的时间,分别以面向过程、面向对象两种不同的编程思想设计程序。

 

上面的问题,先不要去想什么面向过程,面向对象,你就想想一个简单的算术题,你咋做?

 

速度60,距离100,耗时就是100km/60(km/h)=1.67h

是不是很简单?好,现在用python来写,基本编程前面已经学了,就直接开干。

 

顺序性代码:

speed = 60
distance = 100
dtime = distance / speed
print('speed=%4.2f' %dtime)

 

上面的代码,没任何扩展性,就是你们家的东西,别人想用用不了,速度,距离变了,都得直接进家门,不安全,不方便。

好,那就用面向过程的方式,封装起来,用函数的方法弄:

 

用有返回的值形式,写成了函数,最后把时间打印出来。

 

从顺序性编程,再封装为函数,就像我们日常生活中的做饭一样,没经验的时候,让你炒一个菜,可能需要把各种配料,各种比例都告诉你,等你会了,自己脑子中有了框架,直接告诉你菜名就行了,这就是一个转变。

 

现在问题又来了,上面的交通方式,是通用的,比如速度,距离,耗时,但不同的交通工具,可能属性不同,比如自行车和小轿车相比,有个典型的区别属性,就是小轿车有油耗属性,自行车没有(百公里大米饭5碗除外:)),那么问题来了,面向过程的方法无法做到区分,如果加入油耗,对于自行车来讲,又不需要,这个时候可以提取公共的属性,利用面向对象的思想来写,

 

 

小轿车每公里的油耗假设是0.05,这样可以在Driver基类基础上衍生出car子类,这种就是面向对象,简单来说,抽取公共的属性,做到代码,结构尽可能简洁,尽可能省。

 

上面是个学习的小案例,我在学习的时候,都是从最简单的入手,带着案例去学,不会的就上网查,一般都能在很短的时间内解决问题。

 

对于每个人而言,不可能有太多的精力学习太多的东西,也不能什么都会,都精通,我们需要的是学习的方法,解决问题的能力,在我做项目外包或人力外包以及企业服务的时候,很多问题都是新的,都需要在极短的时间内完成,如果还是一板一眼的,那基本都失败了。