与Tim Holman的技术堆栈,框架,富有创意和真实

tech2022-09-22  70

In this episode of the Versioning Show, David and Tim are joined by Tim Holman, a web experimenter and member of the CodePen team. They discuss the obsession with technology stacks, finding time to be creative and experimental, dealing with a short attention span, the pressure to keep putting things out there, supporting and encouraging beginners, being honest with yourself, finishing what you start, digging into frameworks and how they work, Good Tim and Evil Tim, and frogging the console.

在此版本的版本展示中,David和Tim和Web实验人员兼CodePen团队成员Tim Holman一起加入了会议。 他们讨论对技术栈的痴迷,寻找时间进行创意和实验,关注注意力的时间跨度,压力不减,支持和鼓励初学者,对自己诚实,完成自己的工作,深入研究框架以及它们的工作方式(好蒂姆和邪恶蒂姆),以及操纵控制台。

Visit the Versioning Show Home Page

访问版本控制显示主页

Subscribe on iTunes | Subscribe on Stitcher | View All Episodes

在iTunes上订阅 | 订阅Stitcher | 查看所有剧集

显示笔记 (Show Notes)

Check out our Squarespace offer code

查看我们的Squarespace优惠代码

Tim Holman on Twitter: twholman

蒂姆·霍尔曼(Tim Holman)在推特上: twholman

Tim Holman on CodePen

Tim Holman在CodePen上

hakim.se

哈基姆

soulwire.co.uk

soulwire.co.uk

tholman.com

tholman.com

Tims Log

蒂姆斯·洛格

inspiring.online

启发在线

Bumpers

保险杠

aquatilis.tv

水产电视

GitHub corners

GitHub角落

Todoist

渡渡鸟

console.frog

控制台青蛙

Elevator.js

Elevator.js

What it feels like to learn JavaScript

学习JavaScript的感觉

Chris Coyier on JS module patterns

Chris Coyier讲的JS模块模式

Head First Design Patterns

头先设计模式

ITCSS by Harry Roberts

哈里·罗伯茨(Harry Roberts)的ITCSS

Say hello on Twitter: @mdavidgreen | @tevko | @versioningshow | @sitepointdotcom

在Twitter上问好: @mdavidgreen | @tevko | @versioningshow | @sitepointdotcom

对话重点 (Conversation Highlights)

So I started doing small projects. I started basically deconstructing what they had built and looking at the code and remixing it. After a while, I just got on a roll with it and was making more and more things.

所以我开始做一些小项目。 我基本上开始解构他们构建的内容,然后查看代码并重新混合。 过了一会儿,我才开始尝试它,并且正在做越来越多的事情。



Some of my bigger projects I really try to break into pieces. Again, it’s like I’m in a sense fighting against myself because I’ll get bored of something very quickly and want to move on. I like to break out the projects that I’m doing into really, really, really small pieces and say, “Oh, I’ll build this menu very quickly, or I’ll even just do the HTML part and then I’ll go out.”

我确实尝试分解一些较大的项目。 再次,这就像我在某种程度上与自己作斗争,因为我会很快厌烦某些事情并想继续前进。 我喜欢将我正在做的项目分解成非常非常非常小的部分,然后说:“哦,我将很快构建此菜单,或者甚至只是做HTML部分,然后我将出去。”



And of course, you can be excited by technology. It’s just I don’t get that excitement at all. I’m more interested in what we’re doing and where we’re going with that.

当然,您会对技术感到兴奋。 只是我一点都不兴奋。 我对我们正在做的事情以及与此相关的事情更感兴趣。



I’d like to see that extend into blogging a little bit. I think people maybe just feel a little bit overly critical when they look at their writing, or have trouble finding out where to start.

我希望看到一点点扩展到博客。 我认为人们在看自己的写作时可能会觉得有点过分批评,或者很难找到从哪里开始。



I’ve had a really wide variety of responses to a lot of the things I’ve made. I’ve had people basically delete all the code, and send in a pull request to be like, “This shouldn’t even exist” … which is a bit cruel.

对于我所做的许多事情,我的React非常广泛。 我已经使人们基本上删除了所有代码,并发送了一个拉取请求,例如“这根本不应该存在”……这有点残酷。



never am I going to sit there and argue with you about any type of technology and stack. Never am I going to really judge a job based on what technology they’re doing, what technology they’re using, when I can look at it as what we’re making here and what we’re trying to achieve with that.

我永远不会坐在那里与您争论任何类型的技术和堆栈。 我永远不会根据他们正在使用的技术,正在使用的技术,何时将其视为我们在此处所做的工作以及我们将要实现的目标来真正判断工作。



I do a bunch of talks at some coding boot camps and things like that, which I thoroughly enjoy. I never really turn that down, because I’m super happy to go there and speak to people who are just beginning to learn to code. They haven’t even really learned to learn yet, which is an interesting important part of development.

我在一些代码训练营和诸如此类的事情上做了很多演讲,我非常喜欢。 我从来没有真正拒绝过,因为我非常高兴能去那里与刚开始学习编码的人们交谈。 他们甚至还没有真正学会学习,这是开发中有趣的重要部分。



I always get a lot of nice emails back saying, “Oh, I was super insecure at this time. I was trying to figure out how to express myself with this platform and feel good about what I’m making.” The journey towards becoming a competent developer kind of goes through a lot of turmoil, I guess.

我总是收到很多不错的电子邮件,说:“哦,我现在不安全。 我试图弄清楚如何用这个平台表达自己,并对自己所做的事情感到满意。” 我想,成为一名称职的开发人员的过程经历了很多动荡。



When you’re at the start of a journey and you can see like, “Oh, I understand HTML, and I understand CSS, and I understand JavaScript, but why can’t I make my website great like these other websites?” That gap needs a lot of bridging. I got there in the end. And that’s what I try to set out to do most.

当您开始旅程时,您会看到:“哦,我了解HTML,我了解CSS,也了解JavaScript,但是为什么我的网站不能像其他网站一样出色?” 差距需要弥合。 我终于到了那里。 这就是我尝试着要做的大多数事情。



There was definitely like a dark period, I would say, of framework-centric thought. I actually feel like people are moving out of that now, and realizing that again it’s the actual things that you make, not the way that you make it, that ultimately counts in the end of the day.

我想,绝对有一个以框架为中心的思想处于黑暗时期。 实际上,我感觉人们正在逐渐摆脱这种情况,并再次意识到最终要考虑的是真正的事情,而不是制造方式。

成绩单 (Transcript)

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Hey, what’s up everybody. This is Tim Evko …

嘿,大家好吗? 这是Tim Evko…

David: 大卫:

… and this is M. David Green …

…这是大卫·格林(M. David Green)…

Tim Evko: 蒂姆·埃夫科:

… and you’re listening to episode number 24 of the Versioning podcast.

…,您正在收听Versioning播客的第24集。

David: 大卫:

This is a place where we get together to discuss the industry of the web, from development to design, with some of the people making it happen today, and planning where it’s headed in the next version.

在这里,我们可以聚在一起讨论从开发到设计的网络行业,其中一些人使之成为现实,并计划下一版的发展方向。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Today, we’re talking with Tim Holman, who does a lot of cool and interesting things. He’s a fellow podcaster. He is on the CodePen team and he makes a lot of — I don’t know how to put it — ridiculous web side projects. We’re going to talk with him about all of those different things. So let’s go ahead and get this version started.

今天,我们正在与蒂姆·霍尔曼(Tim Holman)交谈,后者做了很多有趣的事情。 他是播客。 他是CodePen团队的一员,他做很多(我不知道如何写)可笑的Web端项目。 我们将与他讨论所有这些不同的事情。 因此,让我们开始安装该版本。



The Versioning Show is brought to you by Squarespace. Squarespace helps creative people stand out. With an all-in-one platform that lets you create a beautiful website without worrying about limitations, designer templates, and a simple interface, Squarespace is the best way to make your next move.

Squarespace为您带来了Versioning Show。 Squarespace帮助有创造力的人脱颖而出。 有了一个多平台平台,您可以创建漂亮的网站而不必担心局限性,设计模板和简单的界面,Squarespace是下一步行动的最佳方法。

With Squarespace, you can run much more than a portfolio site. You can run your online store on Squarespace, with detailed analytics, domain registration, G Suite integration, and tools that help you scale your business.

使用Squarespace,您可以运行的不仅仅是一个投资组合网站。 您可以在Squarespace上运行在线商店,其中包含详细的分析,域注册,G Suite集成以及可帮助您扩展业务的工具。

Squarespace have a special offer for listeners of the Versioning Show. Try out their service for free. Then, when you decide to subscribe, use the offer code SitePoint to get 10% off your first website or domains purchase.

Squarespace为Versioning Show的听众提供特别优惠。 免费试用他们的服务。 然后,当您决定订阅时,请使用优惠代码SitePoint来获得首次购买网站或域名的10%的折扣。

Go to SitePoint.com/squarespace to get started.

转到SitePoint.com/squarespace开始。



Tim Evko: 蒂姆·埃夫科(Tim Evko):

Tim, thanks for joining us. How are you doing today?

蒂姆,谢谢你加入我们。 今天过得好吗?

Tim Holman: 蒂姆·霍尔曼:

Good. Wow! That was a very professional introduction.

好。 哇! 那是一个非常专业的介绍。

David: 大卫:

Professional is what we do around here.

专业是我们在这里所做的。

Tim Holman: 蒂姆·霍尔曼:

Of course. Yeah I’m doing great.

当然。 是的,我做得很好。

David: 大卫:

Fantastic!

太棒了!

Tim Holman: 蒂姆·霍尔曼:

Just hanging around ready to chat.

只是闲逛准备聊天。

David: 大卫:

Well, great. In that case, let’s get the chat started. I’ve got a question for you. We like to start our Versioning Show with a philosophical question about versions. Our philosophical question for you is: In your current career, what version are you, and why?

好吧,太好了。 在这种情况下,让我们开始聊天。 我有一个问题要问你。 我们希望从有关版本的哲学问题开始我们的“版本显示”。 我们为您提供的哲学问题是:在您目前的职业中,您是哪个版本,为什么?

Tim Holman: 蒂姆·霍尔曼:

Wow, that’s a big question right off the bat. I don’t know if I would want to put a number on it. I feel like so much development is a few steps forward and a few steps back at all times. The technology changes. Some things become obsolete. It’s not like your building — at least this is how I feel — I’m not really building a tower that I stand upon and get higher and higher. I feel like the ground is constantly moving under you. So, one, or zero, I guess. I never see somebody that talks about building their computer when they’re one year old or anything like that and think, “Oh this person is going to be a great developer.” I’m interested in what’s happening at the time. I don’t know. I’ll stick with zero. That’s different.

哇,这是一个大问题。 我不知道是否要在上面加上数字。 我觉得这么多的开发始终是向前走了几步,而后退了几步。 技术在变化。 有些事情变得过时了。 它不像您的建筑物-至少这就是我的感觉-我并不是在真正建造一个我站得越来越高的塔。 我觉得地面在不断在你下面移动。 所以,我猜是一或零。 我从未见过有人谈论过一岁或类似年龄时构建计算机的想法,并想:“哦,这个人将成为一名出色的开发人员。” 我对当时发生的事情很感兴趣。 我不知道。 我会坚持零。 那不一样。

David: 大卫:

Version zero. There’s a lot of room to grow from there.

版本零。 从那里有很大的成长空间。

Tim Holman: 蒂姆·霍尔曼:

Yeah, I guess so. Better than negative one.

我猜就是这样。 胜过负面。

David: 大卫:

My other Tim told me, and mentioned earlier in the show, you’ve been doing a lot of really weird stuff online. You’ve been sharing it out. I’m curious, what got you started down that path?

我的另一位Tim告诉我,并且在节目的前面提到,您在网上做了很多非常奇怪的事情。 您一直在分享它。 我很好奇,是什么让您开始走这条路的?

Tim Holman: 蒂姆·霍尔曼:

That’s an interesting question. When I started doing development, there were a few people that were very big and inspiring to me. Hakim is one (his website’s hakim.se). And Justin, who was my housemate for a while (his website is soulwire.co.uk). And there’s a bunch of others. On their websites, they had these small web experiments. The more interesting thing was that they went back for a really long time. I could see where they started their journey and what they were making when they started their journey. And I basically wanted to imitate that.

这是一个有趣的问题。 当我开始进行开发时,有很多人对我很有启发。 Hakim是其中一个(他的网站是hakim.se )。 还有我的室友贾斯汀(他的网站是soulwire.co.uk )。 还有很多。 在他们的网站上,他们进行了这些小型网络实验。 更有趣的是,他们回去了很长时间。 我可以看到他们从哪里开始旅行,以及他们开始旅行时在做什么。 我基本上想模仿那个。

So I started doing small projects. I started basically deconstructing what they had built and looking at the code and remixing it. After a while, I just got on a roll with it and was making more and more things. I’d share them out and get some attention. Some things I make get absolutely no attention. Now I get this weird twinge of anxiety if I haven’t released something or made something in a while. It’s like I was saying with that version zero, you’re constantly going down and you’re constantly pulling yourself up at the same time with new things.

所以我开始做一些小项目。 我基本上开始解构他们构建的内容,然后查看代码并重新混合。 过了一会儿,我才开始尝试它,并且正在做越来越多的事情。 我会分享给他们并引起注意。 我做的某些事情绝对没有引起注意。 现在,如果我一段时间没有释放或做某事,我就会感到这种奇怪的焦虑。 就像我说的那个零版本一样,您一直在下降,并且在不断地通过新事物提升自己。

David [4:20]: 大卫[4:20] :

Do you have a release schedule for these things that you put out?

您有这些产品的发布时间表吗?

Tim Holman: 蒂姆·霍尔曼:

This year I created a mailing list. You can find it on my website I guess. It’s just tholman.com. It’s called Tims Log. Nothing really special, but I decided that I wanted to start documenting each week what I’ve made and what I’ve got out there. That has helped me a little bit to push a schedule onto myself. But, then, at times it doesn’t really work out either. You’re working on a project that goes for a few weeks, then you’re only going to be able to release something at the end of that second week or third week.

今年,我创建了一个邮件列表。 我猜你可以在我的网站上找到它。 只是tholman.com 。 它称为Tims Log 。 没什么特别的,但是我决定我想开始每周记录我的所作所为。 这对我有所帮助,使我自己制定了时间表。 但是,有时它也不是很有效。 您正在进行一个为期数周的项目,然后只能在第二周或第三周结束时发布一些内容。

So, I have a lot of little things that are going on as well. I have a website. It’s an open-source blog, inspiring.online. In that, I try to get a post on it every single day of something that I’ve seen, a website that I’ve seen or something like that and just share it out there. It’s slowly gaining popularity. It’s interesting to see something that you’ve spent a lot of time in be it like a slow, difficult gain, and then some things that you spend one minute on (which is something that I do a lot as well) that go insanely popular really, really quickly.

因此,我还有很多小事情正在进行。 我有一个网站。 这是一个开源博客inspiring.online 。 在这种情况下,我会尝试每天在我见过的东西,我见过的网站或类似的东西上发布帖子,然后在那里分享。 它正在慢慢普及。 有趣的是,您花了很多时间在某件事上,例如缓慢而困难的收获,然后花了您一分钟的时间(我也做很多事情)疯狂地流行起来。真的,真的很快。

I actually found that I have a really short attention span. Fitting the work that I do into that attention span has been really beneficial. If I say, “Oh we’re going to do this podcast in 30 minutes,” and I have 30 minutes to make something right now, then that’s the kind of thing that I’ll make. And of course, in 30 minutes you can’t really do a whole lot of work, but you can make some pretty weird small stuff.

我实际上发现我的注意力跨度非常短。 使我所做的工作适应这一关注范围确实非常有益。 如果我说“哦,我们要在30分钟内完成此播客”,而我现在有30分钟的时间来制作内容,那么我将做这种事情。 当然,在30分钟内您无法真正完成很多工作,但是您可以制作一些非常奇怪的小东西。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

That leads me to my next question. I’m curious. David and I in previous episodes have been talking about contributing and just releasing things in open source and writing and blogging and stuff. How do you find the time to get all this stuff in there?

这使我想到了下一个问题。 我很好奇。 David和我在前几集中一直在谈论贡献和只是发布开放源代码的东西,以及撰写博客和其他东西。 您如何找到时间将所有这些东西收集到那里?

Tim Holman: 蒂姆·霍尔曼:

That’s it. It’s like the podcast that I’m doing is using an app called Bumpers, and they only last about three or four minutes. It’s random topics or random interesting things — that I found at Wikipedia article about — and I try to summarize that in a little bite-size piece. Apart from the research — which maybe takes 30 minutes or so, just to check all the sources and what not — recording that takes five minutes. There’s been a lot of times where I’ve been like, “Oh I’m going to go out tonight but I have five minutes. Let me just quickly do this and get it wrapped up.”

而已。 就像我正在使用的播客使用一个名为Bumpers的应用程序一样,播客仅持续三到四分钟。 我在Wikipedia上找到了有关随机主题或随机有趣事物的信息,然后尝试将其概括为一小部分。 除了研究(可能需要30分钟左右,仅检查所有来源以及什么都不需要)之外,记录需要5分钟。 很多时候我一直在想,“哦,我今晚要出去,但我有五分钟。 让我快点做,把它包装好。”

Some of my bigger projects I really try to break into pieces. Again, it’s like I’m in a sense fighting against myself because I’ll get bored of something very quickly and want to move on. I like to break out the projects that I’m doing into really, really, really small pieces and say, “Oh, I’ll build this menu very quickly, or I’ll even just do the HTML part and then I’ll go out.”

我确实尝试分解一些较大的项目。 再次,这就像我在某种程度上与自己作斗争,因为我会很快厌烦某些事情并想继续前进。 我喜欢将我正在做的项目分解成非常非常非常小的部分,然后说:“哦,我将很快构建此菜单,或者甚至只是做HTML部分,然后我将出去。”

So I juggle a lot, which of course isn’t everybody’s style, but then I also have a lot of conviction towards finishing what I start, which is super important. I don’t know how many domains I have — maybe 10 or 12, or something like that — and every single one of those has what I bought the domain for on the domain, which I’m kind of proud of. I feel like not many people are like that.

所以我很努力,这当然不是每个人的风格,但是接下来我对完成我的工作也很有信心,这是非常重要的。 我不知道我有多少个域名(可能是10个或12个,或类似的名称),而且每个域名都有我在该域名上购买的域名,我为此感到自豪。 我觉得没有那么多人。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

I’m very impressed. I can’t tell you how many domains I have, because I can’t count that high. I can’t tell you how few of them actually have the content that I intended them for.

我印象深刻。 我无法告诉您我有多少个域,因为我不能指望那么高。 我无法告诉您,实际上只有少数几个真正具有我想要的内容。

Tim Holman: 蒂姆·霍尔曼:

Yeah. I actually started buying the domains as a way to trick myself into getting things done. What’s the saying? The first 80% of the project takes just as long as the second 80% or something like that. [Chuckling] Once I get to that first 80% where you’ve kind of solved more of the difficult parts of the problem … As developers and problem solvers, I feel like everybody has that situation where they set out and have done what they needed to do, and that’s usually when I’ll buy a domain and be like, well, now I’ve just put — it’s not even much — $10, $20 into this, I should finish it, because I have a half-finished version of something. That thing represents me in a sense.

是的 我实际上开始购买域名,以此来欺骗自己完成工作。 在说什么 该项目的前80%所需的时间与第二个80%所需的时间一样长。 [咯咯笑]一旦我到达前80%的位置,您就可以解决问题的更多困难部分了……作为开发人员和问题解决者,我觉得每个人都有这样的情况,他们开始着手并完成了所需的工作这样做,通常是当我购买域名时,现在,我只输入了10美元,20美元,这还不算什么,我应该完成,因为我有一个半成品东西。 那东西在某种意义上代表了我。

Tim Evko [8:27]: 蒂姆·埃夫科[8:27] :

Do you have a favorite finished or non-finished project that you’ve released or been working on lately?

您是否有最近发布或正在从事的最喜欢的完成或未完成的项目?

Tim Holman: 蒂姆·霍尔曼:

That’s a good question. I’ve been enjoying these little podcast things, even though they have barely any audience at all. I have things that I’m particularly proud of: aquatilis.tv is a beautiful website that I built with my friend Tobias. Some things I made a redesign of those Fork me on GitHub corners — just an SVG of the Octocat, and it kind of waves when you hover it. That’s a very small, light project, but I see it a lot online. That of course makes me particularly proud. But, I don’t know … I’m always more attached to the thing that I’m working on at the time. Once it’s finished, I’m less in love with it I guess.

这是个好问题。 我一直很喜欢这些播客,即使它们几乎没有任何听众。 我拥有令我特别自豪的东西: aquatilis.tv是我与朋友Tobias建立的一个漂亮的网站。 我在GitHub角落重新设计了Fork我的那些东西-只是Octocat的SVG,当您将其悬停时,它会有些波动。 这是一个很小的项目,但是我在网上看到很多。 那当然让我感到特别自豪。 但是,我不知道……我总是对我当时正在从事的事情更加执着。 一旦完成,我想我就不会再爱上它了。

David: 大卫:

It sounds like you’re good at working in small chunks. That’s something that a lot of developers find difficult. I’m curious if there are any particular techniques or processes you apply to the way that you work that allows you to break things up in that way.

听起来您擅长于小块工作。 这是许多开发人员发现的困难。 我很好奇您是否对工作方式应用了特定的技术或流程,从而可以通过这种方式分解事物。

Tim Holman: 蒂姆·霍尔曼:

Yeah … I think a big part of it was being honest with myself. I think you don’t really find that everywhere — where somebody will admit to being a little bit half assed and a little bit lazy when they’re trying to do something, whereas I’m very open and acknowledging about that of myself. When I break things out into lists or something, I have an app — Todoist I think it’s called … just a regular todo list app, which of course everybody tries and bounces around a lot.

是的……我认为其中很大一部分是对自己诚实。 我认为您并不是到处都能找到这种感觉的,在某人尝试做某事的时候,有人会承认自己有点被挫折,有些懒惰,而我却很开放,也很了解自己。 当我将事情分解成列表或某物时,我有一个应用程序-Todoist,我认为它叫做…只是一个常规的待办事项列表应用程序,当然每个人都会尝试并反复弹跳。

When I write things out, I try to be very specific about the task at hand. It’s not go and get groceries. It’s like go to the shop and get apples and cheese. It’s like write the documentation about this particular feature — things like that.

当我把事情写出来时,我会尝试对手头的任务非常具体。 不去买杂货。 就像去商店买苹果和奶酪。 就像编写有关此特定功能的文档一样。

I do also experiment with a lot of different ways of doing things like that. I wrote a library recently. It’s called console.frog. Instead of logging a regular log into your JavaScript console or your dev console, it logs a frog with the words. And in that instance, I wrote the documentation first. It’s like university teaches you to do that, and that’s the first time I ever really done it in practice. I don’t know. I didn’t enjoy it as much, but it was nice to play around and try those different methods of doing things.

我也尝试了许多不同的方式来做类似的事情。 我最近写了一个图书馆。 它称为console.frog 。 而不是将常规日志记录到JavaScript控制台或开发者控制台中,而是记录带有单词的frog。 在这种情况下,我首先编写了文档。 就像大学教你这样做一样,那是我第一次真正在实践中做到这一点。 我不知道。 我不太喜欢它,但是很高兴能尝试这些不同的做事方法。

David: 大卫:

That’s interesting. Did you actually train at university? Do you study toward what you’re working on?

那很有意思。 你真的在大学训练吗? 您是否正在研究正在从事的工作?

Tim Holman: 蒂姆·霍尔曼:

No, not at all. Like so many, I did go to university and I studied video game development. I actually take any opportunity to insult my university. I don’t have so much pride about it. They kind of got a lot of high school kids that, “I want to make video games. It’s going to be great. It’s going to be fun.” Really it was just a rejiggered computer science degree. What actually happened, which was very fortunate for me, is the financial crash happened in the States, and all of the video game companies in the city that I was living in (Brisbane) basically evaporated over a month. I had the good sense to be aware that I wouldn’t be able to work in that industry, and I pivoted towards web. Then I fell of course deeply in love with it and the community. So, that’s good. I was lucky.

一点都不。 和很多人一样,我上了大学,然后学习了视频游戏开发。 实际上,我有任何机会侮辱我的大学。 我对此并不感到骄傲。 他们有很多高中生,他们说:“我想做电子游戏。 将会很棒。 这将很有趣。” 确实,这只是重新定义的计算机科学学位。 真正发生的事情对我来说是非常幸运的,是美国发生了金融危机,而我所居住的城市(布里斯班)中的所有视频游戏公司基本上都消散了一个多月。 我非常有意识地意识到自己将无法从事该行业,因此我转向了Web。 然后,我当然深深地爱上了它和社区。 所以,那很好。 我很幸运。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Speaking about the community, we’ve met at CodePen talks and things like that. What are some of the things that you like to do in the community in terms of either open source or conferences or things like that?

在谈到社区时,我们在CodePen演讲中遇到过此类问题。 在开源或会议或类似的方面,您希望在社区中做些什么?

Tim Holman [11:52]: 蒂姆·霍尔曼[11:52] :

It’s interesting. When I go to conferences — and I feel like I could throw myself under the bus here — and go to meetups and things like that, I really try to look at how I fit into them. And I always have a great time, and we have great conversations. I feel like I learn a lot every single time, but something about me is that I have not really, really big opinions about a lot of tech. It’s like a pet peeve interview question of mine, actually, where someone will say, “What technology excites you at the moment?” And of course, you can be excited by technology. It’s just I don’t get that excitement at all. I’m more interested in what we’re doing and where we’re going with that.

这真有趣。 当我去参加会议时-我觉得自己可以把自己扔在这里的公共汽车下-去参加聚会或类似的事情,我真的尝试着看我如何适应会议。 我总是很开心,我们也很愉快。 我觉得我每次都学到很多东西,但是关于我的事情是,我对很多技术没有真正非常大的看法。 这就像我的一个小问题,实际上,有人会说:“现在什么技术激发了您?” 当然,您会对技术感到兴奋。 只是我一点都不兴奋。 我对我们正在做的事情以及与此相关的事情更感兴趣。

That leads me into the big community focus, especially with something like CodePen. I’m not really worried about the stack that we’re doing. I feel competent enough that I’ll be able to pick something up, and I understand that some things have bigger strength than others, but never am I going to sit there and argue with you about any type of technology and stack. Never am I going to really judge a job based on what technology they’re doing, what technology they’re using, when I can look at it as what we’re making here and what we’re trying to achieve with that.

这使我进入了对社区的关注,尤其是使用CodePen之类的东西。 我并不真正担心我们正在做的堆栈。 我有足够的能力去捡东西,我知道有些东西比其他东西有更大的优势,但是我永远不会坐在那里与您争论任何类型的技术和堆栈。 我永远不会根据他们正在使用的技术,正在使用的技术,何时将其视为我们在此处所做的工作以及我们将要实现的目标来真正判断工作。

You mentioned before that it’s hard to find time and focus to do a lot of writing and things. I want to do with CodePen some things that really improve that. Of course we have blogging on there, and it’s just an interesting comparison. People make a lot of pens. You make pens on CodePen. I make a bunch of stuff. So many people kind of make a lot of things, and in a sense you feel like you do have time for that, because it is almost like a nibble on the edge of something bigger, and it’s like I can make a loader, or I can make this particular animation, or I can make this form look really nice.

您之前提到过,很难找到时间和精力去做很多写作和事情。 我想使用CodePen做一些真正可以改善这一点的事情。 当然,我们在那里写博客,这只是一个有趣的比较。 人们制造很多笔。 您在CodePen上书写笔。 我做了很多东西。 这么多人做了很多事情,从某种意义上说,您觉得自己有时间做,因为这几乎像是在更大的东西边缘咬一口,就像我可以制造装载机,或者可以制作这种特殊的动画,或者我可以使这种形式看起来非常好。

I’d like to see that extend into blogging a little bit. I think people maybe just feel a little bit overly critical when they look at their writing, or have trouble finding out where to start. Of course, the tech community is also hypercritical, so you’ll see people pop up and criticize things. Those are all things that I’m interested in working on and building that community aspect.

我希望看到一点点扩展到博客。 我认为人们在看自己的写作时可能会觉得有点过分批评,或者很难找到从哪里开始。 当然,技术社区也非常挑剔,因此您会看到人们突然冒出头来批评事情。 这些都是我感兴趣的并致力于建立社区方面的东西。

David: 大卫:

It’s a challenging thing as you said — getting yourself out there and putting your words and your examples and your code in front of a hypercritical and very focused audience like this. What motivates you to do that, and what keeps you going on it?

正如您所说,这是具有挑战性的事情–站出来,将您的文字,示例和代码放在像这样的高度批评和高度专注的受众面前。 是什么促使您这样做,并且使您继续前进?

Tim Holman: 蒂姆·霍尔曼:

It’s funny to say. I’ve had a really wide variety of responses to a lot of the things I’ve made. I’ve had people basically delete all the code, and send in a pull request to be like, “This shouldn’t even exist” … which is a bit cruel. I made (it was very popular, actually) a library Elevator.js, that you would press the button and it would scroll you to the top of the page with a nice slow scrolling, but it would also play elevator music. It’s crazy to think that such a small library would be so popular. It kind of ended up on Hacker News, which is probably not the right place for it to belong. Even in that, there’s a lot of people being very critical about the way that it scrolls or the noise playing and things like that. It’s like jarring. Of course it was a joke, completely. It has that whole joke project. I think it ended up on the Google I/O website which was a funny treat.

这很有趣。 对于我所做的许多事情,我的React非常广泛。 我已经使人们基本上删除了所有代码,并发送了一个拉取请求,例如“这根本不应该存在”……这有点残酷。 我制作了(实际上非​​常流行)一个库Elevator.js ,您可以按一下按钮,它将以缓慢的缓慢滚动将您滚动到页面顶部,但它也可以播放电梯音乐。 这么小的图书馆如此受欢迎,真是太疯狂了。 它最终出现在Hacker News上,这可能不是它所属的正确位置。 即便如此,还是有很多人对它的滚动方式或噪音的产生以及诸如此类的事情持批评态度。 这就像震颤。 当然,这完全是个玩笑。 它有整个笑话项目。 我认为它最终出现在了Google I / O网站上,真是太好了。

David: 大卫:

To be fair, you knew that that was going to upset a lot of people.

公平地说,您知道这会让很多人感到不安。

Tim Holman: 蒂姆·霍尔曼:

Yeah to be fair. But even in that, off the top of your head, I feel like a lot of people could scaffold out a library that will scroll to the top of the page. But when you actually build things like this, you find, “Oh, I have to do the easing algorithm to make the scroll nice. I have to do that on a request animation frame because I want it to be smooth, and performant, and I wanted to run over this time. So we’re using this equation to do this. If they close the tab, I want to scroll to the top.”

是的,要公平。 但是即使如此,我还是觉得很多人都可以搭建一个可以滚动到页面顶部的库。 但是,当您实际构建这样的东西时,您会发现:“哦,我必须执行缓动算法才能使滚动效果更好。 我必须在请求动画帧上执行此操作,因为我希望它平滑,高效,并且希望这段时间运行。 因此,我们正在使用此方程式执行此操作。 如果他们关闭标签页,我想滚动到顶部。”

There’s so many little things that you don’t think about. Even with the project like that, when you finish it and you get it out, you realize, “Oh, I’ve written 200 lines to scroll somebody to the top of the page, and play some music, and to cover all those bases.” You learn always from everything you’re getting out there I like this. That’s something that I try to preach a lot. It’s similar at conferences. I go to a conference and I’ll be speaking. Of course, there’s a lot of people saying, “Here’s the new technology. This is a good way to use it.” I enjoy those talks a lot, but when I go up there, I really just try to show what it’s like to play around and explore with code — kind of discover things as you go. The project that you end with is never really the project that you set out to create unless you’re very, very rigid or have a good project manager.

有很多小事情您根本不会考虑。 即使有了这样的项目,当您完成并获得成功时,您仍会意识到:“哦,我写了200行以将某人滚动到页面顶部,播放一些音乐,并覆盖所有这些基础。 。” 我总是喜欢从走出去的一切中学习。 那是我尝试讲的很多东西。 在会议上也是如此。 我去开会,我要发言。 当然,有很多人在说:“这是新技术。 这是使用它的好方法。” 我非常喜欢那些演讲,但是当我上那里时,我真的只是在尝试展示如何玩转和探索代码是什么样的感觉—随处可见。 除非您非常非常严格或者有一个好的项目经理,否则最终的项目绝不是您要创建的项目。

David [16:48]: 大卫[16:48] :

That’s why we don’t write documentation first; that way nobody knows.

这就是为什么我们不首先编写文档的原因。 这样没人知道。

Tim Holman: 蒂姆·霍尔曼:

[Chuckles] Of course. I do a bunch of talks at some coding boot camps and things like that, which I thoroughly enjoy. I never really turn that down, because I’m super happy to go there and speak to people who are just beginning to learn to code. They haven’t even really learned to learn yet, which is an interesting important part of development. When I go there, you kind of … I don’t know if you remember so well when you started to learn development, but you find a lot of people that are really overwhelmed at these things. Of course, that’s kind of a part of learning — that you do something, and you’re not fully sure how you did it, but then in a week you look back and you’ll be like, “Oh, I know exactly how I did that.”

[笑声]当然。 我在一些代码训练营和诸如此类的事情上做了很多演讲,我非常喜欢。 我从来没有真正拒绝过,因为我非常高兴能去那里与刚开始学习编码的人们交谈。 他们甚至还没有真正学会学习,这是开发中有趣的重要部分。 当我去那里的时候,您……我不知道您对开始学习开发时的记忆是否很好,但是您发现很多人对这些事情真的不知所措。 当然,这是学习的一部分-您正在做某事,但是您不确定自己是如何做到的,但是然后在一周内回头看,您会感到:“哦,我确切地知道我做到了。”

I find a lot of these really fresh faces, and I try to walk them through the last five years of things that I’ve made. That starts off with a really basic, 15-line canvas particle effect, or something, that I basically read a tutorial and created. It explores through like the arty that I’ve made, and then some of the more design-oriented projects to things like Aquatilis that are really nice and can win awards to the weird creations that I’m making now. I always get a lot of nice emails back saying, “Oh, I was super insecure at this time. I was trying to figure out how to express myself with this platform and feel good about what I’m making.” The journey towards becoming a competent developer kind of goes through a lot of turmoil, I guess.

我发现了很多这些非常新鲜的面Kong,并且尝试将它们介绍给我制作的最近五年的事物。 首先,我基本阅读了一个教程并创建了一个非常基本的15行画布粒子效果。 它会像我制作的艺术品一样进行探索,然后再探索一些像Aquatilis这样的更加面向设计的项目,这些项目确实很棒,并且可以赢得我现在所做的怪异作品的奖项。 我总是收到很多不错的电子邮件,说:“哦,我现在不安全。 我试图弄清楚如何用这个平台表达自己,并对自己所做的事情感到满意。” 我想,成为一名称职的开发人员的过程经历了很多动荡。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

You mentioned talking with and giving talks to new developers in boot camps. Do you see a lot of the same mistakes being made, or do you have a general piece of advice that you give to people who are just getting started in this industry?

您提到在新兵训练营中与新开发人员交谈并进行讲座。 您是否会看到很多相同的错误,或者向刚起步于该行业的人们提供一般性建议?

Tim Holman: 蒂姆·霍尔曼:

Yeah. I think the big takeaway when I talk to them — and I kind of hover around afterwards and answer a lot of individual questions — is to not really feel so threatened. Web development is difficult because I guess it’s similar to painting in a sense, or I’ll use this comparison in this instance: you can make something and you can know how to make something; you could know how to build a library that will scroll you to the top of the page, and you can build it; but when you look at some of the things that other people are making, it seems very threatening.

是的 我认为,当我与他们交谈时,最大的收获是-并没有真正受到威胁,我后来徘徊并回答了许多个人问题。 Web开发是困难的,因为我认为它在某种意义上类似于绘画,或者在这种情况下我将使用这种比较:您可以做一些事情,并且您知道如何做一些事情; 您可能知道如何构建一个库,该库会将您滚动到页面顶部,并且可以构建它; 但是当您看别人正在做的某些事情时,似乎很有威胁。

When you’re at the start of a journey and you can see like, “Oh, I understand HTML, and I understand CSS, and I understand JavaScript, but why can’t I make my website great like these other websites?” That gap needs a lot of bridging. I got there in the end. And that’s what I try to set out to do most. At conferences, it’s very similar. When I show people that I was at their exact level and then show them all the individual steps over — not even that long — three or four years, it just gives you such as a nice big pretty picture.

当您开始旅程时,您会看到:“哦,我了解HTML,我了解CSS,也了解JavaScript,但是为什么我的网站不能像其他网站一样出色?” 差距需要弥合。 我终于到了那里。 这就是我尝试着要做的大多数事情。 在会议上,它非常相似。 当我向人们展示我的水平时,然后向他们展示所有单独的步骤(甚至没有那么长)时,就是三年或四年,这只会给你带来一幅漂亮的大图画。

Tim Evko: 蒂姆·埃夫科:

Earlier, you mentioned Hacker News and the fact that people can be overly critical in this industry. Are there other things that you dislike about the industry? If you had one thing that you could say, “Hey, web in 2017, let’s improve on this,” what would this be?

之前,您提到了Hacker News,以及人们在这个行业中可能过分苛刻的事实。 您是否对该行业还有其他不满意的地方? 如果你有一件事,你可以说,“嘿,网络在2017年,让我们在这个提高,”什么会变成这样 ?

Tim Holman [20:02]: 蒂姆·霍尔曼[20:02] :

It’s a dangerous question, because it feeds straight into my desire to be agnostic about most things. I often don’t lash out online, and I try to keep things to myself or to a couple of friends when I want to be frustrated about something. There was the big satirical article that came out last year that was talking about what it feels like to learn JavaScript. Of course, it went over all the different, like, Webpack and all these modules for bundling. It went through this brutal chain of events that … I understand that it was satirical. I understand that, I guess, the hypothetical mentor in this situation was the worst possible mentor who basically just said, “No, you’re doing it wrong. Here’s a more complex way. No you’re doing it wrong, here’s a better way,“ the whole time.

这是一个危险的问题,因为它直接满足了我对大多数事物不可知的渴望。 我通常不会在网上抨击,当我想对某事感到沮丧时,我会尽量将事情保留给自己或几个朋友。 去年发表了一篇讽刺的大文章,谈论学习JavaScript的感觉 。 当然,它遍历了所有不同的地方,例如Webpack和所有这些用于捆绑的模块。 它经历了一系列残酷的事件,……我知道这很讽刺。 我知道,在这种情况下,假设的导师是最糟糕的导师,他基本上只是说:“不,您做错了。 这是一种更复杂的方法。 不,你做错了,这是一个更好的方法,“一直以来。

A lot of people really bit into this, and I feel like there was a lot of sharing of that in a really non satirical, damaging way. And when I tweeted out about it, like, “Uh, I hate this stuff. Why are we all sharing it? Why are so many that I respect really jumping on this bandwagon?” Then seeing a lot of people who I work with at previous jobs who were back-end engineers, or a different kind of area of expertise, actually completely say, “This is what it’s like.” It just hurt me a lot to see that damaging spread. I actually feel a lot of people have bitten onto this now, and said, “Oh, let’s not insult CSS every time we bring it up. Let’s not rag on other people’s languages.” It’s still a long way to go.

很多人确实对此感兴趣,并且我觉得有很多分享是通过一种非讽刺的,破坏性的方式进行的。 当我发推文时,例如:“嗯,我讨厌这个东西。 为什么我们都共享它? 为什么有那么多我尊敬的人真正跳上这一潮流?” 然后看到很多我在以前的工作中工作过的人,他们都是后端工程师,或者是另一种专业领域,实际上完全是在说:“这就是事实。” 看到破坏性的蔓延令我非常痛苦。 实际上,我现在感觉到很多人对此有所咬,然后说:“哦,我们每次启动CSS时都不要侮辱CSS。 我们不要在别人的语言上大肆宣传。” 还有很长的路要走。

David: 大卫:

Absolutely. I’m curious, though, turning that the other way. What are you seeing about the web these days that brings out your optimism in the community and what we’re going toward?

绝对。 不过,我很好奇,反过来说。 这些天,您对网络有什么看法,这使您对社区感到乐观,我们将要做什么?

Tim Holman: 蒂姆·霍尔曼:

That’s a much nicer question. Thanks Tim!

这是一个更好的问题。 谢谢蒂姆 !

[Laughter]

[笑声]

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Just doing my job.

只是做我的工作。

David: 大卫:

We are not in competition here.

我们在这里没有竞争。

[Laughter]

[笑声]

Tim Holman: 蒂姆·霍尔曼:

First of all, working at CodePen is a complete delight in this sense. I wake up most mornings, and we’ll have a coffee and I’ll just go through what people have been making and creating over the past night, and see what I can feature. I do that every single day. It’s such a bright beautiful way to start the day — by seeing how people are using their creativity and how people are learning from others and expanding things like that.

首先,从这个意义上来说,在CodePen工作是一件非常令人高兴的事情。 我在大多数早上醒来,我们会喝咖啡,然后我将回顾一下过去一个晚上人们一直在做和创造的东西,然后看看我的特色。 我每天都这样做。 这是崭新的一天的美好方式-通过观察人们如何利用自己的创造力以及人们如何向他人学习并扩展诸如此类的东西。

I’ve been around not that long, but definitely enough to see almost I would call them generations of people come in. I would see people just starting to create things on CodePen. I was super quick to that, because I was already in that scene, but I’ve definitely see people start to create things, and then get better, and then get better, and then I see these people at conferences. I can meet them and talk to them.

我一直在周围没有那么长,但绝对够看到几乎我会叫他们代人进来,我会看的人刚开始对CodePen创造的东西。 我非常快,因为我已经在那个场景中了,但是我肯定看到人们开始创造事物,然后变得更好,然后变得更好,然后我在会议上看到这些人。 我可以见他们并与他们交谈。

Then I can see them become advocates for particular technology and become … I feel like a lot of my friends now have become evangelists for companies. That kind of like generational stepping is something that I completely enjoy and adore. Everybody is getting a lot better at helping others up. Of course, it’s that whole standing on the shoulders giants. We can have all these websites and deconstruct everybody’s code and see where we’re going with it. I think people are getting a little bit more focused again.

然后,我可以看到他们成为特定技术的拥护者,并成为……我觉得我的很多朋友现在已经成为公司的宣传人员。 我完全喜欢并喜欢这种像几代人一样的踏步。 每个人在帮助他人方面都变得越来越好。 当然,这就是整个站在巨人的肩膀上。 我们可以拥有所有这些网站,并解构每个人的代码,并查看我们的发展方向。 我认为人们再次变得更加集中。

There was definitely like a dark period, I would say, of framework-centric thought. I actually feel like people are moving out of that now, and realizing that again it’s the actual things that you make, not the way that you make it, that ultimately counts in the end of the day. Yeah, I don’t know if that even answers the question. That’s the joy that I’m getting from the community especially.

我想,绝对有一个以框架为中心的思想处于黑暗时期。 实际上,我感觉人们正在逐渐摆脱这种情况,并再次意识到最终要考虑的是真正的事情,而不是制造方式。 是的,我不知道这是否能回答问题。 这就是我特别从社区中获得的快乐。

Tim Evko [24:00]: 蒂姆·埃夫科[24:00] :

On that note, thank you so much for joining us today. How can people find out more about you, follow you on Twitter, listen to your podcasts.

关于这一点,非常感谢您今天加入我们。 人们如何才能找到有关您的更多信息,在Twitter上关注您,收听您的播客。

Tim Holman: 蒂姆·霍尔曼:

Yes. My website is tholman.com. That has basically everything that I’ve made on it, forever, including my Twitter, which is twholman. That’s the main one. Of course CodePen. I’m on there constantly. If you’re making something, or if you’re new, send me a tweet. I’d love to see what you got. Thank you.

是。 我的网站是tholman.com 。 基本上,这是我永远所做的一切,包括我的twholman Twitter。 那是主要的。 当然是CodePen 。 我一直在那里。 如果您要制作东西,或者是新手,请给我发一条推文。 我很想看看你得到了什么。 谢谢。

David: 大卫:

Fantastic! Thank you so much for joining us.

太棒了! 非常感谢您加入我们。

Tim Holman: 蒂姆·霍尔曼:

Cheers man!

干杯!

[Musical interlude]

[音乐插曲]

David: 大卫:

What a great guy to chat with.

真是个好人。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Yeah, seriously, I feel like every time I chat with Tim I come away learning the same lesson for me: I’m very opinionated about technology, and other Tim is not. I feel like it’s a good thing, and it’s a lesson that I keep trying to learn — that I should be way less dogmatic about the technologies that I’m using. That’s a difficulty for me. We can get real here. That’s something that’s difficult for me to do, because we’ve spoken at length about it before, David. I look at frameworks and practices and tools, and I have all these opinions. Like, “Oh we’re doing too much of this. This is way too complicated. This is why everybody feels overwhelmed.“ But, at the end of the day, you pick and choose what works for you and life goes on.

是的,很认真,我觉得每次与Tim聊天时,我都会为我学习同一课:我对技术非常有见识,而其他Tim则不是。 我觉得这是一件好事,这是我一直在努力学习的一课–我应该对所使用的技术不那么拘谨。 这对我来说很困难。 我们可以在这里变得真实。 这对我来说很难做到,因为我们之前已经详细讨论过了,大卫。 我研究了框架,实践和工具,并拥有所有这些观点。 就像,“哦,我们做得太多了。 这太复杂了。 这就是为什么每个人都会感到不知所措的原因。”但是,最终,您选择适合自己的东西,然后生命就会继续。

David: 大卫:

So this is like I’m speaking with Good Tim and Evil Tim — like the parallel universe Tim. You’re the one with the Van Dyke, and he’s the one with the clean-shaven face.

因此,这就像我正在与Good Tim和Evil Tim交谈一样,就像平行的宇宙Tim。 你是范戴克(Van Dyke)的那个,而他是那张剃光脸的那个。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

I don’t often get to be Evil Tim, so I have to relish it when I can.

我不经常成为邪恶的蒂姆,所以我必须尽可能地享受它。

David: 大卫:

I hear what you’re saying, though, and I think that’s something that’s come up a lot in the conversations that we’ve had with a few people. The sense of, are you learning the framework or are you learning the language? One of the things that I loved about the way that he talked about projects is the idea that you go into a project because you’re enthusiastic about what the company is trying to do or what the project is there for. Even the most ridiculous projects that he’s been working on, he gets enthusiastic about the project itself. Then it sounds like he goes and find whichever technology he needs to learn in order to make it happen, and he makes it happen even if he has to spend 200 lines writing the code to scroll somebody up to the top of the page effectively.

不过,我听到您在说什么,而且我认为这是我们与少数人进行的对话中经常提到的问题。 从某种意义上来说,您是在学习框架还是在学习语言? 对于他谈论项目的方式,我最喜欢的一件事就是您进入一个项目的想法,因为您对公司正在尝试做的事情或项目的目的很感兴趣。 即使是他一直在从事的最荒谬的项目,他也对项目本身充满热情。 然后听起来好像他去寻找他需要学习的任何技术才能实现它,即使他必须花200行代码来使某人有效地滚动到页面顶部,他也使它实现了。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Yeah. I was actually thinking about this earlier today, in that one of the things I enjoy most about being a developer is that I get to actually contribute to the end product. It’s not just someone gives me a design and says, “Make this into code now.” I get to talk about, “All right, how should we word this thing here? How will the user feel if we give them this option over that one?” The times I enjoy my job most is when I’m contributing to an idea, not when I’m looking at a strategy for implementation.

是的 我实际上是在今天早些时候考虑这个问题的,因为我最喜欢成为一名开发人员,其中之一就是我可以为最终产品做出实际贡献。 不仅仅是有人给我一个设计并说:“现在将其纳入代码。” 我要谈的是:“好吧,我们应该在这里怎么说这个词? 如果我们给他们这个选项,那么用户会感觉如何?” 我最喜欢工作的时间是在为某个想法做出贡献时,而不是在考虑实施策略时。

David: 大卫:

It’s interesting. I have to say I’m mixed about that. I do tend to get in love with technologies, and I’ll spend a lot of time learning something that, honestly, if I even think about it and I go back to the different technologies I’ve learned over the years, there are a lot of technologies that I’ve spent time diving into and learning and getting enthusiastic about and then never applying, and certainly never applying to their fullest extent.

这真有趣。 我不得不说我对此感到困惑。 我确实会爱上技术,并且我将花费大量时间来学习一些东西,说实话,如果我什至想一想,并且回到我多年来学到的不同技术上,我花了很多时间去学习和学习,并对它们充满热情,然后从不应用,当然也没有充分应用它们。

There’s a certain passion that comes up in me when it comes to learning technologies, too. I enjoy figuring out how a new framework puts things together and getting into the mind of the developer who put it together and seeing, why did that person make those choices? Why am I being recommended to do things this way rather than that way? Sometimes that in and of itself can be fun, but it’s not productive in the traditional sense, in that I’m not creating things and putting things out there. I’m just enjoying myself.

在学习技术方面,我也充满了某种激情。 我喜欢弄清楚一个新框架是如何将事物组合在一起的,并想起将其组合在一起的开发人员的想法,并看到为什么这个人做出这些选择? 为什么建议我以这种方式而不是那样的方式做事? 有时候,它本身可能会很有趣,但是从传统意义上讲,它并不是有效的,因为我不是在创造东西,也不是把东西放在那里。 我只是在享受自己。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

That is true. There is definitely something to be said for looking into how the tools that you use work. I think you learn the most when you start to do things like that. For example, at my company right now we are using React and Webpack and Redux to build an application, which I’m pretty sure goes for every other developer out there.

那是真实的。 要了解您使用的工具是如何工作的,肯定有话要说。 我认为当您开始做这样的事情时,您学得最多。 例如,现在在我公司,我们正在使用React和Webpack和Redux来构建应用程序,我敢肯定,其他所有开发人员都可以使用它。

David: 大卫:

Let’s see. It’s January in 2017, so that’s probably true.

让我们来看看。 现在是2017年1月,所以这可能是对的。

Tim Evko [27:52]: 蒂姆·埃夫科[27:52] :

Right. I have not yet had the chance to look into and React internals and figure out how everything works. I understand the concepts, and the methods, and what the general idea is, but I will probably learn the most about this specific framework the minute I really get into seeing how it’s been put together. That’s where you learn design patterns, and different optimization tricks, and techniques, and why this has this name instead of that name. You’re looking at the efforts of hundreds of people to make an excellent framework. How can you not learn a whole bunch from doing that?

对。 我还没有机会研究和了解React内部并弄清楚一切如何工作。 我了解概念,方法,总体思想,但是,在我真正了解如何将其组合在一起的那一刻,我可能会最深入地了解该特定框架。 在这里,您可以学习设计模式,不同的优化技巧和技术,以及为什么使用此名称而不是该名称。 您正在寻找数百个人为打造出色框架而付出的努力。 你怎么不能从中学到很多呢?

David: 大卫:

Absolutely. I think the first time that I really did that in earnest was when I tried to dig into the code behind jQuery, which John Resig just completely blew me away with some of the stuff that he was doing in there. Then over the years I remember trying to reconstruct Underscore, and then going through how they build all of their different methods.

绝对。 我认为我是第一次真正做到这一点,是当我尝试深入研究jQuery背后的代码时,John Resig完全把我在其中所做的一些事情吓倒了。 然后,这些年来,我记得曾尝试重建Underscore,然后介绍它们如何构建所有不同方法。

It can be really fascinating to try to figure those things out. You learn things about your own code and your own approaches to coding that it kind of turns you and your head.

试图弄清楚那些事情真的很有趣。 您会学到有关自己的代码和编码方法的知识,这会让您和您的头都感到困惑。

You think, “This person is doing this thing I don’t understand. I don’t understand why they’re framing this thing this way. I’ve lost track of what the code is trying to accomplish here.” Then you get this lightbulb moment when you realize, “Oh, there’s a reason this function is being put here and why this is returning what it’s returning.” That’s a practical thing to apply in the way that I work.

您认为,“这个人正在做我不了解的事情。 我不明白他们为什么用这种方式来构图。 我已经失去了代码在这里想要完成的目标。” 然后,当您意识到“哦,有一个原因将这个函数放在这里以及为什么它返回所返回的内容”时,您将获得一个灯泡瞬间。 在我的工作方式中,这是一件实际的事情。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

So, as a sidebar, I’m a little bit curious how you get started into breaking down a large library or framework to see how it works, because that can be an intimidating thing. React, for example: there’s like 90 folders you have to click through just to find some code. Do you have any suggestions for people who are interested in doing that but don’t really know how to go about it?

因此,作为补充工具栏,我有点好奇您是如何开始分解大型库或框架的,以了解其工作原理,因为这可能令人生畏。 例如,React:您需要单击大约90个文件夹才能找到一些代码。 您对有兴趣但不知道该怎么做的人有什么建议吗?

David: 大卫:

I would start with a framework that is well documented, that’s designed to be broken down. It’s not worth trying to decompile something that’s either intentionally obfuscated or simply not well documented by the developers. If something is not well documented, that’s a red flag right there. It’s not the place you want to be going to learn coding techniques.

我将从一个有据可查的框架开始,该框架旨在分解。 不值得尝试反编译一些被故意混淆或只是开发人员没有很好记录的东西。 如果没有正确记录,那是一个危险信号。 这不是您想要学习编码技术的地方。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Do you mean documentation in terms of comments inside of the code, or outside of the code documentation?

您是指代码内部还是代码外部的注释文档?

David: 大卫:

Actually, a combination of both. There are frameworks out there which you go through the documentation for the code and you can just toggle out and see the code itself that was written to support this particular method so that you can learn how that method was written and understand how it works. That’s the sort of framework that is really interesting to dig into and find out more about.

实际上,两者结合。 那里有一些框架,您可以遍历代码的文档,您可以切换出并查看为支持该特定方法而编写的代码本身,以便您可以了解该方法的编写方式并了解其工作方式。 这是一种真正有趣的框架,可深入了解并了解更多信息。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Yeah, WordPress actually does that really, really well.

是的,WordPress实际上确实做到了这一点。

David: 大卫:

Yeah. My number one tip around that would be that’s the place to start. Fiddle with code that the developer has put out there with the intention that you should be able to read it and understand it and learn from it. The developers who are working that way are probably the ones who are writing the code that’s going to be the most useful in your projects, because it’s going to be the one that you’ll understand best.

是的 我的第一要点就是从这里开始。 弄弄开发人员在那里发布的代码,目的是您应该能够阅读并理解它并从中学习。 以这种方式工作的开发人员可能是编写将在您的项目中最有用的代码的人,因为它将成为您最了解的代码。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Well, I’ve certainly learned something. I’m going to take those tips and dive into React with them. That’s something I should write about, but I just don’t have time right now. Speaking about time, I really like how Tim talks about splitting things up into small chunks like that. When I look at projects that I’ve worked on, it’s not small chunks. Usually my method is let me make a demo of something working on CodePen. Once I have a hashed out idea, I’ll buy the domain and write the code and just sprint through to get it done. I’m building a stupid battle ship game thing with just not professional instructions and it’s hilarious. I’ve been attacking this as just one giant mountain to climb over instead of several small pebbles to pick up.

好吧,我当然学到了一些东西。 我将采用这些技巧,并与它们一起探讨React。 那是我应该写的东西,但是我现在没有时间。 说到时间,我真的很喜欢Tim如何谈论将事情分成这样的小块。 当我查看自己从事的项目时,这可不是小块。 通常,我的方法是让我演示在CodePen上工作的东西。 一旦我有一个混乱的想法,我将购买该域并编写代码,然后完成整个过程。 我在没有专业指导的情况下构建愚蠢的战舰游戏,这很有趣。 我一直在攻击这座山,因为它只是攀爬的一座巨型山峰,而不是几座小卵石。

David: 大卫:

That can be very intimidating. I get frozen when I’m confronted by a project that’s so big that I can’t see the little tiny pieces. What Tim said about breaking things up, it strikes me as very familiar from testable modular code development. If you think about your code as a set of individual, independent modules that may be reused, that each needs to be documented and each needs to do one thing, and ideally each function returns one return value and it’s very consistent.

那可能非常令人生畏。 当我遇到一个如此大的项目以至于我看不到那些微小的碎片时,我会变得僵硬。 Tim关于分解问题的话,使我对可测试的模块化代码开发非常熟悉。 如果您将代码视为一组可以重复使用的独立模块,那么每个模块都需要记录在案,并且每个模块都需要做一件事,并且理想情况下,每个函数都返回一个返回值并且非常一致。

If you approach your projects that same way and you think, “Okay, what are the components here? How do you break things down into individual components? This is not just React talking. This is an approach to development in general. If you think about your code that way it can make it approachable and it can also make it modular enough that you can work on a small piece of it, get that small piece done, and then put it aside so that when you come back to it, you’re ready to move on to the next step.

如果您以同样的方式来处理项目,并且您认为:“好的,这里的组成部分是什么? 您如何将事物分解为各个组成部分? 这不只是React说话。 一般而言,这是一种开发方法。 如果您以这种方式考虑您的代码,它可以使其变得易于使用,并且还可以使其模块化,以至于您可以处理其中的一小部分,完成一小部分,然后将其放在一边,以便当您返回到它,您就可以继续进行下一步了。

Tim Evko [32:22]: 蒂姆·埃夫科[32:22] :

Learning design patterns definitely helps with that. Actually, the first time I learned anything about design patterns I was reading a blog post of Chris Coyier on CSS-Tricks, where he talked the module pattern and how you could not have one main.js spaghetti thing with just all of the code that you need inside of it but you can break things out into objects that have their own methods as functions. That kind of just turned my world over, because I was suddenly able to write code in such a way that I could write small independent reusable functions that go where they need to and are interchangeable — and a lot easier to test, I might add.

学习设计模式绝对可以帮助您。 实际上,我第一次学习有关设计模式的知识时,是读了Chris Coyier在CSS-Tricks上的博客文章,他在其中谈论了模块模式以及如何仅用所有代码无法拥有main.js意大利面条的东西。您需要在其中添加内容,但可以将其分解为具有自己的方法作为函数的对象。 那样改变了我的世界,因为我突然能够以这样一种方式编写代码:我可以编写小型独立的可重用函数,这些函数可以在它们需要的地方互换并且可以互换-而且我可以补充地更容易测试。

David: 大卫:

I have to admit, I have a trigger point on the question of design patterns, because I learned them back when I was doing Java, and I’m never doing Java again. Don’t approach me with Java projects. Stop emailing me about Java projects. I do not want to do Java again. I learned about design patterns … I think it was Kathy Sierra book, Head First Design Patterns, which was an amazing introduction to how design patterns worked. If I can get myself past associating them with that particular language, I can certainly support what you’re saying about that.

我必须承认,我对设计模式的问题有个了解,因为我在做Java的时候就已经学会了它们,而我再也不会做Java了。 不要通过Java项目来找我。 停止向我发送有关Java项目的电子邮件。 我不想再做Java。 我了解了设计模式…我认为这是凯西·塞拉(Kathy Sierra)所著的《 Head First Design Patterns 》( Head First设计模式) ,这是有关设计模式如何工作的精彩介绍。 如果我能摆脱将他们与该特定语言相关联的念头,那么我当然可以支持您所说的话。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Outside of JavaScript, one of the design patterns that I’ve really been into lately is — and I’m sorry that I keep saying it, David; I feel like I could see you sweating [laughter]— it’s ITCSS by Harry Roberts, which stands for Inverted Triangle CSS. It’s basically a way of organizing your Sass file structure so that you have the least amount of specificity. At the top of the inverted triangle you have functions that don’t do anything. They don’t output any specificity. Then you get on to things like color variables. From there you go down to resets, and then raw elements, and then classes. At the very last you have overrides, where you add important stuff. I’ve been using this, and I’ve started to notice that I don’t have CSS conflicts anymore. It’s miraculous, really.

在JavaScript之外,我最近真正接触过的一种设计模式是-很抱歉,我一直这么说,大卫; 我感觉好像可以看到你大汗淋漓(笑) ,这是Harry Roberts的ITCSS ,它代表反向三角CSS。 从根本上讲,这是组织Sass文件结构的一种方法,这样您可以减少最少的特异性。 在倒三角形的顶部,您没有执行任何操作的函数。 他们没有输出任何特异性。 然后您继续进行诸如颜色变量之类的事情。 从那里开始,进行重置,然后是原始元素,然后是类。 最后,您有了覆盖,您在其中添加了重要的内容。 我一直在使用它,并且开始注意到我不再有CSS冲突。 真的,这是奇迹。

David: 大卫:

One of the things that really amazes me, there were a lot of really hard core programmers who, as we’ve mentioned before, had to dis CSS. But it is remarkable what people who work in CSS have to do to structure their code effectively, and the things that they’ve contributed to the community in general about how you can approach structuring and modularizing and componentizing your code. That’s just another example. This came from an area where it used to be relegated to the people at the very end of the chain, who would just make things pretty, and now CSS is elemental. It’s fundamental to the way we’re designing and developing our code. I love the way that that’s turned around.

正如我之前提到的,有很多真正的硬核程序员不得不放弃CSS,这是令我真正惊奇的事情之一。 但是值得注意的是,使用CSS的人们必须做些什么才能有效地构建代码,以及他们为社区提供的有关如何进行代码的结构化,模块化和组件化的总体工作。 那只是另一个例子。 它来自一个曾经被降级到链的尽头的人,他们只是使事情变得漂亮,现在CSS已经成为元素。 这是我们设计和开发代码的基础。 我喜欢那种扭转的方式。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

I almost feel like — and this would probably be a very hostile and maybe it’s a terrible idea, so tell me please — but I almost feel like we should chat with someone who really dislikes CSS, because I love it. I love it because I started first learning HTML. Then I learned CSS. And then I learned programing. I learned how to write JavaScript and a little bit of PHP and the fundamentals around that. I feel like because I entered into the landscape that way, CSS makes sense to me. But if you come from a software engineering background and then you pick up something like CSS, I mean it’s barely a language. It’s this declarative thing but it cascades and I can understand how coming from a software engineer perspective into something like CSS can be really strange and awkward.

我几乎觉得-这可能是一个非常敌对的想法,也许是一个可怕的主意,所以请告诉我-但是我几乎觉得我们应该和一个真正不喜欢CSS的人聊天,因为我喜欢它。 我之所以喜欢它,是因为我开始学习HTML。 然后我学习了CSS。 然后我学习了编程。 我学习了如何编写JavaScript和一点点PHP及其相关基础知识。 我的感觉是,因为我以这种方式进入了环境,所以CSS对我来说很有意义。 但是,如果您来自软件工程背景,然后选择CSS之类的东西,那意味着它几乎不是一门语言。 这是声明性的东西,但它是级联的,我可以理解,从软件工程师的角度来看,如何将CSS变成类似CSS的东西真的很奇怪和尴尬。

David [35:56]: 大卫[35:56] :

I like that challenge. I think we should definitely talk to somebody, perhaps somebody with a back-end focus, maybe some DevOps people. We haven’t had any DevOps people on the show I don’t think. It’s revolutionizing the way that things are happening in development these days. But yeah, absolutely, we should get somebody like that on the show.

我喜欢那个挑战。 我认为我们绝对应该与某个人,也许是一个关注后端的人,或者是一些DevOps的人交谈。 我不认为该节目中没有任何DevOps人。 如今,这正在彻底改变开发中事物发生的方式。 但是,是的,绝对,我们应该在演出中邀请类似的人。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

We could even go as far as talking to someone who advocates for writing CSS in JavaScript and handling styles that way, instead of writing — I hate that I have to say this — instead of taking the traditional approach, which is to actually use a style sheet, because that’s something that still strikes me as weird, and I’m unsure of why someone would do it. I haven’t done it, so all I know is that aside from the tool chain — I don’t want to say issues — aside from the tool chain barrier, because you need a lot of specific and complex tool chains or tools to enable CSS and JavaScript. Aside from that, I don’t really understand why someone would do it, and for that reason I want to learn the mindset of someone who advocates for that way to build websites.

我们甚至可以和那些提倡以JavaScript编写CSS并以这种方式处理样式的人交谈,而不是写-我讨厌这样说-而不是采用传统方法,即实际上使用一种样式表,因为那仍然让我感到奇怪,我不确定为什么有人会这样做。 我还没有做,所以我只知道除了工具链之外-我不想说问题-除了工具链障碍之外,因为您需要大量特定而复杂的工具链或工具才能启用CSS和JavaScript。 除此之外,我不太了解为什么有人会这么做,因此我想学习有人提倡以这种方式建立网站的想法。

David: 大卫:

I think that there’s a lot to learn from it. Going from web components that are completely self-contained with their CSS, to componentized elements inside of React. The need to contain their inline CSS in order to function effectively; what parts stay inline, what parts need to be universal … it’s a complex science these days. It’s not as easy as saying, 100% it needs to be inherited, or 100% it needs to be inline.

我认为有很多值得学习的地方。 从完全包含CSS的Web组件,到React内部的组件化元素。 需要包含其内联CSS才能有效运行; 哪些部分保持内联,哪些部分需要通用……这些天来,这是一门复杂的科学。 并不是那么简单,它需要100%继承,或者100%需要内联。

But yes, we should definitely get more experts on the show to talk about these things. Let’s get the audience involved as well. Are there people out there you want to hear from who are really working on this and really advocating for the position that you have that might be different from what the mainstream is thinking? Give us a tweet. Let us know. We’re @VersioningShow.

但是,是的,我们绝对应该在展会上吸引更多的专家来谈论这些事情。 让我们也吸引观众。 您是否想听一些真正从事这项工作的人,并真的在倡导您所担任的职位可能与主流人士的想法有所不同? 给我们发一条推文。 让我们知道 我们是@VersioningShow 。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Yes, we do keep a very active Twitter account. So, yeah, please do let us know. On that note as well, I think there’s still a large part of the industry that really despises seeing something like JSX syntax, which is basically a part of React that is a preprocessor. It enables writing HTML inside of a JavaScript file. From what I’ve seen, every once in a while there is an article or a tweet that resurfaces of someone who’s just livid — and I mean like clenching the left hand fist and typing with one hand angry about this principle. I was one of those people (I’m not going to lie). But I started to understand that if you are writing a JavaScript-driven web application wherein you are rendering dynamic content, there is no separation of concerns between HTML and JavaScript. Those two things suddenly become one thing when you are doing that.

是的,我们确实拥有一个非常活跃的Twitter帐户。 所以,是的,请告诉我们。 同样,在该注释上,我认为行业中仍有很大一部分人真正讨厌看到像JSX语法之类的东西,它基本上是作为预处理器的React的一部分。 它可以在JavaScript文件中编写HTML。 从我所看到的情况来看,每隔一段时间就会有一篇文章或一条推文浮出水面,使一个刚熟透的人浮出水面-我的意思是喜欢握紧左手拳头,然后用一只手为这个原理感到生气。 我是其中的一个人(我不会说谎)。 但是我开始理解,如果您要编写一个JavaScript驱动的Web应用程序,在其中呈现动态内容,那么HTML和JavaScript之间就不会存在关注点分离的问题。 当您这样做时,这两件事突然变成一件事。

David: 大卫:

And similarly, if you’re building web components, that CSS becomes part of that as well.

同样,如果您正在构建Web组件,那么CSS也将成为其中的一部分。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Oh man! I’m not ready for this sort of …

天啊! 我还没有准备好……

David: 大卫:

[Laughs] Well, we’re back to Good Tim, Evil Tim. We’ve got our Good Tim telling us about focusing on what we’re trying to accomplish, and our evil Tim being attached to our technologies.

[笑]好吧,我们回到好提姆,邪恶的提姆。 我们的好Tim告诉我们有关专注于我们要实现的目标的信息,而我们的邪恶Tim则依附于我们的技术。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

I’m not ready for a light bulb moments, okay? This is just supposed to be an interview. Anyways, Tim would be very upset right now if he heard us talking in this way. Which reminds us, we should focus as a community, as an industry as a whole we should so much more focus on the types of things that we’re building, instead of getting lost in the minute and tedious details about building — which are important, but at the same time when you switch your focus over to what is this goal that I want to accomplish, man that can really be liberating.

我还没准备好灯泡,好吗? 这只是一次采访。 无论如何,如果蒂姆听到我们以这种方式讲话,他现在会很沮丧。 这提醒我们,我们应该集中精力作为一个社区,作为一个整体,整个行业,我们应该更多地关注正在构建的事物的类型,而不是迷失在构建过程中的琐碎而繁琐的细节中,这很重要,但与此同时,当您将重点转移到我要实现的目标上时,这个人确实可以解放。

David: 大卫:

Well, kumbaya. We’ll get there.

好吧,昆巴亚 我们到达那里。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Yes we will, if we press on.

是的,如果我们按一下,我们会的。

[Musical interlude]

[音乐插曲]

Tim Evko: 蒂姆·埃夫科(Tim Evko):

Well, thank you so much for listening everybody. We always enjoy getting to talk technology with all of you.

好,非常感谢您的倾听。 我们总是喜欢与大家交谈技术。

David: 大卫:

We would also like to thank SitePoint.com, and our producers, Adam Roberts and Ophelie Lechat, with production help from Ralph Mason. Please feel free to send us your comments on Twitter — @VersioningShow — and give us a rating on iTunes and let us know how we’re doing.

我们还要感谢SitePoint.com以及我们的制作人Adam Roberts和Ophelie Lechat,以及Ralph Mason的制作帮助。 请随时在Twitter( @VersioningShow)上向我们发送您的评论,并在iTunes上给我们评分 ,让我们知道我们的工作状况。

Tim Evko: 蒂姆·埃夫科(Tim Evko):

We’ll see you next time, and we hope you enjoyed this version.

下次见,我们希望您喜欢这个版本。

翻译自: https://www.sitepoint.com/tech-stacks-frameworks-creative-real-tim-holman/

最新回复(0)