1
在大三的时候,参加了一次四川省的大学生网络安全竞赛,对其中有一道题目印象非常深刻。
这道题要求网络编程构造一些特殊的TCP数据包绕过防火墙拿到服务器上的一个文件,里面有通关的key。
这道题目需要对TCP报文格式非常熟悉,同时还要具备网络编程、文件处理能力。
当我还在那里吭呲吭呲地用C语言编写原始套接字网络通信部分的代码时,隔壁组的已经拼凑完成通关了!
后来在答辩环节我才知道,原来他们用的不是C语言,而是一个叫Python的语言,只用了几行代码就完成了这个功能!那是我第一次听说这个语言,不知道是干啥用的,但有被震惊到。
2
毕业以后,开始工作了,有一次接了一个私活儿。
这单活是需要开发一个爬虫+挂号于一体的软件,3000块钱,对于当时的我算是不少钱(不对,对现在的我也是不少钱)。
软件自动扫描医院网站的号源,自动挂号并发短信通知,具体是哪个医院我就不方便说了。
那时候我还是只会C/C++啊,利用业余时间写了一个星期,实在是太麻烦了,尤其是网络通信、字符串处理、网页解析等等,用C++写开发效率实在太低了,还容易一言不合就崩溃。
虽然那时候我不会,但也总还是知道,在爬虫领域,Python才是王道!
于是我下定决心把Python作为我的第二编程语言,买了一本《Python核心编程》开始啃起来。
你还别说,有其他编程语言的功底,再加上面向搜索引擎编程,一个星期后我就能用Python来做这一单私活儿了。
有了Python的加持,自己能做的东西更多了。
后来又逐步学习了Django、Flask两大web框架,开始能接网站后台开发的活了,而这些是我之前C/C++技术栈很难做的。
顺带说一句,我曾经在一个项目中用C++写web服务器,完全自己实现HTTP协议的解包和封包,还有RESTful接口框架的实现,那滋味儿之酸爽,相信做过的都深有体会吧,不过确实挺能锻炼人的。
3
前不久,媳妇儿邀请她的高中同学,还在读新闻传播学博士,来家里吃饭,在吃饭的时候,她同学竟然问我如何学Python。
我当即有点吃惊,怎么连博士,还是新闻传播学的都要来学编程了?
她告诉我,她们读博士要做很多社会调查课题,有很多数据处理、统计分析的事情要做,学校的导师要求她们能够用Python去做这些事情。
吃惊之余,也感慨Python这家伙影响力真是越来越大了,一个曾经我瞧不起的脚本语言,如今居然这么香,真是啪啪打脸了!
这一切都归功于Python这门语言的两大特点:
1、简单,易上手
2、强大,能做很多事儿
不管是对于从未从事过编程的新人,还是已经掌握了其他语言的编程老手,Python都是一个非常给力的加分项。
而网络上学习Python的资料也是五花八门,良莠不齐。如果你问我推荐什么,我推荐极客时间,口碑靠谱,质量过硬,不会玩什么1元甚至0元套路你。
如果你是从未接触过Python,在这方面是零基础的话,那我建议你看看尹会生的《零基础学 Python》,这个专栏基于最新 Python 3,通过实际场景来学习,全面讲解标准库、第三方库和机器学习库。另有一个大模块专门讲解爬虫技能,是一个入门 Python 必看的视频课程。现已有 2.3W 用户订阅,跟着这个课程学,从零基础到入门绝对没问题。
从这个思维导图都能看得出内容很扎实啊,图太大看不清楚,你可以关注小编,并私信“01”即可进裙看看,还有免费试看部分。
而如果你有些基础,还想掌握Python的更高阶的技术。那我建议你看看景霄的《Python 核心技术与实战》他的理念就是“从工程的角度去学习语言”。
毕竟想要做到精通 Python,必须真正理解知识概念,适当从源码层面深化认知,然后熟悉实际的工程应用,独立完成项目开发。这个图谱也是出自于缔凡的专栏《Python核心技术与实战》,结合了多年的工作经历,从工程角度,更为实战地梳理了Python核心知识点,从基础数据结构到装饰器、迭代器,再到并发编程、垃圾回收机制等等。可以说,跟着这套学习框架学,你会事半功倍的掌握Python。