揭开Python的面纱

开始是因为别人说Python简单才开始学的,然后那段时间刚考完研,也没什么事,就多少瞅了瞅,然后发现语法的确简单很多,或者说简洁更合适。

当时看的是简明Python教程,没用多久就看完了,跟着走了一遍。然后写了一个下载知乎日报内容的小脚本,然后真正的体会到了Python库的强大。以前只接触过c和c++,也没有写过项目,没用多久就完成一个小东西,这让我感觉十分有成就感。

这个过程中查了很多资料,也看过视频的教程,然后搞清楚了写一个东西该有的逻辑。逻辑很重要,代码只是你实现的工具而已。比方说爬一个东西,我需要做的事情可以分以下三步(跟把大象装冰箱里一个过程):

  1. 获取网页内容
  2. 提取网页内容
  3. 保存

然后按照步骤去实现就好了,比方说使用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学习之路(流水账)的更多相关文章

  1. java菜鸟的Python学习之路(1)

    学习一门新的语言,应当抓住语言的共有特性,这样容易触类旁通,学习起来也十分的快捷愉悦 而语言的特性大约有以下元素 变量定义与类型 算术符号与逻辑符号 for 循环与 while 循环 数组,线性表等一 ...

  2. Python学习之路-Day2-Python基础2

    Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...

  3. python学习之路-day2-pyth基础2

    一.        模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...

  4. Python学习之路-Day2-Python基础3

    Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...

  5. Python学习之路-Day1-Python基础

    学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...

  6. python学习之路网络编程篇(第四篇)

    python学习之路网络编程篇(第四篇) 内容待补充

  7. Python学习之路【第一篇】-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

  8. python 学习之路开始了

    python 学习之路开始了.....记录点点滴滴....

  9. python学习之路,2018.8.9

    python学习之路,2018.8.9, 学习是一个长期坚持的过程,加油吧,少年!

随机推荐

  1. css sprite 调整大张图片中小图标的大小

    直接说解决方法: 假设一张拼合好的大图大小是:900 x 1000 px (如上图) 现在想取图中左上角的河马图标,并缩小图标的大小. 正常取图: .sprite { background: url( ...

  2. PL/SQL Developer连接本地Oracle 11g 64位数据库

    转摘:http://www.cnblogs.com/ymj126/p/3712727.html 用于学习,笔记,以备后用. 1.登录PL/SQL Developer 这里省略Oracle数据库和PL/ ...

  3. 烂泥:智能DNS使用与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 公司的业务现在已经扩展到海外,对外提供的统一接口都是通过域名来解析的,但是海外用户访问国 ...

  4. springmvc学习资料整理

    springmvc接口开发返回XML/JSON数据 1.SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上):http: ...

  5. logback配置详解1

    一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...

  6. PHP unset销毁变量并释放内存

    PHP的unset()函数用来清除.销毁变量,不用的变量,我们可以用unset()将它销毁.但是某些时候,用unset()却无法达到销毁变量占用的内存!我们先看一个例子: <?php $s=st ...

  7. C#事件学习

    通过代码触发事件(第10章).由对象触发的事件(Timer每隔Interval指定时间,就触发Tick事件,第8章使用Timer). 目录: 避免递归事件 访问对象的事件 使用事件参数 创建事件处理程 ...

  8. Nginx Rewrite规则

    location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配 ...

  9. TFS 掩蔽或取消掩蔽工作区中的文件夹

    掩蔽或取消掩蔽工作区中的文件夹 使用掩蔽功能可以阻止用户查看指定的工作区文件夹或者您当前不需要的文件夹.当您在对一个公共父级下的两个或更多个分支中的文件进行操作时,就可以使用掩蔽功能来避免复制不必要的 ...

  10. google-analytics的使用: 解析页面引入代码

    代码整理和注释 // 创建ga()方法, 加载analytics.js文件 // a, m 作为形参,确保下面的执行不会修改外部的同名变量 (function(win, doc, o, g, ga, ...