把握机缘_机缘巧合,蒙太奇训练以及我的朋友如何使自己失业

news/2024/7/5 6:59:23

把握机缘

by Wiley Jones

通过威利琼斯

机缘巧合,蒙太奇训练以及我的朋友如何使自己失业 (Serendipity, training montages, and how my friend automated himself out of a job)

“No one person’s Hollywood success story has anything in common with anybody else’s Hollywood success story.”
“没有人的好莱坞成功故事与其他人的好莱坞成功故事有共同之处。”
- Old Hollywood saying
-好莱坞老话

One day my friend Luke and I were working on a school project in an empty classroom. We got side-tracked — as usual — and I took the opportunity to ask him the burning question — how had he gotten so good at programming in Python?

有一天,我的朋友卢克和我在一个空荡荡的教室里从事一项学校项目。 像往常一样,我们陷入了困境-我借此机会问他一个亟待解决的问题-他是如何变得如此擅长使用Python编程?

“You know, it’s funny you ask that,” Luke said. “I remember how I got started. But the rest is a blur.”

“你知道,问这个很有趣,”卢克说。 “我记得我是如何开始的。 但是其余的只是模糊的。”

His answer hung in the air, asking to be explored. I knew I was on the brink of a serendipitous story. So I dove in and asked him to take me back to the very beginning.

他的答案悬在空中,要求加以探讨。 我知道我濒临一个偶然的故事。 所以我跳了进去,请他带我回到最开始。

Luke had gotten into programming the summer between our Freshman and Sophomore year of college. I was working in a research lab, and Luke’s job was mostly data entry. Each evening we would hang out and watch The Office while he used CTRL+C and CTRL+V to copy log after log and upload file after file.

卢克(Luke)进入了大一和大二之间的暑假编程。 我当时在研究实验室里工作,卢克的工作主要是数据输入。 每天晚上,我们将出去玩,观看Office,而他使用CTRL + C和CTRL + V逐个日志复制日志并逐个文件上传。

Motivated by the some of the cool programming work I saw done in the research lab, I decided to try my hand at it. After a few Google searches and listicles, I settled on learning Python via the Codecademy module.

受研究实验室中一些出色的编程工作的激励,我决定尝试一下。 经过几次Google搜索和搜索,我决定通过Codecademy模块学习Python。

Me being the type of person who starts things and never finishes them, I decided to ask Luke to join in. He agreed that it seemed like a worthy endeavor. I mean, it was one of “The Top 10 Skills You Need to Compete!” the listicle headlines shouted. Not to mention, “The Language That is Dominating Data Science!” With our sights set, we sunk into the couch and wired in for the first time.

我是那种从头开始却从不完成的人,所以我决定请卢克加入。他同意这似乎是值得的。 我的意思是,这是“您需要竞争的十大技能!”之一 摘录新闻头条大喊。 更不用说, “主导数据科学的语言!” 放眼望去之后,我们第一次沉入沙发并进行接线

But this is not where the magic happens. Our coursework picked up, the hunt for internships began, and we were forced to choose between sleeping, showering, and studying. Side projects, programming tip calculators, and hunting for syntax bugs were at the bottom of a long list of things to be done.

但这不是魔术发生的地方。 我们的课程开始了,寻找实习机会,我们被迫在睡觉,洗澡和学习之间进行选择。 附带项目,编程技巧计算器和寻找语法错误位于一长串要做的事情的底部。

Luke continued his job doing data entry as a means to fund the Saturday night bar tabs and the Sunday evening date nights. Roughly a year had passed and he and I were now working in separate cities.

卢克继续从事数据输入工作,以此为周六晚上的酒吧标签和周日晚上的约会之夜提供资金。 大约一年过去了,他和我现在在不同的城市工作。

Then one evening I received a series of Snapchats from him showing logs of data being copied into Word documents with a caption — “Look ma, no hands!”

然后一个晚上,我从他那里收到了一系列的Snapchat,上面显示了正在复制到Word文档中的数据日志,并带有标题-“瞧,别动手!”

Woah! What happened?

哇! 发生了什么?

With his feet kicked up onto a desk, Luke began to tell me about an engineering course he’d taken last semester that focused on modeling systems in Matlab. Most of the programming was about solving differential equations with approximation methods for calculating satellite trajectories, but one instance required they use Matlab’s file input and output features to read and write data.

卢克(Luke)脚踩在桌子上,开始向我介绍他上学期所学的工程课程,该课程专注于Matlab中的建模系统。 大多数编程都是关于用近似方法求解微分方程来计算卫星轨迹的,但是有一个实例要求他们使用Matlab的文件输入和输出功能来读写数据。

“I just started playing around with the file I/O features in Python with it being free and all. But I started really small. Just writing console input into a text file. Once I finished one task, I would google something else and try to connect it to the previous task. It was addicting.”

“我刚刚开始免费使用Python中的文件I / O功能。 但是我开始很小。 只需将控制台输入写入文本文件即可。 完成一项任务后,我会用谷歌搜索其他内容,然后尝试将其连接到上一个任务。 真上瘾。”

These competencies began to build and multiply as they linked between one another, and formed a skill set that he could start to incorporate into his data entry job.

这些能力在彼此联系时开始建立和增加,并形成了一种技能,他可以开始将其纳入他的数据输入工作中。

Luke continued: “I debugged for days when I first tried automating one of the tasks in my data entry workflow. I hardly understood what I was doing, my scripts were comprised of code stitched together from at least a dozen Stack Overflow answers. One of biggest issues was that some of my code was written based on Python 3 instead of Python 2.7. Something so simple. But when I learned that… it was probably the first monumental step in the right direction.

卢克继续说:“当我第一次尝试自动化数据输入工作流程中的一项任务时,我调试了好几天。 我几乎不了解自己在做什么,我的脚本是由至少十几个Stack Overflow答案缝合在一起的代码组成的。 最大的问题之一是我的某些代码是基于Python 3而不是Python 2.7编写的。 这么简单。 但是,当我知道这一点时……这可能是朝着正确方向迈出的第一步。

“It’s almost painful thinking about it. I seriously had no idea what I was doing. I would change things in the code trying to get a different error message, looking back and forth between the 28 Chrome tabs I had open. It was so easy to keep going on it though, because I had access to so much. I could just type, Python how to copy dates from excel to a word document, and something relevant would come up on Google. I watched YouTube tutorials, studied Stack Overflow code, literally anything relevant.“Slowly my understanding of programming became more deep and profound. I knew the differences between lists and dictionaries, how to import libraries, and loop through data — creating structures as I went. Each error message taught me right from wrong. It was so, so, so painstaking and exhausting. But I loved it and couldn’t wait to get back working on my code.”

“考虑起来几乎是痛苦的。 我真的不知道自己在做什么。 我会更改代码中的内容,以尝试获得不同的错误消息,在打开的28个Chrome标签之间来回查找。 继续进行下去非常容易,因为我有很多机会。 我只需输入Python如何将Excel中的日期复制到Word文档中 ,相关的内容就会出现在Google上。 我看了YouTube教程,研究了Stack Overflow代码,以及几乎所有相关的内容。“慢慢地,我对编程的理解越来越深入。 我知道列表和字典之间的区别,知道如何导入库和遍历数据-随便创建结构。 每条错误信息都教会我对与错。 是如此,如此,如此艰辛和疲惫。 但是我喜欢它,迫不及待地想重新编写代码。”

The Python modules from the previous summer hadn’t gotten this kind of a reaction out of either of us. What was so different this time?

上个夏天的Python模块并没有引起我们两个人的这种React。 这次有何不同?

Luke answered: “The motivation was inherent this time around. I wasn’t building something in order to learn. I was learning so I could build something. That reversal tells all. Doing the data entry manually, with my full attention, took about 2 minutes to complete one loop through the workflow. I knew that automating a couple of the aspects of the workflow would dramatically reduce how much attention I had to give. I really just wanted to have it so I could sit and my desk, run scripts, and watch New Girl.

卢克回答:“这次的动机是内在的。 我不是为了学习而建立东西。 我正在学习,所以我可以建立一些东西。 这种逆转告诉所有人。 在我的全神贯注下,手动进行数据输入大约需要2分钟才能完成整个工作流程的一个循环。 我知道自动化工作流程的几个方面会大大减少我必须给予的关注。 我真的只是想拥有它,这样我就可以坐在办公桌前,运行脚本,并观看New Girl。

“Outside of this being a pain point, the fact that I knew it was possible was huge motivation. It was a challenge of consequence, with real positive implications on my life. People automate processes like this in software all of the time. I knew it was feasible to build workarounds that would result in an identical work product. When I’d ask, why should you keep doing this? The only answer was — why not?

“除了这是一个痛点,我知道这是有可能的,这是巨大的动力。 这是后果的挑战,对我的生活产生了真正的积极影响。 人们一直在用软件自动化这样的过程。 我知道构建可以产生相同工作产品的变通办法是可行的。 当我问的时候, 你为什么要继续这样做呢? 唯一的答案是-为什么不呢?

Now, I’ve found that in my past attempts to learn something, I’ve often stopped once I hit a difficult roadblock. So I dug deeper — “What happened when you hit really bad roadblocks?”

现在,我发现在过去尝试学习一些东西的过程中,一旦遇到困难,我常常会停下来。 所以我更深入地研究了“当您遇到严重的障碍时会发生什么?”

“I hit terrible roadblocks,” Luke said. “Whenever it would compile but I’d get the wrong output — no output being the worst scenario — there were no syntax errors helping me out with what a specific message and line number. I had to draw out my data structures and print my inputs and outputs through each step of code, each time verifying what I would see.

“我遇到了可怕的障碍,”卢克说。 “无论何时编译,但我得到的输出都是错误的-没有输出是最糟糕的情况-没有语法错误可以帮助我确定特定的消息和行号。 我必须绘制我的数据结构,并通过代码的每个步骤打印我的输入和输出,每次验证我将看到的内容。

“I didn’t specifically understand what structures I was building. I was piecing together lists and dictionaries inside one another until they worked the way I needed. I didn’t have any of the conventional wisdom of how to debug code. I’d pour over the code, make adjustments, compare results, and repeat. Time went on and I began writing cleaner code, spending way less time debugging. Seeing the mistakes before I’d make them. Recycling and tweaking old code to fit different needs. Knowing where to look for bugs and knowing how to systematically find them. Knowing how to set up my data structures so I could easily work access the key components and iterate through them.

“我没有特别了解我正在建造什么结构。 我将列表和字典彼此拼凑在一起,直到它们按我需要的方式工作为止。 我对调试代码一无所知。 我会仔细检查代码,进行调整,比较结果,然后重复。 时间流逝,我开始编写更简洁的代码,从而减少了调试时间。 在我犯错误之前先看看错误。 回收和调整旧代码以适应不同的需求。 知道在哪里寻找错误,并知道如何系统地发现它们。 了解如何设置数据结构,以便我可以轻松地访问关键组件并对其进行遍历。

“Overcoming the roadblocks wasn’t the reward. The true value was in the data I had internalized in the process of overcoming the roadblock. It made that much easier to crush the next one.”

“克服障碍并不是回报。 真正的价值在于我在克服障碍过程中内部化的数据。 粉碎下一个很容易。”

Luke had fallen down the rabbit hole, and the inertia of his curiosity wouldn’t let him stop writing code.

卢克(Luke)掉进了兔子洞,他的好奇心使他无法停止编写代码。

Finally, Luke exhaled, looked off into the distance, and slowly nodded his head. “I automated myself out of my job — 85% of it, that is. Almost 85% of the data entry workflow is accomplished through input to the Python console. I’m pretty well stuck at that 85% mark due to the limitations of the file transfer software used for uploading and downloading data sets. But to think that it’s come this long of a way is just amazing.”

最终,卢克吐了口气,抬头望向远方,然后慢慢地点了点头。 “我使自己的工作自动化了-那是85%。 数据输入工作流程中几乎有85%是通过输入Python控制台来完成的。 由于用于上载和下载数据集的文件传输软件的局限性,我非常满意地停留在85%的水平。 但是,以为它已经走了这么长时间真是太神奇了。”

So what happened? Well Luke had gone through a typical Hollywood training montage.

所以发生了什么事? 卢克(Luke)经历了典型的好莱坞训练蒙太奇。

The training montage is a myth. At least, the way any Hollywood movie shows it. The movies skip over the longest, hardest, and most important part! The part where you pour your soul into learning something — master it — through literal blood, sweat, and tears. Possibly years of your life.

训练蒙太奇是一个神话。 至少,任何好莱坞电影的放映方式都是如此。 电影跳过了最长,最难,最重要的部分! 通过真正的鲜血,汗水和眼泪,您倾注灵魂去学习—掌握它的部分。 可能是你一生的岁月 。

Luke had made some serious progress learning how to program over the summer. But like he said, it would often take hours to find certain bugs. He wouldn’t binge on Netflix or go out for a few beers on a Tuesday night like every other college kid living around us. He would sit and program until his eyes burned from the contrast of his white LCD screen against the blackness of the early morning.

整个夏天,卢克在学习如何编程方面都取得了重大进展。 但是就像他说的那样,发现某些错误通常需要几个小时。 他不会像在我们周围生活的其他大学生那样,在Netflix狂欢或在星期二晚上出去喝些啤酒。 他会坐下来编程,直到他的眼睛从白色的液晶显示屏与清晨的黑色对比中被灼伤为止。

This wasn’t a 2-minute scene where he does a few push-ups, catches some chickens, and then runs up a hill. In real life, there are no training montages. There are only long, painful personal growth experiences. But after it’s all said and done, it feels like a blur. Like this serendipitous thing that just happened.

这不是2分钟的场景,在这里他做一些俯卧撑,抓一些鸡,然后跑上山坡。 在现实生活中,没有训练蒙太奇。 只有很长很痛苦的个人成长经历。 但说完一切之后,感觉就像是模糊。 就像这偶然发生的事情一样。

Or as Luke said, “Really though, learning programming wasn’t any different than learning anything else. You suck at something. Then you bust your ass for however long it takes. And then when get you decent at it, you look back and wonder how it happened. Chalk it up to luck or hard work or something like that. It’s really just getting that fire in your belly and choosing to not let anything stand in your way.”

或如卢克所说:“尽管如此,学习编程与学习其他东西没什么不同。 你真讨厌 然后,您需要花费多长时间来破坏您的屁股。 然后,当您体面地做到这一点时,您便回头想知道它是如何发生的。 总结一下运气,辛勤工作或类似的事情。 真的只是让你的肚子发火,选择不让任何东西挡住你的路。”

Maybe life isn’t full of these serendipitous training montages we’ve come to know. Maybe hindsight blurs our vision of the path we’ve taken. Maybe instead, success is full of many late nights, thousands of hours of trial and error, and a lifetime of learning.

也许生活中并不充满我们所了解的这些偶然的训练蒙太奇。 事后看来,可能会模糊我们对所走道路的看法。 也许相反,成功充满了许多深夜,数千小时的反复试验和终身学习。

Did you enjoy this story? If so, please ❤ and share!

你喜欢这个故事吗? 如果是这样,请❤分享!

I tell stories about the compelling things I experience everyday. A few friends and I are currently creating a tech/lifestyle publication we’re calling College Entrepreneur. Contact me at wjones700@gmail.com if you’d like to talk.

我讲一些有关我每天经历的引人入胜的故事。 我和一些朋友目前正在创建一种技术/生活方式出版物,我们称之为“大学企业家”。 如果您想聊天,请通过wjones700@gmail.com与我联系。

翻译自: https://www.freecodecamp.org/news/serendipity-training-montages-and-how-my-friend-automated-himself-out-of-a-job-eb62315f1b4d/

把握机缘


http://lihuaxi.xjx100.cn/news/240537.html

相关文章

form表单的action提交写到js中来,同时onclick事件也写在js中来。其action也可以通过ajax来提交的。...

假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请…

51单片机编码自学_这是9个月的自学式编码看起来像什么

51单片机编码自学by Stephen Mayeux斯蒂芬马约(Stephen Mayeux) 这是9个月的自学式编码看起来像什么 (Here’s What 9 Months of Self-Taught Coding Looks Like) 只是划伤表面 (Just Scratching the Surface) Today marks 9 months since I embarked on my journey as a self…

IE8下不识别indexOf的问题

1、为Array原型添加indexOf方法(如果学过面向对象,相当于给Array类添加实例方法),方法体如下: //添加数组IndexOf方法 if (!Array.prototype.indexOf){Array.prototype.indexOf function(elt /*, from*/){var len this.length >>> 0;var from Number(arguments[1])…

配深度学习环境要注意的不多,也就

1. 使用nvcc -V命令查看cuda版本,再在官网选择对应版本的pytorch。(是的不要根据python的版本去选择pytorch指令) 2. 用conda安装pytorch可能一直有cpuonly的玄学问题。(哪怕选择的是CUDA版本的pytorch安装命令)改用pip安装。 3. torchtext不会被顺带安装&#xf…

配置Tomcat和在Eclipse中创建Web工程

配置Tomcat服务器信息:在Tomcat的安装目录下有一个conf目录,里面存放着Tomcat服务器的配置文件,其中最为核心的配置文件是server.xml,在这个文件里我们可以配置服务器的各种参数,例如超时时间、连接数量、端口配置等等…

kvm启动报错

[rootstorage ~]# virsh -c qemu:///system list error: failed to connect to the hypervisor error: Failed to connect socket to /var/run/libvirt/libvirt-sock: No such file or directory原因:libvirt未启动解决方法[rootstorage ~]# libvirtd -d [rootst…

构建node.js基础镜像_在Android上构建Node.js应用程序

构建node.js基础镜像by Aurlien Giraud通过AurlienGiraud 在Android上构建Node.js应用程序-第1部分:Termux,Vim和Node.js (Building a Node.js application on Android - Part 1: Termux, Vim and Node.js) If you are excited about Node.js and own a…

python标准库介绍——23 UserString 模块详解

UserString 模块(2.0 新增) UserString 模块包含两个类, //UserString// 和 //MutableString// . 前者是对标准字符串类型的封装, 后者是一个变种, 允许你修改特定位置的字符(联想下列表就知道了).注意 //MutableString// 并不是效率很好, 许多操作是通过切片和字符串连接实现…