三周学 Python ?不,三周做个产品

我的同事在看到毫无开发经验的我用三周时间,不但从零基础用上了 Python,还做出了一个客户关系管理系统,强烈邀请我分享经验。惶恐,因为我并没有出色的智商,也没有觉得三周学 Python 是一个体现自己牛叉的事情(不少人可能用一周左右就可以做到),思考过后,我还是答应了同事的邀请,复盘总是一件能让人获益匪浅的事。首先,我接触 Python 也就几周,不可能分享 Python 的技巧和经验,其次,通过对同事需求的分析,我发现他的真正需求并不是学 Python 这件事,而是他感觉我比他高效。于是,我写下了这篇心得,以供那些有意愿,却未能有机会来参加我分享会的朋友们。


绕不开的三个终极哲学问题

我是谁

- 我是一个全球分布式云存储系统的软件测试工程师,常年工作在 Linux 平台下。

- 管理过 20 人的测试团队,负责测试交付。

从哪里来

- 曾就职于一家外经公司的国际劳务部,管理大量出国人力资源资料档案。

- 现任一家软件公司软件测试工程师,负责一个全球分布式云存储系统的测试。

要到哪里去

- 短时间内掌握 Python,期望能学以致用。所谓「人生苦短,我用 Python」,它向我敞开了编程之门。


分析态势

为什么要花时间研究这三个问题?因为我可以在此基础上分析出我的优劣势、机会和威胁,也就是肯尼思安德鲁斯的 SWOT 分析法。只有清晰了态势,才能规划出一个明确、具体且能追踪管理的实体化目标,而非面对一个空虚无法明细的愿望。

当时我简单列了一下:

优势

- 拥有 Shell 这一初始技能

- 有自动化测试经验

- 专业的灰盒测试技能使自己同时拥有客户视角和开发思维

- 作为一个大型分布式存储系统的测试经理,具有很强的项目管理能力及交付经验

- 可以把 Python 作为工作中的一项改进内容

劣势

- 没有任何语言的开发经验

- Python 零基础

机会

- 网上有不少优秀的 Python 教程

- 业内比较看好 Python

- Python 可以像脚本一样使用

- 项目组内鼓励自我学习型工程师

威胁

- 平时为追求工作效率,可能会使用熟悉的 Shell 而非生疏的 Python

- 工作中不要求使用 Python


立项

分析完之后,我制定出了第一个实体化的目标:

熟悉 Python 思维,把工作中现有的 Shell 脚本用 Python 重写。

何为 Python 思维,我并没有把这个名词定义得多么玄乎,其实很简单,就是在拿到一个需求的时候,我知道从何下手,并且能熟练的反应出用 Python 语法,不让自己觉得很痛苦。所以当我能够把目前工作中所使用的 Shell 脚本都转换成 Python 的时候,就肯定能达到这个效果了。

为了达成这样的目标,我列出了约束这个项目的三大要素:

范围

- 范围跟目标不一样,目标是个最终状态,而范围包含了具体要做的事情。

- 比如到底要学哪一款教程,具体要把哪些脚本重写。

时间

- 总周期:一周。

- 为什么逼自己这么紧?虽然这个项目看起来不需要花费金钱,但这项任务一定会耗费自己很多的非工作时间,这些都是应该计入成本的,时间就是金钱,战线拖得越久,损耗越大。

- 那这个时间是拍脑袋想的吗?当然不是,我制定了更详细的日程表,后面会提到。

资源

- 网上的教程很多,其实只要认定一个,专心看下去,都是可以的,不必纠结哪个教程最好。我直接搜索了一个在线阅读起来也比较方便的图文教程,为什么没有选择视频?因为太费时间,有时候为了提速,我必须要一目十行。

- 人力资源很纯净,就我自己一个人。

- 另外还有一类资源不能忽视:随身的笔记本电脑和流量充裕的手机。想要短时间内完成目标,必须用上所有可能的时间。有些人觉得零散的时间无法运用,我不完全认同。零散的时间可能无法专心编程,但可以用来做搜索式学习,以强化或者探索学习过程中遇到的问题点,所以笔记本电脑用作完整时间的学习,手机则是用在碎片化学习的时间中。


计划

由于只有一周时间,所以必须要把时间表细化到每天、每半天、甚至每个时间段,比如上班前、中午休息时间、下班后,还需要考虑到一些影响因素,比如就我来说,那一周里面有一个已知的未知状况 —— 可能要出差一天,但是预估应该只会占用上班时间,所以判断它不会影响进度。

时间表不仅仅是思考自己有哪些可以利用的时间段,还要计划每个时间段做什么,比如哪几个时间段学习,学习的具体章节,几天之后就要开始脚本重写,具体写哪个脚本,越详细越好。


控制进度

每天按照计划的时间表来学习,想按时完成教程一般都不会出现状况。意外多会发生在实践阶段,比如我经常会发现费力写了一段代码,竟然是重复造轮子,因为早有人提供了使用起来更方便快捷的第三方库。对此我并不丧气,因为我的目标是完成 Python 学习,而不是利用最高的效率去写 Python 程序,虽然别人已经造好了轮子,但我练习了基础,锻炼了 Python 思维,不亏,但它着实影响了进度。

每个时间段我都会检查自己是否按时完成进度。如果落下进度,只能赶工,怎么赶?如果真的压缩了工作之外的所有时间,那么只能选择稍微牺牲一下睡眠,以不影响第二天工作为限。那些「保证睡眠时间」的鸡汤文就不看了,天道酬勤才是真理。


风险评估

但即使这样,也难免还会出现失控。当我发现连续两天,也就是差不多 6 个时间段的进度都未能达成时,我意识到最后的目标肯定要延期了。虽然有点沮丧,但并不觉得难以接受,项目延期实在是再正常不过的现象了。


需求变更

在我分析完延期的主要原因是在于时间没有供给充足,比如出差那一天的时间远远超出我的预估,以至于相当于少了一天的练习。我开始考虑的是延期两天完成目标,虽然这是一个非常合理的需求,但在第二天我就改变了主意,总觉得少了点什么。于是,在分析了 SWOT 之后,愿意接受增加范围带来的影响,对自己提出了一个重大的需求变更:

- 范围从「把所有 Shell 重写」变更为「挑选两个脚本重写,用 Python 写一个客户关系管理系统」

- 项目完成时间由「一周」变更为「三周」

之所以选择做一个客户关系管理系统,是由于我曾经每天都要管理几百人的信息资料,对此类信息的管理有一些理解,另外因为斜杠青年的身份,我也需要这么一个 CRM,Python 的简单易用,也让这个目标变得可行。

由于这一重大变更,我不得不重新启动、规划、执行、监控。

变更后的项目其实包含了两个目标了,所以我的内心是把这次的项目当作两个项目去管理的, CRM 的实现更多还是站在了产品经理的角度去管理。


最终,我按时完成了预定目标,做出了一个适合自己用的 CRM,这个 CRM 并不完美,当时甚至没有图形界面,但它实现了从无到有。(第四周结束的时候,我又迭代完成了两个大版本的改进,但由于没有产品开发和架构设计的经验,导致在第三版的时候几乎重写了所有逻辑)

正如一开始我说的一样,这不是一篇 Python 的快速学习指南,更像是 PMP 的文章,我的整个过程涵盖了 PMP 五大过程组。在这次的项目中,我接触到了很多新知识、新工具,甚至对于产品的架构设计也有了理解,希望分享的这次心得,能和大家一起进步,让自信的朋友更肯定自己,让怀疑自我的朋友突破自己。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,116评论 25 707
  • 情人节和春节接踵而至,不免对这两个节日有些遐想。而这几天又常看网友“沁园春书社主人”发自日本的美文,不禁想到了日本...
    渴死之水阅读 1,600评论 42 49
  • 生活过得像一条安静的河流,不惊不躁。周五回家时会去旁边的花店买花,百合,雏菊,向日葵,康乃馨。它们在花瓶里顽强地...
    4U阅读 617评论 0 1
  • 青蝇 我愿做一只青蝇,拥有整个梦想 ____题记 我是一只青蝇 想看一...
    广意_阅读 258评论 2 7
  • 生活在乡村的人们,你们还在:抱怨乡村节日聚会的单调乏味?乡村庆典方式的枯燥沉闷吗?你们还在羡慕都市活动内容的...
    随心而写阅读 473评论 0 2