我在知乎上看到这样一个问题,于是花两小时写了这个回答的文章。

一、首先一对一回答题主的问题:

你学python多久了?

答:从学开始,边学边用,总共七八年了。

现在是什么水平呢?

答:全栈开发不敢说,但需要满足的业务场景基本都能用python搞定。

有从事相关的工作吗?

答:自从接触到python,就一直从事python开发工作了,专注数据开发,其他python周边也有。

或者有做相关的兼职吗?

答:在做python兼职,接一些小单,提升自己技术的同时,赚点零花钱。

二、详细说说我和python的缘分始终

现在是2022.10.6号的凌晨6点半,睡不着了,来知乎刷到这个问题。用我自己的真实经历,详细说说我是怎么开始走上python开发这条路的。

2.1、爬虫篇

我大概从七八年前,在客户现场,遇到一个比较棘手的业务场景,客户需要分析自己的业务数据,但是又没权限拿到总部数据的开放接口API,调配不到这么高权限的资源,只能从前台web页面对应的功能菜单上,一个个去筛选过滤条件,然后点击下载按钮,把数据下载成好几十个Excel再进行分析。针对这种情况,我作为技术支持团队的核心人员,无意间刷到python爬虫的技术文章,当时一直在犹豫,通过爬虫采集到的数据会不会不准确、业务前台页面改版了怎么办、爬虫程序不能稳定运行怎么办,但终归还是用上了python爬虫,毕竟当时也没别的办法了。

既然用爬虫爬前端页面,基础的html、css、就不说了,还得了解点JS、ajax异步、iframe切换什么的。知道前端怎么开发实现的,才能更加针对性地开发好自己的爬虫。

爬到大量数据,总不能存到Excel吧,得存到数据库,就学了对应的存取数据库的库,pymysql、cx_Oracle等,甚至后面还学到了先用sqlalchemy创建个连接,然后用pandasto_sql插入数据库也是超级方便。

这中间,还需要用到一些数据转换、数据清洗,比如爬到的数据是个tuple啊,list啊,总不能直接insert到数据库吧,于是接触到了python中最常用的数据处理的库pandas,先清洗一遍,好使。

一个python程序爬得慢,单个程序已经最优化了,于是又开始了解多线程、多进程什么的,开始学threading、multiprocessing这些库。

python爬虫开发好了之后,总不能每次都手动run它吧,心累,那就写个定时呗。部署到Linux服务器上,就用crontab配置下。如果是Windows Server呢,就配置个定时任务,都是一个道理。再不济了,把定时逻辑写到爬虫程序里面,用到datetime、time.sleep这些库,让程序一直后台运行,While True循环,一到晚上12点,就自己触发自己跑,这样的话,都不用麻烦那些OS层面的定时机制了,也行,条条大路通罗马~

这就是,一个爬虫,开启了我的python学习之路的历程。

2.2、数据分析篇

前面的爬虫,只是解决了数据源获取的问题。数据拿到手,怎么让数据"活"起来,让数据变得有价值,那就要做数据分析了,当然,我也绕不开的。

传统企业,或者大部分公司的非IT部门、非信息化部,很多都是在用Excel汇总、处理数据的,为什么不用数据库呢,因为不懂开发技术呗~

但我作为甲方爸爸的技术支持,必须得用上技术,哪怕撑撑自己的门面装个样子呢。于是学习python的读取Excel文件的库,先后用到了openpyxlxlrdxlwt,这些不仅能读写Excel,还能在Excel里做一些附件功能,比如搞个下拉框、单元格填充颜色、字体大小颜色等等。最后也用上了pandas,用read_excelread_csv把数据读取成DataFrame格式,然后经过各种数据清洗、转换、数据处理等ETL工作,最后再to_excelto_csv吐成Excel文件,落地成结果文件。这一套下来,该学到的python库都掌握得差不多了吧。

当然,有时候,用数据库比较方便些,自然就会用到SQL语言,至于什么时候用python,什么时候用SQL,甚至什么时候用Excel本身,要分不同的适用场景,后续我可以展开来细讲。

数据分析,当然不止于Excel一种数据格式,还有word啊PPT啊PDF啊,我差不多都用到了一些,包括docx、pptx、pdfminer、PyPDF2这些对应的python库。恩?好像楼歪了,有点自动化办公的味儿了~

2.3、数据可视化篇

数据分析完了,总不能把光秃秃、硬邦邦的Excel文件发给爸爸们吧,人家不懂技术,也不能逼着人家去学技术啊~于是,当然要做成更加友好、更加直观的可视化图表了。

如果是简单地开发一些图表,单纯表达数据计算结果、数据分布等情况,用matplotlib这种python最基础的可视化库就足够了。

但如果想开发可视化大屏,就是企业大厅的墙上挂的那种,是通过组合各种图表然后美化界面,达到数据大屏的效果。业界市场上有很多商用产品,比如DataV、FineReport、Tableau、PowerBI等等,但是我最终选择了用百度的Echarts开发了一个数据大屏,除了因为他是免费开源外,界面也不丑,还可交互。

我开发这个大屏,基本把上述所有用到的技术(包括下面的Flask框架)都串起来做了一遍。

2.4、web开发篇

可视化生成的各种图表,以怎样的形式发给爸爸们看呢,总不能把png图片、或者html文件通过邮件post给他们吧,咱们是技术人员不是嘛~ 当然是部署到服务器上,然后让人家在网页上看了。就像访问百度网站一样简单。给爸爸们省时间就是给自己省时间,慢就是快的道理,你懂得~

当时,在我的认知范围内,python的web开发主要有FlaskDjango两种主流框架。我这个人比较懒,能写一行代码办成的事,绝对不写两行代码,自然而然的选择了Flask这个轻量级的开发框架。Django大而全,我没必要用他!

最简单的应用Flask,就是把生成的图表文件,render到template里面,这样,在URL里直接访问http://localhost:5000,就能看到可视化图表了,本地测试没问题,部署到服务器,localhost换成服务器的ip地址就能访问了,超级方便对不对。

稍微复杂一点的应用Flask呢,就是前后端分离,用Flask实现后端接口API的开发,这个工作的前提,就是要和前端开发的小伙伴约定好接口协议,把数据拼装成什么格式吐给他,json、string还是什么其他的都无所谓,但一定要提前约定好,这个很关键,防止后面的前后端扯皮,懂的人已经点赞我了~

2.5、总结

至此,一套完整的数据分析流程就都包含了:

数据采集 -> 数据清洗、数据分析 -> 数据可视化

每个环节都要用到不同 python库,整个流程做下来,想不提升都难。

当然,python的应用领域还远远不止于此,另外还有自动化测试、自动化运维、自动化办公、科学计算、机器学习、深度学习、人工智能算法、大数据等。

记得之前有个HR问我的职业规划是什么,我答,以python开发为基础的人工智能方向。做人如果没梦想和咸鱼有什么分别,哈哈!既然选择了,那就一路走下去吧~

三、关于python副业兼职

我本人身在一个末流省会城市,不像一线城市996、007那么大压力,算是工作生活平衡得开,自己的业余时间也比较丰富,就想着用python接些单子赚点零花钱这样。

有些程序员同事不认可开发兼职这种事,认为很浪费时间、精力,有这时间还不如自己研究一门技术。但是我认为,技术变现需要一个思维转换的过程,把自己从螺丝钉变成老板。不要低头干活,还要抬头看路!

我对自己看的很清楚,我不是那种技术钻很深的人,也永远做不到技术总监、CTO的头衔,所以一定要开拓自己的非技术发展方向,比如产品、运维、管理、沟通等方面。

同时,也不要觉得自己技术很菜,就输出不了任何价值。大佬为小牛提供知识,小牛为小白提供知识。于是根据自己的这个感悟,整理了一个知识变现模型:

最后

如果对Python感兴趣的话,可以试试我的学习方法以及相关的学习资料

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑培训的。

一方面是学习时间相对较短,学习内容更全面更集中。

 Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。


温馨提示:篇幅有限,已打包文件夹,获取方式在“文末”!!!

二、Python必备开发工具

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、Python练习题

检查学习结果。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

我和Python从相识到相知再到相爱的故事相关推荐

  1. 我与电脑的相识,相知,相爱

    从旧书中翻出一个张3.5寸老磁盘,感概万千.从第一眼看到这个东西到现在数数有16年了.如今做为一位程序员,吃这 碗饭,电脑就是工作的全部.离不开电脑,离开了电脑,还真不知道干什么.经学会想,假如没有电 ...

  2. 045.(2.14)相识,相知,相守

    在西方情人节的日子,突然想聊一下这个话题. 虽然没怎么写过这类文章,但按自己所想到的而分享,也是一种方式. 其实,在我心目中,元宵节才是情人节,我们国家的情人节,我还是喜欢祖国的传统节日. 写这个话题 ...

  3. python用什么编译器-15款Python编辑器的优缺点,别再问我quot;选什么编辑器”啦

    本文介绍了多个 Python IDE,并评价其优缺点.读者可以参考此文列举的 Python IDE 列表,选择适合自己的编辑器. 写 Python 代码最好的方式莫过于使用集成开发环境(IDE)了.它 ...

  4. Python Selenium.WebDriver清除输入框再输入『详解』

    Python Selenium.WebDriver 清除输入框再输入『详解』 文章目录 Python Selenium.WebDriver 清除输入框再输入『详解』 一.如何清除输入框中的默认内容 二 ...

  5. 我与R语言的相识与相知

    作者:张宜峤,刚入职场的小白,自学R语言两年 1 相识 第一次听说R语言,来自我的大学老师,她说她的学生都用R语言,她劝编程零基础的我试试,只要踏实,一步一个脚印,不管多么简单的代码都要亲手实践,那么 ...

  6. J2EE总结(二)——与servlet从相识到相知

    话说这J2EE视频看的本身每天活蹦乱跳的我是天天都像得了重病似的,怎么也犯不过劲儿来.里面接触了大量关于Java的专业词汇,如JNDI,ANT,servlet,Java Bean等等.让人一时难以消化 ...

  7. DevStream 开源社区——相识、相知、相爱

    本文作者: aFlyBird0 Blog 地址: https://blog.aflybird.cn/ 今天,我是来讲故事的,讲我和开源社区.和 DevStream 的故事. 先讲点废话 有趣的故事,总 ...

  8. 想学习 Python,这套教程再适合你不过了!

    总学不会Python的原因,归根结底只有一个--学习方法不对. 作为一个唯一将易用性与功能取得平衡的编程语言,无论是编程新手还是多年经验的BATJZ技术大牛,都无可否认如今Python对于一个程序员职 ...

  9. Python 进阶之路 (九) 再立Flag, 社区最全的itertools深度解析(上)

    前言 大家好,今天想和大家分享一下我的itertools学习体验及心得,itertools是一个Python的自带库,内含多种非常实用的方法,我简单学习了一下,发现可以大大提升工作效率,在sf社区内没 ...

最新文章

  1. Rest Framework:序列化组件
  2. Alibre Design 2018中文版
  3. 深度学习核心技术精讲100篇(十二)-DCGAN(对抗生成网络)算法应用及代码实现
  4. 专心做业务,别想不开搞研发
  5. eui加载时间长_游戏加载时间越来越短了?背后藏着这些小心机
  6. 非线性常微分方程组 matlab,matlab常微分方程和常微分方程组求解.doc
  7. cmake-debug和release模式
  8. MFC中绘制高亮的图标 VC图标填充半透明色
  9. 52 MM配置-库存管理和实际库存-OMJJ新增移动类型原因
  10. UVM序列篇之一:新手上路
  11. yoga ins android.ios,to Yoga Lin:
  12. c4d打开没反应_野分享:一大波C4D插件的测试以及分享
  13. 深度学习教程(9) | AI应用实践策略(下)(吴恩达·完整版)
  14. ArcGIS批量计算图层中矢量要素面积——ArcMap
  15. 手机里的PDF文件太大如何变小?免费方法了解一下
  16. 怎么画出好的架构图,架构师必备!
  17. HWDB1.1数据集 | 手写汉字数据集 |.gnt 转换 .png格式图片| 【❤️有效转换❤️】
  18. 书单 | 测试工程师必读经典好书,你读过几本?
  19. 电信增值短信平台软件模块清单(sp专用)
  20. Android ijk视频播放器使用TextureView问题

热门文章

  1. Windows共享内存详解
  2. unity 本地MP3文件读取
  3. 哔哩哔哩(B站)品牌投放,怎样分析品牌在B站的投放情况?
  4. iOS 十进制转换成十六进制
  5. 黑苹果0000——安装后的不足
  6. win7 打开 计算机 慢,Win7系统浏览网页时打开很慢的解决方法
  7. 【数字信号处理】傅里叶变换性质 ( 傅里叶变换对称性 | 共轭对称序列 | 共轭反对称序列 )
  8. Java中使用for循环删除数组中某个元素,并按原有顺序打印
  9. 《火鸡总动员》观后感
  10. Redis教程--redis分布式锁+企业解决方案+redis实战