志在指尖
用双手敲打未来

如何学习python(如何学好python编程)

如何学习python

每个人的主页都是相同的布局和风格,例如最上面的菜单查找栏,色彩切割,左面显现动态等,右边是个人信息等,然后详细的内容却因人而异——每个人的头像,名字,动态都是不一样的。那么知乎是怎么确保每一个人看到的都是自己的主页呢?
你可以把这个相同的布局幻想成一个模板,里边有一个个空格子,当你用你的账户登陆页面时,幻想你的电脑里有无数个小人依据你的账号从知乎后台的数据库里取出你的头像,动态,认证信息等等内容,然后对应着模板上规定好的方位,把对应的内容填进去。这些小人的动作实在是太快了,以至于你觉得这是在瞬间完结的。
上面所说的模板便是MVC中的V,是View的缩写,担任显现。这样做的优点在于,假如知乎有一天忽然想改动一下个人主页的风格,那么只需求改动这一个模板,然后几千万注册用户的主页就相应的变化了,由于模板是共用的,是不是省了许多工作?(早期的Web开发可不是这样哟,你或许要一个个用户去改,十分麻烦。)
而这些小人除了摆放内容,它们真正担任的是业务逻辑,咱们把他们叫做Controller,也便是MVC中的C。例如当你登陆的时分,这些小人要查看你的用户名是不是精确的,假如精确,它们要去数据库里取出你请求的信息等,假如用户名过错,它们要拦截住你的登陆。它们的职责还有许多,无法一一列举。在实践中,这些小人做的工作其实便是Python(或者其它脚本言语)做的工作。
终究,MVC中的Model其实便是传给View的数据,包含上面的头像,用户名,动态等因人而异的数据。这些数据在知乎服务器上是以数据库表格(table)的形式存在的,你可以把它们幻想成许多不同的excel表格,不同的表格储存着不同的信息,有些记录着知乎用户的个人信息,有些记录着回答,有些记录着评论等等,而这些表格之间又互相联络,当你在知乎的不同网页间跳转的时分,上面说的那些小人就依据你的要求,组合对应的表格取出对应的数据,然后把他们放到模板对应的空格里,发送给浏览器。然后浏览器依据你写的CSS,用不同的色彩,大小等等,将数据很漂亮的显现出来。
这样做的优点是什么呢?尽管你终究在浏览器里看到的是一个完好的页面,可是在后端逻辑上它们都是区分隔的——模型(M),视图(V)和控制器(C)的区分就确保了较高的可维护性——我可以随时修改主页的显现并看到效果,同样我可以随时参加一些业务逻辑。
假如你的学习坚持到这儿了,首要要祝贺你。其次你或许现已知道一些十分老练的PythonWeb结构了,例如Django,Flask等等,而且你或许看到了许多小白教程教你直接使用,究竟大部分人或许觉得没有必要重复造轮子。
本来为了省劲,我也计划直接用结构。我是在规划数据库的时分,其时在看SQLAlchemy文档,觉得相对自己的项目SQLAlchemy过分复杂,所以我决议自己写自己的ORM(名词不理解不要紧),这关于其时的我来说是一件难度十分大的工作。于是我投入了极大的精力每天都在看关于SQL和Python相关的教程和资料,Python中心编程(第二版)给了我很大的启示。在自己完结了ORM后,又写了URL处理函数,同样没有用任何现成的Web结构。
现在回头看,我以为这一段时刻的造轮子是提升编程才能最快的时分。比方为了写ORM,就必须去花许多时刻学习SQL,去了解Python里边的metaclass,而假如用一个现成的结构,我很有或许偷懒不去关注某些细节。而不出问题还好,一旦出问题,我就只能跪。别的,造轮子迫使我在开始的时分就构思整个结构,由于我必须尽或许的考虑到一切的情况,于是就会不断的强逼自己完善常识体系,和他人的代码作比照然后改进自己的,这个进程充满了无尽的挫折感,可是得来的成就和高兴也是无可比拟的。
SQL书本:SamsTeachYourselfMySQLin21Days
Python:Python中心编程(第二版)
Github上的优质Python资源:CodementorIO/Python-Learning-Resources
进程中还牵涉到布置,我的网站是跑在Linux上的。关于布置网上有十分多的优质教程,一搜一大把。这儿就不再赘述。
这些是我学习大致路线,当然进程中充满着小的磕磕绊绊,尽管网站上线了,貌似运行还比较顺利,可是假如以一个程序员的规范来要求自己,自己依然十分菜鸟。不过我并没有以前那样惧怕技能了,就像你理解魔术的背面的原理后,会更多的考虑原理自身。
2.自学编程需求注意的问题
许多人都推荐小白第一门言语选Python,由于语法简单。这句话只说了一半,Python的确简单上手,对初学者的门槛很低。但我发现,关于小白真正的门槛在于体系常识,这就和用什么言语彻底没有任何关系了。例如许多人学完了Python的语法,觉得的确简单,可是转头去用Python规范库的时分,却发现自己连文档都看不理解。规范库供给了Python和其它体系功用的接口,终究实现了Python和体系之间的互动。读规范库需求体系常识,比方操作体系,数据库,进程和线程,socket编程,网络协议等等,这些关于编程小白来才构成很高的门槛,可是只要学会这些,才能真正发挥出Python的威力来。
这也是我觉得自己的阅历对小白是有价值的一个原因。由于规划一个动态的网页是一个很不错的练手Project。建立网页(WebApp)会强逼你了解从你在浏览器里键入地址按下回车到网页显现在浏览器的进程中,浏览器,网络,服务器都干了些什么。详细到技能上面,你不得不去学习前端的HTML,CSS和JavaScript,后端的脚本,数据库,操作体系等。也便是说,这个进程可以促进你去自动学习上面说到的体系常识,假如你再做别的一个项目,你就不会像现在这样无从下手,而有才能去进行一些技能性的探讨,所以我以为这是一个十分好的练手项目。
2.1一定要空出时刻补充理论常识
许多人会着重learnbydoing,边做项目边学习,这也是我自己采用的方式。在这种方式中,你不断犯错,改正……学习功率十分高。可是,许多人走了极点,终究的成果便是不注意理论常识的学习。你会发现自己Google的才能越来越高,可是真实的编程才能并没有得到提升。假如有这种情况,你需求反思一下。
一种或许是你过分于依赖各种老练的结构,成果编程就变成了用「胶水」去粘合不同的结构完结需求。就好比你的WebApp用了SQLAlchemy,尽管自己不太懂SQL,可是网站跑的也还不错。这时分假如数据库出现了问题,那你就只能跪了。
别的一种或许是你彻底沉溺在做项目中,疏忽了学习理论常识。做项目尽管充满困难,但回报是强烈的成就感,很简单沉溺其中。我觉得这是极端过错的。首要半路出家的程序员都没有经过体系的学习,没有形成自己的常识体系,假如你不理解数据结构,算法复杂度,操作体系这些理论,那么你能到达的高度就极端有限。所以,在每天做项目的同时,一定要确保抽出一定的时刻,恶补理论常识。这部分的书单在豆瓣和知乎上都有许多总结,可以自行查找。
2.2不要太纠结于无意义的问题
比方什么结构好,XX言语比XX言语好啦这种问题。前期确认了练手项目,就去专心堆集代码量,堆集基础常识。那些你现在还看不理解的炫酷技能你慢慢也就能理解是怎么回事了,反而没有基础,再炫酷的结构对你而言都是天书。
2.3学会提问
好问题是建立在你自己现已实践或者考虑的基础上问出来的,这是对自己的担任,也是对他人的尊重。不要一遇到困难就喜欢直接上网查找:「这个问题是怎么回事啊?」,「我不理解你能不能帮我看看……」。
2.4学好英语
THEENDPython

如何学好python编程

在学习过程中,很多小伙伴常常抱怨,计算机编程言语种类太多,底子学不过来,或许用了Java很多年,忽然最近的项目需求用Python,就感到手足无措,压力山大。
再举个比如,Facebook的干流言语是Hack(PHP的进化版别),但关于刚刚入职的工程师而言,100个里至少有95个之前底子没有用过Hack或许PHP。不过,这些人上手都特别快,基本上只需求1~2周,日常编程就变得毫无压力。
那么,他们是怎么做到的呢?
编程言语都是相通的
首要,假如你具有必定的编程基础,触摸一门新的编程言语时会发现,不同的编程言语之间其实是相通的,由于编程言语本便是人类操控计算机的一系列指令,即便是不同的编程言语,它们在语法规则方面也迥然不同。
因而,在原有编程基础上再学习一门新的编程言语,并没有那么难。学习过程中,首要要做到的便是清晰区别。例如,学习Python的条件和循环句子时,可以比对C言语或许C++言语的语法是怎样的;学习Python中的字符串相加时,可以比照Java言语中字符串相加的语法。
除了可以清晰区别各编程言语的不同点,还要能将它们联系起来灵活运用。比如说,Python言语的优势是拿手数据分析,因而它广泛应用于人工智能(AI)、机器学习等领域(例如机器学习用到的TensorFlow框架便是用Python写的),但是涉及到底层的矩阵运算等操作时,就需求依赖C++言语,由于它的速度快,运行功率更高。
事实上,很多公司都是依据不同的需求选择不同的编程言语进行开发。究竟,哪怕仅仅几十到几百毫秒的速度差距,对用户体验来说都是决定性的。
Python对初学者很友爱
假如Python是你触摸的第一门编程言语,那也不必忧虑。我们知道,虽然同为人机交互的桥梁,但Python比C++、Java等,言语更简洁,也更接近英语,对初学者很友爱,这也是Python言语的一个显著特点。
关于初学者来说,要做的便是专注于Python这一门言语,清晰学习的要点,把握好学习节奏,由浅入深按部就班地学习。依据自己多年的学习工作经历,把编程言语的学习分为以下3步,不管你是否有编程基础,都可以对照着来做。
1)多实践,堆集代码量
任何一门编程言语,其包括的常识面都是非常广泛的,从基本的变量赋值、条件循环、到文件操作、并发编程等,千万不要比及把所有常识点都学完了才开始操练,由于到那时你会发现,前面十分困难记住的常识都忘记了。
学习编程,是十分考究实战的,没有捷径可走,越早操练,练得越多越勤,学习效果就越好。
2)时间注意代码标准
学习编程言语,在追求快和高效的一起,每一种编程言语都有必要的编码标准,必定不能忽略。
要想成为一名优秀的程序员,从起步阶段就要刻意地去培育自己的编程标准。例如,在刚开始编写代码时,不要将本来多行的代码全部写到一行,也不要随便用a、b、c等字母作为变量的名称。
3)开发经历是必不可少的
要想真实熟练地掌握Python(或许其它编程言语),具有大中型产品的开发经历是必不可少的,它会让你站得更高,望得更远。
例如,我们简直每天都会用搜索引擎,但你了解一个搜索引擎的服务器端实现吗?这是一个典型的面向对象规划,需求界说一系列相关的类和函数,还要从产品需求、代码复杂度、功率以及可读性等多个方面综合考量,一起在上线后还要进行各种优化等。

未经允许不得转载:IT技术网站 » 如何学习python(如何学好python编程)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载