在本周播客节目中,freeCodeCamp创始人Quincy Larson采访了Joe Hill。他是一位软件工程师,在NASA从事数据平台的工作。Joe在做清洁工的同时自学编程4年。作为两个自闭症男孩的单身父亲,他首先利用自己的编程技能开发了一个iPad应用程序,帮助孩子们学习说话。我们讨论了:- 数据工程以及将国防部数据整理到一个中心平台- 软技能在大型组织中完成工作中的作用- 自学中耐心和实践的必要性- 如何停止在各种工具之间跳跃,而是深入学习一种工具- 抚养自闭症孩子的技巧本播客由Wix Studio的资助支持。Wix Studio为开发人员提供工具,可以快速构建具有所有开箱即用功能的网站,然后使用代码扩展、替换和突破界限。了解更多信息,请访问https://wixstudio.com。本播客还得到了11,384位慷慨人士的支持,他们通过每月捐款支持freeCodeCamp。您可以加入这些友善的人们,并通过访问https://donate.freecodecamp.org来帮助我们慈善机构的使命。我们在谈话中提到的链接:- 1992年经典黑客题材电影《Sneakers》的预告片:https://www.youtube.com/watch?v=NEhgUxQ322A- Joe的领英页面:https://www.linkedin.com/in/joe-hill-4a138123/</context> <raw_text>0 欢迎回到freeCodeCamp播客。我是Quincy Larson,freeCodeCamp.org的教师和创始人。今天我们与Joe Hill进行访谈。他是一位软件工程师,在NASA从事数据平台的工作。Joe在做清洁工的同时自学编程四年,同时还是两个自闭症男孩的单身父亲。他首先利用自己的编程技能开发了一个iPad应用程序,帮助孩子们学习说话。
我们讨论了数据工程以及将国防部数据整理到一个中心数据平台。我们讨论了软技能在大型组织中完成工作中的作用。我们讨论了自学中耐心和实践的必要性,以及如何停止在各种工具之间跳跃,而是深入学习一种工具。最后,我们讨论了抚养自闭症孩子的技巧。Joe Hill,欢迎来到Free Code Camp播客。你好,Quincy。感谢你的邀请。
是的,很高兴邀请你来到这里。我和你通信,我不知道,差不多十年了,我们在疫情爆发前,在布鲁克林参加过一次Free Code Camp优秀贡献者活动,很久以前的事了,对吧?感觉像很久以前了。确实感觉像很久以前了。那就像另外一种生活一样。但你对我来说是一个巨大的灵感来源,因为你自学了编
程。你自学了数据工程。你从一名清洁工变成了在NASA、国防部和其他拥有海量数据需要处理和分析的大型组织工作的 数据工程师。我想更多地了解你,所以我很高兴你能来参加这个节目。太好了。这是一段漫长的旅程,我仍在继续。这很有趣。
在我们开始了解你的旅程之前,我想先问问你目前使用的工具,因为许多对数据工程感兴趣的人可能会想知道那些在如此高水平工作的人在使用什么工具,以及他们可能会把时间集中在哪里。所以也许你可以带我们了解一下你每天大部分时间都在使用的工具以及这些工具的功能。
所以我目前主要使用三种语言,即SQL、PySpark和Python,以及名为Databricks的环境。我过去也主要使用SQL来处理和转换数据,使用的是微软的技术栈。因此,我会使用Visual Studio,不是Visual Studio Code,而是Visual Studio,它具有
SQL Server Integration Studio、SQL Server Reporting Studio,还有SQL Server Management Studio。我也用过这些。但现在主要使用的是Databricks和Python、PySpark和SQL。是的,PySpark到底是什么?
PySpark是由Apache开发的一种语言。它在Databricks中使用。它有点像SQL和Python的混合体。在转换数据或查询数据以及寻找显示数据的方法甚至有趣的数据转换方法时,可以使用它。我主要用它来显示数据,在我
创建数据框并将数据从外部来源导入到我需要工作的位置之后。我主要使用Python来完成所有这些工作。所以当你说数据框时,它有点像你数据的暂存区。就像你说的,从外部来源导入数据。所以也许你从data.gov或一些,你知道的,
比data.gov上发布的公共数据更私密的渠道,或者只是外部的,你知道的,API之类的东西获取数据。但是,你将所有这些数据放入类似于构建空间的地方。从那里你可以,这是准确的吗?
是的,我认为它们就像我不倾向于像其他人那样抽象地思考数据。我认为它更像是一种物理的东西。所以你需要像水或油一样,当你移动东西时,你需要知道位置。你需要把它带进来,并建立管道来移动它。
数据框本质上是一个容器,用于在你使用数据时存储它。数据工程师会进行大量的转换。他们会对数据进行大量的分析,看看数据是什么样的。
我们做了很多把方形木桩塞进圆孔里的工作。所以你的容器有一种特定的方式来存储数据,并且需要符合这种方式。所以你需要转换数据,以确保它符合要求。是的。是的。所以,我的意思是,你提到做了很多SQL,你知道的,可能像数据的迁移和转换,试图从一个
你知道的,模式转换成另一个模式。没错。是的。有时你甚至不知道你正在使用的模式。所以你必须找到显示和理解它的方法。所以这就是……
这项工作很大一部分甚至不一定是编写大量的代码,而是肯定要进行大量的分析、理解、自己作为人来导入数据,并找到方法,好吧,这个,这个看起来像,你知道的,这些是数字。这个看起来像那个。所以有时是常识,有时不是。所以是的,数据分析是这项工作的重要组成部分。
是的,所以很多思考和可视化,然后抽象地弄清楚你将如何从这个多维表转换到这个。我感觉这对你的大脑来说计算量很大。会的。我发现……
对数据需要做什么提出很多问题,如果我们没有与数据源联系的话。有时情况可能就是这样。例如,在一个案例中,我从财政部导入数据。我们没有财政部的任何联系人。所以你必须自己回答很多问题。但有时它可以像
过去,在一个公司工作,你处理和转换的所有数据都是一个由一个人维护多年的Excel表格。而且大多数情况下,你会发现这个数据库只是一个由走廊尽头的琳达运行的Excel表格。所以能够停下来问关于这些问题是很重要的。所以知道如何与人相处,并且……
打招呼并友好相处,我认为这会为你打开比你想象中更多的门。你几乎就像一个私人侦探。不像私人侦探,但像一个四处走动的侦探……像法医一样。是的,试图弄清楚,好吧,这个谷歌表格是如何这样转换的,或者更可能是……
Excel电子表格多年来的转换,以及为什么添加了这个和那个?就像,你知道的,因为你必须进入维护它的人的思维方式,因为世界上很多数据都存储在Excel中。它不是存储在,你知道的,像这个架构良好的,你知道的,数据库中。确实不是。是的。特别是当你像更小、更小的,像地方政府和之类的东西,以及像小型企业之类的东西,像freeCodeCamp一样。像我,我,
广泛使用谷歌表格来跟踪,比如做工资单之类的事情。我不一定会坐下来说,我要构建这个,你知道的,企业级的,呃,
数据库,当我只有一个人使用它时,没有必要这样做,随着时间的推移,这样做可能是有意义的,但是,是的,如果你不小心在需要小数点的地方打了一个逗号会发生什么,每当我,每当我以前在工作时,你知道的,一个完整的,你知道的,一个完整的导入工作被破坏了
因为在第11958行,美元和美分旁边是一个逗号而不是一个句点。这些键在键盘上紧挨着,如果你使用的是小文本,它们看起来非常相似。是的。
所以这可能需要一天的时间,你必须逐行检查,好吧,为什么这个会坏掉?你在运行作业时会设置断点和之类的东西吗?找出它中断的步骤。然后你必须——经验会这样做,这将允许你从那一点反向工作,并能够找到错误在哪里。
本播客由Wix Studio的资助支持。Wix Studio为开发人员提供工具,可以快速构建具有所有开箱即用功能的网站,然后使用代码扩展、替换和突破界限。了解更多信息,请访问wixstudio.com。本播客还得到了11,189位慷慨人士的支持,他们通过每月捐款支持Free Code Camp。您可以加入这些友善的人们,并通过访问donate.freecodecamp.org来帮助我们慈善机构的使命。
我们应该注意,在整个谈话过程中,你和我都会小心不要——你拥有联邦政府的安全许可。所以你没有太多网络存在感的原因也是我的理解。就像你不能使用网络——你必须非常小心你在公开场合所说的内容。所以如果有人希望获得关于政府中发生的疯狂事情的一些内幕消息,我们可能无法讨论。
透露太多这些事情。但是,嗯,而且,我应该,我应该注意,以防Joe的雇主在听,他也没有私下向我透露任何这些事情。我没有安全许可。谢天谢地,NASA稍微开放一些。这也是一件好事。他们所做的一切都是,呃,我认为,呃,很少有事情是保密的。这是一件好事。但是是的,我在,我在国防部工作了几年。我不能谈论太多关于这方面的事情。我可以谈论更高级别的术语,但是,嗯,
这是你在获得许可时必须考虑的事情之一,作为一名程序员,因为政府需要程序员,就像其他任何地方一样。所以我,我已经是一名承包商近三年了。是的。但在那之前,你知道的,我在金融行业工作,你也必须小心你在网上做了什么以及类似的事情,因为你,
同样,你被信任处理个人数据,很多PII。个人身份信息。国防部代表国防部。我总是特别说明缩写词。是的。
所以在金融领域,就像很多——如果你说一些——你说错了话,你会被罚款。人们可能会利用这些信息进行交易,你可能会导致人们损失一大笔钱。是的,甚至从安全的角度来看,如果你分享了很多信息,比如我最喜欢的电影是《Sneakers》。
我喜欢这部电影。我也喜欢,对吧?但是很多人可能会使用SeaTech Astronomy作为密码之类的东西。如果你在敏感领域工作,比如处理数据之类的事情,SeaTech Astronomy是1989年电影《Sneakers》的参考,顺便说一下,伙计们。太多秘密了。是的,太多秘密了。所以……
如果有人想看的话,我会链接到预告片。很棒的80年代电影。我相信是80年代末,90年代初。哦,可能是92年或93年,因为那是苏联解体之后。无论如何。是的。但是人们可以注意到这些事情。所以如果你在网上分享了很多个人数据,并且在……
或其他任何事情,人们可以使用LinkedIn和其他东西来访问你。所以不幸的是,这意味着我网上的存在感会减少,但这也有好处,因为它可以帮助你锁定一些东西,并在这方面保持安全。是的,所有最常见的密码之一,
就像他们做这些像常见的密码的转储一样。所有时间中最常见的密码之一是NCC1701。你知道这是什么吗?是的,那是企业号。是的。是的,所以很多星际迷航迷只是用它作为他们的密码。他们认为,哦,没有人会猜到这个随机的字符序列。哦,是的,他们会。星际迷航迷的想法很相似,显然。是的,很多人使用它。所以如果你透露了太多关于你的兴趣或爱好的信息,你可能会被黑客攻击。是的。
是的。使用密码管理器。使用密码管理器。这就是我所做的。呃,而且,你知道的,我,我,我知道,呃,嗯,我开始使用一个,呃,1Password,呃,他们收费,但我开始使用它,我认为大约10年前,我再也没有回头。所以是的,我们使用LastPass,但后来它被入侵了。所以我们不得不迁移到1Password,但是你甚至可以,如果你只是想要一个免费的,我认为,呃,
Firefox和Chrome都有密码管理器。这些应该足够安全。苹果现在也正在整合他们自己的密码管理器。所以也有这个。是的。无论如何,就像随机的公共服务。是的。所以专业人士,你知道我的意思吗?所以,所以你并不总是像,你知道的,国防部或NASA的财务部门的承包商。你并不总是为大型科技公司工作。
或大型金融公司从事数据工程类型的工作。曾经有一段时间,你只是在擦地板。
我想了解你的起源故事,但我也想承认你的家人有在联邦政府工作的历史,你的父母有安全许可。就像三代希尔家族一样。是的,差不多是这样。当你来到我现在居住的地区,弗吉尼亚州的诺福克,那里有世界上最大的海军基地。我们有……
是的。
呃,我的祖父在海军服役了38年。呃,他们不得不强迫他离开。他是一名高级枪炮长,呃,这导致我父亲经常搬家。我的另一个祖父是海军陆战队,然后他在航空航天技术领域工作。所以,呃,就是这样开始的。我的父母为海军和陆军工作,最近退休成为公务员。所以,呃,
在我成为一名程序员相当长一段时间后,我偶然进入了这个行业。所以谢天谢地,你知道的,我在领英上确实有存在感。所以有人从密苏里州斯科特空军基地的一家小型承包商那里给我打来电话,这家公司是美国运输司令部,在那里我得到了我的第一份工作。
在国防部的工作,但我也在军队服役了几年,早在2000年代初期,我受了伤,无法完成这项工作,所以……
但无论如何,我做过很多工作。你能谈谈你的服役经历吗?这是保密的还是你可以谈谈?是的,像大多数人一样,我当时20多岁。在2000年代初期,我获得了神学学位,这意味着漫长的职业生涯伴随着很多零售工作。
所以,我的意思是,我卖过珠宝或服装或做过其他鞋子,并且真的想为我的生活做更多的事情。所以我决定军队将是一个好方法。所以我于2003年加入了……
当时,呃,这是一个实验项目,你可以,呃,报名参加特种部队,他们会带你参加步兵学校、跳伞训练、游骑兵,呃,游骑兵学校、快速索降,然后,呃,
希望在大约三年后进行选拔。所以这是一条漫长的路。我参加了跳伞训练,在那里受了伤。跳伞训练到底是什么?所以,我的意思是,你接受训练成为空降步兵。所以从C-130飞机上跳伞,并希望……
希望双脚着陆。我没有。我发现了一个土拨鼠洞。所以一条腿一直伸进土拨鼠洞,另一条腿着地。所以它弄坏了我的膝盖。所以……
那几乎是我军旅生涯的结束。我做了康复。我试图回去,但我最终在训练中再次受伤。当时的军队有很多新兵,说,谢谢,但不用了。所以我被医疗退伍了。是的。
好吧,当然,你的膝盖受伤了,这很糟糕。直到今天,你仍然——你是否仍然遭受着它的后果?哦,是的。我的髌骨严重骨折,你知道的,是第二次受伤造成的。所以留下了一个漂亮的小肿块。髌骨基本上是你的膝盖骨。所以它裂成两半,我能够——
谢天谢地,会好的,但我不是最好的跑步者,你可能注意到了。但与此同时,我仍然做很多运动,比如举重之类的事情。所以我非常喜欢它。是的。我想力量训练和类似的事情不会非常费力。如果你做深蹲之类的动作,你会感觉到吗?我做深蹲时感觉很多。我必须非常小心深蹲,因为它感觉……
它感觉就像它要侧着走一样,你知道吗?所以它在我的右膝盖上感觉不太对劲。是的。就像,我,我和你都在四十多岁,而且就像,我基本上停止了做那些力量举重类型的练习,因为我的意思是,就像你想的那样,所有东西都顺着你的脊椎往下走。就像在一天结束的时候,就像唯一支撑你的就是脊柱。当你肩膀上扛着200、300磅的重量时,你给它带来了很大的压力,以至于,
在你做了很多深蹲之后,你实际上会稍微矮一些,因为你压缩了你的脊椎。你压缩了它,是的。如果你做了很多年,然后跳到一个引体向上杆上,然后让自己悬挂着,你就会知道你的脊椎是否被压缩了,或者你的下背部是否有点歪斜。你会很快知道的。是的,我已经几乎完全迁移到电缆和自由重量了。
但是你呢?你还在做力量举重吗?我还在努力做一个年轻人,做力量举重之类的事情。但它不像……
我认为,我认为随着年龄的增长,它在我的大脑中不再是一场竞争了。我终于开始明白这一点,并开始意识到,呃,你知道的,你,你不会与,你知道的,时间是一条直线竞争。你仍然在变老,一切都在变老。你不会变年轻。所以开始做一些更有用的事情。所以我正在努力,努力去做。嗯,努力理解,呃,只是不同的动作,嗯,
嗯,和力量举重一样有效,即使力量举重这件事非常有趣。它只是,它只是,它在我的大脑中是一种如此原始的东西。我非常喜欢它。所以这很棒。是的。我和很多通常是年轻的举重运动员谈过话。虽然,你知道的,举重是你可以在八九十岁的时候做的事情之一,有些人已经做到了,对吧。那些在八九十岁时仍然非常强壮的人,呃,在那时,你知道的,所以,
是的。但是,但是你必须在做这件事的方式上保持可持续性。就像,我不会再做任何重深蹲或重硬拉了。我想。是的。但是,呃,但是你有两个年幼的儿子。呃,他们对举重感兴趣吗?
我最大的儿子感兴趣。我的两个儿子都有自闭症,所以在训练或学习新事物方面,事情会变得有点有趣,尤其是我最大的儿子。但他对冰球和橄榄球产生了极大的兴趣。
以这种方式训练。而且他,他,我也是冰球迷。所以他和我说过很多关于这方面的事情,但他在他,在他高中,他开始和力量教练谈话,什么,什么,
呃,他想了解冰球运动员做什么,但我们学校并没有冰球队。所以他在高中学习橄榄球运动员做什么。所以他也对橄榄球产生了热爱。所以这很棒。是的。是的。我想了解一下,呃,就像,就像抚养两个自闭症儿子一样,以及随之而来的额外考虑,嗯,
我认为如果我们能回到过去,这样我们就不用一直跳来跳去,谈谈,好吧,你主要是在诺福克长大。我知道你和你的家人在国外生活过很多年。工作带他们去了欧洲和其他地方。但是你能谈谈你早期的日子,以及最终是什么让你对电脑产生了兴趣吗?是的。
是的,我……所以,大约在2010年左右,我已经……
我已经在军队服役了。我做过电缆技术员,做过断线员。所以我爬上电话杆,切断了那些搬家或其他原因的人的电缆。嗯,所以要搬运很多梯子,嗯,然后我能够成为一名技术员。所以我爬到人们的房子下面,拉电缆,做类似的事情。然后,呃,在那时已经结婚了,有几个孩子,但是,嗯,我最大的儿子,呃,
当时,他三岁,还不会说话。他是不会说话的,所以这意味着很多尖叫和喊叫,我的小儿子也表现出一些类似的倾向。所以这对我和他的妈妈来说压力很大。我和他的妈妈后来离婚了,但当时我们还在一起。
所以,然后找出,得到诊断,并理解从运动技能、学校和语言等方面来看这意味着什么发展。所以有很多东西需要吸收。
但我一直对电脑感兴趣。从我妈妈带回家一台旧的Tandy电脑给她工作的时候起,我就一直喜欢科技。对于那些不知道的人来说,它只是一个黑白屏幕。这是在大型五英寸半软盘上玩Dig Dug的好方法。
你知道的,英寸软盘,非常薄。但我一直很喜欢它。我知道那里有一些工具,但我开始探索像iPad这样的东西,因为iPad在2010年是全新的。大约在那段时间,寻找可以帮助我儿子学习说话的工具。
而且不多。当时有一些非常昂贵的应用程序。当时,我是一名理财规划师,我正在寻找客户。所以我想,我想帮助像我这样的家庭,他们的孩子有特殊需求,需要帮助储蓄等等。
我不是一个很好的理财规划师。我尽力而为。但是,你知道的,当你刚开始的时候,这很难。但我仍然会安排约会,坐下来和人们谈谈他们的家庭和他们的需求。一位女士说,乔,我真的很感谢你与我们谈论财务问题,但我真的需要工具来帮助我的孩子。我只是需要一些东西来帮助他交流。所以我当时想,好吧,我不是唯一一个。
所以这让我在诺福克的一家儿童医院与一名言语治疗师预约。我坐下来和他们说,你们用什么来帮助,比如软件方面?你们用什么?我可以下载什么工具?你知道的,我可以使用iPad吗?我一提到iPad,他就说,iPad是玩具。没有人使用它。
他说,我们这里有一台平板电脑可以使用。它就像这样。他把它拿了出来。它就像一个非常厚的平板电脑。
平板电脑。如果你还记得当时的Windows CD,那么Windows有一种移动技术。它不是最好的,但它是他们所拥有的。它是一个Pex工具,所以它上面有很多图片之类的东西,你可以触摸它,但它非常复杂。你必须经过几个菜单。你需要很多帮助才能使用它。它不是很直观。我想出了一个主意。我想,如果我制作一个iPad应用程序,
我可以使用它拍照,因为我可以拍摄iPad的照片,但我也可以将我的声音录制到这些照片中。所以我的儿子可以点击它,他们会听到我的声音、老师的声音或他妈妈的声音。所以我拿了一本Objective-C的书,在那时开始学习什么是编程,你知道的,什么是iPad应用程序。
我的第一个版本真的很糟糕。我不知道我在做什么。但这让我能够与该地区使用Objective-C和制作iPad应用程序的其他开发人员交谈,因为当时每个人都在制作应用程序。每个人。iPhone、iPad,所有东西。iPhone当时已经三年了。
所以他们帮助了我,我成为了一个项目经理,他们承担了很多义务工作,但也做了一些付费工作,以便完成Division,你知道吗?
我们能够发布,我认为我将以此为基础建立一个大公司。但事实证明,在发布的第一天,我只有一笔销售,仅此而已。我想把它卖掉,我相信是20美元,对于一个应用程序来说,这很多。这是一个很大的要求。但我认为有这么多有特殊需求儿童的人,它会得到一个很大的……
在本周播客节目中,freeCodeCamp创始人Quincy Larson采访了Joe Hill。他是一位软件工程师,在NASA从事数据平台工作。Joe在做清洁工的同时自学编程4年。作为两个自闭症男孩的单身父亲,他首先利用自己的编程技能开发了一个iPad应用程序,帮助孩子们学习说话。我们讨论了:- 数据工程以及将国防部数据整理到一个中心平台- 软技能在大型组织中完成工作中的作用- 自学中需要耐心和练习- 如何停止在不同的工具之间跳跃,而是深入学习- 抚养自闭症孩子的技巧本播客得到Wix Studio赠款的支持。Wix Studio为开发人员提供工具,可以快速构建具有所有开箱即用功能的网站,然后使用代码扩展、替换和突破界限。了解更多信息,请访问https://wixstudio.com。本播客还得到11384位通过每月捐款支持freeCodeCamp的好心人的支持。您可以加入这些友善的人们,并通过访问https://donate.freecodecamp.org来帮助我们慈善机构的使命。我们在谈话中讨论的链接:- 1992年经典黑客题材电影《Sneakers》的预告片:https://www.youtube.com/watch?v=NEhgUxQ322A- Joe的领英页面:https://www.linkedin.com/in/joe-hill-4a138123/</context> <raw_text>0 你知道,一次大型发布。这是一个很好的故事,你知道,一个父亲,你知道,试图帮助他的孩子,而我做到了。但是,你知道,它让我上了报纸,让我上了Inc.com,让我上了TechCrunch和其他一些地方。但在那时,我开始学习很多关于
项目管理,管理的意义,呃,只是管理期望,并必须对功能等做出一些艰难的决定。在构建软件方面,嗯,真正参与到产品中。嗯,这是,这是,呃,这是一种历练,但这确实让我走上了……
结识很多程序员,就像,嘿,他们可以按时付账单。嘿,他们不必拿很多。我当时做着三份工作。是的。最终,理财规划师的工作黄了,我不得不去做清洁工。我做过几份清洁工作。
在那时,我只是说,好吧,程序员似乎真的很喜欢他们正在做的事情。他们或许可以帮助我走上这条路。到那时,我认为是2012年,2013年左右。我正在经历离婚。所以我只是说,我真的很需要一些,我需要在这里找到一些可行的方法。那时我决定开始全职学习编程。
嗯,呃,我们可以深入讨论这个,但这确实是……的重点,嗯,整个旅程的重点。所以,是的。
是的,所以你通过这个应用程序的发布获得了大量的媒体关注,这再次体现了一个引人注目的叙事背景。父亲想帮助他的孩子,他从阅读Objective-C手册等开始,自己开发并发布了这个应用程序。
这个应用程序后来怎么样了?你还在用它吗?我们一直在用它。这是一件好事。我的大儿子迪肯非常喜欢它。我的小儿子格纳不太喜欢,但他也很享受。真正为他们打开……
其中一扇大门的是能够交流他们正在玩的游戏,比如愤怒的小鸟或其他游戏,你知道。那是……
那是我们一个重要的转折点。所以,呃,但他们确实使用了它。它确实有帮助。最终,我们支付的许多治疗也起到了作用。呃,他们真的很好,我们在学校和他们的……方面非常幸运,嗯,他们的老师帮助他们,指导他们进行运动技能训练等等。嗯,现在会被描述为……
对于一些了解自闭症是一个谱系的人来说,这有很多不同的程度。我的大儿子仍然有学习困难,但他今年将从高中毕业。我们将尝试为他找到一份好工作。我的小儿子在数学和科学方面做得非常好,但他喜欢管道工程。他拿旧的
呃,管道,呃,用品并翻新它们,呃,比如马桶之类的东西。他找到它们,人们把它们扔掉,他,呃,用,你知道,特殊的清洁剂和酸来清洁它们,更换里面的零件,然后卖掉它们。呃,而且它赚了,而且他只有,呃,你知道,他只有16岁。是的。做得非常好。所以,嗯,这是一个漫长的旅程,但我们真的,呃,他们,他们是很棒的孩子,无论,你知道,
无论他们是什么样,他们都绝对很棒,我非常爱他们。但作为父母,你会担心确保你的孩子即使你不在身边也能过得好。我认为这是我最大的担忧,也是我开始这段编程旅程的另一个原因。是的,绝对的。我的意思是,这是一个非常现实的必要问题
这是我经常思考的事情,你知道,free code games,慈善机构,我在free code camp没有任何股份。如果我不再从事free code camp的工作,我的报酬就会消失,是的,我必须去找工作等等。我不想让我的,我的家人陷入困境,如果,你知道,我被公共汽车撞了或者类似的事情。所以,而且,而且你还有额外的维度,比如你,
听起来你其中一个儿子正在做所有管道工作,理论上,如果他真的对管道工程感兴趣,他可以把它变成某种形式的生意,无论是成为一名管道工,还是只是与管道工一起工作——
翻新设备之类的东西。是的,我认为他比我同龄时更有动力。当我16岁的时候,我有一辆小吉普车,我开着它到处跑,我在Fuddruckers工作,对吧?但我认为尽早找到一个行业,这是我试图让他们去做的事情,因为我的生活,在我的
我的20多岁和30出头之前,我最终才找到了一些东西。我认为这让我落后了很多。所以找到一个行业或找到你擅长的事情,或者找到你可以工作的事情,这样你就可以努力做到这一点,并利用你一生中所学的一切是
嗯,那,那,呃,听起来比实际情况复杂,因为很多时候你会偶然发现它,呃,就像我偶然发现编程一样。但是,嗯,
但与此同时,我已经融入了我在零售业学到的很多东西,以及当我做有线电视技术员时,甚至在军队或其他地方,或者当我读研究生(我没有完成)或大学时进行的研究,我已经将所有这些都用在了编程中,所以我试图同时教他们,就像,如果你没有立即弄明白也没关系,但是
找到行业。首先找到你可以过上好日子的东西,然后开始探索。然后就可以了。这样做没有坏处。是的,然后你总会有退路。百分之百。我总是可以退回到教英语或经营英语学校。我认为这给了我……
有点像如果你看看马斯洛的需求层次理论,呃,你知道,你会有像基本的生理安全等等。就像我可能可以去找到一份工作,呃,做其他事情,如果,如果一切都乱套了。嗯,同样地,就像,就像你正在做的数据工程方面的工作等等,呃,
我的意思是,世界上数据的数量不会突然消失。它不会……就像,所有由世界各地的琳达管理的随机的,像,Excel电子表格不会神奇地全部合并,并且像这样,你知道,普遍可访问的API或类似的东西,对吧?对。我认为当我们……时,它会变得非常有趣。
你知道,我们现在在科技行业,我遇到过,多亏了Free Code Camp,我学会了编程。你知道,有一天我在咖啡店工作。旁边坐着一个学生,他要去诺福克的奥尔德明尼昂大学。
嗯,他注意到我的笔记本电脑上的所有贴纸,其中一个写着“数据”,你知道,另一个贴纸是,你知道,几个Python贴纸,我还有其他一些东西,他说你是程序员吗?我说是的,我是一个,我工作,我是一个数据工程师,他说,哇,太酷了,他说,呃,你是怎么进入这个行业的,你知道,然后我告诉他我的故事,关于我如何学习编程,以及
最后,我掉进了我所说的数据工程的“虎穴”。当我得到这份工作时,我不知道数据工程的存在。好吧,当时,他们称之为业务集成工程师。我的第一份工作是在诺福克的一家信用合作社。这涉及大量的SQL查询和报告,并没有真正处理API,因为其他人处理这些。但我正在学习查询数据,并
根据人们的需求构建报告。所以我必须,你知道,很多人会说,嘿,乔,我需要一份从……
这个日期到那个日期的报告,其中包含这些信息。你能把它给我吗?所以我必须学习如何进行SQL查询等等。如果它是可重复的,就编写他们所谓的存储过程。它就像一个存储并每天运行的小型SQL程序。然后我开始学习你可以自动化它,你可以告诉SQL,
服务器将该报告通过电子邮件发送给那个人。我还发现,银行不喜欢那样。所以当我这样做的时候,他们把它关闭了。所以我发现你可以编写Perl脚本等来自动化,在特定时间运行,从我的机器上存储的报告中获取该报告,并根据我的需要通过电子邮件发送给那个人。
存储它,一旦它移动并在每天运行后存档它。然后我开始学习SSIS。总之,我开始告诉他所有这些。他说,我不知道这些东西的存在。这个人是大学的计算机科学专业的学生,对吧?所以能够坐下来和他们谈谈,嘿,这并不是……
这不是线性的。你正在学习你需要做的事情。你已经有一只脚踏进门了。当你毕业后,你可以做很多事情来提高你的实践能力,这样你就可以得到一份好工作。但是Free Code Camp和其他我使用的工具为正在寻找工作或担心自己做得不够以获得编程工作的人们打开了如此多的门和对话。我可以告诉他们我的故事,并说,我,在我真正能够静下心来每天学习编程之前,我花了三年时间才找到我的第一份工作。所以是的,没关系。学习这些东西花时间没有错,因为
任何人的旅程都不一样。所以你永远不需要将自己与他人比较,尤其是那些可能拥有更快速通道的人,因为他们从小就开始从事这些工作。是的。哇。我想回顾一下你刚才说的很多事情。首先,在诺福克与信用合作社合作,很多……
入门级的编程工作不会在谷歌等地方。就像你将从可能甚至不在科技行业的地方开始。三分之二的工作甚至不在我们所说的科技行业。他们在医院工作。他们在……工作,嗯,银行。他们在……工作,呃,就像当地的……制造业务之类的东西。对。嗯,我还认为你说的另一件非常有趣的事情是,呃,
能够逐步弄清楚存储过程等等,这样你就可以在学习时开始自动化工作,因为……
编程的妙处在于代码是无限可复制的。如果你知道如何做某事,你不需要每次需要做的时候都重新发明轮子。你可以像……保存那个脚本。然后你可以运行那个脚本。你可以自动化事情,你可以继续前进,就像——我把它比作爬越来越高的山。你在这里,你解决了这个问题。所以这有点像基础,或者几乎像你爬山一样建造一座山。
呃,在你前进的过程中建造梯子,呃,就能够像,你知道,解决这个问题,而且它还在运行,你还在完成这些事情,但你可以将注意力转向下一个大问题。是的,我,嗯,
当我学习的时候,最大的推动力是开源项目,对吧?找到一个开源项目,去GitHub。这是正确的。但是我会去GitHub,我会看着这些东西,我想,我不知道我该如何在这里做出贡献。我不知道。在我看来它看起来很好。我不知道。有一个问题。你知道,我能解决什么问题吗?
所以我处理更实际问题的方法是我在工作中遇到的问题,那就是,嘿,乔,这份报告,我需要在最后加上日期。所以我发送的每份报告,我都输入日期。然后我意识到,我敢打赌我可以编写一个脚本,我可以将此文件放在特定位置。我可以告诉脚本查找此文件。
移动它,复制它,将其移动到这里,附加日期,发送它,然后是原始文件,继续附加日期,然后将其移动到存档文件夹以便我可以跟踪它。我可以在Windows资源管理器中完成所有这些操作,你知道,只是,你知道,在文件结构中,去重命名并在末尾添加日期,然后将其移动到文件并复制,然后将其移动到我需要的地方。但是一旦我发现了这一点,我大约在……
你知道,一秒钟内就解决了。我,呃,并且我能够看到它在移动和做事情。那就是,你知道,瞳孔放大发生了。我想,哦,好吧。所以,嗯,
编程可以非常实用,它可以解决很多这些问题,而不仅仅是追逐错误或进行错误赏金或其他我不太理解或说实话,不感兴趣的事情。我不,我不希望为别人追逐错误,也许他们会付给我50美元,或者,
好吧,你知道,或者在开源项目中得到赞扬。我的意思是,这听起来可能有点自私,但这只是,这只是对我来说没有道理。对吧?我现在明白了,因为我正在从事开源项目,而且我,而且我试图尽我所能做出贡献,或者我正在帮助其他人解决他们的问题和程序。
但当时,当我学习的时候,这并不是一件让我很快就能理解的事情。所以,我的意思是,前几天我写了一个Python脚本,来遍历我的计算机上的文件结构,使所有带有空格的文件都带有下划线,并使所有……
驼峰式命名法,现在它看起来整洁多了,我喜欢我的文件结构的样子,我花了几小时来查找所有这些内容并学习如何操作,看看我是否可以进入更安全的文件而不用担心其他事情。所以所有这些,它导致了几个兔子洞,但这是一个实用的项目,我完成了它,它有效,它节省了我很多时间。所以……
挠你自己的痒处,可以这么说,这成为你学习的一种引人注目的方式。你不是因为其他人有问题而学习。这就像第一人称一样,就像,我确实有这个问题。我真的很想解决它。这激发了你的好奇心,并给了你继续学习的理由。有点自私。我不愿承认,但有点自私。但与此同时,我,我,
时间对我来说总是至关重要的,我只是想理解我为什么要做某事。所以,我认为当我学习的时候,对我来说的大问题并没有真正到位。比如,我为什么要学习变量?我为什么要学习数组?我为什么要学习……
这些东西,必要的构建块,对吧?直到我,比如FreeCodeCamp,我的第一个项目是计算器项目。所以我真的什么都不懂,直到我开始想,哦,我需要在这里的这个变量中存储结果。我需要编写一个能够进行加、减、乘、除等操作的函数,并调用这些函数才能使其工作。
所以它只是,你有点陷入小问题的泥潭中,困难在于继续前进,直到你开始构建它们,你开始明白为什么单个乐高积木最终会构建更大的东西,对吧?同样,对我来说,任何编程旅程都是,是的,对我来说,首先解决这些小问题变得更实际了。然后它也导致了数据工程,因为这些是,
相互构建的构建块。这是我真正喜欢数据工程的原因之一,尤其是我知道我有一个物理的东西。我需要移动它。我需要建立移动它的能力。然后我可以使用它,然后我把它移动到其他地方。然后我们可以用它做其他事情。对。那些,那,那,那,那,那些步骤对我来说是有意义的,因为我有,我,
我不愿这么说,一个软技能和编程之间奇怪的混合大脑。我知道如何编程。我知道如何做这些事情。但是当我向那些说,你为什么来这里乱动琳达的电子表格的人解释事情时,这对我很有帮助?有些人可能不明白。他们可能会抵制他们雇用你做的工作。
所以你必须能够向他们解释,嘿,这是琳达的电子表格工作得很好。你知道,它已经工作了很多年了。但是如果琳达离开了会发生什么?如果琳达在应该用句号的地方用了逗号会发生什么?如果我正在做的事情是在这里设置一个表格会发生什么?
我们可以查询,这样琳达可以继续她的工作,但你可以做你的工作,而不必等待琳达每天给你发电子邮件发送电子表格。做这样的事情。为他们使用数据的方式提供切实可行的解决方案。能够向人们解释这一点非常重要,因为你是一名程序员。
所以我想说的一件事是,你确实花时间像理财顾问一样,这很大一部分是解释,好吧,这就是你为什么需要这样做。这就是为什么保险或这个投资工具或这个税务考虑很重要。
所以你可能花了大量时间来分解事情并向那些说,哦,我只是不想处理这些事情的人解释事情。对。我想很多组织里的人都是这样。他们只是说,我只是不想处理这个。比如,我们为什么需要这个?所以你能够进来并阐明原因,并使他们更容易接受它。这样他们就会让路,给你你需要的东西,这样你就可以完成你的工作。
绝对的。是的。你在那里完美地推测了。当我从事零售工作时,我做的一份工作是在百思买。这是解释——当我为我开发一个应用程序时,我正在解释iPhone等等。但是——
每当你销售时,你必须分解,嘿,这是你的需求。这是你想要的。这就是它可能成为你解决方案的方式。嗯,我总是喜欢,每当我销售一些东西时,我都想相信我正在销售的东西,因为如果我不相信它,或者如果我知道它不好,我不会卖它。我只是,是的,这只是一个个人准则。不仅如此,就像,我只是不想处理之后可能出现的问题。比如这个人会不开心,因为它不管怎样都不起作用。
所以你试图,这现在已经延续到编程中。你想能够提前考虑人们可能遇到的潜在问题。所以你可以做一个项目
有A、B和C,但你也可以添加,你知道,D、E、F,无论你需要什么,以便提前考虑,以便处理这些潜在的问题。并向他们解释。但是,你知道,从
从旧的Excel电子表格中进行数据可视化,并说,嘿,你在这里有这个。你还想看到这些指标吗?并且能够走过去说,我理解你为什么这样做,但这个指标应该涵盖它。但我认为你真的不需要
这在这一方面有点多余。他们可能会说,好吧,我们需要它用于这个或那个。然后你开始更好地了解他们的业务。这也能让你更好地为它编程。这一切都是关于能够沟通。因为再次,如果你没有这样做,你就会陷入
好吧,我正在创建这个变量,我正在创建这个数组以及其他一切。然后没有人满意。它变得无聊。它变得,你知道,只是停滞不前。所以能够拥有那种,至少对我来说,能够拥有那种沟通并与那些不会编程的人一起工作,嗯,当这开始凝固时,感觉真的很好。而且,而且我认为这是我在过去几年中发现的事情,嗯,
从直接的SQL报告转向实际进行数据工程之后,嗯,
与利益相关者建立这种类型的关系非常有趣。我喜欢它。是的。为了说明这一点,以便人们真正理解你为什么这样做,以及他们关心并尊重你正在做的事情,而你不仅仅是,哦,该死的那个数据人员一直在烦我。他这次做了什么?不。现在我能对你想完成的事情产生一点共鸣吗?是的。
他们可以期待……哦,是的,这实际上将成为我的一个重大改变,因为我不必再做XYZ了等等。所以本质上,它是……
只是一个沟通问题。生活中很多都是沟通问题。听起来你在零售和金融领域之前的作品中,你能够对以下内容产生共鸣:我知道你很忙,你必须做X、Y、Z。让我来帮你解决这个问题。所以你能够给出这种明确的目的。然后这促进了合作,而不是对抗性关系或只是冷漠。是的。
是的,我,你知道,如果它仅仅是关于,对于那些刚刚学习或正在学习的学生并且还没有在专业领域工作过的人来说,工作中有一个方面
你被分配了工单,你需要查找错误,你需要修复这个,你需要编写这个程序,你需要编写这个报告。如果你不小心,你只会成为一个工单完成者。这很好。但我认为你建立职业的方式是……
不仅仅是一个工单完成者,还要理解为什么编写工单,理解你被要求做什么,比仅仅使用完成此任务所需的工具更深入。它是,这里需要解决的问题是什么?这个工单会完成它还是与另一个问题有关?它会导致很多事情,我认为在那里你
你可以不仅仅是……一个只是接受命令的工程师。你是一个在思考……业务方面如何使业务更好,或者如何使部门更好,或者如何使……更好的工具或工具的工程师,
它也导致了关于你想使用的工具的更好对话,因为然后你可以给出原因,为什么你作为程序员遇到的问题,你给出了原因,为什么事情可以改进或更快地移动,或者无论如何,同时让你的生活更轻松,让利益相关者的生活也更轻松。
当那样的时候,它会变得更有趣,而不是你只是带着帽子来,我可以请你提供这个程序吗?他们只是说,不。对吧?因为你也会经常遇到这种情况。所以系统地思考,对问题着迷,而不是对解决问题的工具着迷。我认为很多人修复,
修复它,对工具过度关注,这就是为什么我们没有广泛讨论工具的原因。我们没有像,你知道,呃,这些,这些关于像,哦,这个工具与那个工具的争论,工具只是实现细节。嗯,
最大的挑战通常是理解实际问题并帮助其他人理解问题。这就是为什么很多人对会议过敏。他们对……过敏,我只是,我只是想要一个明确定义的,你知道,问题,这样我就可以解决像大多数开发人员工作一样。你不会像在你的……隔间里整天,就像……
解决像完美表达的工单之类的事情,一些,如果,如果你有其中一份工作,那么恭喜你,因为其他人一直在努力为你准备这些问题。所以它们都准备好了。所以你可以,你知道,击中它们,呃,在实践中,呃,
在本周播客的这一集中,freeCodeCamp创始人Quincy Larson采访了Joe Hill。他是一位软件工程师,在NASA从事数据平台的工作。Joe在做清洁工的同时自学编程4年。作为两个自闭症男孩的单身父亲,他首先利用他的编程技能开发了一个iPad应用程序来帮助他们学习说话。我们讨论了:- 数据工程和将国防部数据整理到一个中心平台- 软技能在大型组织中完成工作中的作用- 自学中耐心和实践的必要性- 如何停止在不同的工具之间跳跃,而是深入学习- 抚养自闭症孩子的父母的建议本播客的支持来自Wix Studio的资助。Wix Studio为开发人员提供工具,可以快速构建具有所有开箱即用功能的网站,然后使用代码扩展、替换和突破界限。了解更多信息,请访问https://wixstudio.com。支持还来自11,384位通过每月捐款支持freeCodeCamp的好心人。您可以加入这些轻松的人,并通过访问https://donate.freecodecamp.org来帮助我们慈善机构的使命。我们在谈话中讨论的链接:- 1992年经典黑客抢劫电影《Sneakers》的预告片:https://www.youtube.com/watch?v=NEhgUxQ322A- Joe在领英上的页面:https://www.linkedin.com/in/joe-hill-4a138123/</context> <raw_text>0 把事情做好是一件很混乱的事情,它确实涉及大量的沟通开销,会有很多会议,也会有很多利益冲突的利益相关者等等。你必须解决冲突。你必须弄清楚事情的轻重缓急。当人们真正想要的是汽车时,他们会要求一匹更快的马,但他们不知道如何表达出来。这类事情会经常发生。
当你与一群庞大而多样化的人合作完成某件事时,例如发射卫星或发射詹姆斯·韦伯望远镜,这种情况总是会发生。我只能想象一下发射詹姆斯·韦伯望远镜的行政开销。我甚至无法想象,对吧?还有一件事就是——
作为政府承包商,对吧?我受某个实体的委托来解决问题,对吧?我不仅要与我的承包商老板打交道,还要与我的政府老板打交道,有时他们可能不会完全一致,因为承包商必须考虑,
成本以及他们如何收费以及他们是否会为此获得报酬。政府老板也必须考虑成本,尤其是在NASA,因为在预算方面非常紧张。国防部的情况略有不同,但是
这些因素都必须考虑。因此,需要进行大量的沟通。如果你从事的是非政府承包的企业工作,你仍然需要考虑我是员工。按一定的金额支付报酬。我有一个想法。
我要提出这个想法,有时这个想法可能会被否决,因为他们要么不理解它,要么不理解问题,要么不理解解决方案,要么就是时机不对。是的。所有这些事情都必须考虑。作为一名年轻的程序员,我的很多时间都花在了想为什么他们不听我的话上?我显然知道解决方案。
如果我们批准这个特定的文本编辑器,这显然会有所帮助。但事实并非如此。成为与工具无关的人是作为程序员你所能拥有的最大优势之一。如果你走进一个地方,他们说,我们使用X,你说,很好,我会学习它。顺其自然。没有必要
呃,立即与工具堆发生冲突,因为你习惯了另一个工具堆,而那是你喜欢的。嗯,
我有两句座右铭。一句是“一切皆可修复”,因为一切皆可修复。如果有什么东西坏了,没关系,因为当我的代码无法工作,或者当我试图启动我的汽车时,汽车无法启动或类似的事情时,我会感到紧张和害怕。一切皆可修复。这只是时间、精力和金钱的问题,对吧?
第二句是“semper gumby”,意思是永远灵活。你需要愿意在某些事情上保持灵活,并理解坐在你对面的人不是你。他们没有你的大脑。他们没有你正在大脑中建立的所有与这些问题的联系。所以尽你所能去理解这一点。如果你的老板只是
否决了你所有的想法,那就这样好了,好吧,你只需要让这些事情从你身边掠过,因为那个老板不会永远在那里,或者你不会永远在那里,你可以继续做一些更好的事情,或者学习你可以在任何时候学习的东西,并尽量不要让这些事情让你太沮丧,因为人生苦短
不必为这类事情担心。通过学习来解决问题会更好。几年前我还不了解Databricks。我习惯了SQL Server Management Studio。我喜欢用SQL查询。我喜欢能够做到这一点。我喜欢能够做我能做的一切,创建存储过程等等。但是,如果我进去说,好吧,我喜欢SQL Server。我不喜欢Databricks。
那么我就错过了学习一个真正好的数据平台的机会。我仍在学习它,因为它非常庞大。它有很多机会,以及许多集成,使我能够学习其他工具,如Tableau和Power BI以及我必须使用的其他工具
以前我从未使用过。是的,这是一个新的机会。“semper gumby”,永远灵活。成为与工具无关的人是你可以作为开发人员做的最好的事情之一。它将为你打开许多学习新工具的机会,这些工具可能是你被分配到的,你可能曾经说过,我已经对这个工具足够好了。这似乎只是另一个与之非常相似的工具。但是由于,
只是有点像让你的很多自我和你的过去,我想,呃,能力有点滑落,好吧,我会,我会做我的老板告诉我的事情,我会学习这个新东西。呃,或者这个利益相关者告诉我,呃,这为你打开了学习的许多途径。我认为是这样。是的,而且,嗯,
我知道我们在谈话中时间上跳来跳去。我道歉。这是患有注意力缺陷多动障碍并且从一件事跳到另一件事的性质。但是,是的,这是我获得的最大收获之一——我认为自学成才的工程师的一大好处是,你不需要带着很多自负进入这个领域。很多自负是建立在——
期望之上。如果你有很高的学历或类似的东西,人们对你的期望会比自学成才的人高得多。利用这一点。不要让你自己强加的期望或他人强加给你的期望限制你开放思维的能力。因为,就像你说的,10年前我还是个清洁工。
现在我在为NASA工作。这是一个巨大的飞跃。但是有很多东西要学习。我的意思是,这可以说是最大的可想象的飞跃。是的,我个人为此付出了很多学习。很多挫折,很多错误,几次被裁员。但与此同时,这就是为什么我说一切皆可修复。一旦你进入这个领域,你就会拥有一项技能。
这将,无论是前端编程、应用程序开发还是数据开发,或者其他任何东西,它都允许你拥有一个不容易找到的视角和技能。人们可能会说,人工智能将接管所有工作。我说,猜猜看?人工智能很棒。这是一个很棒的工具。当我想快速编写查询并获得良好的基线并了解其来源时,我会自己使用它。
但它不能总是解释逗号应该在哪里放句号。它不能总是解释需要分析的代码或数据的变化。当所有这些事情发生时,你仍然有工作。与此同时,如果有人明天走进来对我说,乔,人工智能已经接管了你的工作。好吧,我以前擦过地板。如果需要,我会再做一次。
但我认为我们还没有达到那个地步。是的。所以,如果你对
人工智能接管或做其他事情感到焦虑,或者我为什么还要开始?哦,因为它为你提供了一个拥有更好生活的机会。它为你提供了一个发展你通常不会拥有的技能的机会,例如在故障排除、软技能或建立联系方面。这就是你这么做的原因。你知道,这本来就不容易。任何值得做的事情都会很困难。所以,你知道,
你必须尝试。即使将来某个时候它可能会被淘汰或类似的事情,也没关系。一切都会好起来的。我也在通过这个来告诫自己。但你只需要学会如何应对这种潜在的失望。是的,是的。
我的意思是,自从约翰·亨利以来,人工智能一直在抢走工作,对吧?驾驶桩,然后他们引进驾驶桩的机器。你知道吗?人们总是找到新的、更高技能的事情去做。像你这样的人,semper gumby,永远灵活。我一直想出
一种方法来继续完成事情。而且,嗯,我个人认为人工智能被过度炒作了,人们的既得利益和他们的市场资本化是基于,你知道,说服人们他们可以拥有一个盒子里面的开发人员。绝对的。我认为,呃,我认为这方面确实存在。而且,嗯,很多,很多,很多事情我很容易被营销所左右。我就是这样。是的。
我走过机场,看到大型横幅广告
关于人工智能、数据存储或任何东西的广告,我很容易被“哇,那一定是的,那一定是下一件大事”的想法所左右,或者它可能在几年后就消失了,所以如果你像我一样是大型齿轮中的一个小齿轮,你能做的最好的事情就是,到目前为止一切顺利,我会继续做这件事,继续学习和保持开放的心态,是的,嗯,然后
你知道,是的。你学习的一切,就像你花的所有时间学习,你实际上是在变得更擅长学习,而学习才是关键。开发人员真正拥有的技能是能够灵活适应并采用新的工具以及适应情况的能力。嗯,我,我当然钦佩你,就像我以前擦过地板一样。我会再擦一次。你知道,我,我钦佩你这一点,你愿意做任何需要做的事情来养家糊口,而且,呃,
做需要做的事情。我一直告诉人们的一件事就是,在某种程度上,你可以放下你的自尊,你可以做一份日常工作,比如在星巴克工作或做清洁工,或者做任何你需要做的事情来支付账单,同时你也在学习。你花了大约四年时间学习这个。你之前提到过,你与一位计算机科学专业的学生交谈过,他走到你面前,询问你笔记本电脑上的贴纸,他们不知道你正在使用的许多工具,因为你
科技真是太庞大了。这里有大量的不同工具或大量的不同学科。仅仅获得计算机科学学位并不一定能让你做好准备。我经常与正在努力寻找工作的计算机科学毕业生交谈。这当然有帮助,我鼓励人们去获得计算机科学学位,当然。但是
呃,你需要真正锻炼那块肌肉,呃,就像学习一样,你需要把它锻炼到能够更快地掌握事物的地步。你的大脑中有一个巨大的联想网络,就像,哦,这有点像我三年前学习的工具。而且,而且,
每次你学习,你都会在学习上变得更好一点,学习速度也会更快。在我看来,真正的关键开发人员技能是能够灵活适应并学习新事物的能力。我会把软件工程师的工作描述得更像,
而不是实际实施解决方案。因为如果你了解问题,如果你了解用于实施该问题的解决方案的工具,那么你已经完成了大部分工作。亚伯拉罕·林肯说过,如果我有八个小时砍倒一棵树,我会花前两个小时磨斧头。当你停止在编辑器中挣扎或停止只是……
疯狂地搜索工具时,你实际上开始解开问题并思考其所有离散组件,思考所有不同的潜在解决方案,并在开始深入研究之前进行高级思考。听起来这似乎是你多年来学习做的事情。你认为进入科技领域,
从外部视角来看,在学校学习过完全不同的东西,从事过完全不同的领域,你认为这不仅会让你处于没有在大学期间编写代码的劣势,而且你认为这也会给你带来很多额外的视角,这对完成工作很有用吗?是的,在很多情况下,我认为是这样。我认为……我参加过几次面试……
嗯,整个小组,你知道,这是一次技术面试,整个小组都是计算机科学专业的毕业生,他们正在寻找计算机科学专业的毕业生。对。我立刻就能看出情况是否如此。我也可以诚实地告诉他们,就像他们会问你一个问题,为什么你在这种情况下做了X?我,我,你知道,早些时候我说,因为它有效,嗯,
我不知道还有其他方法可以做到这一点。我一直遇到障碍,最终我发现了这个和这个,这就是我发现这个的原因,可以堆栈溢出,它有效。他们说,你可以这样做。我会说,很好。我不知道。如果情况是这样,我会学习它并继续前进。我没有获得这些职位,因为我不是他们正在寻找的人。在这些考虑方面,我非常务实。但是,嗯,
但是是的,我的意思是,它允许你对某些事情有更多的视角,你不会对每个角色都完美无缺。有时你只会错过一些东西,因为你没有真凭实据。获得它们的方法是每天去工作。另外,你必须意识到,如果你没有得到一个职位,那只是时机不对。
你最终可能会担任一个人们喜欢你的角色。就像你的氛围一样,能够和你交谈。他们只是想让你加入团队,伙计。他不知道。他不知道,呃,SQL,但他可以很快学会SQL。如果他愿意学习,我会教他,你知道,我们会从那里开始。这就是你需要的机遇,是,是,呃,健谈的,你知道,
我和你相遇是因为Free Code Camp和Free Code Camp社区,对吧?能够在很久以前建立这些小型社区小组。当我学习Free Code Camp时,我变得非常热衷于它,并在这里的诺福克建立了一个小型聚会。而且……
创建了一个小型Facebook群组,开始回答问题,开始让我的程序员朋友们来演示React和其他他们正在使用的工具,或者GitHub或其他任何东西,只是为人们做一些简单的介绍。我遇到了很多要么是计算机科学专业的学生,要么是退伍军人的人,他们都是非常积极主动的人,他们没有科技背景,
但知道这是未来,知道他们想成为其中的一员,无论需要付出什么代价。有些人后来成为了程序员。有些人没有,因为这并不适合他们,对吧?但积极主动是第一步。我正在与我去的很多餐厅的餐厅经理交谈,他们有兴趣学习代码。我问进展如何。她说,我已经两个月没做任何事情了。
这有点像锻炼一样,对吧?你会遇到去健身房的人,他们非常兴奋,然后他们受伤了,然后他们就不再去了,你知道,六、七、八、九个月。最终他们会回来。他们可能会感到难过,因为他们觉得自己在这方面失败了。我说,
嘿,你已经两个月没做任何事情了。没关系。当你能够的时候再回来。是的。时机必须适合你。如果你正在学习,如果你正在学习一项新技能,如果你正在学习一项新爱好或其他任何东西,你知道,我昨天刚完成了一个砧板,现在就放在我旁边。这是一个,你知道,这是一个木工项目,你把木头粘在一起做成一个砧板,用于烹饪等等。是的,是的,是的。实际上,这很酷。我可以给你看看。是的。举起来。
我会完成这个的。哦,伙计,这太漂亮了。是的。这是一件我在2018年从YouTube上学习的事情,我偶尔还会做。我现在正在为自己做一个,因为我把旧的送人了,因为我真的很喜欢它。但是有人需要一个,所以我把它送给了他们。我为自己做了一个新的。非常酷。但它就像那些事情之一,
你知道,这只是,这只是这种,呃,有点像你可以有动力,但是必须有需求。当有需求时,对我来说,我正在擦地板,我想,我想能够支付我的账单。而且,呃,经历了个人挫折,因为我无法支付所有账单。在我学习代码的时候,我的车被收回去了,不得不向父母要钱并还清。不得不去,呃,
你知道,沙发冲浪等等。有很多挫折。你知道,你看最终结果,你会想,哇,这太棒了。你知道,有,你不会遇到和我一样的挫折,但与此同时,我也不会遇到和你一样的挫折。这只是关于愿意有点固执,并把它放在你的脑海里。如果它真的是,呃,
你想做的事情。你可以做到。你可以。即使你开始和停止,开始和停止,开始和停止,你仍然在开始。你仍然在保留。最终,你会到达那里,没关系。是的。我喜欢健身房的比喻,因为我和你谈论过举重之类的事情。你生病了,你只需要休息几周来完全重新锻炼。
恢复。这就是我推荐的。我不建议你在生病时努力举重。因为你只会延长你的疾病。呃,但很多人确实有爆发性的动力,他们就在那里,他们正在做。然后他们喜欢发生了一些事情,他们受伤了,或者生活发生了变化,或者,你知道,
无论出于何种原因,他们都停止了。但是每次你回来,你仍然保留了你取得进展的一些痕迹。这不像你完全忘记了关于编程的一切。你可能会觉得你完全忘记了关于编程的一切,但是一旦你开始做,你就会开始意识到,哦,好吧。我确实有点记得这个。每次你从头开始,即使你一次又一次地从头开始,你确实是从一个可能看不见的基线开始的,对吧?
你甚至没有意识到。这就是我一直告诉人们的事情之一,比如,嘿,如果你有一段时间没有使用FreeCooking了,并且想回来,那就重新开始吧。没什么大不了的。比如,最坏的情况是,你回顾一下,你会直接浏览它。当你再次开始并重建一个项目或类似的东西时,这也会给你信心。我前几天不得不查找如何制作临时表,你知道,因为我已经很多年没有制作临时表了。在SQL中,当你只是……
你知道,如果它不存在,就创建这个临时表,然后把这些数据放在这里,或者其他什么东西……
我不得不查找它,因为我已经很久没有做过了。因为我忘记了如何做某事,我是一个失败者吗?不。不。我的意思是,我只是一个脑功能有限的普通人。好吧,我们已经将这种想法正常化了,哦,你不知道如何执行XYZ程序,你是一个工程师或医生,天哪。有点像这种文化,
表现出自信,任何盔甲上的裂痕都是一件非常令人尴尬的事情。我认为对于软件工程来说,它太复杂了,而且事情一直在变化,你可以很容易地查找这些东西。就像你不应该把你的自尊与,哦,我知道如何制作临时表联系起来一样。比如,
任何自信的开发人员都可能查找并弄清楚如何在一段时间和参考后做到这一点,对吧?有一集《实习医生风云》。我不知道你是否看过这部剧。它是喜剧等等。但其中一件有趣的事情是,有一位年长的医生出现了。我认为是迪克·范·戴克扮演的。我不确定。但他就像一个导师,就像其中一个顶级——
医院里的家伙,他是一个主治医生,对,这个人,我不知道他的名字,但我们叫他奎格利吧,奎格利什么都知道,然后奎格利要对这个病人进行一个相当过时的程序,呃,它仍然存在,但它只是过时了,也许不是最好的,而主治医生说,嘿,你不想这样做吗?他说,好吧,我
呃,是的,但是,呃,我知道怎么做。他不知道怎么做,他搞砸了,他最终伤害了病人。对。而且,嗯,
因此,作为一名工程师,不要有这种自负,谢天谢地,我们没有在病人身上工作,对吧?是的。我们没有处理实时数据。我们希望在将它推送到生产环境之前,在良好的测试或开发环境中工作,或者类似的东西。但是,在某些情况下,你想确保你正在做的事情是正确的,以及其他一切。如果你必须查找它,那就查找它吧,伙计。你不需要记住这些东西。是的。
没关系。过度自信会致命。它确实会致命。而且,你知道……
军事行动,就像你知道我是一个星际迷航的粉丝一样,克林贡人最主要的事情之一是他们拥有这种战士的骄傲,这意味着它有点像,有点像有毒的男子气概的体现,因为他们就像,他们会像,为了某种报复而战死,而不是坐下来,呃,谈谈,或者所以像,他们会如此坚定地相信,某种攻击路线是光荣的方式,以至于他们会把整艘船
你知道,呃,与船一起战斗而沉没。就像,好吧,你刚刚失去了一艘船,你知道吗?好吧,酷。你有荣誉,但是拜托。是的。在某种程度上,就像,我认为,确实有一种倾向,那就是永远不要让他们看到你流血。对,只是,你知道,试图冲破它。而且,而且,呃,我,我,
可以坦率地承认,当我学习软件开发并参加会议时,有时人们会说,哦,你知道这个吗?哦,当然。我想我知道,你知道,就像假装直到你成功一样。但这并不是正确的方法。呃,我只是在工作面试中,如果你说,哦,你的意思是,他们可能会更欣赏你坦诚相待的事实,但是,呃,
风险在于你假装你理解某些东西,然后他们问你更深入的问题,然后他们基本上把你当成骗子。本质上,这没有乐趣。是的,就像愿意说,我不知道,但我可以学习它。是的,这让我走得更远,或者我不知道,但是当我使用X、Y和Z时,我做了这个、这个和这个。这就是为什么,这就是我们想出的解决方案,或者其他什么。
我不了解Data Factory,但我以前使用过SSIS,而Data Factory非常相似。因此,在创建数据作业、摄取作业和所有其他事情时,只是愿意说出来,这样你就不会出卖自己。
你不会低估自己。再说一次,你是一个员工。你是他们潜在的资产。你不想因为有缺陷而一开始就处于不利地位。你不想成为一个次品或其他任何东西,尤其是在你坦诚一切的情况下。那么,这对每个人来说都是最好的策略。是的。
好吧,我们快结束这次谈话了,但我确实想和你谈谈几件事,因为多年来你通过与Free Code Camp诺福克小组的人交谈和鼓励他们、指导他们,帮助很多人学习编码。你能谈谈你从鼓励其他人学习软件开发中学到的一些东西吗?也许如果你有任何你想分享的重大成功故事或其他任何东西,我很乐意听到。
是的,不幸的是,由于COVID,你知道,这个小组几年后就解散了。但是……
我仍然非常支持,如果人们正在寻找生活中的一些东西来帮助他们经济上或帮助他们找到工作,那就是谈论编码,以及与随机学生见面。就像我说的,我认为我获得的最大收获之一不仅仅是
嗯,开始和停止的方面。这不是一座你有一天会到达顶峰的大山。这只是,这只是,嗯,一些,嗯,只是持续的,嗯,持续的上坡路,对吧。在学习中,就像你说的,嗯,但其中一件事,呃,我有一个朋友,呃,嗯,
他最初在苹果公司担任技术人员。他销售了很多苹果产品,但他想学习编程。这要归功于我和他谈论 freeCodeCamp 以及我一直在研究的一些书籍和其他学习资源。我想他花了七年时间。
在他找到第一份编程工作之前,因为他总是开始,然后他的生活中发生了一些事情,他停下来,开始,停下来,开始,停下来。最终,我在领英上收到一条消息,就像,“嘿,乔,我找到工作了”,看起来像,
真的吗?你知道,甚至我,甚至我都认为他只是放弃了。你知道,这对他来说并不奏效,或者其他什么。不,他仍然坚持着。只是坚持住了。现在他是一名程序员,使用 React 等进行前端工作。这真的,真的让我很高兴,因为一个小型的聚会小组,我认识了这个人。
因为我们都有改善生活的共同愿望,并找到了这样做的方式。这是一种特质。这与管道安装或焊接等没有任何区别。这是一种特质。有时学习需要一段时间。
没关系。你知道,我不会制作完美的切菜板。在木工方面,我还想学习很多东西,这些东西我只是在观看 YouTube 视频时开始学习的。我想获得更复杂的设计等等。嗯,我现在可以开始考虑了。嗯,而其他人现在才刚刚开始,嘿,我刚拿到我的第一台带锯。我刚拿到我的第一台台锯,你知道,每个人都在他们旅程的不同阶段。而且,呃,这是我从中学到的一个重要的事情,嗯,
只是耐心和兴奋地对待人们。拥有这种同理心,这是一次非常棒的经历。是的。你说的有一件事让我很震惊,我的意思是,七年是一段相当长的旅程。你花了大约四年时间才找到你的第一份工作。
呃,而且,而且那种感觉,那种最初的热情爆发。也许你会告诉你的所有朋友和家人,我要学习编程。然后,他们就像,哦,好吧。然后几年后,你可能觉得你学习编程失败了,但只要你继续尝试,呃,
并继续投入时间和精力。呃,你能够找到一份开发人员的工作是有希望的。很多时候,我喜欢说的是,你还能做什么?我的意思是,这是一个很好的领域。是的,已经发生过裁员。是的,人们担心软件开发的某些方面会被自动化。是的,在我看来,这大多是被夸大了的。呃,但是,呃,
找到一份开发人员的工作很难,但在我看来,这非常值得。你还能进入哪个领域,在那里你可以做有趣、令人兴奋的工作,解决问题,每天都有不同的问题,与不同的人交谈,了解他们的问题并帮助他们解决问题?然后还要使用无限可复制的代码,如果你搞砸了,你只需要抓住它并修复它,你不需要……
打电话给中国的供应商,说,嘿,我们需要进行另一轮生产。你打电话给集装箱的承运人,嘿,我们需要——不要装载那个集装箱。它有缺陷的——哦,不。就像我们可以修复代码中的所有内容一样。太棒了。
哦,生产中出现了一些问题,生产崩溃了。好吧,我们的 99.99% 的正常运行时间就这样消失了,但我们仍然可以修复它。代码是无限可复制的。修复成本低廉。迭代很容易完成。我和那些工作没有紧密反馈循环的人交谈,你不知道自己做得是否好,直到许多年后你回顾
你知道,开发的净效应是什么,你可以立即看到影响。就像,哇,好吧,我采用了一个执行成本为这么多钱的程序,我把它缩小到只需要这么多钱来执行,对吧?或者我,你知道,大大提高了测试覆盖率,或者,你知道,我修复了这个非常明显的错误,我可以在 UI 中直接看到这个错误被修复了。就像你有一个紧密的反馈循环,这是一个非常棒的领域
我完全可以理解人们说,好吧,我将要——也许我要去学习一门技术,比如管道工,或者我要成为一名电工,因为这不太可能被自动化等等。你可以进入这些领域,或者像人们去获得他们的房地产执照或类似的事情。但我真的认为——
如果你坚持下去,并且在你星巴克的日常工作中或在你作为清洁工的日常工作中继续投入时间和精力,无论你做什么来维持生计并为你的家人提供住所。如果你只是不断地努力,这里有很多机会,并且这个领域将继续发展,那些知道如何使用这些工具的人能够完成的事情的数量也将继续增长。
所以这就是我的小演讲,我的小宣传。这是 100% 真实的。我的意思是,如果你确实坚持下去,你在学习过程中所做的小事情,你将能够开始连接这些点。这可能比我好一点。我花了很长时间才找到一些实用的东西,但你会开始找到一些你可以修复的东西,比如……
随机化名称或类似的小项目,你可以编写一个小脚本或做其他事情,你能够,或者其他人可能有一个你可以解决的问题,你知道,代码可以解决。嗯,或者,你知道,开始参与使用 Arduino 板的小项目,如果你现在还能买到的话,或者类似的东西,在那里,嗯,你可以设置你自己的网络摄像头或,你知道,你自己的门铃摄像头或做,做其他复杂的事情,在那里你正在学习你的
你正在学习如何实际应用这些东西,然后将你的东西发布到 GitHub 和其他地方。这样其他人可以使用它,就像你说的那样,可复制的。但是其他,你知道,也许潜在的雇主可以看到这一点。当我学习代码时,我坐在诺福克这里的一家咖啡店里,我知道我可以花 2 美元买一杯咖啡,然后加 50 美分续杯。
我说,如果我每周坐五天,我将能够花费,你知道,每周 13 美元。我可以负担得起,我每个月可以负担得起 50 美元。这将使我正好低于,你知道,你知道,所以我是,这就是我的预算有多接近。但我知道,只要我能坐在那里,他们就不在乎我坐多久。如果我买了一杯咖啡和续杯。
不久之后,我就成了常客。他们开始认识我,知道我在做什么,为什么这样做。他们为我加油,给我免费的咖啡等等。你也会开始发展这样的联系。你可以开始向业内人士表达,嘿,我在做这个。我们也可以成为你的啦啦队。我们可以成为这样的人,嘿,
某某正在寻找入门级职位,申请吧。好吧,我不知道这个,这个没关系。我喜欢你。他们会喜欢你,申请吧。有时这就是需要的,对吧?就像有一些小小的,小小的个人联系或愿意为你挺身而出一点的导师。对我来说,发送领英链接申请这个没什么大不了的。
但与此同时,我们双方都需要投入才能进入人们的生活,当然也要有健康的界限。但我们进入人们的生活,了解他们是谁以及他们在寻找什么,并试图帮助他们。我认为这很棒。是的。我有一个问题是,你做了——
很长一段时间。你实际上是让人们为了你而努力工作,在咖啡店里为你磨咖啡。你只是报告了这家咖啡店,你把它作为你完成任务的第三空间,让自己在那里进入学习模式,这真的很酷。
你会给自己发送什么?假设你可以将一些建议发送给你自己,当时你可能刚刚学习代码一年,你正在做清洁工,只是试图让家庭继续前进。你会告诉自己什么,这可能会让你的生活更容易一些,或者让这段经历更容易忍受一些?我认为选择一种语言并坚持下去。
我认为这是我能给出的最大的建议。我从……开始跳来跳去,我一开始使用的是 JavaScript,然后我想,哦,也许我应该学习 Swift,因为我想做应用程序开发。所以我学习了一点 Swift,并开始用它做一些小项目。然后我想,哦,好吧,你知道吗?我需要回到 JavaScript,因为 Swift 很好,但那方面的工作并不多。我很容易被我听到的故事所左右,对不起,
哦,JavaScript 将不会像现在的 React 那样被广泛使用。哦,别担心 SQL。都是关于 MongoDB 的。别担心这个。总是会有新的工具出现。接下来你就会从一个工具跳到另一个工具,从一种语言跳到另一种语言,你什么也没学到,不够深入,对吧?所以我的建议是,无论你从哪种语言开始,都要坚持下去。
因为编程原理将是相同的。无论你是在 Python 中,表达方式都会有所不同,这需要一些时间。但是如果你知道如何在 JavaScript 中使用数组,你就可以很快地学习如何在 Python 中使用数组。这是关于解决问题的。因此,无论你一开始使用的是 JavaScript 都没关系。就像,好吧,我已经学习了 JavaScript,这些是我的项目。他们就像,好吧,你会 React 吗?
我不懂 React,但我可以学习,因为基于此,我已经使用 JavaScript 和 TypeScript 以及其他一些东西构建了所有这些东西,对吧?对我来说,我强烈建议数据工程,因为,再说一次,我不知道什么是数据工程,所以……
我一直鼓励人们,嘿,学习 Python,学习数据库,学习 Excel,学习其他一些东西。我认为,就我个人而言,我的个人观点是,与学习 React 相比,进入的门槛要低得多。但无论如何,我想说的建议是,找到一种语言,坚持下去,深入学习,因为如果你完成了……
你想要构建的项目,或者即使是 freeCodeCamp,你正在完成项目完成并获得证书等等,你也在学习很多故障排除和其他东西,而且如果我知道的话,我可能会诚实地告诉你,在我有足够的信心申请工作之前,我可能会为自己节省几年时间,并且
所以,如果你真的能够坚持下去并处理一些不确定性,甚至是来自你可能正在阅读的新闻文章的不确定性,比如,嘿,React 一年后就要消失了。没有人再使用 React 了。好吧,那不是真的。人们还在使用。顺便说一句,这很少是真的。人们仍在使用 COBOL。人们仍在使用 COBOL,对吧?是的。而那些 COBOL 工程师正在赚取不错的收入,因为他们是唯一知道这些东西如何工作的人之一,对吧?是的。
不要轻易被炒作或某人在 YouTube 视频或其他任何东西中所说的内容所左右。其中很多都是意见。很多都是基于他们的理解。但是每个人总有一天都需要 JavaScript 开发人员。每个人总有一天都需要数据工程师。没关系。别紧张。专注,你就会做得很好。
太棒了。好吧,乔,很高兴你在播客上。这段时间我学到了很多东西。呃,我做了很多笔记。呃,所有喜欢这个的人,呃,乔,你没有太多的社交媒体存在,因为你的安全许可等等。呃,但我会链接一些关于你的信息,供那些想和你联系并从你那里学习更多的人。呃,我只是想感谢你为鼓励人们指导你所在社区的人所做的一切,呃,
再次祝贺你在过去十年中所进行的职业生涯的巨大转变。这非常鼓舞人心。好吧,非常感谢你邀请我并给我机会分享,希望这能鼓励一些人。是的,100%。好吧,大家请收听。下周见,编程愉快。编程愉快。