如何由会语法到真的会写程序?
自学编程。
以前学过C++和VB,程度都只是会语法。
现在比较深入地学习python。
完整看过《byte of python》,《dive into python3》,《python核心编程》,官方tutorial,看过《head first python》等。
现在在看djangobook,基本上也可以进行网站制作实践。
有个问题很困惑,就是我很难跨越由会语法到会写程序的那个障碍。
那种思想该怎么培养?
我们平时看到的软件都是一个大项目,但是我们写的代码都很小,假如我要去写一个大项目,我不知道从哪儿开始。
感觉像django这样做网站的就比较容易操作一些,因为基本上要做什么,都是根据需求来定的。
针对我的情况,我该如何去学习呢?有什么书籍,实践推荐?
我希望培养那种思想,然后也提高python的技能。(python3)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
其实和英语差不多,你学英语的时候老师不只是教语法对吧,甚至语法可能都不是最重要的一块对吧
上课的时候,比起语法,更多的时间是在讲“课文”对吧(经典代码)。你需要背“单词短语”(熟悉常见类库),需要做“阅读理解”(看别人的代码),最后还要自己“翻译”、“写作文”(移植一写或自己写一些项目),还要会“完型填空”(debug)。
扯远了,总之就是撸起袖子写程序。其实我可能很难给你什么建议,因为我自己掌握编程语言的路径可能和很多人(至少包括你)完全不一样,我从来都不看,尤其是入门阶段从来不看语言相关的书。第一次买语言相关的书是蝴蝶书,但翻完以后发现几乎啥都没学到:蝴蝶书里的内容我全都已经知道了!丫只是整理了一遍而已。
撸起袖子开始写程序,写出错了去修,看别人的程序怎么写;过三个月以后好好看看自己三个月以前的程序是多么丑陋。查文档,搜Google,然后慢慢熟悉慢慢进步,这就是我的编程学习之道。
像我一样不看书学语言有可能是个坏习惯;但太过依赖书,看完一本又看一本而不去实践,肯定是个更坏的习惯。所以给你的意见就是千万别再看书了,一行也不准看,赶紧写程序去,你觉得你不知道从哪儿开始写大项目,正是因为你根本没开始写!
不建议刚掌握语法就大项目,除非你有其它语言的大项目经验,否则作者的设计会让你困惑、研究的过程耗费时间,这些都反作用于你技术的提高。
从小程序开始写起,不用考虑什么程序设计,是不是用到某种特性,只要完成就好。网上演示有很多,搞清楚每一行代码的意义,反复一段时间,基本能写出可以跑的小玩意。
然后重新看自己的代码,针对语言特点进行优化,该用什么包什么库、是否要用类、怎么组织,有这方面经验之后,开始研读那些典型的开源程序源码,接下来要做的是能使用它们进行二次开发,有一定二次开发经验之后,可以逐步上手开始设计程序、
题主的问题是这样的么:
如果是这样, 个人觉得, 那就拿 django 写个应用出来, blog, todo, 或者问答系统等等.边写边做的时候就会发现很多问题要一个个解决.
自己经历了过程,再去看看别人的项目代码,就会慢慢发现代码组织问题.其实问题很简单,自己没有经历过,就很难看懂为什么别人要这么组织,等自己走了那些坑,就自然而然的会模仿学习...
BTW flask的代码组织相当 pythonic
补充 python3 有个《Python 3 Web Development Beginner's Guide》 可以一步一步由 python3 写一个 网站的过程.
看别人的代码
看书的时候建议先浏览一下内容,看一下该书面对的人群。个人觉得你看过的那些资料其实很多重复。(不是说不是好书)。
其实大的项目并不等有优秀的项目,也不一定能够交给你怎样编程。我建议可以找到一个你想用Python解决的问题(比如写个BT客户端),想想你如何去解决,试着动手开始写,最后找到优秀的开源程序,对比学习。
有点信心。
再大的项目,也是由很土炮的一两个小模块开始的,其实说穿了“大”本身并没有什么特别精妙的地方。
从小程序走向大软件,值得学习的思想和手段有:
我之前和题主有一样的困惑,早期也是看各种书,解决书里的各种问题。
然后在书看完后,我有种不知所措的感觉,似乎书里的东西都会了,但是……我拿这些东西做什么?怎么做?
现在有点明白是怎么回事了,那就是你为了什么才去学编程的?你学了编程有没有什么想要去创造的东西?
我回想了一下是因为自己想创立一个网站,但是能力有限,只能自己写,所以就想要学编程,现在回顾了一下自己书里看到的关于Django与python的内容,脑内有了一个关于写网站的一个思路和想法了,虽然很幼稚和粗糙,但是事情总要有第一步,上个月一直在尝试动手写,在写的过程中遇到了各种各样的问题,在解决这些问题中,我觉得学到的东西比起单纯的看书要来的有用的多的多。而且对于如何写web也有了更深的认识。
说白了,就是别老看书,直接上手写,写到不会了,去翻书,这样比单纯的看书一边看一边望来的有效的多的多。写得多了,经验多了,你自然就知道如何去写大型或者更高级的程序了。
还有一点,就是你学写程序有没有自己想要创造的东西?我见过很多人每天对着书上的东西津津乐道,在网上和别人吵的风声水起,但是他们没写出过任何有用的东西。
楼主的心情十分能理解,我就是一直在做大项目里的各个小功能,我心里就是想知道一个完整的大项目是怎么开始从前端后台到服务器的,1.有个师傅带事半功倍2.看书要实践,不实践看完就基本忘了,而且书中的很多知识大都在工作用不到,所以,对于一些用不到的一眼带过,主看工作常用的3.写笔记记录做过的每个功能 每个走的坑 积累起来 一个大项目就出来了