学python发现学一门编程语言很难,有哪些学好编程的方法或技巧?

回复内容:
最难的编程语言是哪门?不是c++,不是lisp,而是你的第一门语言。这门语言哪里最难?入门最难。比如下述代码:

print “hello world!”

作为一个从python慢慢起步,学近2年的人,我分享如下,望用之而非误人子弟。1.快速入门《pe into python http://woodpecker.org.cn/peintopython/》这个教程是快速入门的典范,记得入职第一天主管就让我看这本教程,两周的时间看完,能掌握python基本的语法。如果你需要更加哈皮些,可以尝试《head first python(中文版)》2.进阶入门《python核心编程2》,这本书分基础和高级两部分,最重要的就是扎实基础,去年买的这本书,已读不下三遍,每遍都是新的感受和总结。然后在进阶python高级部分,如正则,多线程,多进程,网络编程等。3.实战部分在学习过程中,光看书是不够的,实战最重要,所谓学以致用,如在《python核心编程2》中课后练习题/学一些小脚本/等,这里提供几个站点,用于python脚本实例的学习:(1). 代码分享列表 — python(2). python代码库(3). https://searchcode.com/(4). github最佳选择,多search一些相关项目,看看人家的代码,抄轮子!!4.高阶入门python高级部分的学习可参考《python核心编程2》,不够这些是远远不够的。我们可以从以下书籍中汲取新知:(1).《编写高质量代码:改善python程序的91个建议》(2).《深入理解python》5.python库的学习学习python 常用的标准库以及第三方库,具体可以参考这里python 常用的标准库以及第三方库有哪些?网上热售的《python标准库》个人建议最好不要买,去年入手一本,翻来看看让人后悔。这些知识python官方文档已详尽,其该书翻译的’差强人意‘。6.网站推荐学习(1). 学习python编程的11个资源 (这里着重推荐:online python tutor:python 初学者的好帮手,通过这个工具,教师或学生可以直接在 web 浏览器中编写 python 代码,并一步一步可视化地执行程序。online python tutor)(2).python – 标签 (cnblog 网友vamei 的python总结)(3). python – 中国zope用户组(4).pyzh — 一起写python文章,一起看python文章7.应用开发网站开发– django,flask, tornado。(文档都比较齐全)游戏开发 –pygame 图形界面开发服务器开发大数据(目前较 )《python自然语言处理》,《利用python进行数据分析》这些在学习的过程中会慢慢接触,比较推荐django。对于api开发,比较青睐异步网络框架tornado,对于小而美的web服务推荐flask更加pythonic.python学习道路平坦且遥远,我一直在探索的道路上,一步一个脚印地去诠释python之美……更新于2015/12/21回想起来,从2013年初到现在,关于python的学习一直没中断,这里再推荐一些书籍或方法。巩固类:《python学习手册(第4版)》床头,案头,枕头都可必备之,基本涵盖python相关基础知识,对于巩固学习是不错之选。python3:《pe into python 3》或者看看 @廖雪峰 前辈的python3教程 python教程 – 廖雪峰的官方网站进阶类:《python cookbook 中文版,第 3 版》,《python高级编程》,还有一本法国人写的《python高手之路》在进行python服务器开发,总逃不过网络编程这个字眼,个人推荐书籍如下:《unix网络编程 : 第1卷:套接口api(第3版)》《python网络编程基础 : 使用python构建网络程序的综合指南》《linux高性能服务器编程》个人觉得环境很重要,一个了良好的公司环境和开发环境能让你事半功倍,多和同行交流(除了同事,大牛外,还有github, 知乎,stackoverflow等平台),切勿闭门造车。
求大家别推荐那些心灵鸡汤一样的书好吗?大家拍着胸脯说,那些书真的更有利于主学会编程吗?题主说 python 难,大家也不想想他为什么觉得python 难。他有可能是觉得 python 语法难吗?那不是违反常识吗?明显是题主在编程的时候没明白自己到底在做什么。建议题主买本小册子,学学 c 语言。真心的。花同样的时间学习 c 语言并不能让你更快的做出软件来,但是能更快的让你了解你到底实在干嘛。我也是半路出家学编程的,我很理解跟我一样半路出家学编程的人最终没学到能靠写代码上班的程度,不是因为智商低也不是因为记性差,而是他们没有办法吧代码和现实中计算机里发生的事情对应起来。很多书籍对这种情况的解决方法是想当然的,他们认为接口封装的越高级,语言设计的越“自然”,就越有利于学习。但实际上是,越高级的接口和语言,越有利于用户借由这些学习更复杂的知识,但并不有利于学习编程本身。尤其是现在的高级语言,越是用起来简单的,越是混合了面向对象,模板,函数式编程等高级的编程模型。这些东西往往和最基础的东西混杂在同一本教科书里,让新手更是一头雾水。题主你就去买本《the c program language》或者别的也行,认识一下内存和cpu,理解一下变量和变量类型是什么,if 是怎么回事,c语言代码是在说什么,编译又是把什么变成什么。这些东西能给你一个整体的把握,再回头看 python 至少感觉上不会看一页半页不知道在说什么了。当你用 c 语言写过几行代码之后,你就能了解为啥会有 python,它简单在哪儿,为了这个简单,它引入了什么概念。以及,先别管什么面向对象,其实大部分程序员也说不明白那是个什么。我原来有个同事,做生产的,业余比较爱好编程,他们部门里内部使用的小工具都是他用 vb6 写的。还被借调到研发来参与开发过 mis 系统。那时候我是实习生,他其实水平比我高。有一次他要考什么证书,有天跑来问我什么是指针的指针……我以为他消遣我,没想到是真不知道。另一位前同事大哥,据说本科学软开的,做过 java,做过.net,据说还 web,跑我们部门来写 c++,有次出差调 bug 调到后半夜了都,我寻思着帮前辈看看问题呗,然后就赫然看到这位老人家在代码里把 mutex 建在堆栈上想用来锁函数……你说他不能干吗?挺能干的。你说他外行?也不能算外行。但是……有些事情就是这样,你最开始没搞明白你在干什么,时间越久,麻烦就越多。
我一直反对python作为第一门语言。python对有基本的程序概念的人来说很简单,但对于新手来说真不一定算简单。(我说的新手,是一点点c都没学过的,你们很多人,其实在本科是学过c的,只是你没学会而已,但是很多东西是有概念的。)写起来简单不代表概念简单,很多我们认为理所当然的概念,一个完全没有基础的新手是很难理解的。比如动态类型和duck typing,很可能一个新手连数据类型概念都没建立啊。比如自省,新手会有概念么?没有编程经验和数据结构概念的话会不会很难理解列表和列表解析为什么重要、字典有什么用?还有lambda,高阶函数,generator和python的那一套oo机制等等?我还是觉得,入门就两条路:一是汇编+c或pascal之类的;二是sicp(scheme)。这两条路,一条从计算机入门,一条从数学概念入门,踏踏实实把基础打好,入了门之后再考虑其他的。嗯哼~
如果你会一门编程语言。学习python几个小时就可以拿来用了。如果你零基础,对编程没概念。那么你可能需要3~6个月才能理解什么是编程。对于非英语国家来说,理解编程要花更多的时间。因为编程本质上就是描述。但是非英语国家看着一堆抽象的英语字符把编程大大的神秘化了。
从sicp开始学起,这会让你更好的理解大学中的一些数学课程,甚至对统计产生兴趣….然后你就可以丢掉python了
顶楼推荐的《pe into python》是一本很糟糕的书,时至今日,此书对初学者或其他语言程序员都已无帮助此书成书于10年前,很多内容已经过时(当然这不是重点)重点是这本书根本没有为编程新手考虑过。例如本书第一个程序如下,我就不知道作者在想什么了,反正当初我看到后就崩溃了(当然啦,人家说了是为有经验的程序员编写的)

def buildconnectionstring(params):
“””build a connection string from a dictionary of parameters.
returns string.”””
return “;”.join([“%s=%s” % (k, v) for k, v in params.items()])
if __name__ == “__main__”:
myparams = {“server”:”mpilgrim”, \
“database”:”master”, \
“uid”:”sa”, \
“pwd”:”secret” \
}
print buildconnectionstring(myparams)

首先我想说的是,对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一个初学者首先关心的。也可以说开始让你觉得困难的地方不一定是语言的本身(如语法syntax等),而是整个编程的思想和编程的结构。事实上你所学习的python语言的语法和操作方面,比起c/c++和java等语言来说呢,算是对于初学编程的人来说相对比较简单的入门的了。 在学习编程之前,你的理解什么是编程,为什么我们需要编程?了解好了我们要学习的对象我们才能知道从哪个方面下手把它学好。至于我自己的理解呢,狭义上编程其实就是对于不同语言写出不同的代码(什么是编程?),而编程的目的就是通过编程语言来和计算机交流并且操控它为我们工作,实现我们需要的东西(算法algorithm等)(为什么我们需要编程?)。然而具体根据我们需要实现什么来选择编程语言,比如对于安卓来说,就是java,xml等,对于ios来说,就是object c之类的。因此正如我之前所描述的那样,编程语言是为我们与计算机交流所服务的,就像我们学习世界上某个国家的语言是为了与某个国家的人交流,而不是为了学某种语言而学习某种语言的,语言不是我们学习编程的最终目的,恰恰是开始! 在了解了我们为什么要需要编程以后呢,我们再来讨论下该如何把它学好。其实编程的入门呢,应该是一个学习编程思想,深入理解什么是编程的一个过程。而至于选择什么语言呢最开始其实并不是那么重要,甚至可以运用伪代码来学习,但是为了方便初学者学习,能实际实现的语言更加能够让初学者理解编程。这也就是说为什么大多数学校(至少是大多数美国computer science(计算机科学)本科)的第一门课叫做intro to computer science with xxx language(用xxx语言实现的计算机科学入门)。再次不厌其烦的声明,这里的with也是说明了后面的xxx语言是为了辅助我们学习计算机科学入门的工具,计算机科学入门才是我们的重点,而不是叫xxx语言课。这里也不得不吐槽,一些国内的计算机培训机构为了能迅速培养程序员而专门鼓吹某某语言强,而只专注于培养学生编程语言学习的本身。这样培养出来的只能是仿照他人的程序调用者,而不是自己曾经希望的计算机科学工作者。 好了,说了这么多大话,下面来一些干货,让你对计算机科学入门能够快一点。 计算机科学入门的第一课除了我之前说的那些为什么要学编程,什么是编程的一些理论话以外,第一个实际的东西就是所有程序员都知道的hello world(至少对于大多数情况下来说)。在python中就是: print “hello, world!”在java就是:public class classname { public static void main(string [] args) { system.out.print(“hello, world!”); } }在c++就是: #include int main{ std::cout

Posted in 未分类

发表评论