初学者学习python的几个建议

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

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

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

1.基础知识
Python最基本的语言特性和语法:
变量
数据类型与数据结构
输入和输出
运算符、表达式、语句
控制流(顺序控制,选择控制和循环控制)
面向过程编程
面向对象编程
异常处理
组织代码
标准库、第三方库

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

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

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

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

  1. 进阶的阶段
    现在的开发大部分是基于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开发,恐怕是没时间学好数据结构和算法了,能掌握自带的数据结构用法就行。如果你的学习时间充足,我的建议是一定要学数据结构和算法。为了以后长期的发展,为了人民币,一定要学好数据结构和算法,我简直苦口婆心地劝啊。

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

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

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

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

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

推荐自学教程:http://yun.itheima.com/course/542.html?mcgcsdn

初学者学习python的几个建议相关推荐

  1. 没有电脑可以学习python_有没有适合初学者学习Python的方法?

    1.最好不要被开发工具的选择所束缚,简单直接 要学习编程语言,首先找到联合集成开发工具似乎是一个自然的想法.为什么不呢?IDE可以自动校准,点击运行,还可以调试断点.使用IDE开发项目就像驾驶室内豪华 ...

  2. 初学者学习Python,掌握这些实用小技巧能快速入门!

    在开始今天的话题之前,我们先讨论一个问题:编程初学者应该学习什么语言好? 每年每天都会有很多新入门的同学提出这个看似简单却又让人一下难以给出准确答复的问题.作为新手,纵然自己抓破脑袋,凭空也想象不出哪 ...

  3. 学习python入门的个人建议及资料

    作者:黄海广 以前好多人使用matlab(octave)做机器学习的,吴恩达老师以前在机器学习课也是用matlab(octave),但近几年,python已经成为机器学习热门的工具,吴恩达老师的深度学 ...

  4. python变量使用前必须先声明、并且一旦声明_初学者学习Python的30天‍-第18天-文件处理...

    前文 最近不是出了一个30天的Python教程,有很多人私信我说没有资料怎么跟着学习,现在他来了https://www.bilibili.com/read/cv9383238 今天,我探讨了如何使用P ...

  5. 初学者先学python语音好吗_献给Python初学者 零基础学习Python能学会吗

    献给Python初学者 零基础学习Python能学会吗 时间:2018-01-08     来源:零基础学习Python方法讲解 零基础学习Python能学会吗?这个问题几乎是所有初学Python的小 ...

  6. python需要基础吗-没有任何基础,要怎么学习Python?

    零基础学习Python 编程语言咋入门,我总是遇见很多人问这个问题,听很多人说在网上买了一本书,看了一些视频,但是感觉学的不好,而且进度慢,走了很多弯路.有句话说是方法不对,怎么努力都白费,今天我就说 ...

  7. 学python五大理由_学习Python的五大理由

    Python已经是25岁的大叔级编程语言了,但近年来Python反而变得越来越流行,在TIOBE编程语言指数排行榜中,Python的排名从去年的第八名飙升到了第五名(下图). 无论是编程新手还是保持饥 ...

  8. Python大神告诉你,学习Python应该读哪些书!

    关注头条号,私信回复资料会有意外惊喜呦------最后一张照片有资料呦. 在传统的Web开发之外的领域,Python开发人员的就业机会越来越多,无论你是初学者还是大神,现在正是投入到Python学习的 ...

  9. 32岁了学python来的及吗_为什么每个人都应该在2020年学习Python?

    如今每个人都在谈论 Python,包括那些曾经对 Python 嗤之以鼻的人.本文作者 Javinpaul 原是一名 Java 狂热粉,他以前还曾号召大家学习 Java 而不是 Python.如今他的 ...

最新文章

  1. linux 3.5.0-23-generic内核版本系统调用数目,Linux操作系统分析(三)- 更新内核与添加系统调用...
  2. linux python qt 安装目录,Linux 下QT调用Python库文件 以及Linux 安装Python3.8开发环境 问题...
  3. mysql 怎么导入函数_mysql导入导出包括函数或者存储过程_MySQL
  4. python opencv图像处理程序_Python-OpenCV学习(四):基本图像处理
  5. C#控制台程序,发送邮件,可带附件
  6. 【numpy】20道numpy题目
  7. slr1文法_SLR的完整形式是什么?
  8. bat 字符串截取操作
  9. 【APIO2015】Bali Sculptures
  10. C#使用带参数的存储过程
  11. 将R Markdown文档变成互动体验
  12. java编辑双层pdf文件,双层PDF制作系统
  13. python第三方库的安装方式_Python第三方库的几种安装方式(小结)
  14. 春节红包战:他们到底在争什么?
  15. win10 多任务 多视图 多窗口 处理快捷键
  16. Vue中使用v-if判断某个元素满足多个条件的简约写法-案例
  17. 关于个税汇算清缴,你所关心的问题都在这了
  18. 任务栏WPS出现多窗口预览?下载这个注册表就对了
  19. Linux /centos7源码编译安装Nginx
  20. 『摄影知识』自然光的应用

热门文章

  1. 数字电路之布尔代数与逻辑化简
  2. TMS320F28388D 的 IPC程序使用
  3. 在一个有序数组里找到一个数字K【二分查找法】
  4. CRMEB微信公众号安装说明
  5. OpenCL入门一:Intel核心显卡OpenCL环境搭建
  6. 基于matlab电力系统的牛顿-拉夫逊法进行潮流计算
  7. 09uni-app实战跨端云开发实战拍照识别垃圾分类精灵视频教程
  8. 达观数据CEO陈运文:“AI+RPA”如何赋能企业数字化转型
  9. 深圳信息通信研究院与深圳市广和通无线股份有限公司签署战略合作协议
  10. k近邻算法,朴素贝叶斯算法,分类模型评估,模型调优