本文转载自公众号《读芯》(ID:AI_Discovery)学习Python的经历让我受益匪浅。可以说,它深深地改变了我的人生轨迹。这段学习经历告诉我:专注于你能掌握的东西,通过开源站在巨人的肩膀上,一个人可以通过小的甚至零预算的项目产生很大的价值,大项目很快就会到来。我既不是成功教练也不是专业开发人员,我在自己的环境中取得成功的方法可能不适合你。然而,我已经帮助很多同事成功地开始了他们的编码之旅,我希望这个模型也能帮助读者入门。梦想我从小就对技术着迷。我早期的记忆之一是摆弄一台旧收音机,拆开它,检查电路,然后重新组装。十几岁的时候,我迷上了游戏机和电脑。我一直热衷于学习编程,但大多数尝试仅限于重复教程。上大学的时候,我写过很多小应用,但从来没有真正成为一种习惯。大学毕业后,我立即被聘为金融经济估值分析师。但我的梦想是写代码,成为开发人员,用技术解决问题。我希望把这个想法告诉我的经理和同事,在得到正式授权后继续代码之旅。这听起来很荒谬,如果人们不能证明我能做到,他们怎么会相信我呢?编写代码并不是我被录用的原因。重大任务从未到来,距离我的第一份工作已经三年了。我一直在收听技术会议广播,阅读相关博客,看到蓬勃发展的开源社区开发了哪些令人惊叹的产品,我成为开发人员的愿望只会越来越强烈。不能说第一份工作一文不值,学到了很多金融建模和经济框架,但内心深处,我还是很向往硅谷的技术。等待完美的任务降临在你身上是一个美梦,但这是不可能的,而且是你无法控制的。在大学开始征程的时候,我选择了以C#为基础的.NET框架作为技术栈。直到今天,我仍然喜欢C#语言的优雅和表现力。然而在工作中,我当时的主要任务是处理数据。.Net库不太适合数据科学问题,因此我将注意力转向了Python。我接受了一个挑战:无缘无故地利用业余时间连续100天编写Python代码。有些日子会很愉快,我一次不能停下来几个小时,而其他日子会很懒惰,只写几行。但我终于坚持下来了,100天后,我在想下一步该怎么做。当时在工作中遇到一个任务,需要反复对一些财务报表进行数据校验。这个任务一开始很有趣,但是在第五次之后,我厌倦了在Excel中一遍又一遍地创建10个数据透视表。那时,我渴望将新学到的Python技能付诸实践。带有Pandas包的Python提供了Excel可以提供的所有数据操作功能。Excel提供按单元格控制,而列向量可以通过Pandas进行操作。假设添加两列,在Excel中需要在第一行定义一个公式,然后往下拉。而对于Pandas,需要引用的数量是列名——幕后操作会立即应用于整个列。一旦多行生成,无需调整逻辑,只需一行代码即可添加两行。此功能非常适合我的任务,我执行的大部分检查都是简单的聚合比较。你可能认为我练习了100天就准备好了,但是这次练习并没有教会我如何解决问题。遵循教程是一回事,将问题转化为可管理的步骤则是另一回事。我一步一步浏览博客和StackOverflow喜欢提问,知道我可以将我需要解决的问题转化为代码。它并不快,但我设法使检查任务自动化。我将手动执行的检查和验证转换为几秒钟的代码执行。学习本教程是一个很好的起点。然而,要正确学习一门编程语言,就必须找到自己的问题并加以解决。分享、学习和帮助第一次成功激励着我。当时团队中没有人在工作中使用Python,大多数人只会ExcelVBA、PowerQuery和Access。我对Python的介绍引起了很多人的兴趣,觉得它通俗易懂,也启发了很多同事学习这门语言。虽然我还是一个初学者,但我突然变成了一个可以提供建议并帮助人们入门的人。这也带来了一些新的问题。通过与同事讨论并合作实现许多想法,我学到了很多关于Python的知识,并获得了一些很棒的实践经验。与团队合作解决复杂问题促使我扩展了版本控制、单元测试和持续集成/持续部署方面的视野。展示你自己的产品,你周围的人可能会面临类似的挑战。最坏的情况是,你周围的人可能不感兴趣,但即便如此,你也不会因为表现而失去任何东西。在最好的时候,有人在你身边会促进工作,也会问你新的问题并提高你的技术。接受新的挑战从那时起,我们面临的挑战也越来越大。偶然地,我们部门过去用来发布财务结果的遗留财务应用程序变得无法使用。接受Python的挑战本来只是一个念头,现在却成了必然的选择。我被要求组建一个团队并领导一个Python程序的开发,为期两个月。不出所料,我们的小团队按时完成了任务。挑战令人伤脑筋,但并非无法克服。如果我一直梦想着能得到这样一个大任务的机会,那么当机会来临时,我也会很惨地失败。相反,我选择慢慢提高自己的技能和团队的技能,这使我们逐渐走向成功。之后发生的事情是我无法控制的。由于这个项目的开发成果,我得到了第一次升职加薪。一年之内,我找到了一份新工作。我目前负责与财务功能的数据集成。使用最先进的数据平台和分布,我解决了几年前难以想象的问题。从细微处开始改进,当更大的挑战来临时,你就能做好准备,成绩就会随之而来。学习Python是一段艰难的旅程。开源社区创造了许多令人惊叹的工具、培训材料和许多问题的答案。它一直是我学习过程中最大的帮手。在过去的几年里,我一直在从这些内容中获益。现在,我有能力在技术上帮助别人,还有更多的事情等着我去完成。
