- 在线时间
- 101 小时
- 最后登录
- 2017-2-24
- 注册时间
- 2015-6-1
- 听众数
- 68
- 收听数
- 1
- 能力
- 40 分
- 体力
- 2778 点
- 威望
- 14 点
- 阅读权限
- 150
- 积分
- 1975
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 328
- 主题
- 180
- 精华
- 3
- 分享
- 0
- 好友
- 77
TA的每日心情 | 开心 2015-6-19 13:01 |
---|
签到天数: 3 天 [LV.2]偶尔看看I
|
看了题主的描述我大致能够理解题主现在的状态了。记得我刚开始接触编程是在高考结束因为被「软件工程」专业录取所以在假期里自学Java。当时的状态和题主差不多,不知道为什么代码究竟是怎么执行的(记得当时还去百度知道上问程序语句的执行顺序=_=),不知道为什么要编译,为什么写出来的程序都是黑框框,双击还无法运行……后来大概有半年时间就好了,多少算是积攒了一些经验,拿出来和题主分享一下。
方法上
如果感到迷惑就先不要考虑编程的「思路」,先做到把代码读懂。书上的代码是循序渐进由少到多的。针对书上的每一个(是每一个噢~)例程,要做到从头到尾每一条语句的每一个关键字都明白是什么意思(书上明确指出不用理解的忽略之)。然后合上书本将能够实现相同功能的代码默写出来。同时适当的改改代码,比如删掉某一条,加上某一句之类的,来加深理解。注意千万不要背例程。只要是功能一致,掌握方法就算完成目标,背下来毫无意义,并且不会有所提高。之后一段时间后随着对代码理解的加深会渐渐的自然地理解写程序的「思路」。感觉就像是学完英语语法背好单词后,自然就会写文章了(当然写的不好)。在学完第一本书后,就尝试着独立完成一个小程序,贪吃蛇、俄罗斯方块之类的,python的话可以尝试一下写个文本处理的小程序。在这个时候再系统的考虑「思路」是一个不错的选择。《Python基础教程》这本书后边有大量的实例,在写那些实例的时候也是个不错的时机。
此外还有一点,一开始肯定会有大量的名词看不懂。碰到不懂的名词尽量上网去查,来知乎问也可以。不要积攒太多,不然很容易产生理解障碍。这也是一个学习的过程。编程并不仅仅只有代码,还有与之配套的其他知识,有一些是没有专门书籍系统讲解的,需要自己积累。
理解上
写程序的思路在初学的时候平时的思想完全可以硬上(当然深入以后就不行了)。举个例子,包饺子.py可以这样写:
# 引入厨房中的所有工具
import 厨房
# 之前前三句写错了,不小心把别的语言的语法混进来了,已纠正。中文括号()内的是术语。
# 此处的「肉馅1」肉馅1是一个代号/名字,用来控制/获取变量。就像遥控器一样。
#「方法名(参数1, 参数2, ...)」的写法表示用一定的的输入(参数),通过「方法名」所代表的一系列
# 运算/操作(此处我们并不知道具体是什么)。有时它会产生一个结果(返回值),有时不会。
# 此处是某种肉馅。第一句可以解释为:
# 用一个叫做「肉馅1」的名字(引用)来代表通过以「猪肉」为「材料(参数)」的方法「做肉
# 馅」所得到肉馅。
肉馅1 = 做肉馅(猪肉)
# 「XX.YY」可以理解为XX的YY, 以下就是厨房的调料
调料1 = 厨房.调料
# 同第一句
面团1 = 买面团(钱)
饺子皮们 = 做饺子皮(面团1)
生饺子们 = 包饺子(饺子皮们, 肉馅1)
# 「def 方法名(参数1, 参数2, ...):」定义了一个指令序列,用「方法名」代表,以方便以后需要时
# 直接使用不必重复书写。上边用到的「做肉馅」也是这么定义出来的。
def 煮饺子(生饺子):
# 产生一个锅
锅 锅1
下锅煮(生饺子, 锅1)
# 这个东西代表之后缩进的代码重复执行三遍
for 次数 in [1, 2, 3]:
加水(锅1)
熟饺子 = 出锅(锅1)
# 返回最终的结果
return 熟饺子
熟饺子们 = 煮饺子(生饺子们)
# 输出
print 熟饺子们
以上是一个以日常生活为例的例子。不过有的人对这类不太恰当的比喻东西不太敏感。再补充一个从数学的角度来看的。在学校里上数学课时定义过函数,和程序中的函数的概念非常接近,具体区别看这里(http://www.zhihu.com/question/20385250)。上边提到的「方法」就是程序里的「函数」(同义词)。数学里我们这样写:
f(x, y, z) = x*2+y-z
m = f(x, y, z)
写作Python代码就是
def f(x, y, z):
return x*2+y-z
m = f(x, y, z)
看出区别了吗?我猜想程序中的这个写法就是从数学中借鉴过来的从这个角度来讲程序也可以简单粗暴的理解为用某种特殊语言描述的运算过程。和平时写数学作业其实类似。只不过其中多了些「print “Hello world”」之类的特殊语句。思路还是差不多的。
完全可以看做是现实世界中一步一步来的思路。这叫「面向过程」的编程方法^_^。熟悉了以后其实也没什么,但一开始确实会有些转不过弯。有一个习惯的过程。
最后,Python是一门很有亲和力的语言,适合非科班入门(当然Python也很强大)~《Python基础教程》这本书还是不错的,与同类书相比算是最接近面向零基础了,可以坚持看下去。至于零基础什么的……那些写代码的老宅男已经脱离人民群众太久了……鬼知道他们的零基础是什么……
一开始出现茫然不知所措的现象其实是一个普遍的现象。
写程序是个非常有趣的是,希望题主坚持自己的梦想~
|
|