Tadas found embedded development less engaging and switched to mobile app development, which he found more enjoyable and creative.
Tadas initially tried Android development during his university internship but found it less enjoyable compared to other development frameworks like Flutter.
Tadas discovered Flutter while looking for a cross-platform development framework that would allow him to build apps for both Android and iOS, and he found it more enjoyable than other options like React Native.
Tadas had limited software development experience, particularly in coding, as he focused more on hardware and assembly code during his computer engineering studies. He had to quickly learn C and other programming skills for his job at Navistar.
The most challenging part was the rigorous review process for safety-critical software, which involved multiple rounds of reviews for requirements, design, and code before it could be deployed.
Tadas found the process at Navistar too rigid and boring, as it involved extensive reviews for even minor changes. He sought a more creative and iterative development process in mobile app development.
Tadas believes mobile apps are more valuable because they live on users' devices, making them stickier and more engaging. However, web apps are better for content-sharing and are more accessible.
Tadas's favorite language is Dart, which he uses for Flutter development. He appreciates its simplicity, cleanliness, and lack of unnecessary fluff compared to other languages.
Tadas suggests that older companies in mission-critical fields often require a degree, so internships at university fairs can be a good entry point. For newer companies, having a portfolio of projects and being active online can help.
Tadas enjoys experimenting with new tools but emphasizes the importance of focusing on a few and mastering them to actually build things. He believes in learning a few things well rather than spreading himself too thin.
最糟糕的事情就是你在某人面前看起来有点傻。与我成长的地方相比,这没什么。你知道,我的父母经历过比我在工作中被人误解更艰难的时光。不要害怕在房间里看起来不是最聪明的人。尽量去学习。大多数人都是来帮助你的。♪
♪♪♪
欢迎回到Free Code Camp播客。我是Quincy Larson,FreeCodeCamp.org的创始人和教师。每周,我们将为您带来开发者、创始人和进入科技领域的雄心勃勃的人的见解。本周,我们的嘉宾是Tadas Petra。他是一名软件工程师,也是Agora.io的高级开发者倡导者。在大学学习嵌入式开发后,他转向构建移动应用程序,并且他已经构建了数十个移动应用程序,并围绕Flutter和其他出色的开发工具创建了教程。Titus,欢迎来到播客。谢谢你邀请我。是的,伙计。我一直想和你谈谈。几年前,你制作了这部关于free code camp的精彩历史视频。是的,那部视频仍然可能是对free code camp最初几个月以及我个人背景故事的最佳演绎。所以非常感谢你做了这个。我在节目笔记中链接了它。完成这个之前不要去看。不过,是的,伙计,你搬过很多地方,做了很多事情,在你相对较短的职业生涯中,你作为开发者经历了至少三个不同的阶段。但我真正感兴趣的是深入了解你作为开发者的起源故事。我的理解是你的家人是从立陶宛移民到芝加哥的。
芝加哥是美国第三大城市,但这是一个很多人忽视的城市,因为我们关注的是海岸城市,纽约、洛杉矶、旧金山等。所以能够和一个和我在同一时区的人交谈真的很酷,因为芝加哥和德克萨斯州是垂直对齐的。谈谈你的早年吧,伙计。
所以我们在我五岁的时候搬到了美国,我的父母赢得了绿卡,我想那是叫这个,然后他们进入了美国。是的,我对早年的记忆不多。我不知道这是否是某种创伤,我的脑子就这样忘记了。但我父母告诉我,头几年肯定很艰难,因为他们来到美国时不会说英语,也没有真正的计划。他们有一个表亲,但在我们到达后不久就抛弃了我们。是的,我们只是努力在头几年生存下去。我的妈妈告诉我,我上学时整天哭,因为我不知道其他人在说什么。没有立陶宛语翻译或任何东西。但我们知道,我们也没有多少钱。所以我们住在一个小公寓里。我记得我妈妈告诉我一个故事,
她认为我们在美国成功的时刻是当我们终于为孩子们买了一个床垫可以睡觉。所以那些开始的岁月很艰难。幸运的是,我对它们的记忆不多,但我想对我的父母致敬,感谢他们应对这一切。这一定是非常非常艰难的。但是,
是的,所以当我们到达这里时,发生了这些事情。然后我爸爸通过一些立陶宛的联系找到了工作。然后他最终成为了一名杂工。然后事情随着时间的推移逐渐好转。然后他们最终搬到了一个非常好的郊区,我们从四年级开始就住在那里。太棒了。
是的,真的是一种典型的美国移民成功故事,从一无所有到拥有一所房子。杂工,像是对那些不熟悉这个术语的人来说,它有点像万事通,能够做各种各样的家务活。他学会了水管工、电工,还是其他的东西吗?所以我不认为他学过水管工,但基本上就是别人叫他帮忙的事情,他都会去帮忙。
是的,我的意思是,他基本上就是做他能找到的任何工作,然后慢慢地提升自己。是的,所以可能有很多木工工作,呃,是的。我会说,是的,我想他在某个时候为一些人建造了整栋房子。我对所有细节并不太了解。我只知道他做了很多屋顶、很多外墙、很多所有这些类型的工作,只要是你知道的,能用手做的事情,以及人们愿意为之付费的事情。是的,呃,
我知道这对你有很大的影响,因为,呃,我听你谈论过你喜欢用手工作的程度。例如,完全翻新你买的第一所房子,呃,真的能够像你想要的那样拆掉东西并重建。很多这种情况是源于你父亲的根基,单纯地用手完成事情吗?
是的,我想这一定是。我不知道。因为他做了我们整栋房子。当他们买下那栋银色的房子时,他做了同样的事情。他重新做了所有的地板和一切。当我年轻的时候,我必须帮他。那时,我并不太喜欢。但现在看到,你知道,从零开始。我们基本上在到达这里时把整栋房子拆了。我们看到它从仅仅是...
像混凝土和地板上的木板变成了,现在这栋看起来还不错的房子。现在它仍然是我的第一所房子。所以现在,我回头看,我希望我能做得稍微不同一点,但就像你知道的,生活中的一切,第一次做的事情你不会做到完美,但你在这个过程中学到了很多。然后第二次,这将会好得多。是的。这一切都是关于迭代,伙计。而且,我几乎把它看作是代际的,
你的父母就像是在进行一次迭代,你学习你能学到的东西,然后你尝试去实施。如果你有孩子,你会尝试把你学到的教训传递给你的孩子。每一代人都希望下一代能稍微轻松一点,能够做得更多,不犯那么多错误等等。
而且,他们也很高兴,我爸爸确实帮了忙。我大约一年前结婚了。嗯,我妻子的父亲也是这样。她也是移民,五岁时来到这里,整个故事非常相似。因此,他们两个都帮了很多忙。所以这也是一个很好的与父母的联结时光,回归根源。因为是的。是的,你的岳父母相处得很好。
他们不会说同一种语言。她是波兰人,所以很接近,但语言并不相同。他们都可以。在婚礼上,他们沟通得很好。喝了几杯酒后,他们就能很好地交谈。他们现在相处得更好一点,但也不多。我想他们还没有彼此的电话号码。是的。
是的,我的父母不会说中文,我的岳父母不会说英语。所以很多时候我们只是试图为他们翻译,或者,你知道,这很麻烦。我想你必须先把立陶宛语翻译成波兰语,然后再告诉你的妻子,她再翻译成波兰语。所以在沟通链中多了一个环节。你会说波兰语吗?是的。
所以我过去一年一直在学习。当然,我不是很好,但我想如果我必须去波兰,我可以应付。我可以找到洗手间,所有这些东西。但我仍然不能和她的父母进行完整的对话,但我可以告诉他们几个词。太棒了。是的,波兰是个大国,人们非常随和。我这些年来遇到了很多波兰人,他们都非常随和。所以,是的。是的。
好吧,太棒了,伙计。所以我很感兴趣的是,在你长大并获得稳定之后,你知道,你妈妈很高兴,因为你有床垫可以睡觉。这是一件深刻的事情。当我们想到你和我可能享受的奢华生活方式与,呃,你的父母在来到这里时所经历的事情相比。芝加哥的冬天也非常寒冷。这是一个重要的部分吗?就像,你们冬天有暖气吗?是的。
所以,正如我所说,我大部分的记忆来自故事,因为我还小,像,我不知道,也许我的记忆就是不想记住那部分。但她没有提到任何关于那方面的事情。我相信我们有暖气。那是一个公寓。我想我们在高层。但,是的,我只记得那个故事。她说,是的,我们有一个小毯子放在地上,然后是枕头和一个床垫。当我们得到那些时,我们感觉好多了。是的,是的。我想一开始,是的,他们只为孩子们买了一个,为我和我妹妹。然后他们给自己买了一个,然后我们就过上了奢华的生活。
没错。那么,从那里你们去哪里?因为,呃,你能够,呃,完成高中,最终上大学学习计算机工程,这是一个很好的领域,呃,也许你可以谈谈你的学术进展,以及你是如何调整的。显然你学会了英语。你听起来像是母语者。那么,发生了什么?是的。
是的,我认为其余的就是更典型的直截了当的故事。就像我们去——我在很小的时候换过几所学校,然后在四年级左右我们搬到了那个郊区。那是一个相当不错的郊区,那里有好的学校等等。所以在那时,我就走上了正常的学习轨道,做得很好。我想我在高中时得了4.0,如果我没记错的话。但这是高中,所以没那么疯狂。好吧,我的意思是,仍然是一个完美的GPA,平均绩点。也许我记错了,但如果不是的话,肯定很接近。然后我实际上进入了...
有两个大学是非常常见的选择。我想还有更多,但州外的选择对我来说并不是一个问题,因为我们仍然,呃,我们在一个不错的郊区,但我们仍然没有太多钱去州外的不同大学。所以对我来说,实际上有两个选择。一个是芝加哥的伊利诺伊大学,另一个是香槟的伊利诺伊大学,香槟的伊利诺伊大学是一个非常非常好的工程学校。
我最终进入了伊利诺伊大学厄本那-香槟。我进入了两个学校,但我决定去芝加哥的伊利诺伊大学,仅仅因为它便宜得多。我从FAFSA和其他地方获得了很多资助——
基本上,我想我在头几年只花了几千美元,然后之后稍微涨了一点。但厄本那-香槟会贵得多。在那里,第一年我进校时并不知道该做什么。我知道我擅长数学。这是我成长过程中最好的科目。
我真的很享受它。所以我知道我想要一些基于数学的东西。或者我并不真的知道,我只是进去了,看看会发生什么。我知道工程是一个高价值的领域。然后医学当然也是一个高价值的领域。但我不擅长处理血液,所以我想,好吧,试试工程。我参加了...
第一次研讨会,讨论所有不同类型的工程。我开始学习土木工程,因为我认识了一个我成为朋友的孩子。他在学习土木工程。我想,是的,我也试试。然后这并不适合我。然后我发现计算机工程更接近我想做的事情。所以我开始学习这个。
是的。好吧,也许你可以先谈谈,首先,祝贺你进入伊利诺伊大学香槟厄本那。那是个口舌之快。我认为普渡大学是那个学校系统的一部分,但非常有声望的工程项目。并且,
我赞扬你做出经济决策,选择去更便宜的地方,因为听起来你能够避免很多债务,如果你去——人们总是问我,哦,去申请那些名校,看看你能否被录取。但最终选择去那些更便宜的替代学校可能更有意义,尤其是如果它们也是声誉良好的机构。是的。
你不需要最有声望的。你只需要一个足够好的学位,至少在我谦虚的观点中,对于工程来说,可能对于商业或其他领域来说,你应该尝试去沃顿商学院或其他地方,但对于工程来说不一定。
我想说,回头看,我对这个决定感到非常高兴。我认为如果我给我的孩子建议,就像是,你知道,你不需要花那么多钱。如果你获得了足够好的大学学位,你就有了学位,它表明你是合格的。你获得的第一份工作将比其他任何事情都重要。我觉得在获得第一份工作后,没人会再记得你上过哪所学校。但获得第一份工作,我觉得绝对是最难的部分。
是的,100%。这是真正的挑战,每个开发者在学校学习的内容无论如何都要面对,当他们获得第一份开发者工作时。也许你可以谈谈你在大学的时光和过渡。你能在这段时间获得任何实习吗?所以是的,
在大学里,我知道我必须让它变得有意义,因为这四年仍然是——在那时仍然是相当多的钱,每年花费数千美元——在学习之前,学校的费用并不高,而现在我们花了很多钱,我是——
我的父母确实帮我支付了一些费用,但大部分我自己支付了80%,也许90%,只是通过在夏天努力工作。所以我知道我必须让它变得有意义。我知道我在花钱,我不想浪费。所以我每年都有实习。第一年我进入了一个大学的项目。我忘了它叫什么。它是,我想是保证支付实习项目。
听起来不错。所以如果你在学年期间获得了足够好的成绩,你就会获得一个保证的带薪实习。我想他们可以把你与不同的公司联系起来,但我想可能没有足够的公司,或者类似的事情,我最终在大学工作,学习Android开发。所以我在研究部门度过了夏天,和另外两个,我想他们是...
我想他们实际上在做研究。所以他们在构建真实的东西,而我在一旁学习Android开发,基本上是在为乐趣构建游戏。是的,实际上并没有真正的实习。只是学习游戏和学习如何在Android上构建游戏。我构建了这个小的Flappy Bird模拟器。所以这很酷,因为我也得到了报酬。所以这是我大学一年级的第一份真正的带薪开发工作。是的。
边学边赚钱。很难反驳。是的。边构建Flappy Bird游戏。那太棒了。但这并不是在UIC的那个肮脏的小建筑里。所以每天走进去都很有趣。就像这些小办公室,灯光有点暗。你只是坐在那里,和两个研究人员在房间的另一边,他们在做真实的事情,而你只是在角落里学习如何开发。但我绝对很感激。是的。
然后大二是更困难的一年,因为我没有得到任何我想要的东西。所以那一年,但我确实做了一个免费的实习,我不知道我是否会再这样做,但我在芝加哥的Englewood做了一个免费的实习,那是芝加哥的一个危险地方。然后,我在,呃,
我忘了。就像某个政府的事情。我在那里帮助社交媒体。呃,
再次,我在那里并没有做太多事情。那是我引以为豪的事情。没有什么可以回顾的,觉得,哇,我真的完成了什么。我构建了一个今天仍在使用的东西,但我确实帮助创建了一些图像,创建了一些社交媒体帖子,那是非常早期的,所以整个社交媒体。我没有得到报酬,而且距离很远,待得稍晚一点,你会有点害怕,但一切都很好。然后我的大三,
所以毕业前的最后一年,我申请了,我想,至少几百个,甚至接近一千个不同的地方。也许不是一千个。那可能是夸张。但肯定有几百个不同的地方。试图获得那个夏天的真正实习。因为那是我毕业前的夏天。我需要得到一些东西。我最终在一家叫Navistar的公司获得了这个实习。所以你可能没听说过Navistar。但你可能听说过国际卡车和IC巴士。所以国际卡车是我认为在美国第二或第三受欢迎的卡车...
像半挂车一样,IC巴士是你看到的最受欢迎的黄色校车,带孩子们上学。
所以Navistar是这些公司的母公司。所以我最终在那里作为计算机工程实习生工作。是的,我那个夏天得到了报酬。然后,我显然做得很好。我获得了全职工作的机会,像,刚从大学毕业。所以那太棒了。是的,梦想就是你不必经历那种尴尬的大学毕业后的求职,因为你的一个实习带你上岗。是的,听起来——如果你考虑一下,
为卡车提供动力的软件,为巴士提供动力的软件,那些都是关键任务系统,对吧?如果在一辆,我不知道,20吨的卡车上出了问题,那是巨大的。它在路上与所有这些汽车一起行驶,可能速度很快。巨大的动能,对吧?是的。绝对不能出错。也许你可以谈谈你在做什么?所以你在为卡车工作的软件。
是的。是的。所以,呃,我想我可以稍微回顾一下。我在大学学习的专业是软件工程,呃,和,呃,
软件工程,呃,你可以选择不同的方向。我是说,计算机工程。抱歉。我在做计算机工程。你可以选择不同的方向。你可以走更硬件的方向,或者你可以走更软件的方向。实际上,我走的是更硬件的方向,我学到了很多如何设计处理器,例如,如何设计不同类型的硬件,以及如何编写汇编代码在那些硬件上运行,以及位是如何通过所有硬件组件的。
我认为这就是我实际上想要的职业方向。但Navistar是唯一接受我的公司。在那里,我必须编写C代码。我从未……我想我在大学里只上过两门...
呃,软件课程。所以就像计算机科学入门,你只是学习最基本的知识,然后数据结构和算法是第二门计算机科学课程。实际上这是我在大学里最糟糕的课程。我得了,我通过了,得了C-,因为他们把我的69.7四舍五入到C-。那是我在大学里最差的成绩。那是我唯一的C。呃,像我认为我并不太喜欢开发,但
我在Navistar找到了工作。呃,然后我进去时几乎没有,呃,编码知识,像并不太好。我显然在数据结构和算法上表现得很糟糕。那通常是任何开发工作的大部分内容。呃,所以我进去时,我正在编写代码,像你说的,必须,呃,直接用于卡车,可能是,呃,比较危险的代码。
但是团队在那里非常棒。当我进去时,我的老板非常出色。呃,我的意思是,我绝对投入了,呃,我自己的工作,因为我必须,在我开始之前,我就学习了C,像在线学习,至少掌握C的基础知识,这样我在第一天上班时不会显得很傻。
但一旦我进去了,他非常乐于助人。他教会了我基本上我需要知道的所有关于C的知识,像如何成为一个好的开发者。我认为在那段时间帮助我成长的策略是不害怕看起来傻,尽管我不想这样。在我老板面前,我知道我可以信任他。我问了他最糟糕的问题。我记得在那个实习期间,我想有几天,可能是三天在调试一个问题。我一直去问他,像,发生了什么?我完全不知道发生了什么。像,为什么它不工作?它肯定应该工作。
他甚至在看着它。然后在三天后,我们终于发现某个地方缺少一个分号。这是我会记住很长时间的故事。但我的意思是,是的,编写C代码时,你没有像VS Code那样酷的编辑器,或者AI为你自动完成一切。我们逐行编写,像字母字母地确保一切都很好。所以这很酷。原因是发布软件到卡车是,我最终离开那家公司的部分原因,因为像构建关键软件,构建安全关键软件需要经过非常严格的过程。像我们必须对每一个步骤进行审查。在我们甚至开始编写任何代码之前,像编码部分可能是,
花费的时间最短的部分。像,你并不太担心编码部分,因为在你开始编码之前需要做很多前期工作。像,我们必须做需求,这就是你必须用英语写出来。你必须使用非常严格的语言。
有一个需求文档,你必须遵循。你必须确保单词完全符合你的要求。然后你必须进行需求审查,审查你的工作,看看你是否以正确的方式解决了正确的问题,然后才能开始处理问题。
然后这可能会经过多个审查轮次。所以我们只是在写一个句子,你有很多人评判你句子的每一个单词和每一个字母,看看这个句子是否是正确的句子。然后你必须写一个设计文档。所以设计,你基本上逐步写出代码,然后你必须经过这个设计审查。所以整个部分可能需要几轮审查。所以当你到达代码时,就像...
你基本上在设计部分写出了代码。这是相当简单的。是的。然后那会被审查。然后你必须编写测试,测试必须经过审查。然后有一个完整的测试团队,他们有自己的审查周期。所以它经过了如此多的审查,以至于许多人必须错过一切。作为一个新手,你知道这并不完全是你的责任。
在本周的播客中,freeCodeCamp 创始人 Quincy Larson 采访了 Tadas Petra。他是一名软件工程师,也是 Agora.io 的高级开发者倡导者。在大学学习嵌入式开发后,他转向构建移动应用程序。他已经构建了数十个移动应用程序,并创建了教程来帮助其他开发者学习 Flutter 和其他移动开发工具。我们讨论了:- 从立陶宛移民到芝加哥 - 他在学校学习的计算机工程,以及它与构建消费类移动应用的不同 - 他从高级开发者转型为 YouTube 创作者再到开发者倡导者的过程 - 移动开发与网页开发之间的重叠,以及他从每个领域学到的东西 你能猜到我在开场时播放的是什么歌吗?此外,我想感谢每月支持我们慈善事业的 10,943 位善良人士,他们使这个播客成为可能。你可以加入他们,支持我们的使命,网址是:https://www.freecodecamp.org/donate 你可以在 Apple Podcasts、Spotify 或你喜欢的播客应用中收听这个播客。确保在那里关注 freeCodeCamp 播客,这样你就能在每个星期五收到新剧集。我们在对话中提到的链接:Tadas 的 freeCodeCamp 历史视频(20 分钟观看):https://www.youtube.com/watch?v=g5n1-hD-x5g Tadas 关于如何用 Flutter 控制家中灯光的视频:https://www.youtube.com/watch?v=eib_62D-kSA Tadas 的跨平台应用开发学习课程平台:https://www.hungrimind.com/ </context> <raw_text>0 这并不可怕,因为有很多经验丰富的人已经看过它。是的。是的,这真的很有趣。所以在某种程度上,过程如此严格实际上是有点解放,因为你在整个过程中都有专家在你身边,他们曾经经历过,正在审查你代码的每一个方面。我喜欢创建规范并使用极其简洁、描述性的语言的想法,这样你就可以确保你实际上是在解决一个真实的问题,并且你的方法是
有合理的推理支持的。对吧。呃,我觉得很多人只是打开他们的编辑器,开始,我要快速写出一个功能,blah,blah,blah。好吧,酷。我把这个功能搞定了。这就是很多网页开发的方式,可能还有很多移动应用开发,我们稍后会谈到,但这就是很多开发的方式。然而,当涉及到实际做一些系统至关重要的事情时,比如我听说过的,像月球任务那样的任务,对吧。当我们把人送到月球时,
那段代码必须经过审查,可能至少和你正在编写的代码一样严格。也许这是一个非常相似的过程。但关键是人们的生命处于危险之中,对吧?如果一个系统在一辆卡车以每小时 80 英里的速度在高速公路上行驶时发生故障,人们可能会死,对吧?这就像——而且那家公司可能会陷入——这可能是一个公关灾难,它可能会——
我能理解其中的谨慎程度。很多人害怕 AI 会夺走我们的工作。呃,我一直听到这个。我认为人们从根本上误解了编写代码的过程,以及编码所做的事情本质上是,像是非常努力地思考问题是什么。然后非常努力地思考如何解决这个问题,并且非常努力地思考这个问题的实际解决方案,并进行测试,确保一切正常。
因为,是的,有很多社交媒体应用等等。你我可以去玩玩构建一个社交媒体应用,也许做一个周末黑客马拉松之类的。但这不是至关重要的事情,对吧?这不会在某个卫星上运行,而在那里物理上很难接触到或不可能接触到。它不会在某个快速行驶的车辆上运行,这可能是危险的,对吧?它不一定会在某个工厂车间运行。它将会在...
某个云端运行,如果出错,最糟糕的情况是人们感到不便。就像,哦,网站又崩溃了。我又在看到 Twitter 的失败轮子。当你在构建 Twitter 这样的东西时,你可以容忍糟糕的流程和随意拼凑的东西。但当你在构建将为卡车提供动力的软件时,你就不能这样做。你同意这个说法吗?是的,100%。但我认为这就是我在那工作几年后感到有点...
无聊的原因,因为我们经历的整个过程可能只是为了写一行代码。或者甚至可能不是写一行代码,可能只是更改代码中的一个数字。所以
是的,我完全理解。这是我认为对整个工程世界的一个很好的介绍,因为你是如此严格,你必须确保每一个小部分都能正常工作。但后来确实变得有点无聊,这就是我转向移动的原因,因为在移动应用中出现问题,只是轻微的不便,但...
这并没有那么重要。它是重要的。你想确保你发送的是高质量的,但归根结底,你并没有让任何人的生命处于危险之中。是的。那么你该怎么办?你意识到,嘿,我学到了很多东西。我的意思是,你基本上经历了熔炉,对吧?听起来你在工作中锻炼了你的软件工程能力,即使你在编程课程中表现不佳。你确实学会了 C,这几乎是大多数事物的基础。
嵌入式系统和大多数高性能计算等。C 就是语言。如果你只能学习一种语言并掌握所有内容,最终像 Python 就是在 C 之上运行的,对吧?呃,你知道,JavaScript Ruby 等等,我相信所有脚本语言都是在 C 之下的,
几层抽象之上。所以,嗯,从某种意义上说,这可能是世界上最重要的编程语言。所以你在这方面有很多经验。然后,你在寻找出口,你在寻找一些更少以过程为导向、更多自由流动的东西,就像只是构建东西,快速迭代。所以其实并不是这样。实际上,当我...
所以在我工作期间,你知道,我需要获得那种创造性的修复,那一点,呃,那一点,你知道,创造力,所需的出口。嗯,所以我实际上开始创建,呃,我想我在大部分时间里都保持着这一点,但当我刚开始时,根本没有时间学习任何东西或做其他事情。但后来我在这个角色中变得有点舒适。我需要某种方式来保持,你知道,那种学习过程的进行。所以我开始构建网站。我开始构建应用程序只是为了好玩。嗯,
然后我偶然发现了一个叫 Flutter 的框架,来自 Google。网上几乎没有学习资源。我试图构建一个人们会使用的应用程序,但我遇到了困难,因为外面没有太多资源。YouTube 上有几个人在做这件事。我想,我会学习如何制作视频。也许我可以成为帮助人们学习如何使用 Flutter 构建的生态系统的一部分,因为没有太多资源。是的。
所以在那段时间里,我并没有真正计划退出。我只是想找一个创造性的出口,做一些工作之外的事情,填补那个小小的创造性出口。
所以我开始录制视频等等。你是哪一年开始接触 Flutter 的?因为 Flutter 相对年轻。呃,我想它是在 2015 年发布的,然后我是在几年前的事情。所以我,我,我是在测试阶段进入的。所以那时候还没有发布,我是在发布前六个月左右开始的。我开始制作视频。我想是在它发布的时候,我想。嗯,所以我很早就开始了。呃,
而我之所以这样做,是因为我当时只是想构建应用程序,因为,正如我所说,我很久以前就做过 Android 开发。老实说,那并不是那么有趣。像,Android 开发并没有,像...
并没有让我觉得这是我想要真正专注的东西。网页开发很酷,但也很难。我实际上构建了一个,我试图构建一个社交媒体应用程序。我想也许我开始移动开发的原因是因为我试图在网页上使用 HTML、CSS 和 JavaScript 构建一个社交媒体应用程序,就这三样。
是的。就这三样。然后 Ajax,我想我记得使用过。所以只是基本的网页开发东西。我试图构建一个社交媒体网站。我试图在那个社交媒体网站中构建 DM 功能。我遇到了很多多线程问题。我想,我甚至不知道多线程是什么。是的。
我不得不退后一步,学习网页开发的基础知识,先更好地掌握这些知识,然后我才尝试实际构建一些东西。然后我想移动应用可能更简单。是的。继续。好吧,我的直接问题是,移动应用本质上只是一个前端吗?你仍然需要一个后端来处理所有的并发问题和其他所有事情吗?
是的,是的。到那时,我只是并不知道这一点。所以你以为你在逃避,但你并没有逃避。你只是走了。就像你打开一扇门,它通向另一扇门。或者像两扇门通向同一个中庭或类似的地方,你最终必须学习所有软件,像网页开发的概念。确实如此。
所以我以为我在逃避,但从理论上讲,我确实逃避了一段时间,因为 Flutter 确实抽象了很多东西。我使用 Flutter 和 Firestore 作为后端,Firebase 作为后端。所以 Firebase 在后端上为你做了一切,而 Flutter 确实有一个线程在运行。所以直到你做一些真正需要它的事情,你不能启动其他线程,但直到你...
像需要一些硬计算。你并不需要,你可以在主线程上运行所有内容。嗯,所以我确实逃避了一段时间,但显然我最终还是必须学习它。嗯,所以,是的,我开始学习 Android 开发。我想,我并不喜欢 Android 开发。如果它不,像我用的是 iPhone,嗯,
我不想构建 Android 应用程序,然后又不能真正使用它们。所以我开始研究构建 iOS 应用程序。然后我认为只构建 iOS 应用程序,像大多数人都使用 Android。所以你有点限制了自己。所以我开始研究跨平台。那时,实际上没有,我实际上使用过一个叫 Ionic 的东西。是的,非常早期的多平台开发工具。对。
所以 Ionic 很酷,因为你只需用 HTML、CSS、JavaScript 编写,如果我没记错的话。然后它就在你的应用程序上创建一个网页视图。好吧,那时是这样。我没有跟进。所以当我构建那些时,它几乎就像你在为你的应用程序创建一个网站,你只需点击它就像一个应用程序,但它实际上在后台是一个网站。我有点把它想象成是一个围绕网页应用的移动应用外壳。
嗯,所以那很酷。呃,我在那里构建了一些小东西,但后来我想深入一点,我想我在尝试让相机工作或进行深度集成到实际手机中。那时它有点限制。嗯,所以我想找到一些真正像是为移动应用程序构建的东西。那时有 React Native 和全新的 Flutter。嗯,
我并没有做太多研究。我只是选择了 Flutter,因为那时我想我不喜欢 Facebook。我知道 Facebook 会使用 React Native。我想,我更喜欢 Google 作为公司。我就选择了 Flutter。回头看,无论哪个都可以。但学习和编写 Flutter 是我第一次在...
编写移动应用程序中找到了很多乐趣。HTML、CSS 和 JavaScript 很有趣,但确实变得有点复杂,因为你有这么多不同的文件。你必须学习 HTML,然后你必须学习 CSS,然后你必须学习 JavaScript。像有
至少三个部分你必须学习才能构建一个网站。然后,你知道,整个生态系统,正如你所知道的,庞大而且有很多不同的东西要学习。使用 Flutter,你只需学习 Flutter,还有包,像我说的,Firebase。但如果你有 Flutter 和 Firebase,你基本上可以用这两个构建很多应用程序。
是的。你创建了很多课程,我会鼓励大家查看你的 YouTube 频道。我在你听完这次对话后将链接添加到节目说明中。但是,呃,是的,呃,
我的意思是,Flutter 太棒了。我个人会推荐 Flutter,因为 Free Code Camp 广泛使用 Flutter。如果你使用过 Free Code Camp 的移动应用,无论是 iOS 应用还是 Android 应用,都是 Flutter。我们正在为管理英语认证考试和 Free Code Camp 认证的期末考试等构建的新测试环境。如果在我们周年纪念日之前发布,10 号。
在 free cooking 的 10 周年纪念日,我有一大堆公告即将发布。但基本上,我们将有考试。那个考试环境是用 Flutter 编写的,它将在任何设备上运行。所以就像...
非常酷的多平台开发。就像你可以理论上在 Windows 或 Mac 上运行 Flutter 应用。就像一次编写,到处运行。这就像 Java 的梦想实现,25 年后,30 年后。所以是的,你不需要向我推销 Flutter,Titus,但我确实想向所有收听这个的人推销。Flutter 是一个惊人的应用。
是的。
所以我认为当我学习它时,我认为开发是超级简单的,像创建后端,人们会谈论构建后端,我想,你是什么意思构建?你只需连接到 Firebase,它就为你做了一切。你为什么要构建后端?然后我,像过去几年,我终于在学习什么是真正的后端。我想,哇。
是的,Firebase 为你做了很多事情。是的。但它确实使构建变得非常简单。如果你想在任何平台上构建,Flutter 使其成为我觉得最简单的方法之一。是的,所以也许你可以将 Flutter 与仅使用 Android Studio 和核心...
标准的 Google 发布的 Android 开发工具进行对比?因为你确实用那些构建了一些。是的。不过不多。就像我说的,那是在我刚开始的时候,所以我从未成为优秀的 Android 应用程序开发者或熟练者。我确实...
就像我个人只是并不喜欢 Android Studio,因为它的那个梗,你打开 Android Studio,然后你的整个电脑和设置就像着火一样,因为它运行得太吵了,你的电脑变热,你可以在电脑上煮汉堡包,就在你打开 Android Studio 之后。嗯,所以,那个,我绝对在我的电脑上经历过,即使我认为它很强大,但每次我打开 Android Studio 时,它就像,像,像,像,
所以我,自从很早的时候,我就开始使用 VS Code 来做,嗯,Flutter 和一切。但当我在 Android Studio 工作时,嗯,
我认为 Android 必须支持这么多设备和所有这些不同的用例,我认为大多数人甚至没有像他们使用 iOS 那样更新他们的设备。因此,必须处理所有这些边缘情况使 Android 开发变得更加困难,因为有这么多事情要...
跟踪并确保它适合所有设备,确保,工具是为了帮助你做到这一点而构建的。但然后有很多工具不仅仅是编写你的应用程序。所以我认为这是我不太喜欢 Android 开发的部分。它似乎过于复杂,而且,
我认为这就是当技术比需要的更复杂时让我感到烦恼的事情。除非你真的想让它复杂。例如,我不太使用 Linux,但我确实喜欢 Linux。它确实过于复杂,但那是因为你在学习很多关于计算机如何工作的知识。但当我只是想构建一个 Android 应用程序时,我希望它简单。我认为 Flutter 使其变得简单。这就是为什么我如此...
它完美地激发了我的创造力,因为我可以构建真正的应用程序,可以发送给用户。是的。也许你可以谈谈构建移动应用程序的一般优势。你是否仍然认为在 2025 年还有移动应用的空间?人们是否仍然会下载移动应用,还是他们习惯于只是
你知道,在浏览器中打开东西。像,作为一个构建移动应用的人,你观察到了什么,尤其是在消费者偏好方面?嗯,
所以我认为,呃,这是我从我所读到的东西中同意的,移动应用有不同的目的。如果你有一个成功的移动应用,我认为它的价值远高于一个网站,因为你住在某人的设备上。每次他们打开它时,你都会看到你的图标。
我想对于网站,你可以像书签一样,但有些人会关闭他们的书签,而你并不在他们的设备上,原生地,不是原生的,但你知道,你并不真正住在他们的设备上。我认为这非常强大。如果你能让他们经常使用你的应用程序,我认为移动设备上的人们只是,它变得,呃,我并不太喜欢社交应用,但你知道社交应用有多么吸引人。
如果你在手机上有它,像我个人,我把所有社交应用从我的手机上删除,因为我知道如果我把它们放在手机上,我就会进去,我就会被吸引。通过网站使用它的摩擦会稍微高一些,体验也没有那么干净。你不会从点击网站中获得那么多刺激和背景。所以我认为如果你能得到一个人们喜欢使用的应用程序,希望是一些好的,有助于,呃,帮助很多人的东西。
那么我认为应用程序的价值要高得多。然而,我的思维方式是,他们,
我构建网站和应用程序是出于不同的原因。因此,我觉得网站,就像它一直以来一样,主要是用于内容共享和你可以在那儿构建网络应用。如果你需要在桌面上使用它,那很好。构建网络应用是一个很好的选择,但我喜欢把它视为内容优先的东西。
除非,你知道,有些东西需要成为网络应用。所有事情都有例外。但例如,我正在构建这个,我只是为了好玩而构建这个待办事项应用。我不想让待办事项应用在网站上。我不想必须打开整个网站,输入 URL 只是为了做一个待办事项应用。我想把它放在我的主屏幕上。我想能够点击它。我想能够点击待办事项。我想能够在我的手机上创建小部件,我可以直接点击它。此时,网站会显得很烦人。
但例如,构建像 free code camp 或者,或者博客或课程或其他东西,我认为网站更有意义,因为你希望它能够被很多人访问。你希望他们坐在桌子前,享受那种观看体验。嗯,所以,我仍然认为,获得一个表现良好的应用程序比以往任何时候都更难,呃,人们使用,但同样,获得一个人们使用的网站也比以往任何时候都更难。嗯,
所以我认为这只是,你必须首先考虑你希望它在哪里。是的。所以也许我们可以谈谈分发。所以有一个常见的说法,像第一次创业者考虑技术。第二次创业者考虑分发。当然,网络是终极分发平台,因为你实际上只需
你知道,有一个二维码,或者你告诉某人某个 URL,free code camp.org,你知道,他们输入那个网址就到了,他们就在你的产品上,对吧?就这么简单。他们不需要下载任何东西。他们不需要,呃,真的做任何事情。但与此同时,网络在某种意义上感觉非常短暂,因为我离开网页后,我就不再在你的领域了。对吧。呃,除了可能使用一些不同的媒介,比如电子邮件,没有什么能提醒我回到那里。
呃,但通过应用程序,你实际上可以,你有推送通知,你有所有这些其他东西,当我坐在浴室里一分钟时,这要容易得多。呃,我不想说我在浴室里要做什么,但我想象很多人每天都坐在浴室里做这件事,他们拿出手机,像,好吧,他们可能只是点击屏幕上的一个图标。
对吧。像,好吧,我想知道 Reddit 上有什么。我想知道 Twitter 上有什么。我想知道 Tik TOK 上有什么,或者人们在打开什么。对吧。呃,也许有些人正在打开 free Coke cam,做一些 coding challenges 在 free cocaine。呃,我们确实有非常小的挑战,适合你知道,一两分钟的浴室时间。但,
我的意思是,打开一个网络应用要比打开 Firefox 要容易得多。好吧,现在我要输入我想去的地址,或者我要滚动我的书签。好吧,我想,呃,阅读这个网站或类似的东西。并且发生在某种程度上,人们说网络已经死去很久,因为它已经被移动应用化,因为很多移动应用只是移动应用,因为它是一种方便的方式来提醒人们点击它。你知道,他们说,呃,世界上最昂贵的房地产不是在公园大道上。它在 iPhone 上,知道吗,呃,对。
我绝对可以看到这个价值,这也是我们构建移动应用的原因之一,以便我们可以成为人们在上厕所时点击的图标之一,对吧?是的,关于分发的事情我一直在记住,因为我构建一个应用程序,我只是想,哦,我只想把它放出去,然后看看会发生什么。我会写一条小推文,结果下载了几次,但没有人真正看到它,但然后你看到有人有整个...
关于如何展示他们新事物的活动,这就是你如何真正让人们发送。就像你说的,对于网站,我想通常在第一次点击 URL 时,你可能会得到...
一些人会记住这个网站并再次使用它。但我觉得可能要五次或更多的点击,才能成为他们访问的网站。而应用程序,你只需下载一次,然后它就在你的主屏幕上。他们必须主动去删除它才能从主屏幕上移除。我想我在 Twitter 上看到一些人,他们—
在推出应用程序方面相当成功。我想 Nikita beer 或者其他什么。他,他推出的应用程序总是迅速登上应用商店的顶端。
嗯,很多人下载了它,我不知道这些应用程序现在的情况如何,但我想象仍然有人在他们的主屏幕上,它仍然占据着他们手机上的房地产。所以,是的,这是一个有趣的事情,我认为你只需考虑你想如何展示你的作品。
是的。所以让我们谈谈这个。呃,因为分发是如此关键,让人们真正使用你的应用程序。所以只是总结一下我们刚才谈论的内容,呃,我认为网络应用的好处是你可以快速上线。人们可以直接到达那里。无论他们使用什么设备,他们都能获得完整的体验。他们不需要下载任何东西,但它并不粘性。对吧。
移动应用程序安装起来要困难得多,但总的来说,像 free code camp 访问的总时间可能是 10 分钟左右,人们在阅读一些文章或做一些快速的编码挑战,然后就走了,你并不一定知道他们会回来。但通过移动应用,你知道,人们可能每天都会查看。他们可能会收到推送通知。哦,是时候做,呃,Duolingo 或其他什么。
所以他们像点击并且他们在做,然后他们关闭它。然后明天同一时间,他们会收到另一个提醒。他们会打开并再次做。我认为 Sergey Brin,呃,谷歌创始人说,最好的产品就像是你每天都在使用的牙刷,你知道吗?嗯,这样你就能保持在心头,因为人们很忙。他们有很多事情要做。所以,嗯,
听起来获取移动应用的最大价值并不一定是访问更多技术,尽管可以说,你确实可以更好地访问设备、相机和传感器以及所有这些不同的东西,你必须给予权限来访问等等。但你可以以一种本地的方式访问这些设备功能,而你无法通过浏览器访问,或者在浏览器中可能会有点笨拙。
是的。但我仍然认为移动应用程序主导的主要原因是,因为,嗯,Twitter 并没有使用任何这些东西,Reddit 也没有使用任何这些东西。它们基本上...
<context>#146 从失败的编程课程到高级软件工程师与 Tadas Petra 在本周的播客中,freeCodeCamp 创始人 Quincy Larson 采访了 Tadas Petra。他是一名软件工程师,也是 Agora.io 的高级开发者倡导者。在大学学习嵌入式开发后,他转向构建移动应用程序。他已经构建了数十个移动应用程序,并创建了教程来帮助其他开发者学习 Flutter 和其他移动开发工具。我们讨论了:- 从立陶宛移民到芝加哥 - 他在学校学习的计算机工程,以及它与构建消费类移动应用的不同 - 他从高级开发者转型为 YouTube 创作者再到开发者倡导者的过程 - 移动开发与网页开发之间的重叠,以及他从每个领域学到的东西 你能猜到我在开场时播放的是什么歌吗?此外,我想感谢每月支持我们慈善事业的 10,943 位善良人士,他们使这个播客成为可能。你可以加入他们,支持我们的使命,网址是:https://www.freecodecamp.org/donate 你可以在 Apple Podcasts、Spotify 或你最喜欢的播客应用中收听这个播客。确保在那里关注 freeCodeCamp 播客,这样你就能在每个星期五收到新剧集。我们在对话中提到的链接:Tadas 的 freeCodeCamp 历史视频(20 分钟观看):https://www.youtube.com/watch?v=g5n1-hD-x5g Tadas 关于如何用 Flutter 控制家中灯光的视频:https://www.youtube.com/watch?v=eib_62D-kSA Tadas 的跨平台应用开发学习课程平台:https://www.hungrimind.com/ </context> <raw_text>0 正如你所说,内容,对吧?像输入文本,你可以在网站上和上传照片一样轻松做到。你知道,这对用户来说并没有显著减少摩擦,但移动应用的形式因素是主屏幕上的一个按钮。我认为这就是为什么移动应用如此吸引人,以及为什么很多人都认为每个人都必须拥有一个移动应用,因为很多人会期望你有一个移动应用。
但确实,我每天使用的很多应用,我更喜欢在浏览器中使用它们。但考虑到我只有手机这个有限的形式因素,我会接受,好吧,我想我会使用他们的应用,对吧?我会使用 YouTube 应用,尽管 YouTube 网站更容易浏览、搜索、留言、阅读评论和查看节目说明以及所有其他事情。
我会使用 YouTube,因为我必须这样做,因为我不会把我的笔记本电脑带到我去的每个地方。我不会把它带到洗手间,你知道吗?嗯,所以我可以看到基于这一点的论点。嗯,所以,嗯,
这主要是我对它的看法,更多的是一种分发和便利的事情,而不是某种技术上的。你的手机中的 CPU 可能并没有比你电脑中的硬件好多少。而且你有键盘和所有东西。你可以打得更快。你有更大的屏幕,所有这些东西。我喜欢...
使用完整的电脑,而不是,我绝对不会成为那种满足于仅通过手机做所有事情的人。我觉得那是一种贫乏的方式。当然,我理解可能有很多人正在收听这个播客。我们有很多听众,可能实际上并不拥有笔记本电脑,这可能是他们正在攒钱购买的东西。我会告诉你,这绝对值得。攒钱买一个,
合适的电脑,即使它只是一个旧的,因为你会解锁如此多的创造力。我总是喜欢把手机视为主要用于消费的设备,而笔记本电脑则是用于生产的设备。你不能在手机上编码,但这很难做到。是的,我本来想说同样的事情。我和你是一样的。即使我仍然开发应用程序和所有东西,我尽量...
尽量不使用我的手机,像我认为在某个时候我对所有应用程序有点过于沉迷,嗯,如今大多数日子我几乎不碰我的手机,仅仅因为像你说的,一个是用于消费,另一个是用于生产,而我在电脑前时有这种心理状态,不去浏览所有这些,不在这里看 YouTube,因为在我面前的电脑时,我想要
真正做一些事情,然后在我只是想被动消费的时候使用我的手机。但我完全同意这一点。是的。像我最不高效的时间是在晚上,在我把孩子哄上床后,我,嗯,完成洗澡时间和所有事情。我一出来,就会拿起我的手机,看一些关于,比如说,速度跑的录像论文。然后我会,
我总是想,哦,天哪,我本可以早一个小时睡觉,醒来后完成一些工作。最糟糕的是,我之前欺骗自己的方式是,当我使用手机时,我总是看教育类的东西。像我从来没有过,嗯,我从来没有沉迷于 TikTok。我总是会在 YouTube 上,像学习汽车是如何运作的,例如,像。
在某种意义上,这有点酷。我不想完全失去这一点。但当你最终做... 你牺牲了你白天的生产时间去做这些事情时,你会觉得,啊,我不知道。这可能不是最好的。一个小技巧,我不知道是否...
如果有人可能会觉得这个有用,但我学会做的是我有一个 Apple 手表,我真的只是把我的手机放在另一个房间。嗯,它不一定是 Apple 手表,Android 手表,或者任何可以通知你重要通知的手表。所以你关闭所有不重要的通知,除了你知道的,比如,你的孩子或其他对你生活重要的事情。你打开那些通知在你的手表上,然后,嗯,把你的手机扔得尽可能远离你的房间。然后我基本上整天都不碰它,因为我知道如果有重要的事情需要我,它就在我的手腕上。是的。我实际上甚至不知道我的手机在哪里。我把它留在家里的某个地方,但我,实际上,我有过一次非常奇怪的互动。像,嗯,我有一天把我的孩子送到学校,嗯,
我不小心把手机留在那里,直到两三点我才回去。我问,嘿,我把我的手机留在这里了吗?他们说,哇,你整天都没有用手机。像他们觉得我没有用手机是如此奇怪。我说,嗯,但我,手机是人们生活中一个重要的部分。嗯,你知道,
我在夏天的时候走在中国或日本等地方,人们总是盯着他们的手机。即使在走路的时候也是如此。我不知道。我个人真的在与之抗争,因为我不——我真的不喜欢那样。
像世界朝着整天盯着手机的方向发展。我曾经和一些朋友一起出去玩,有些人只是试图交谈,你会看到他们中的一些人正在社交媒体上滚动。我想,来吧,我难道不够有趣吗?但他们就像我说的,他们确实很有用。我只是,我试图花更多的时间在上面进行生产而不是消费。是的。是的。还有一个给任何在手机上观看这个的人提供的专业提示,
像关闭屏幕,把它放在口袋里,听我们说话。你不会错过任何东西。看着我们的脸,看着,嗯,1985 年的纸男孩或其他什么经典街机游戏在背景中。我只是把那个放上来以增加一些视觉元素,但你不会错过任何东西。把手机放在口袋里,像去散步。
那是我听的地方。我听了很多播客。今天早上我听了几次与你的采访,只是为了准备。走在户外的自然中,或者在附近的空调购物中心散步,如果天气太热或太冷,这真的很放松。这就是我获取大部分信息的方式。我最喜欢的方式之一是...
继续。我本来想说很多视频论文和东西,像你实际上不需要观看它们。你可以把它放在手机上,你仍然可以获得大部分信息。有一些视觉元素,但很多时候他们只是播放 B-roll 等东西,或者只是那个人在对你说话。但,是的,你可以在听的同时消费很多东西,然后像看着周围的世界,或者去做一些事情,去健身房,知道,通勤,所有这些事情。是的。
我本来想说,这也是我喜欢智能手表的另一个原因,因为你可以将耳机连接到它上面,你可以听那个播客,然后你的手是自由的。在我最好的时刻,我正在家里做一些事情,或者用我的手物理地构建一些东西,你正在用手做一些事情,同时也在从播客中学习一些新东西,或者像你说的,视频论文。我认为这是我理想的最佳时刻,像...
你有点被动地从仅仅在电脑上编码转向做一些事情,同时也在学习。是的。我今天要去割草,做除草和所有事情,我肯定会戴上我的大...
我不知道怎么形容它们。你可能想象一下警察在《致命武器》中穿着它们时的样子。它们基本上是这些大耳罩,可以消除很多分贝。而且它是蓝牙启用的,所以我只需把它们戴上,在割草或做其他家务时听播客。非常酷。是的,确实如此。远离屏幕。整天不要盯着屏幕。
但无论如何,我不想像个老头一样对着云喊,像这些年轻的小家伙总是把脸埋在屏幕里,你知道,即使我试图和他们交谈。但,嗯,但确实,你正在构建移动应用,嗯,我不会像,哦,让我们谈谈移动应用的伦理和占用人们的时间。像那种对话已经被讨论过无数次,但也许你可以谈谈你的移动应用工作流程,以及它与网页应用的不同之处。
因为你做过网页应用,现在你主要做移动应用。我很高兴能了解一下,比如说你刚创建一个新项目。也许你可以口头上带我们走一遍,非常高层次地,讲讲你是如何做到的,以及这与网页应用有什么不同。
当然。所以为了总结最后一点,确实有很多很棒的应用和好的东西。像我通过 Duolingo 学习波兰语,我每天早上都会收到通知,这太棒了。而且你从电脑屏幕上可以产生的所有东西也很棒。所以肯定有很多积极的方面。只是有时人们,嗯,过于沉迷于此。关于,嗯,Flutter 或移动与应用开发,我认为 Flutter
所以我想,也许我想更多地进入网页开发的原因是因为
并不是说我掌握了 Flutter 或其他任何东西,但我觉得我达到了一个可以舒适地构建几乎任何我真正需要的东西的程度。嗯,可能不是一些疯狂的,嗯,下一代的东西,但如果有一个,嗯,更简单的项目,我知道如何架构它,对吧?我知道如何确保状态得到妥善管理。我知道如何,嗯,学习新的包以及如何使用新的包,嗯,
我觉得我在 Flutter 环境中很舒适。所以我想挑战自己,学习网页,因为那是我回顾时不太舒适的地方,我不得不停止。所以我做到了。我还想建立一个课程学习平台。所以我认为,学习的最好方式就是通过构建东西。
所以我开始学习 Next.js。那是最流行的一个,它使用 React。我学会了这个。然后我发现了 Astro,这是另一个框架。它可以使用任何其他框架
像你可以使用 React 文件。你可以使用所有这些。所以我开始使用 Astro,并且我再次在 Astro 中有了与 Flutter 相同的时刻,我想,这就是网页开发应该是的样子。像,它很简单。事情被简化了。很有趣。你可以完成事情。嗯,还有,
我认为你开始每个项目的主要区别在于,网站似乎在这一刻,构建某些东西并将其发布给人们要容易得多,而不是移动应用程序。我喜欢这一点。使用像 Vercel 这样的工具,你可以创建一个演示 Astro 项目或 Next.js 项目。
你可以点击一个按钮将你的 GitHub 连接到 Vercel。然后,你有一个可以与人分享的实时链接,你只需在此基础上迭代和构建。所以在 Flutter 项目中,这非常简单。是的,有一个,整个过程。嗯,Android 过程并不是那么糟糕。嗯,但 iOS 确实很困难。嗯,
对于 Android,你确实需要支付一次性 25 美元的费用,除非他们提高了这个费用,才能提交你的应用到应用商店。然后还有一个打包你的应用程序、创建列表、放置名称、传递安全密钥等的整个过程。并且在 Android 商店上架需要一段时间。
对于 iOS 商店,变得更加困难。每年 100 美元,所以这不仅仅是一次性费用。你必须每年支付 100 美元才能在应用商店上架某个东西。然后你的应用将受到严格审查。如果你...
我记得我试图部署我的一个应用程序,我想在我的应用程序中添加 Google 登录,因为这可能是人们登录的最常见方式。我有电子邮件密码,然后我想添加 Google 登录作为另一个选项,仅仅因为它太受欢迎了。我喜欢它。
我把它添加到我的 Android 商店,显然一切都部署了。然后我把它放到应用商店,它被拒绝了,因为如果你添加 Google,他们想确保 Apple 登录也是一个选项。所以我不得不弄清楚,他们强迫你必须有 Apple 登录。是的。是的。我想我得检查我的应用,但我想我们可能也有 Apple 登录。但这很尴尬,因为像我们的 Apple 登录在
网页浏览器中似乎不可用,我不认为它可能是,但你必须去改造你的网站,以便人们不会有孤立的账户,嗯,是的,我没有意识到他们有那个限制,天哪,Apple 确实是这样,他们真的利用他们的市场力量,不是吗?
一方面,如果你看看另一面,对最终用户来说,这有点好。你知道,如果有人喜欢使用 Apple 登录... 也许这是另一个例子。我添加了 Apple 登录按钮,然后它并没有符合他们在 iOS 上的设计规范,像,在他们的,嗯,库比提诺设计语言上。它不是... 像,我认为边缘没有正确地圆润。像,它是一个方形按钮,而不是像一个漂亮的圆角按钮。类似的东西。我不记得确切的... 但,像,Apple 按钮的设计没有符合他们的规范。所以我不得不修复它。然后最后它被发布到应用商店。所以,但,从某种意义上说,对用户来说,这有点好。像,你知道...
如果有人设计了一个非常丑陋的 Apple 登录,像一个红色的苹果或其他什么东西,那么你不知道你到底在点击什么。但这个按钮是你在多个其他应用中使用过的。它应该是好的,应该是安全的。我认为他们通常会让一个人实际测试他们的应用程序并进行审核。所以,是的,这使得它变得更加困难。但我认为这也是为什么获得 iOS 应用是...
最高摩擦但通常是最高回报,因为 iOS 用户支付的最多,等等。是的,我的意思是,大多数钱都在,嗯,我听说即使使用 Apple 应用商店的人更少,像大多数钱都是在 Apple 生态系统中赚取的,Android 只是更难让人们打开钱包并支付东西,这可能是因为一般来说,像 Android 更便宜。
而 Apple 更受欢迎的国家通常更富裕,像欧洲国家等等。而 Android 更受欢迎的地方是全球南方和亚洲等地方。是的。所以显然,构建移动应用需要更多的工作,但它确实具有我们之前讨论的那些好处,像人们在点击它,它更具粘性,基本上。是的,是的。我想这不是...
所以在实际开发过程中,它们都是简单和容易的。所以你可以构建一个可工作的应用程序。只是你实际部署它并让其他人尝试和使用它的部分变得更加困难。是的。是的。所以我很高兴能多谈谈你作为—
嗯,作为一种副业进行移动应用开发。像你做过,你在其中构建了一些项目。嗯,你做过一些初创公司之类的事情。那么你在开发者倡导者的角色中使用移动应用开发吗?嗯,
是的。所以在整个 Navistar 职业生涯结束时,我最终享受学习移动开发。我在创建 YouTube 教程和所有这些东西。我想,我还年轻。我没有孩子。我应该尝试一下,看看我能在整个创作者职业道路上做些什么。所以我去做了。我做得还不错。
嗯,我,嗯,赚的钱足够支付账单,这就是我想要达到的门槛。但在那段时间,我也了解了开发者倡导者是什么,或者一般的开发者倡导。我想,嗯,我从来没有听说过这个词,直到我辞职后两个月我才听说它,我了解了开发者倡导是什么。我想,等一下。
人们为这些东西付费。像,这就是我现在正在做的事情。像,这就是我辞掉工作后想要做的事情,基本上是与开发者倡导类似的工作,就是教人们关于技术的知识。嗯,所以,
然后我想,我会试一试。像,这就是我想做的事情。这就是我辞掉工作后想要做的事情。像,为什么不在实际的财务支持下去做呢?嗯,我为此工作。所以是的,然后我面试了很多公司。我最终在一家叫 Agora 的公司工作。嗯,
在那里我被聘为 Flutter 开发者倡导者。所以我确实在 Flutter 上做了很多工作。太棒了。所以,Tadas,你已经深入到网页开发中,以至于你最新的项目 Hungry Mind,Hungry 用 I 而不是 Y,甚至没有移动应用。你能谈谈那种回归网页开发的情况吗?当然。
所以我仍然在做 Flutter,顺便说一下。像,我仍然在我的全职工作中做 Flutter 所有事情。所以 Flutter 并没有消失。但就像我说的,我达到了一个可以舒适地构建大多数东西的程度。我想挑战自己,更多地从事网页开发,这在一开始让我感到害怕。所以...
我还想建立一个课程平台,仅仅因为,我不知道,我觉得每个内容创作者最终都想建立一个课程平台。这是一个相当大的挑战,我认为这会很有趣,去尝试构建一些我认为与众不同的东西。
我见过,至少在 Flutter 社区中,也足够具有挑战性,以至于我必须学习所有这些其他工具。所以,是的,我仍然在做 Flutter。这个平台叫 HungryMind.com,在那里,它只是一个 Flutter 课程。所以我们称之为互联网上最好的 Flutter 课程,因为这就是目标。它有两个...
具体目标。一个是教你如何用 Flutter 构建几乎任何项目。我知道,嗯,掌握基础概念,以便你能够舒适地在 Flutter 中构建任何东西,然后做到比互联网上的任何人都要好。
这就是我们的目标。这就是我们命名它的原因。我正在与另一位 Flutter 创作者 Robert 一起工作。所以我们俩基本上将我们这些年来从 Flutter 中学到的所有知识汇聚到一个资源中,我希望不断改进,使其成为在线学习 Flutter 的最佳场所。我真的很喜欢...
所以我想学习网页开发,然后我使用 Azure 学习,因为它给了我与我第一次开始时 Flutter 相同的感觉。是的,课程包括,像,所有东西,你知道,像流媒体视频,这是一个复杂的话题。它有一个完整的后端,像,身份验证系统。
我们使用 Terso 作为数据库。所以那是 SQLite,我们学习了关于它是如何工作的所有知识。学习如何在 Markdown 中创建漂亮的小代码块,测验,数据库结构。只是,嗯,是的,这是一个大项目。我非常自豪。我认为它看起来很棒。这是一些在 Flutter 社区中有点不同的东西。所以对此我非常兴奋。
是的。哦,嗯,我认为很多课程创作者确实会创建自己的课程平台,但很少有人能达到你所构建的那种水平。嗯,所以绝对,嗯。是的。我本来想说,我认为每个人都有这种梦想,试图做一些不同的事情。我见过其他课程创作者,像,
课程,嗯,像创作者内容创作者构建课程平台,但要使其独特和不同是相当困难的。嗯,但我们真的在努力使其变得好。就像,我已经构建这个平台超过两年了。我经历了一个完整的过程,我从一个非常简单的课程开始,嗯,
然后我意识到,哦,这不是一个很好的课程。这个平台并不是很好。所以我进行了全面的重写。我认为这现在是整个平台的第四或第五次重写。我们甚至有五个课程之前。所以我有一个 Flutter 课程,我有一个 Astro 课程,我有一个 XGS 课程,我有两个 Flutter 课程,所以两个或三个 Flutter 课程。所以现在我们有点把所有东西都剥离回去,我觉得每次都意识到最重要的是
追求质量,追求做出你能做的最好的东西。是的,这就是我们命名它的原因。并且剥离所有额外的浮华,确保你做的每件事都是正确的,并保持简单,尽可能高质量。是的。与 free code camp 一起,当我们创建它时,基本上就像我创建了这个平台,教授很多不同的技能,我只是,
将其提炼为:我们可以教什么,能够在 JavaScript 中做得很好的一件事?然后它就从那里真正发展起来了。听起来你正在采取类似的方法,嗯,教授,嗯,确保在教授许多其他潜在技能之前,先在 Flutter 上做到非常好。这真的很酷。你经历过多轮重建 JavaScript 平台吗?是的。
我的意思是,你可以说课程不断被刷新和更新。我们即将对课程进行一些重大更新。这只是一个不断的过程,像我们雇主在寻找什么。什么是当代工具?什么是自 70 年代和 80 年代以来没有根本变化的关键概念?你可能在你的学位中学到的那种东西,像系统设计。
算法,数据结构,类似的东西。所以是的。并且,确保我们平衡新工具,但确保像基础知识得到覆盖。现在我们要做的是创建极其全面的,嗯,广泛的教育。而听起来像是,嗯,你的工具,如果某人已经有一些开发者背景,他们只想快速学习 Flutter,他们可以深入其中,并在现有技能集中创建一种专业化。是的。
对。所以,是的,先决条件是你知道 Dart 或任何其他面向对象的编程语言,像我相信你可以掌握。所以,是的,这是这个的先决条件。最终我们希望制作,嗯,其他课程,事情我们感到兴奋,但我们真的想锁定并创建,像,课程的标题所说的,互联网上最好的 Flutter 课程。这是一个困难的事情。Dart 是 Google 创建的编程语言,像,也许 10、12 年前。是的。但...
那是 Dart 的主要应用。我理解的是,它只是,嗯,这个 Flutter 框架,这在 Dart 之上。你能谈谈你与 Dart 的关系吗?像,你是否在 Flutter 之外使用 Dart?它主要是 Flutter 的工具吗?
它主要是 Flutter 的工具,但我会说 Dart 是我最喜欢的语言。但它也是一种与大多数其他面向对象语言非常相似的语言。所以我认为任何知道 JavaScript 或,嗯,我不知道,其他语言的人,在 TypeScript 和 Dart 之间切换,例如,是相当简单的。只是语法我有时搞混。但,是的,这是我最喜欢的语言之一。我觉得它的浮华最少。
而且也非常干净,易于理解。但我不在其他地方使用它。我见过人们,有后端的东西可以用 Dart 编写。有一家 YC 的初创公司试图用 Dart 构建后端。所以有一些东西,但我没有使用过它们。
在本周的播客中,freeCodeCamp 创始人 Quincy Larson 采访了 Tadas Petra。他是一名软件工程师,也是 Agora.io 的高级开发者倡导者。在大学学习嵌入式开发后,他转向构建移动应用程序。他已经构建了数十个移动应用程序,并创建了教程来帮助其他开发者学习 Flutter 和其他移动开发工具。我们讨论了:- 从立陶宛移民到芝加哥 - 他在学校学习的计算机工程,以及它与构建消费类移动应用的不同 - 他从高级开发者转型为 YouTube 创作者再到开发者倡导者的过程 - 移动开发与网页开发之间的重叠,以及他从每个领域学到的东西 你能猜到我在开场时播放的是什么歌吗?此外,我想感谢每月支持我们慈善事业的 10,943 位善良人士,他们使这个播客成为可能。你可以加入他们,支持我们的使命,网址是:https://www.freecodecamp.org/donate 你可以在 Apple Podcasts、Spotify 或你最喜欢的播客应用中收听这个播客。确保在那里关注 freeCodeCamp 播客,这样你就能在每个星期五收到新剧集。我们在对话中提到的链接:Tadas 的 freeCodeCamp 历史视频(20 分钟观看):https://www.youtube.com/watch?v=g5n1-hD-x5g Tadas 关于如何用 Flutter 控制家中灯光的视频:https://www.youtube.com/watch?v=eib_62D-kSA Tadas 的跨平台应用开发学习平台:https://www.hungrimind.com/ </context> <raw_text>0 太棒了,伙计。YC,当然是旧金山的加速器,Y Combinator。所以我很高兴听到社区内有很多活动。我们在 Free Code Camp 中广泛使用 Flutter,因此,Dart 也是如此。所以,是的,当生态系统不断发展时,我总是很高兴。最近我们在 PHP 社区中看到了一些惊人的活动,例如,Laravel 成为一个...
独立项目并筹集资金等。所以看到不仅是 JavaScript 和 Python 获胜,还看到这些其他工具和语言也在获得发展,真是太酷了。你觉得 Dart 和其他语言相比怎么样?
我个人并没有真正用它编码过。就像我在大约 12 年前刚推出时做了一些基本的教程。所以,呃,那是我的极限,但它与 JavaScript 和 Python 非常相似。它只是一个高级脚本语言。呃,是的,如果有人想尝试,当然,你的课程涵盖了它,除了涵盖 Flutter。所以这听起来是一个很好的起点。没错。
除了开发 Hungry Mind,你作为开发者的短期计划是什么?你在接下来的几年里有什么大目标吗?我认为这个平台是我过去两年的主要关注点,我想把它做得更好。我认为...
它的整体目标就是帮助人们创造更多的东西。当然,我开始做这件事的最简单方法就是创建一个课程。你知道,直接帮助人们。但最终,我希望如果这个课程成功,我希望能创建更多的课程。如果人们真的喜欢这种教学风格,当然,我想继续创建更多的课程。但我也...
是的。
像基本需求。我通过学习和构建找到了巨大的满足感,这一直是我一生中的趋势。我想回馈并尝试帮助其他人经历同样的事情。是的。嗯,我想感谢你为开发者社区所做的一切。你并没有仅仅满足于现状。很多人,他们获得了好的开发工作后就放松下来,像是,
周末玩游戏或只是轻松度过。达到一定的繁荣水平后,去旅行等完全没有错。没有任何义务说你必须参与开源,或者你必须想办法在 YouTube 上创建教程来帮助下一代开发者进入这个领域等等。
但每当我看到人们这样做时,我总是想停下来为他们鼓掌,因为我确实很感激,当然,这激励我看到人们走出去,想办法采取行动。
他们自己的创造力,构建帮助其他人做同样事情的东西。所以这太棒了。是的。谢谢。很感激。但对我来说,这只是, 对我来说,这很有趣。我觉得可以把这一切框架成像视频游戏。我以前玩过其他视频游戏,但我有点停止了,因为这变得更有趣。是的,起初要开始做一些更难的事情确实是一个更高的门槛。但一旦你进入流状态,像是,
你正在做一些比你习惯的稍微更具挑战性的事情。我觉得这基本上就像一个视频游戏。生活就是一个视频游戏。是的。是的,我的意思是,你绝对可以专注于,比如说,最大化属性,这意味着,有些人只是专注于提升一个数字,基本上是他们的净资产。但对我来说,像...
我总是以技能树的形式思考,我想在死的时候拥有一个完全解锁的技能树。呃,顺便说一下,我觉得你最近买了一台缝纫机并开始缝纫,这超级酷。呃,我买了一台。我做了一些缝纫项目,因为我实际上需要它,但我只是,我有太多的爱好,我想我给自己定下的一个规则是,呃,
只要我能负担得起,当然。永远不要在创意上抠门。如果我想做一些创意的事情,就去做。我很少后悔买工具或缝纫机,即使我不常用它。这只是一个尝试过的有趣的东西。是的。当你说你有很多爱好时,还有其他爱好是你突然决定想要进入 X 或 Y 的事情吗?有没有其他有趣的事情人们可能会觉得有趣?
所以我不会说我在这些爱好中很出色,但几乎每项运动我都做过。我小时候曾打篮球,但现在我和朋友们打排球、皮克球、网球,所有这些运动。其他我随机学到的事情是修理我的车和汽车。我用一辆丰田 Sienna 建造了一辆露营车,我们把它开到加利福尼亚和纽约。
那真的很有趣。它有一个整个床可以拉出来,像... 哇。它有木条,所以床可以拉出来,你可以把它变成一个长椅。里面有电池、冰箱等等。这辆小丰田 Sienna。所以这是一个相当酷的项目。是的,我重新装修了整个房子。前后的图片非常疯狂。我想学习焊接。我有一堆木工项目。
我想要进入的事情。我觉得我必须限制自己,让自己参与的事情数量。是的。我的意思是,这是否扩展到,作为开发者,你是那种想要出去尝试所有这些不同工具的人吗?你经常调整你的工作流程吗?
是的,绝对是。所以我经历了一个阶段,甚至在开发之外,像生产力工具,像所有的 Notion 之类的。我已经经历了,知道在我的工作空间中调整小东西,像通过 Obsidian 等等。开发也是同样的。我经历了 Flutter。我尝试了 React、Astro、Svelte、Vue。我真的很喜欢 Svelte,不喜欢 React。尝试了 Next.js,像所有这些框架。我尝试了所有这些。
我想我决定我也必须限制自己。像写软件的目的实际上是构建东西。所以我觉得学习几样东西并把它们用来构建酷东西要好得多。所以是的,我觉得我只是一个对所有事情都充满好奇的人,必须稍微限制自己,以便完成我真正想完成的事情。
是的。你必须在自己无法满足的好奇心面前保持克制。呃,有没有过特定的时刻让你意识到你已经走得太远了?对我来说,呃,我曾经切换到所谓的程序员 Dvorak。
哦,伙计。你可能会说,这是 Vorjak。不,这是作曲家。Dvorak 是一种键盘风格的名称。拼写是一样的。但是,当人们来到美国时,像埃利斯岛,他们会改变他们的名字等等。是的。这就是这个家伙的名字的发音。但基本上,他们拿了像英语...
你知道的 QWERTY 键盘,然后重新排列它。但后来有人说,这对程序员来说还不够重新排列。他们说,重新排列数字和所有其他键。我的意思是,整个键盘。我当时坐在火车上试图编码,呃,在,你知道的,程序员在 Emacs 中工作,所有的宏都在运行,所有这些东西。我只是像,啊,
然后我在某人身上,问题是你学习程序员工作时,你永远不会走到某个键盘前,已经,哦,你也使用程序员工作。没有人使用那个。很少有人甚至使用工作,甚至很少有人有,呃,我想 Emacs 在大多数 Linux 盒子上技术上是预装的,但像你,我不知道它是否在 Windows 或 Mac 上。实际上,我没有检查。呃,如果它是,
如果它在,但我最终决定我的工具链太定制化了,呃,
配置环境太困难了,我和一些 devops 交谈,他说,哦,是的,我只需这个 curl 命令,我去 curl 我的整个环境,做所有这些事情,我想人们不会欣赏我在办公室里,我会离开,你知道,我会 curl 环境,调整他们电脑上的所有这些设置,他们会问你在做什么,所以我曾经有过这样的时刻,我想不,我已经走得太远了。
是的。我不认为 Emacs 在 Mac 上是默认的。Vim 是。但我发现自己处于这种情况,我想,哇,我自定义得太多了。我需要退后一步,更加与典型的开发者保持一致,这样我才能更容易地与他们建立联系并理解他们。而且,我也觉得我在学习所有这些深奥的工具时,实际上是在拖延,没能真正提高数据结构和算法等方面的能力。
是的,你有没有过这样的经历,你走得太远了,必须有点回归?不一定是与开发者工具有关。我确实尝试过 Vim 和所有东西。我试着学习... 我确实学会了一些命令。我试了大约一周,然后我意识到,我不知道,VS Code 在创建内容方面效果很好,特别是用于教学。你应该使用 VS Code,因为大多数人都在用它。我退后了一步,所以...
我觉得我没有在开发者工具方面走得太深,但我发现自己在我所构建的东西的信心上走得太深。就像我提到的,第一次尝试构建社交网络作为我的第一个网络项目。我想,哦,我需要稍微退后一步,回到网络工作的基础。
是的,回归基础。好吧,我会告诉你,根据我的经验,从来没有一个时刻让我觉得我花了太多时间学习基础知识。是的,确实如此。我不知道这是否可能。最后一个问题。所以你学习了计算机工程,这与软件工程不同,软件工程有学位。人们最常学习的东西是计算机科学。
嗯,你会说你通过学位学到的数学、物理和其他技能有多少是有用的?你有没有发现自己在某个时刻突然发现你在学校学到的东西变得超级相关?这种情况发生得很频繁吗?不。没有。
我的学位几乎没用。就像我说的,你学到的几乎所有东西都是在工作中学到的。即使我只上了两门计算机科学课程。我认为学校最好的地方就是结识周围的人。对吧。然后是学习解决问题的过程。
我认为这就是学校教给我的最大东西。我觉得这就是为什么我喜欢你们在 Free Code Camp 所做的事情,因为你们教会了如何去思考,如何去学习。我觉得 Free Code Camp 教授编程的水平与任何大学都差不多。我开始第一份工作时对编程一无所知。我在那条路上学会了。我不记得我...
不,因为 FreeCodeCamp 是 JavaScript。所以我必须在其他地方学习 C 才能找到第一份工作。但在我第一份工作之前,如果是 JavaScript,我可能会学到同样多的东西。我相信你深入到硕士水平时,会接触到一些疯狂的物理。如果你进入一个非常小众的工作,那么...
学校可能会有用,但对我来说,我的职业在前四年内已经发生了很大的变化。我几乎没有做任何在学校学到的编码。我学到的,正如我所说,数据结构和算法是我唯一真正的课程,而我在这门课上表现得很糟糕。
在我职业生涯的四年里,我在制作 YouTube 视频,教授如何使用一个在我上大学时甚至不存在的框架构建移动应用程序。所以我认为,是的,我确实在大学交了很多朋友,学会了如何在大学里学习一点。但就我在那里的直接学习而言,我几乎没有用到。
好吧,听起来你在卡车公司 Navistar 的机会,我想就是你所说的。它是校车和卡车的母公司。但在那种必须严格规划和严格测试的关键任务软件上工作,听起来确实是你作为工程师技能的熔炉。是的。
你对那些想进入这些公司的人有什么建议?比如说,假设有人说,我想进入一个所谓的真正的工程公司。
这并不是像弄清楚如何给人们加 AR 胡子那样的事情,而是实际上试图做一些有助于提高燃油效率、安全系统等的事情。人们应该在哪里寻找这些机会?是的。
所以我觉得那些公司更难进入,因为我认为那些在做关键任务安全工作的公司都是老公司。所以 Navistar,我想是在 1800 年代成立的,像是,早在他们为农业制造拖拉机之前。我认为他们最初开始时,...
所以这些公司中的许多仍然要求学位。我得到那份工作的原因是因为实习。而我得到那份实习的原因是因为他们在大学的一个招聘会上。所以不幸的是,我觉得那些在做非常基础工作老公司更难进入。但有很多新公司有
呃,像对拥有大学学位的要求不那么严格的规则。或者我认为对于那些,你只想在网上积极活动,做一些事情,并拥有你所做事情的简历,以证明你了解技术,然后,呃,希望这能给你一个提升。
太棒了。这非常有帮助。所以,是的,我确实检查过。是的,像 1800 年代的拖拉机。太神奇了。顺便说一下,如果你能听到我儿子,他刚回家正在弹钢琴。这并不太分散注意力。但是,是的,伙计,听到你的见解真是太棒了。你是一个极其务实的开发者,不怕学习新工具。看起来你一直在不断学习新工具,看看这能为我做些什么?我该如何应用它?你不怕学习旧工具。
无论是缝纫机,还是木工工具。我只是,我把你视为某种程度上的普通开发者,像是普通工程师,他们把世界视为一堆可以拾起并潜在地投入使用的东西,并且,知道如何完成事情。所以这是一种极其令人印象深刻的品质。你有一种罕见的自信。
大多数人会感到非常畏惧,比如在算法和数据结构中得 C,然后直接进入更严格的计算机编程等。但你似乎并不害怕。你认为这归因于你经历中的任何事情,给了你这种勇气吗?我的意思是,我不知道。我从来没有真正考虑过,但我觉得...
最糟糕的事情就是你在某人面前看起来有点愚蠢。与我成长的地方相比,这没什么。你知道,我的父母经历过比我更艰难的时期,像是有人在工作中对你有错误的看法。但另一方面,个人而言,我从来没有觉得问问题的人,试图更深入地了解,像,
那样,我绝对不会认为某人比那更糟糕。所以在这种情况下,不要把自己想得太糟糕。不要害怕看起来可能不是房间里最聪明的人。尽量从人们那里学习和吸收尽可能多的东西。这是我的方法。我知道大多数人都是来帮助的,尤其是在工作中,你的老板是来帮助你变得优秀的。他希望你成功。呃,不要害怕去问他。
在深入这些我不太了解的事情时,我想这只是流入整体,去尝试看看会发生什么,希望你在这个过程中学到很多东西。没错。好吧,学习很多东西是游戏的名称,伙计。Tadis,很高兴你能参加 Free Code Camp 播客。
每周播客,我希望大家都喜欢。呃,确保再次查看节目说明。我已经包含了很多,呃,Titus 的项目链接,一些我觉得鼓舞人心的视频,呃,是的,伙计,我真的很感激你为社区所做的一切。是的。非常感谢你邀请我。好吧,直到下周,大家祝你编码愉快。