共计 3195 个字符,预计需要花费 8 分钟才能阅读完成。
## 摘要
Python 有那么神吗?
我打算去理解一下 Python,后果如同看到一个新世界了,Python 在他们口中如同无所不能,编写一些自动化程序啊,黑他人网站啊,做游戏外挂之类的如同真的很牛逼,那么,Python 真的那么神奇吗?
明天咱们就来借这个问题看看我的人生是为何离不开 Python 的。
前言
我的第一份工作是一加国内出名游戏公司的逻辑程序员,必须技能是 C ++,然而一开始只是写语法和 C ++ 很相似的一种脚本(起初晓得是从一个开源脚本引擎 AngelScript 批改而成的)。学习游戏开发的流程,填数据,用脚本定制各种工作、正本等等。第一年还很有兴致,第二年开始就意兴阑珊了。
起初相熟了整个零碎,染指到 C ++ 局部的代码里。波及到道具、工作等等逻辑。那时候感觉最难的局部,是 UI 零碎。过后的 UI 零碎,是用 XML 拼出界面,而后用相似 C ++ 的那种脚本来给它写逻辑。从一开始被迫学习,到最初应用的时候遇到各种问题,前后折腾了很久。
写程序的激情,在理论工作中被一点点的磨灭。我想,很可能许许多多的程序员,都会遇到和我一样的问题。因为喜好而走上这条路,却被琐碎的工作磨灭了最后的激动。等到我成为一个独当一面的程序员的时候,我甚至有一种感觉,感觉本人仿佛什么都会,然而除了我的项目工作以外的货色,什么都做不进去。相比高中时候的本人,甚至有一些退化。
人生的转折
直到有一天,我看了一本书《黑客与画家》。
在你迷茫的时候,多排汇一些各方面的常识,偶然会忽然关上一扇窗。
《黑客与画家》满本书都透着浓浓的技术自信,和短缺的技术底蕴。它就像是一个常识丰盛的技术高手,急不可待的将平生教训一股脑传授给你,为你指明倒退的方向。
它的字里行间走漏着对传统编程语言的鄙夷和对 LISP 的崇拜。它认为精美的语言,加上聪慧程序员实现的高度形象代码,会带来极大的生产力晋升,让开发更快、BUG 更少,让一两个开发人员也能撑起一个具备微小经济效益的网站。
在 Web 界曾经是遍地动静语言的明天,《黑客与画家》里的判断仿佛曾经没什么好探讨的了(当初动静语言在很多畛域曾经成为了支流,和作者当年的状况曾经有了天壤之别)。但对于过后的我来说,就是大海里的一盏明灯。
尽管书里对 Python(作者当年还是 1.x 版本)的认识很具备批判性,然而因为那时 Python 2.x 曾经有了长足的倒退,加上一个共事的举荐,我全身心投入到了 Python 的学习之中。
在写了一些小练习程序之后,我在工作中找到了一个 Python 的用武之地——用 Python 实现一个数据表格分析程序,并查看表格中的数据谬误、逻辑谬误。这种表格解决工具在游戏中具备很大的作用,而且非常适合用脚本来灵便的扩大性能。
第一个实现的简略版本,应用起来大略是这样:
import mb
t = mb.table(“data/index.txt”);
l = t.get_line(1001); # 1001 is line index
data1 = l.get_int(2); # 2 means colum 2
data2 = l.get_str(3);
这个代码次要问题在哪呢?在于读取数据时,程序员本人要指定数据的类型。get_int,get_str,get_float 等等等等。
很可怜而又侥幸的,过后我用某某云盘保留本人的代码,有一次误同步,导致在公司写的很多代码,在家里操作时笼罩了。迫使我重写简直整个程序。这次,在共事的顾问下,我实现了这种用法:
import mb
t = mb.table(“data/index.txt”);
l = t[1001]; # 1001 is line index
data1 = l[2]; # 2 means colum 2
data2 = l[3];
这段代码实现的性能与下面的齐全一样,然而有两点变动:
1、用 [] 下标操作符代替了 get_xxx()函数调用,更简洁。
2、读取时不须要指定类型,执行时,data1 天然是整型,data2 天然是字符串。
这种实现,对于过后的我来说,是一个理念上的重大突破!
为什么这么说呢?因为强类型的问题。在 Python 中,我用一些很简略的解决,让 mb 库的底层天然的解决了类型。而你晓得吗?在 C ++ 中,做到这点难如登天!
C++ 经常为了推断一个类型,不惜应用模版技巧,写出天书个别的代码。而且,后果上,依然不能做到动静语言的这种用法。也就是说,显式强类型个性,并不仅仅是束缚程序员缩小 BUG 的工具,它同时也是实现高形象零碎的一个解放。这是个很有意思的事件,对我过后的触动很大。不知读者是否了解。
到了写出这个表格剖析库之后,我生命中的一扇门关上了。
我回到了能够自在写代码的时代,就像是我的高中时代,而且比那个时代更为简洁,充斥了更多的可能。
我能够任意的写代码,几行代码就能实现对树的操作、简单的嵌套字典。我好像能够操作任意简单的数据结构,或者简单的递归,只有我想分明了,基本不须要多少编码工夫。过后自认为把握了葵花宝典,干劲十足,所以还找了一个 Python 学习网站,没事就到下面刷题。
写了很多平时懒的写的简单算法,还看大神们写的“一行 Python”(其实是利用了列表解析等形式做的很简短然而有点难读的代码),播种了很多乐趣。
起初
从那以后我就爱上了 Python,为了呆在家分心钻研 Python,我间接把过后的工作给辞了。
在辞职之前,心里还是有一些担心,胆怯学得不好,找不到工作,不过很快我就看开了,我感觉学习这种事件,更多的是要看本人的态度,要始终严格要求本人,确保本人在认真致力的学习,而不是自欺欺人的假致力。
我本人也比拟有信念,我晓得我能做失去,所以 20 年初,我毫不犹豫的抉择裸辞回家,开始了为期半年的学习之旅。
闭关修炼出关后,而后就开始给 Python 的岗位投简历,boss,拉钩大量海投,一开始没有教训也没有好好筹备,第一个星期劳苦功高,于是总结经验,在家好好筹备面试考点和失败的面试教训。
苦心人天不负,第二个星期面试了 7 家公司拿下 4 个 offer,编程半年,我抉择了一家待遇较高做文本智能的公司,13k 底薪,14 到 18 薪年终奖以及我的项目提成。
兴许大部分人都无奈了解一门语言对一个程序员生涯的影响,所以特撰此文。
Python 对我的影响是微小的,Python 升华了过来的我,也将继续影响将来的我
对于 Python 技术储备
学好 Python 不论是待业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习布局。最初大家分享一份全套的 Python 学习材料,给那些想学习 Python 的小伙伴们一点帮忙!
一、Python 所有方向的学习路线
Python 所有方向路线就是把 Python 罕用的技术点做整顿,造成各个领域的知识点汇总,它的用途就在于,你能够依照下面的知识点去找对应的学习资源,保障本人学得较为全面。
二、学习软件
工欲善其事必先利其器。学习 Python 罕用的开发软件都在这里了,给大家节俭了很多工夫。
三、全套 PDF 电子书
书籍的益处就在于权威和体系健全,刚开始学习的时候你能够只看视频或者听某个人讲课,但等你学完之后,你感觉你把握了,这时候倡议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频
咱们在看视频学习的时候,不能光动眼动脑不入手,比拟迷信的学习办法是在了解之后使用它们,这时候练手我的项目就很适宜了。
五、实战案例
光学实践是没用的,要学会跟着一起敲,要入手实操,能力将本人的所学使用到理论当中去,这时候能够搞点实战案例来学习。
六、面试材料
咱们学习 Python 必然是为了找到高薪的工作,上面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试材料,并且有阿里大佬给出了权威的解答,刷完这一套面试材料置信大家都能找到称心的工作。