从C++到Python,为什么我的人生已经离不开它

摘要

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


无论如何,最后非常感谢大家点击观看我的文章,如过对你有帮助烦请抬抬小手给小编点点赞。有任何问题或者需要文章内的资料可以后台私信我,欢迎“骚扰”。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容