关于学习python的一点小建议

Python是最容易入门的编程语言,没有之一。如果初学者接触的第一门语言是C或者C++,对他们来说最难的不是语法,而是容易出现内存泄漏、指针等问题。有时候排查这些问题对初学者的打击很大,尤其是没掌握排查BUG技巧时。

如果初学者接触的第一门语言是Python,学习曲线则会平滑得多,掌握一些基本语法和Python内置的数据结构,已经可以上手写一些小工具或者小型应用。这对初学者来说,非常重要。因为学习的过程是一个突破舒适区的过程,会面临很多痛苦,如果学习过程得不到激励,很容易半途而废,类似我们开玩笑说的「从入门到放弃」。Python还有很多优点:上手快,第三方库丰富,资料丰富,很容易做出“可见可得”的应用。比如你要拿C或者C++做web服务,这上手门槛就有点高了。所以很多工科学生,甚至是科班学生会问学了C/C++到底有什么用,因为想上手做一些“可见可得”的应用太难。Python就大不同,你想搞Web开发?上来一个Flask框架立马就撸。想搞点数据分析?上来一个Panda+数据可视化,撸起来轻松愉快甚有快感。想抓取什么数据?你自己基于request撸一个小爬虫采集点网站信息,app信息都不是什么难事。

也是因为这样,学习Python的过程几乎接近“无痛”,有很好的学习正反馈过程,学一点知识就能做一点小东西,能看得到自己成长和进步。安利了这么多好处,来看看学Python分几个阶段吧。

如果对python感兴趣,想了解,学习的话,可以点击文末阅读原文

1.基础知识

Python最基本的语言特性和语法:

  • 变量
  • 数据类型与数据结构
  • 输入和输出
  • 运算符、表达式、语句
  • 控制流(顺序控制,选择控制和循环控制)
  • 面向过程编程
  • 面向对象编程
  • 异常处理
  • 组织代码
  • 标准库、第三方库

针对面向对象这一块需要重点的讲一下,为什么会有面向对象?以及我们如何设计面向对象系统?这个思考的过程有助于你理解面向对象编程思想。

可以说「一切皆对象」这句话普适性是很强的,大家都在玩的王者农药,里面每一个对战英雄,每一个野怪,每一张地图都是通过面向对象的思想构建起来的。如果一开始你觉得太复杂,大可把用「分而治之」的思想把复杂的对象break down,分解成多个简单合理的对象。任何复杂的系统都可以由若干个简单可靠的系统组成,多个简单可靠的系统有序地组织起来是可以实现强大功能的。举个例子,还拿农药来说,”英雄“是可以作为一个基类的对吧,每个英雄都有血条,移动速度,AD,AP,物防,法扛等等。李白平A后裔一下,这是对象之间的通信(或者说交互)。后裔放大打中李白,李白眩晕,这一系列的触发过程都可以通过面向对象来建模。

在掌握了语法特点,掌握了面向对象的思想之后,我们应该能够在控制台(windows或者mac的命令行)里边实现一个有意思的程序。这个程序应该解决现实生活中的一个实际问题。比如出现一个职位的发布和管理系统。有以下功能。我们可以录入职位信息。保存到文件上。我们还可以加载职位信息。按多种条件去查询,比如按关键字按城市。按薪资范围。按商圈工作年限等等。

在做这个的过程中,自己需要设计一个很好的面向对象系统。也把Python里常用的语言基本特性都用到了。达到这个阶段算是勉强及格了吧,不过仅仅是在语言掌握层面。如果想当一个合格的研发工程师,还需要掌握很多其他技能。

2. 进阶的阶段

现在的开发大部分是基于web的,比如app要调web接口,pc端肯定也要调web接口,所以我们不能光在控制台里面玩。这个时候需要了解,http协议和Python web开发。我们可以重做前面提到的求职发布系统,学习基于Python web如何实现。这个时候你需要实现若干个接口:

用户端:

  • 用户注册
  • 用户登录
  • 请求首页刷出默认的职位列表
  • 筛选职位列表
    • 根据城市
    • 根据关键字
    • 根据薪酬
    • 根据工作商圈

管理后台:

  • 登录
  • 发布职位
  • 更新职位
  • 删除职位

为了实现以上接口,你需要弄清楚什么是GET,什么是POST请求,什么场景下用GET,什么场景用POST。你还需要明白一个Python web开发框架,要明白一个http请求到了web框架之后,框架做了什么事情,如何在里面实现业务逻辑。哪些数据是服务共享的,哪些数据是用户/请求独享的。

此外,应该学会Python如何操作数据库实现增删改查,大部分的任务都离不开增删改查。比如我提到的发布职位就是create的过程,更新就是update,还有删除是delete,读是read。江湖有一个戏称CRUD boy。

如果能顺利度过进阶阶段,你应该能举一反三实现其他类似系统了。比如现在很火的分销,拼团,还有新闻Feeds等等。

好像我没怎么提数据结构和算法,这个要看个人追求。如果你要在最短时间内学会Python开发,恐怕是没时间学好数据结构和算法了,能掌握自带的数据结构用法就行。如果你的学习时间充足,我的建议是一定要学数据结构和算法。为了以后长期的发展,为了人民币,一定要学好数据结构和算法,我简直苦口婆心地劝啊。

3. 工业界经验

最后一个阶段是实际的工业经验。这个阶段,你应该对公司用的基础架构,如RPC,数据库缓存消息系统中间件,烂熟于心。同时应该掌握最基本的系统设计的技巧。知道如何根据一个实际需求,设计一个高可用,高性能高扩展性的系统。

实际上我觉得第一个阶段是最容易的,第二个阶段会碰到一些坑,有时候不好解决。在第二个阶段,你可能需要比较好的自学能力,或者有一个好的学长导师。第三个阶段需要比较体系化的训练和思考。

如果说你的系统设计能力ok,甚至经验丰富,再加上你不错的算法,你肯定有一份好工作,薪资可能说多了显浮夸,但优秀的应届生很多人超过30w,甚至50w已经是常态了。工作3-5年的过百万的也大有人在。

这个时代,程序员虽然辛苦了一点,但无疑碰上最好的时代了。

PS:辛苦是因为知识更新很快,行业发展也很快,逼着程序员也要往前走。保持学习才是从业者的基本素养,而不是掌握某门语言某门技术。

阅读原文

原文地址:https://www.cnblogs.com/pythonpipiha/p/9830225.html

时间: 2024-10-28 20:59:52

关于学习python的一点小建议的相关文章

给Javascript初学者的一点小建议

本文来自e良师益友网 一般初学JavaScript的时候最头痛的就是浏览器兼容问题.在Firefox下面好好的代码放到IE就不能显示了,又或者是在IE能正常显示的代码在firefox又报错了. 如果你正初学JavaScript并有着一样的处境的话建议你:初学JavaScript的时候无视DOM和BOM的兼容性,将更多的时间花在 了解语言本身(ECMAScript).只在特定浏览器编写代码(Chrome/Firefox/Safari),实际工作中使用成熟的 JavaScript框架(jQuery等

【Python教程】《零基础入门学习Python》(小甲鱼)

[Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609 原文地址:https://www.cnblogs.com/F4NNIU/p/9765629.html

关于PYTHON课程的小建议

我希望老师尽量将讲解有关python语法的时间压缩,将更多的时间分配在讲解python库的应用,python在网络爬取方面的应用,python绘图功能,和python数学统计方面的应用,课堂上可以将一些有意思的python编写的小程序段分享给我们,并用此为模板讲解python具体的语法.然后,在课堂上尽量减少学生讲课的时间和次数(毕竟学生在知识方面和讲解方面的经验都不如老师充足,讲解的一些内容可能会比较模糊你讲解的效果也不如老师讲解的好).实验课上,可以成立互助小组,不懂的问题可以组内成员解决,

python的一点小常识

在Python中,有两种变长参数,分别是元组(非关键字参数)和字典(关键字参数),其参数以一个*开头表示任意长度的元组[tuple],可以接收连续一串参数,参数以两个*开头表示一个字典[dict],即”key:value”,接受连续任意多个参数. ###示例函数### def Variable(*arg,**kwargs): print arg print kwargs print "\n" ###执行输出tuple### >>> Variable(1,2,3,4,5

提高 代码 可读性的 一点小建议

3. UI工厂类 与 代码块 UI工厂类: 其实代码很简单,就是把对Label, Button等控件的属性赋值封装一下, 做到一行代码就能创建一个VIew, 如下图, 虽然这一句代码有点长, 但是习惯之后写个View是真心快 UI工厂类.h

做预解释题的一点小方法和小技巧

在JavaScript中的函数理解中预解释是一个比较难懂的话题.原理虽然简单,寥寥数言,但其内涵却有深意,精髓难懂.如何在轻松活跃的头脑中将它学会,现在针对我在学习中的一点小窍门给大家分享一下,希望能给大家一些帮助: 万事需遵循"原理"--"预解释"无节操和"this"指向:(可先看例题解析然后结合原理进行学习) (感谢蕾蕾老师给归纳的预解释无节操原理:) 如果函数传参数则先于以下执行,就相当于在函数私有作用域下var了一个变量:根据作用域原理,

关于python的一些小的知识点-2

距离上一次写文章已经好多天了,今天,我还是继续说说我学习python的一些小的知识点 python列表采用的是自动的内存管理模式 注意list.clear()和del(list)区别 range()在python中返回的是一个列表  在python中返回的是一个可迭代对象 列表中包含的元素值的引用 删去列表中重复数的方法为set() 切片可以原地修改列表中的值 切片返回的是里热表的浅复制 enumerate函数对字符串和字典同样有效 列表推导式可以解决很多的小问题 像过滤元素,求100以内的素数

python爬取小视频,看完身体一天不如一天!

Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以在这里给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,都放在了文章结尾,欢迎前来领取!python爬取小视频记录学习python简单爬虫小程序,记录代码和学习过程环境信息python 2.7.12分析与步骤 要分析网站信息 http://www.budejie.com/video/ 查看网页不同页面的信息http://www.budejie.com/video/2http://www.budejie.

可以从哪里入手Python编程 怎么专业学习Python

可以从哪里入手Python编程?怎么专业学习Python?Python适用于网站.桌面应用开发,自动化脚本,复杂计算系统,科学计算,生命支持管理系统,物联网,游戏,机器人,自然语言处理等很多方面.而且,既使对于那些从没有开发经验的人来讲,Python的代码也是简洁易懂的.所以,有不少人会选择Python专业的学习. 大家完全可以去实地进行考察.大家可能不知道为什么要费尽周折地去看,实际上很简单:要想掌握好Python技术,要想找到好工作,没有找到靠谱的是不行的,因此一定要重视起来. Python