菜鸟的Python学习之路(流水账)
揭开Python的面纱
开始是因为别人说Python简单才开始学的,然后那段时间刚考完研,也没什么事,就多少瞅了瞅,然后发现语法的确简单很多,或者说简洁更合适。
当时看的是简明Python教程,没用多久就看完了,跟着走了一遍。然后写了一个下载知乎日报内容的小脚本,然后真正的体会到了Python库的强大。以前只接触过c和c++,也没有写过项目,没用多久就完成一个小东西,这让我感觉十分有成就感。
这个过程中查了很多资料,也看过视频的教程,然后搞清楚了写一个东西该有的逻辑。逻辑很重要,代码只是你实现的工具而已。比方说爬一个东西,我需要做的事情可以分以下三步(跟把大象装冰箱里一个过程):
- 获取网页内容
- 提取网页内容
- 保存
然后按照步骤去实现就好了,比方说使用urllib或者requests库去抓取内容,然后使用xpath或者BS去提取自己使用的内容,最后一步保存。这样思路就十分清晰明了了(后来做题基本也是这个思路,可见实际上做任何事情都差不多的过程)
框架初体验
后来为了找实习用了两天时间体验了一下Scrapy框架,这也是Python特别常用的一个方面--爬虫。然后写了一个每个初学者几乎都写过的小脚本--爬妹子图。这个和之前自己使用urllib和BS去写就有点不一样了,框架的好处就是给你实现了很多重复性的工作,你可以直接调用接口即可。
Python的框架太多了,写web的有flask、Django、bottle等,爬虫有pyspider,scrapy等。要是有兴趣的可以直接去网上看资料,也可以更直观的感受他们的风格。
接触真正的项目
去年年底的时候,有个小项目老师让我们跟着师兄去做(然后做黄了)。项目是写一个违法行为监控的东西,后端实现使用的是Prelude的框架实现的,编程语言恰好就是Python。这个期间其实项目写的东西并不多,但是对如何真正的做一个项目有了大概的了解,或者说对项目的整个流程有了大概的理解。
比方说使用Git来完成团队协作,也体验了结对编程,还对测试有了一定的了解,具体到Python最起码知道了virtualenv,也第一次听说了pep8,也接触了一下SQLAlchemy,还看到啦别人怎么写代码。说起来师兄给讲了很多东西,然而自己学到的还是有限。
工作中使用Python
后来自己学了大概不到1周的Django(顿时感叹Django太强大了,基本所有东西都有现成的,你要是想快速搭建一个项目十分推荐),然后期间找到了实习--Python后端。过程也很有意思,一家创业公司,面试的时候给我电脑现场出问题写代码,都是一些比较基础的东西,但是自己觉得答的并不是很好,不过神奇的是最后居然要了我……在这里感谢一下给我这个机会~
然后熟悉了一段时间就开始写了,第一个任务是对一些接口的改版,基本上是仿照第一版来改的,期间对pep8有了更为清晰的了解,也很喜欢这种编程风格。后来开了新的项目,然后就基本开始自己写业务逻辑了,开始写完会code review一下,然后慢慢的自己也就开始review了,也会考虑如何去优化代码结构,怎样写才会更Pythonic。
期间自己折腾了一个小的博客系统,基于Django和Bootstrap模板实现。发现自己还是很菜,很多东西都需要去现查,幸好工作中有网…
嗯,这个月月初的时候基本上完成了项目的功能逻辑,大概一半多的代码都是自己写的,对于基本所有的业务逻辑都比较清楚,这也是让我比较有成就感的地方。嘿嘿
后记
最近在找工作,个人还是倾向于找写Python的工作(关于工作又是一件很蛋疼的事情了),不过觉得语言只是工具,每个工具都有其特点与优势,掌握怎么运用并不难,毕竟每个人花一段时间都能掌握--唯手熟尔。所以一个人的核心竞争力不应该是这个,应该是其学习能力,你花一天学会了,别人花了一周,这就是你的优势。
PS
就说了是流水账,唔,你看,我没骗你吧。
菜鸟的Python学习之路(流水账)的更多相关文章
- java菜鸟的Python学习之路(1)
学习一门新的语言,应当抓住语言的共有特性,这样容易触类旁通,学习起来也十分的快捷愉悦 而语言的特性大约有以下元素 变量定义与类型 算术符号与逻辑符号 for 循环与 while 循环 数组,线性表等一 ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- Python学习之路-Day2-Python基础3
Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...
- Python学习之路-Day1-Python基础
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
- python学习之路网络编程篇(第四篇)
python学习之路网络编程篇(第四篇) 内容待补充
- Python学习之路【第一篇】-Python简介和基础入门
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
- python 学习之路开始了
python 学习之路开始了.....记录点点滴滴....
- python学习之路,2018.8.9
python学习之路,2018.8.9, 学习是一个长期坚持的过程,加油吧,少年!
随机推荐
- Cannot execute as the database principal because the principal "guest" does not exist, this type of principal cannot be impersonated, or you do not have permission.
今天遇到这样一个问题:一个系统的作业需要给系统Support人员开放SQL Agent下作业的查看.执行权限.数据库版本为SQL Server 2014 SP2,给这个系统Support人员的NT账号 ...
- 第一次写博客Poj1044
Date bugs Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3005 Accepted: 889 Descript ...
- PHP笔记(PHP中级篇)
初级了解PHP的语法,中级就要学习PHP操作DateBase以及各种复杂的实现了! 文件系统处理 作用: 项目需要 长时间保存数据 服务器中文件操作 特点 都是使用系统函数完成的 基于Linux/Un ...
- JavaScript 动态插入 CSS
写组件时有时想把一些组件特性相关的 CSS 样式封装在 JS 里,这样更内聚,改起来方便.JS 动态插入 CSS 两个步骤就可以 创建一个 style 对象 使用 stylesheet 的 inser ...
- extjs学习资料
ExtJs 入门教程 1.Extjs5.1.0教程云盘地址 http://pan.baidu.com/s/1qYhHiEw 2.Extjs3.x如下: ExtJs 入门教程一[学习方法] ExtJ ...
- 自己第一个github开源的感受
自己在github上发布了开源<基于IOS的手机视频直播SDK>后,不到一个月,被人star了508次,fork了120次,这个成绩大大出乎了我自己的意料! github网址:https: ...
- 【小白的CFD之旅】05 补充基础
黄师姐是一个很干脆果敢的人,从她的日常装扮就能显露出来.卡帕运动装,白色运动鞋,马尾辫,这是小白对黄师姐的第一印象.“明天早上九点钟来实验室,我给你安排这阵子的任务.”黄师姐对小白说.说话语气和老蓝一 ...
- Neutron 理解 (8): Neutron 是如何实现虚机防火墙的 [How Neutron Implements Security Group]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- NOIP2012 普及组 T3 摆花——S.B.S.
题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...
- Serial Communication Protocol Design Hints And Reference
前面转载的几篇文章详细介绍了UART.RS-232和RS-485的相关内容,可以知道,串口通信的双方在硬件层面需要约定如波特率.数据位.校验位和停止位等属性,才可以正常收发数据.实际项目中使用串口通信 ...