Adviceforcoding_DAMA - aJiea/OMOOC2py GitHub Wiki
#大妈对编程学习的建议
以下内容整理自大妈9月15日在开智 Python 预备班微信群讲座中的答疑.
本次讲座讲演视频请戳究竟什么是编程.mp4 / 讲演幻灯.
Q1: 请问大妈,看完"笨方法学python"之后,开始学习哪本书或做哪些习题?
A1:如果笨办法学python你看完了,其实已经用不着再看其他书或者做什么习题了,因为你只是看了这本书,没有把里面的所有练习做了,说明你并没有打算真的入手开始学习python或者进入编程世界. 其实笨办法学python. 前二十课真的全部理解了你就已经入门,可以去开始开发几个软件了,那么之后再学习什么书,得根据你想解决的领域问题. 自己查,自己装,自己做完全自在啦!那么做习题. 嗯,这个事我就不吐槽了.
Q2:对于一两年经验的大白程序员来说,如何才能超越笨办法,学习更复杂的新技术?
A2:学习复杂的新技术,如果这是你的学习目标,那么我劝你重新再找一个目标. 因为新技术从来都是为了新应用而发明出来的.
如果你只是为了学习新技术本身,而没有关注这些新技术诞生时所服务的全新网络社会. 没有习惯新的应用,用户,网络交互体验,那么你永远无法通过编程上升进入真正的这个异世界. 去玩,去折腾,而不是就是为了技术而技术.
Q3: 想问大妈刚学python时做了哪些有趣的项目,分享下在github上合作的过程. 初学者有哪些项目可以推荐.
A3:我当初学PY就是通过一个自己拍脑袋想出来的一个项目来完成的,就是自动的天气预报.
2002年,我通过抓取国外一个天气预报网站!中国上海区的天气预报. 每天定期执行来对我进行一些提醒. 就是这一个. 大概前前后后一共才不到一百行代码,但我改了将近有一个月. 一个月前后有近十个版本,但是在这个过程中衍生出来的各种各样的尝试,让我把基础PY的一些功能给掌握住了,那么初学者用的哪些可以推荐,看我写的这个"蠎周刊"吧.
|蠎周刊 |汇集全球蠎事儿 !-) http://weekly.pychina.org/
Q4: 关于学习习惯的养成,怎样形成可持续的正反馈?
A4:好,第四个问题,学习习惯可持续的正反馈. 但是就我来说,给大家最强烈最强烈最强烈最强烈的建议就是,坚持写你自己的私人技术博客.
把你在学习或者说使用python的过程当中,无论是成功还是失败经验,清清楚楚明明白白的记下来,而且以非常友好的,至少是易读性足够的形式持续发布出来.
坚持下去,那么你就会发现正反馈会汹涌而来,甚至是你写的是失败的经验都会有汹涌的正反馈回来成万里长城.
Q5: 怎样阅读django的源代码?
A5:如何阅读django的源代码?我这个任务我自己都不会做,为什么呢?阅读django的源代码的目的是什么,如果目的是参与django的开发共建,那么很简单,照着他的这个执行顺序,一个类一个类往下钻就行了. 如果是为了解决当前django的问题,那么应该向官方去反映,如果真是为了想理解一个外部框架,它的设计原理或者说实现方法和技巧,那么应该从简单的开始,django现在发展的太快太快,那么我建议如果你真心想读django的源代码,找出django最早一个版本开始看.
Q6:Python相比其他语言而言,容易在最短的时间做出效果让人产生成就感的语言?
A6:最短时间做出效果让人产生成就感的语言,如果是以这个标准的话,任意一种计算机编程语言都有这种让人非常轻易的获得成就感的作用,为什么呢?因为计算机语言它无论这个语言怎么设计?只要是正确的写出来 都能够立刻执行. 操作你想操作的,无论对象也好,数据也好,系统也好,那么,这种像上帝一般的这种操控感,是任何计算机语言天然就有的. 只不过有的形式上好一点儿,有的这个叫库多一点儿,但是这种和世界对话的操纵感是所以计算机语言共通.
##Q7:一开始学习的话,项目架构方面要不要注意,可扩展性方面要不要注意?基本开始都是用面向过程去考虑问题. 如何提升自己面向对象和函数的思维模式? A7:一开始学习语言的话,架构方面要不要注意,可扩展方面要不要注意?当然要注意!为什么呢?这个就是编程的文学系. 而后面的一半问题 如何提升对象和面向函数的等等思维模式. 跟我们学英语积累的的语感一样,写得多了,就有了.
你如果硬是要把一些像背这个围棋棋谱一样把它们背下来,硬套到某一种情景当中去用,那就本末倒置了. 从我个人而言,我从来不用面向对象的编程方法,函数呢也没有着意去用. 只要自个儿觉得爽 能够表述得清楚自己的整个架构意图,就去用.
Q8: 请问大妈:您在学习Python过程中,通过什么方式从"入门到熟悉"进阶"熟悉到精通",让自己可以不走弯路的学python?
A8:好,第八个问题是问入门熟悉和精通的这两个门槛!那我写PY的也超过有11年了,至今我都没敢说自己精通了PY. 所以这中间是否有弯路我不清楚,但是无论学PY还是学其他编程语言,唯一的一个门槛就是享受编程.
让编程变成自己的一种思维模式,用编程来解决具体问题,而不是为了炫技,考级或者写书等等一些很无聊的命题而去学,这个心理门槛一定要过去. 而且不是强迫过去,自然而然过去的.
Q9:怎么避免自己的工作学习的复杂度像耳机线和意大利面条那样纠结?
A9:对于复杂问题的控制和理解,这个跟编程思想非常有关联. 那么,其实就我来说 我的一个直觉性建议是'承认复杂性,然后去尝试'. 你当前自己的理解,列出问题的分解路线,然后逐级去尝试解决.
一般来说,感觉到问题的复杂,恰恰可能并不是问题本身复杂 而是我们对问题本身了解不够不够充分,那就用解决方法的路径去刺探它!当我们对问题真真正正能够定义清楚了之后,这个问题就不复杂了,有了解决方法.
修改记录
- 150923 闪闪从 2.OMOOC.Py 整理迁移