我是一个高中学生。对编程很有兴趣。最近开始认真学习Python,作为入门的一门语言
我之前对C有一些涉猎,但也仅仅是对语法有一些了解。那些编程的理论也是不知道的。
学习Python用的是《Python基础教程》这本书,内容似乎很简略,才第7章就讲到OOP。我看的时候觉得自己的思路很不条理,而且从看OOP那章开始觉得很困难,对于什么“魔法方法”就更是不明就里。学到现在,我也就能那简单递归写个比较“复杂”的杨辉三角。
知乎er们能帮帮我吗?
^_^
回复内容:
麻省理工学院公开课:计算机科学及编程导论
个人觉得这是学Python最好的入门教程,先跟着看一遍,比看国内的书好多了。
看第二遍的时候结合Learn Python The Hard Way这本书一起看,同时开始编程。
先明白编程的目标和原理是最重要的,直接啃无聊的书只会把自己的兴趣抹杀掉。
以上,希望对你有帮助。
你要是决定将来从事计算机方面的专业工作,我建议你去学scheme,
去读一读sicp, the little schemer。
这些才能让你明白为什么计算是一门科学,而写代码不是。正如建筑是一门科学,而砌墙不是。
如果只想做一名赚钱的码农,学什么都一样。那么多公开课随便挑几个看一看,比如udacity上大神Peter Norvig的。
然后在去自己做几个玩具,基本上就入门了。
=====
为什么你觉得没有条理,因为你对这个领域根本没有经验。 就像是手里只有一个手电筒,却要让你探索一大片原始森林,你怎么可能觉得有条理。 人的认知都是建立在已有经验的基础上,你总需要跟自己已有的知识来类比,并且不断修正,才能扩大自己的认知领域。
没开发过软件基本上很难理解oop,学习本身就是一个过程,你需要更耐心一点。另外就是不要只见树木不见树林,死抱着一本书不放。更好的学习资源还有很多。
另外你不要小看递归,the little schemer整本书可以算是就是在教人什么是递归,怎样递归。递归可以算的上是整个计算机科学入门时最重要的概念。去了解一下recursive descent parser,你就会领会递归的强大和美。
作为一名高中生,要把自己的期望定的更高一点。我建议你可以去搞搞编程竞赛,去研究算法,这些东西能让你将来不至于停留在码农的水平上。并且你也能因此遇到一群将来这个领域里最聪明最有能力的人。
你要知道具体的技术具体的语言都是可能过时的,但是计算机里永恒的精灵与世长存。
随便做点啥吧,成绩管理,图书馆借入借出管理,自己的音乐管理之类的,不断的重构,不断加新功能,从单机到CS再到BS再到云端。
初学者强答一下:
对比入门的headfirst来说,其实简明教程这本书整!本!都特别晦涩。第九章对我已经到了不能阅读的地步……需要查找其他的书籍对照理解下。
类=特定数据结构+处理该数据的函数。魔法方法即是对继承的类(object or str, list)中方法的重写,包括操作符,常用函数都可以。还有访问控制和自定义序列的功能。这样即使看上去相同的函数作用于不同的类上,可以有不同的结果,而不会产生冲突。只要创建一个类,“.”后面就可以看见可以重写的魔法方法。总之魔法方法是服务于特定数据结构的。一个例子。
class Word(str):
'''单词类,按照单词长度来定义比较行为'''
def __init__(self,a_add):
str.__init__(self)
self.add=a_add
def __gt__(self, other):
return len(self) > len(other)
def __lt__(self, other):
return len(self) < len(other)
def __ge__(self, other):
return len(self) >= len(other)
def __le__(self, other):
return len(self) <= len(other)
def __len__(self):
return len(self.add)+1
a=Word('a')
b=Word('b')
>>> a>=b
True
>>> 'a'>='b'
False
>>> len(a)
2
我说说我的看法,既然是初学者,那么就是三点最重要,乐趣或者说成就感,条理性以及结构。
乐趣不用说,自学任何东西最强力的驱动力,但是如何保持驱动力,不同的教材有不同的侧重,比如我学python看的《python核心编程》,对于我而言非常合适,后来给几个人推荐过之后发现效果不好,我回头仔细看看,通篇严谨,初学者从这本书找不到一点乐趣,必然pass。所以这方面,可以参考《可爱的Python》
条理性……就个人而言,看到的书一般如果保持了乐趣很少能兼顾到条理的,所以我个人的建议是,学好一个语言,只看一本书是肯定而且绝对不够的。所以,这方面,《Python核心编程》我还是很推荐的。
至于结构,就是从大局观来看了(9神勿怪)。一般来说,书很少,我也还没到这地步,对于Python而言,PEP是不错的文献,然后多看看其他「高贵的语言」比如lisp之类的,这都是慢慢积累的。
除此之外,一本工具字典之类的书也是必要的,比如《Python标准库示例》
手机作答,排版较差请原谅。
#!!!!!!
更新
最重要的是,找个东西写!!实践!!
学习Python是一个很大的范围,最好找个目标,是要做网站开发,还是想做桌面级别的应用软件,或者其他的什么,单学语法当然很没意思,也不条理,也不是不可以,只是效果可能差一点,也容易忘.
你也许刚入门或者没入门,基础浅功底差,有些不知所措都是必经之路,不必着急,只要坚持就行.
我也在看Python基础教程这本书,最近有其他事就放下了,其实还没你看的快,但是有些东西大同小异,要急缓得当,详略适度,建议你先把除项目示例的部分大概过一遍,不要想一次吃透,先理解一些概念,树立一些观念,然后在看第二遍,第三遍,深入理解,把书上的代码多敲一敲,自然也就快得多,这本书最宝贵的就是后面的几个项目示例,当然也需要其他的一些知识,比如网站开发的知识,数据库的知识等等,你需要自己拓展,可以看看head first系列的书,入门很好.
在高中就能学习编程说明你很有想法,我高中学过很少的一点pascal上了大学学其他语言都比其他同学快很多,如果将来你在大学能够进行相关专业的学习,此时的积累也是很宝贵的.
加油.
(五中的同学啊,好吧,估计学习不错~~)