手持 Python 利剑,一路向前

学习 Python 课程究竟有什么用?Python 课程学员假牙运用课程所学,在工作中设置自动化检验脚本,为团队排除 bug 规避风险。「最难受的时候再坚持一下,不要轻易放弃。放弃这种事儿,等到多试一次再去考虑。」从磨砺、失败到成长,假牙的学习经历值得一看,其学习感悟更值得你借鉴!

我是假牙

软件测试工程师一枚,主攻大数据方向。Python 课程期间因 Scrapy 爬虫初窥其神奇,这一年来开路填坑,也幸亏手中握有 Python。数据科学基础班三期参与复训,获得全额学费退还。我将继续在开智课程的路上勇猛精进。

磨砺

学会用 Python 编程是一件我从大学时代就在不断规划的事情,且屡试屡败。但最终还是在大妈的带领下,找到并达成了跳出循环的条件,然后执行了数据分析基础班(两次)。现在,准备投身深度学习。

当初报名,只是想要一把利剑,完成一个技能的收藏。在大妈言传身教的启发式教学方法的指导下,种下 Python 这棵技能树,才发觉我得到的是铸剑术,进入了一种「不服写点 Python 」的状态。

今年初,加入新项目组,遇到了一个尴尬的问题。我们产品基于一个内部工具构建,但是这个工具对开发者并不友好,很容易在开发和修改的过程中引入各种 bug,而且几乎只能在运行态才能发现这些问题。测试团队指责开发团队提供的产品质量低下,开发团队转而指责内部开发工具能力太弱,火药味儿很重。换一个开发工具?不行,这不在选项列表中。

这有点像 Python 基础班的时候,要求大家禁止使用 IDE 写代码,只能通过文本编辑器写出一个个的 .py 文件。对个人学习来说,这种放开手让自己犯错的方式确实很有用处,毕竟你不闹几回 敲成 、括号不匹配,是很难静下心来对待的。但对产品开发来说,这种套路就是灾难,因为这会降低开发测试效率,降低最终交付的产品质量,影响项目进展等等。

于是我决定用 Python 写一个静态扫描工具,在不依赖运行环境的情况下,发现尽可能多的问题,让开发修改。原型花了一周左右的时间,然后不断增加功能,优化扫描结果的日志。到前几个月停止维护,这个工具的代码行达到了 3k 左右,能识别出所有的静态问题,也能识别出只有产品运行才能发现的 bug。

之后,写了 Nmon 日志的解析脚本、MapReduce hist日志的解析脚本,基于数据科学基础班学习到的数据分析和可视化的技能,又给这些脚本增加了图形化的能力。月初,用 Flask 写个 Web Server 来当跳板机转发自动化执行机发出的 REST 请求,绕开了大小网环境网络不通的问题。周末加班玩了下 Fabric,又有信心做部门 500 多台服务器的日常维护了。

失败

「铸剑术」提供的优势是:见招拆招,四两拨千斤。在跨界或者领域交叉的情况下,这种优势会展现出降维打击的效果。可是,从 Python 基础班、数据科学基础班的经历来看,「报名参加课程」与「习得技能」并不等价,总有小伙伴没有走到终点线。

拿下 Python 课程,数据科学第一次课程失败,数据科学第二次课程再次成功完成。结业的时候,我总结成功的经验为「坚持」,想要放弃的时候再尝试一下另外一种可能。现在看来,这两个字总结的简单粗暴。

失败可以分为两种,系统性失败和非系统性失败( http://t.cn/RGk5uRJ ),偶尔遭遇技术难题导致作业不能准时提交,或者学习进展暂时阻塞的,其实只是非系统性失败。这种失败是良性的,可以通过上面说的「再尝试一下另外一种可能」或者求助他人从而得到解决。

但阻碍的自己没能走到终点的,更多的是系统性失败。系统性失败的原因有几种:短期压力与长期目标冲突;周遭环境不利于实现目标和工作时间过长。

数据科学第一次课程的失败其实受多个因素的影响。具体来说,自己原本存在拖延的习惯,没有将每周任务拆解落实到每天,期间突发出差任务导致工作时间过长(每天工作十几个小时)。拖延症碰上没时间,死局。所以在数据科学第二次课程的时候,不管发生什么事情,拼死确保周末两天有足够的时间投入学习,采取各种措施来规避系统性风险。

从理性的角度来考量,这次的深度学习班也有可能失败,逆向思考一下失败的可能原因:

突发出差或者工作任务过于忙碌,导致课程学习时间投入不足

学习「深度学习」的门槛知识不满足,影响课程消化

继续犯拖延症,或不能很好得处理好短期压力与长期目标之间的冲突

日常练习不足,影响对基础知识的理解,进而根基不牢

成长

但,再次失败了也没什么。单纯的结果导向,是僵固型心智的表现。

非系统性失败指出了具体的改进方向,是优化、夯实系统内部要素的机会。系统性失败暴露出系统本身固有的缺陷,描述了当前框架下的瓶颈与极限,其意义就像是鱼儿终于发现了水。这两者都指向了「学习」的根本目的:改变。

第一序改变处理非系统性失败,在不改变原有系统的前提下,对系统内部元素、元素间关系进行优化。第二序改变则是改变系统本身,即改变自身时间管理能力、改变自控力、改换一个有助于实现自己目标的环境。

所以,不管是 Python 班还是考驾照,技能学习仅仅是一小部分,更多的是要学习新的思维方式,反思自身时间管理能力、自控力、学习方法、固有的方法论,后者才是更需要 Study and Practice 的对象。扔掉单一标准,使用多维视角来看待分析问题,这样才能前进得更远。

本文来自企鹅号 - 开智微播媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

Java程序员月薪达到三万,需要技术水平达到什么程度?

1665
来自专栏程序猿DD

Java程序员月薪达到三万,需要技术水平达到什么程度?(文末送书)

最近跟朋友在一起聚会的时候,提了一个问题,说Java程序员如何能月薪达到三万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到。也许...

1152
来自专栏灯塔大数据

探秘 | 写了一百万行代码是什么体验?

搞程序的累计写到一百万行代码到底是什么体验呢? 如果一百万是标量的话,来和大家研究一下这个数据,假设最好的情况,一天100行高质量代码,一年36500,100/...

4024
来自专栏刘望舒

最接地气的Android面试总结心得

作者:g小志 地址:https://www.jianshu.com/p/d800165da455 声明:本文是 g小志 原创,未经原作者允许请勿转载 前言 首...

3806
来自专栏程序你好

新手程序员如何写出好的代码

我之前的博客文章在推特上火了。这篇文章指出了一个问题——始终遵守某些规则实际上并不能帮助人们更好地编写代码。

1025
来自专栏前端架构

UED团队规范设计参考及建议

公司产品线逐渐增多,变动频繁且并行开发,常常需要设计与开发能够快速的做出响应。同时这类产品中有存在很多类似的页面以及组件,可以通过抽象得到一些稳定且高复用性的内...

9839
来自专栏我是攻城师

新浪网/系统架构师饶琛琳:那一年,我毕业了

3504
来自专栏Java架构

Java程序员月薪达到三万,需要技术水平达到什么程度?

最近跟朋友在一起聚会的时候,提了一个问题,说Java程序员如何能月薪达到三万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到。也许...

1712
来自专栏互联网数据官iCDO

19个令人大开眼界的可靠消费者研究数据源

译者:董梁 本文长度为3058字,预估阅读时间5分钟。 我们今天要向大家分享19个令人大开眼界的可靠消费者研究数据源。 Kyle的注释: 数据是分享洞察、支持...

3826
来自专栏Python绿色通道

Python圈子需要净化一下

最近Python行业大环境出了很多大事,反正是不利于Python生态发展的事情,具体事宜我就不说了,我无意于因为这些事情打一些口水仗,我先做好自己就行.从现在做...

873

扫码关注云+社区

领取腾讯云代金券