1 00:00:01,360 --> 00:00:03,220 [Nick Pettit]: Paul, Thanks so much for being here. 2 00:00:03,220 --> 00:00:05,540 I really appreciate you coming out. >>[Paul Irish]: No problem. 3 00:00:05,540 --> 00:00:07,790 [Nick Pettit]: So, for people who don't know who you are, 4 00:00:07,790 --> 00:00:10,060 how would you describe yourself? 5 00:00:10,060 --> 00:00:12,060 Who are you, and what do you do? 6 00:00:12,060 --> 00:00:14,790 [Paul Irish]: I am a developer advocate 7 00:00:14,790 --> 00:00:16,260 on the Chrome team right now, 8 00:00:16,260 --> 00:00:20,580 and so I kind of focus on--that encompasses a lot, 9 00:00:20,580 --> 00:00:23,300 but I focus on everything I can do 10 00:00:23,300 --> 00:00:26,860 to make it better to create compelling content for the web. 11 00:00:28,810 --> 00:00:30,250 We've got a lot of great content inside of Chrome. 12 00:00:30,250 --> 00:00:32,119 I wanted to help educate people about that, 13 00:00:32,119 --> 00:00:34,820 help people understand how to use things like 14 00:00:34,820 --> 00:00:36,060 the Chrome DevTools better. 15 00:00:36,060 --> 00:00:40,940 I also come with a big history of front-end development 16 00:00:40,940 --> 00:00:43,270 and open-source projects that I work on 17 00:00:43,270 --> 00:00:45,250 to help developers 18 00:00:45,250 --> 00:00:47,080 learn what they need to know 19 00:00:47,080 --> 00:00:49,570 to do better front-end development, 20 00:00:49,570 --> 00:00:51,660 make better websites and web apps. 21 00:00:51,660 --> 00:00:53,270 [Nick Pettit]: That's awesome. 22 00:00:53,270 --> 00:00:57,290 You're involved in a million different projects. 23 00:00:57,290 --> 00:01:01,200 You're doing Modernizr, HTML5 Boilerplate, 24 00:01:01,200 --> 00:01:03,300 which I use all the time by the way. 25 00:01:03,300 --> 00:01:06,190 You've been on the jQuery team, 26 00:01:06,190 --> 00:01:09,550 and you've made all these really handy tools for 27 00:01:09,550 --> 00:01:11,270 front-end devs. 28 00:01:11,270 --> 00:01:13,190 This might seem obvious, but 29 00:01:13,190 --> 00:01:16,600 what's the motivation for working on all these different things? 30 00:01:16,600 --> 00:01:18,070 [Paul Irish]: I think part of it 31 00:01:18,070 --> 00:01:22,310 is basically that I feel a lot of satisfaction 32 00:01:22,310 --> 00:01:24,930 helping other people, and so part of it is just that. 33 00:01:26,090 --> 00:01:29,860 Also, the other thing--I think this is actually another part that's happened-- 34 00:01:29,860 --> 00:01:31,230 is that I have a really bad memory, 35 00:01:31,230 --> 00:01:33,720 and what that translates into is 36 00:01:33,720 --> 00:01:36,020 if I don't write something down, I'll forget it. 37 00:01:36,020 --> 00:01:38,570 So, this happened in front-end development where you learn this technique 38 00:01:38,570 --> 00:01:42,610 of using media queries or the viewport meta, 39 00:01:42,610 --> 00:01:45,900 and you need to keep track of this 40 00:01:45,900 --> 00:01:47,360 because this is the right way to do it 41 00:01:47,360 --> 00:01:49,250 in this situation. 42 00:01:49,250 --> 00:01:51,750 So, that eventually translated into what became 43 00:01:51,750 --> 00:01:53,190 the HTML5 Boilerplate project, 44 00:01:53,190 --> 00:01:56,650 where a lot of best practices were distributed 45 00:01:56,650 --> 00:01:58,900 all over on blogs and books and things like that, 46 00:01:58,900 --> 00:02:01,160 and I was just like we need to get this together 47 00:02:01,160 --> 00:02:03,210 just to keep track of it; 48 00:02:03,210 --> 00:02:06,080 so I can keep track of it and remember to use it on the next project. 49 00:02:08,190 --> 00:02:11,420 So, that's helped me a lot and has helped other people. 50 00:02:11,420 --> 00:02:14,360 The other thing for me that really drives me 51 00:02:14,360 --> 00:02:17,740 is that I want the web to be 52 00:02:17,740 --> 00:02:19,890 where people build great things. 53 00:02:19,890 --> 00:02:23,510 I'm just really excited about anything that I can do 54 00:02:23,510 --> 00:02:26,960 to help make the web be a stronger platform 55 00:02:26,960 --> 00:02:29,820 for making great, really cool stuff. 56 00:02:29,820 --> 00:02:31,260 [Nick Pettit]: So, you're very diligent 57 00:02:31,260 --> 00:02:33,780 in tracking all of these different things? 58 00:02:33,780 --> 00:02:35,130 [Paul Irish]: Because I can. 59 00:02:35,130 --> 00:02:38,610 [Nick Pettit]: How do you balance your time working on all those different projects? 60 00:02:38,610 --> 00:02:40,590 [Paul Irish]: I don't have a good mechanism 61 00:02:40,590 --> 00:02:43,870 for time management right now. 62 00:02:43,870 --> 00:02:47,190 I use a really cool tool called, 'WorkFlowy,' 63 00:02:47,190 --> 00:02:51,310 which is like a super-enhanced 64 00:02:51,310 --> 00:02:54,030 to-do method list app. It's really cool. 65 00:02:54,030 --> 00:02:57,440 I set up priorities for myself 66 00:02:57,440 --> 00:03:00,040 on a quarterly basis 67 00:03:00,040 --> 00:03:02,160 and try and get them. 68 00:03:02,160 --> 00:03:04,130 I think that's actually quite important, 69 00:03:04,130 --> 00:03:07,960 which is to have a longer-term view of what you want 70 00:03:07,960 --> 00:03:11,550 to attack, because it's so easy on a daily basis 71 00:03:11,550 --> 00:03:14,740 to be totally distracted and 72 00:03:14,740 --> 00:03:17,270 just be like, "I want to play with this new thing 73 00:03:17,270 --> 00:03:19,780 and get it done. Oh, wow, something," 74 00:03:19,780 --> 00:03:22,180 and then you totally forget that you have this much larger, 75 00:03:22,180 --> 00:03:24,450 higher-impact thing that you should be doing. 76 00:03:24,450 --> 00:03:29,210 So, it's hard, and I'm still really bad at time management, 77 00:03:29,210 --> 00:03:31,310 but I'm working on it. 78 00:03:31,310 --> 00:03:33,170 [Nick Pettit]: I know what you mean. 79 00:03:33,170 --> 00:03:35,170 With being involved with so many different projects, 80 00:03:35,170 --> 00:03:37,440 I guess you kind of have to keep a big-picture view 81 00:03:37,440 --> 00:03:39,600 as to what all those things are working towards. 82 00:03:39,600 --> 00:03:41,230 [Paul Irish]: Yep, and what the priorities are. Yeah. 83 00:03:41,230 --> 00:03:45,880 [Nick Pettit]: Cool. So, before we continue, I want to back way up 84 00:03:45,880 --> 00:03:47,870 and just get some of your history. 85 00:03:47,870 --> 00:03:50,600 Where did you grow up and what were you into? 86 00:03:50,600 --> 00:03:54,980 [Paul Irish]: Sure. I'm from Western Massachusetts and Connecticut. 87 00:03:54,980 --> 00:03:58,100 So, I'm from New England where we say, 88 00:03:58,100 --> 00:04:00,110 'wicked,' 'It's wicked cool.' 89 00:04:00,110 --> 00:04:02,100 [Nick Pettit]: Wicked. 90 00:04:02,100 --> 00:04:04,600 [Paul Irish]: I was into music. 91 00:04:04,600 --> 00:04:06,660 I was in the marching band; I played the tuba. 92 00:04:08,140 --> 00:04:11,330 I was into drama. So, I was a band and drama kid in high school. 93 00:04:11,330 --> 00:04:13,670 I was really into music and, in fact, 94 00:04:13,670 --> 00:04:16,790 the first time that I really got going online was 95 00:04:16,790 --> 00:04:18,680 I created a music blog. 96 00:04:20,110 --> 00:04:24,900 This was in--I put it out in 2004, 97 00:04:24,900 --> 00:04:27,540 and I thought I was so late to the music blog scene, 98 00:04:27,540 --> 00:04:31,160 but it turned out that I was one of the first 50 or so. 99 00:04:31,160 --> 00:04:34,500 Having that environment where I had a website that had a lot of traffic, 100 00:04:34,500 --> 00:04:38,040 and I could play with the design and experiment 101 00:04:38,040 --> 00:04:40,450 and get a lot of feedback 102 00:04:40,450 --> 00:04:42,810 on how people liked it, 103 00:04:42,810 --> 00:04:45,560 that was one of the first times when I was really like, 104 00:04:45,560 --> 00:04:48,100 This front-end development thing is a lot of fun. 105 00:04:48,100 --> 00:04:52,510 [Nick Pettit]: That's when you first became interested in the web and technology? 106 00:04:52,510 --> 00:04:54,050 [Paul Irish]: That was when I was like, 107 00:04:54,050 --> 00:04:56,770 this could definitely be full time. 108 00:04:56,770 --> 00:04:59,350 I'd been playing with websites. 109 00:04:59,350 --> 00:05:01,900 Back when IE4 came out 110 00:05:01,900 --> 00:05:04,560 they did this really cool marketing campaign. 111 00:05:04,560 --> 00:05:07,390 This was when the DHTML term arrived, 112 00:05:07,390 --> 00:05:09,650 and so they had this marketing campaign 113 00:05:09,650 --> 00:05:12,650 where they rented out all these movie theaters across the U.S. 114 00:05:12,650 --> 00:05:15,230 and invited a bunch of developers, 115 00:05:15,230 --> 00:05:17,410 and I went and I got free popcorn and a free t-shirt 116 00:05:17,410 --> 00:05:20,000 and a free Windows 95 install CD, 117 00:05:20,000 --> 00:05:22,250 and they showed about what you could do in IE4, 118 00:05:22,250 --> 00:05:24,180 and it was amazing. 119 00:05:24,180 --> 00:05:26,630 So many great features came out then, 120 00:05:26,630 --> 00:05:28,800 and so that was when I was like, 121 00:05:28,800 --> 00:05:32,930 this interest of mine, there's cool stuff in here. 122 00:05:32,930 --> 00:05:35,010 Eventually, it quieted down. 123 00:05:35,010 --> 00:05:39,360 I went to college, but after that everything picked back up again. 124 00:05:39,360 --> 00:05:41,200 [Nick Pettit]: So, did you go to school for this stuff? 125 00:05:41,200 --> 00:05:43,190 [Paul Irish]: I went to school for-- 126 00:05:43,190 --> 00:05:45,160 I got a degree in technical communications. 127 00:05:46,580 --> 00:05:48,160 I don't actually know-- 128 00:05:48,160 --> 00:05:51,710 I really do wish that there was more university-level coverage 129 00:05:51,710 --> 00:05:54,190 for web development. 130 00:05:54,190 --> 00:05:57,460 Front-end development is hard, and it's a pain, 131 00:05:57,460 --> 00:06:01,370 and I wish that there was a more sophisticated education 132 00:06:01,370 --> 00:06:03,430 program for this. 133 00:06:03,430 --> 00:06:06,770 I got education in computer science and mathematics, 134 00:06:06,770 --> 00:06:09,920 and management and communication. 135 00:06:09,920 --> 00:06:11,480 [Nick Pettit]: With us being an education company, 136 00:06:11,480 --> 00:06:14,010 I'm interested to know if 137 00:06:14,010 --> 00:06:17,010 you feel like your degree really helped you 138 00:06:17,010 --> 00:06:19,350 in your career, or--? 139 00:06:19,350 --> 00:06:21,080 [Paul Irish]: Mine did, 140 00:06:21,080 --> 00:06:24,140 and I think these days having a computer science background 141 00:06:24,140 --> 00:06:27,580 has a very direct effect. 142 00:06:27,580 --> 00:06:30,510 I wouldn't say 5 years ago that computer science would help in web development, 143 00:06:30,510 --> 00:06:33,860 but nowadays, especially on the client side, 144 00:06:33,860 --> 00:06:36,360 there's so much logic there. 145 00:06:36,360 --> 00:06:38,110 You're writing jQuery, things are going good, 146 00:06:38,110 --> 00:06:40,330 you're translating, you're writing larger applications. 147 00:06:40,330 --> 00:06:42,380 [Nick Pettit]: It's getting complicated. >>[Paul Irish]: It's getting real complicated. 148 00:06:42,380 --> 00:06:45,470 A background in computer science lays a lot of the groundwork 149 00:06:45,470 --> 00:06:47,860 so that you're not making stupid mistakes 150 00:06:47,860 --> 00:06:51,450 and taking 4 months to learn how you should have done things. 151 00:06:51,450 --> 00:06:54,830 So, yeah, computer science has a big influence 152 00:06:54,830 --> 00:06:56,560 on where the trajectory 153 00:06:56,560 --> 00:06:59,490 of front-end development is going for sure. 154 00:06:59,490 --> 00:07:01,770 [Nick Pettit]: Cool. Well, I think a big challenge 155 00:07:01,770 --> 00:07:04,820 that's facing people coming out of college today 156 00:07:04,820 --> 00:07:07,470 is how to make the transition to 157 00:07:07,470 --> 00:07:11,620 a career and not just kind of hopping from job to job 158 00:07:11,620 --> 00:07:13,210 or being unemployed. 159 00:07:13,210 --> 00:07:15,740 How did you make that transition? 160 00:07:15,740 --> 00:07:17,270 Were you just kind of in an internship, 161 00:07:17,270 --> 00:07:19,880 and it was a really natural progression 162 00:07:19,880 --> 00:07:21,020 or did you--? 163 00:07:21,020 --> 00:07:23,230 [Paul Irish]: Yeah. I started out I was doing 164 00:07:23,230 --> 00:07:27,540 some marketing for 165 00:07:27,540 --> 00:07:29,060 a stationary company 166 00:07:29,060 --> 00:07:31,030 that made wedding invitations and birth announcements, 167 00:07:31,030 --> 00:07:35,010 and I wasn't even starting out with web stuff. 168 00:07:35,010 --> 00:07:38,460 I was creating 169 00:07:38,460 --> 00:07:40,690 a mail-merge Word document, 170 00:07:40,690 --> 00:07:43,710 and then we were using that to fax blast all of our customers, 171 00:07:43,710 --> 00:07:46,310 and I was customizing the mail merge to be 172 00:07:46,310 --> 00:07:49,470 depending on the customer, and it was all this logic inside Word. 173 00:07:49,470 --> 00:07:51,100 It was awesome. 174 00:07:51,100 --> 00:07:55,220 That transitioned, within that job, 175 00:07:55,220 --> 00:07:57,440 into working on their e-commerce presence, 176 00:07:57,440 --> 00:07:59,560 and so that was good. 177 00:07:59,560 --> 00:08:01,000 I think for most people 178 00:08:01,000 --> 00:08:03,430 having something you can develop on your own-- 179 00:08:03,430 --> 00:08:06,520 In my case I had my music blog, 180 00:08:06,520 --> 00:08:10,520 but I think having your own web presence, 181 00:08:10,520 --> 00:08:13,070 whether it's a blog; I think blogging is really good. 182 00:08:13,070 --> 00:08:16,720 Blogging what you're learning is extremely smart 183 00:08:16,720 --> 00:08:20,060 and having that place where you can iterate and play around. 184 00:08:20,060 --> 00:08:22,580 So, when you see a new feature come out, 185 00:08:22,580 --> 00:08:26,470 like you're reading a site and they talk about some new CSS3 feature 186 00:08:26,470 --> 00:08:28,650 or something, make a demo with it. 187 00:08:28,650 --> 00:08:30,020 Kind of explore it. 188 00:08:30,020 --> 00:08:32,030 Put it up on CodePen. 189 00:08:32,030 --> 00:08:34,370 There's a lot of communities now that are encouraging 190 00:08:34,370 --> 00:08:36,280 and let you explore things, get feedback. 191 00:08:36,280 --> 00:08:38,520 Having a social community 192 00:08:38,520 --> 00:08:40,950 that you can talk to and explore 193 00:08:40,950 --> 00:08:43,919 your own professional development with. 194 00:08:43,919 --> 00:08:49,610 I had one, and it's just been very-- 195 00:08:49,610 --> 00:08:51,850 It's a very smart way to go about things. 196 00:08:51,850 --> 00:08:53,590 [Nick Pettit]: So what first attracted you to 197 00:08:53,590 --> 00:08:56,350 front-end development, specifically? 198 00:08:56,350 --> 00:08:59,150 Because you were making a blog, did you do that in WordPress or something? 199 00:08:59,150 --> 00:09:01,870 [Paul Irish]: Yeah, it was WordPress. >>[Nick Pettit]: Okay. 200 00:09:01,870 --> 00:09:03,790 Why aren't you, say, 201 00:09:03,790 --> 00:09:06,520 like a Ruby or a PHP developer, for example? 202 00:09:06,520 --> 00:09:10,450 [Paul Irish]: For me, the thing that really rocks about front end 203 00:09:10,450 --> 00:09:13,490 is that you're building the interface, 204 00:09:13,490 --> 00:09:16,650 and not only are you building the interface, 205 00:09:16,650 --> 00:09:18,160 and you can make decisions around 206 00:09:18,160 --> 00:09:20,570 how the interactions are, 207 00:09:20,570 --> 00:09:22,660 but you're also getting feedback from its users 208 00:09:22,660 --> 00:09:24,250 and from the customers. 209 00:09:24,250 --> 00:09:26,690 The thing that they're touching, their cursor is going over 210 00:09:26,690 --> 00:09:30,410 what you've created, and you're in a position 211 00:09:30,410 --> 00:09:32,510 to where you can define the style of interaction 212 00:09:32,510 --> 00:09:35,110 and the quality of the user experience. 213 00:09:35,110 --> 00:09:37,370 Other people can work on how fast it responds 214 00:09:37,370 --> 00:09:40,550 and a really strong infrastructure, 215 00:09:40,550 --> 00:09:45,050 but the UI is just very sexy to me. 216 00:09:45,050 --> 00:09:47,820 [Nick Pettit]: So it's kind of about that instant gratification then? 217 00:09:47,820 --> 00:09:49,700 [Paul Irish]: The instant gratification and the feedback cycle of 218 00:09:49,700 --> 00:09:52,890 I'm creating the interface, they're using it, 219 00:09:52,890 --> 00:09:55,190 they can love it, they can be delighted by it. 220 00:09:57,600 --> 00:10:00,150 Or they can hate it when I apply 221 00:10:00,150 --> 00:10:03,670 a lot of text shadow to it and make it hard to read or something. 222 00:10:03,670 --> 00:10:06,070 [Nick Pettit]: Sure, sure. 223 00:10:06,070 --> 00:10:09,740 So, I want to talk about HTML5 Boilerplate for a little bit, 224 00:10:09,740 --> 00:10:11,690 because I'm personally interested in it. 225 00:10:11,690 --> 00:10:14,350 I think it's a really amazing project 226 00:10:14,350 --> 00:10:16,220 for people that are just starting out 227 00:10:16,220 --> 00:10:18,240 in web design and web development, 228 00:10:18,240 --> 00:10:20,350 and I think there's a lot more that goes into it 229 00:10:20,350 --> 00:10:23,250 than people might realize. >>[Paul Irish]: Yeah. 230 00:10:23,250 --> 00:10:25,400 [Nick Pettit]: So, first, how did that project start? 231 00:10:25,400 --> 00:10:27,020 [Paul Irish]: Before working for Google, 232 00:10:27,020 --> 00:10:29,760 I was at an agency in Boston making websites, web apps. 233 00:10:29,760 --> 00:10:32,710 We had a big team of front-end developers there, 234 00:10:32,710 --> 00:10:36,420 and when I was going from project to project, 235 00:10:36,420 --> 00:10:39,910 I was noticing that I was pulling lines of code 236 00:10:39,910 --> 00:10:42,100 from my markup and from my CSS 237 00:10:42,100 --> 00:10:44,480 from my last one into my new one, 238 00:10:44,480 --> 00:10:47,060 and then I was like, well, I should probably make a template 239 00:10:47,060 --> 00:10:50,400 just to keep track of this, and so I could start off with that template each time. 240 00:10:50,400 --> 00:10:53,040 That's the original genesis, was just 241 00:10:53,040 --> 00:10:55,310 that I needed to keep track of all this stuff 242 00:10:55,310 --> 00:10:58,400 and move it forward from project to project. 243 00:10:58,400 --> 00:11:02,150 Soon after, I got Divya Manian involved. 244 00:11:02,150 --> 00:11:06,900 We put out a 1.0 just to see what everyone else thought. 245 00:11:06,900 --> 00:11:09,510 Immediately it was really great 246 00:11:09,510 --> 00:11:11,630 because inside HTML5 Boilerplate 247 00:11:11,630 --> 00:11:14,420 is a bunch of techniques, right? 248 00:11:14,420 --> 00:11:18,760 One of the things that has continued up until a little bit ago 249 00:11:18,760 --> 00:11:21,640 is having inline documentation. 250 00:11:21,640 --> 00:11:23,390 You see a technique, and you can instantly see 251 00:11:23,390 --> 00:11:25,520 the website where that was birthed, 252 00:11:25,520 --> 00:11:29,210 and someone can justify exactly why this is important. 253 00:11:29,210 --> 00:11:31,480 So, it's kind of serving as an education tool. 254 00:11:33,020 --> 00:11:36,320 You've kind of got to understand why everything is in here. 255 00:11:36,320 --> 00:11:38,300 So, what happened is we put this out there, 256 00:11:38,300 --> 00:11:42,410 and immediately we got a lot of feedback 257 00:11:42,410 --> 00:11:44,480 over on GitHub where we open-sourced. 258 00:11:44,480 --> 00:11:46,270 A lot of people coming in and being like, 259 00:11:46,270 --> 00:11:48,520 Actually, I see what you're doing here, 260 00:11:48,520 --> 00:11:51,850 but if you tweak it, this is a much stronger position. 261 00:11:51,850 --> 00:11:56,310 It accounts for this edge-case bug in Opera 9.6 or something like that. 262 00:11:56,310 --> 00:11:59,730 Every character inside HTML5 Boilerplate 263 00:11:59,730 --> 00:12:02,330 has had a lot of discussion around it, 264 00:12:02,330 --> 00:12:04,370 and so everything that you see is the result 265 00:12:04,370 --> 00:12:07,980 of extensive conversations that have included 266 00:12:07,980 --> 00:12:10,510 some of the best front-end developers in the industry. 267 00:12:10,510 --> 00:12:13,840 You can go and look back at all those past conversations 268 00:12:13,840 --> 00:12:15,290 in the old issues on GitHub. 269 00:12:15,290 --> 00:12:18,260 The commits in the project, 270 00:12:18,260 --> 00:12:21,560 the log messages have very desciptive 271 00:12:21,560 --> 00:12:24,330 explanations of why we're doing this. 272 00:12:24,330 --> 00:12:28,470 It's very well-justified in why all these decisions 273 00:12:28,470 --> 00:12:31,620 are very strong as a baseline for starting your web project. 274 00:12:31,620 --> 00:12:36,110 [Nick Pettit]: Cool. I think when beginning developers 275 00:12:36,110 --> 00:12:38,490 look at HTML5 Boilerplate for the first time-- >>[Paul Irish]: We've got a lot. 276 00:12:38,490 --> 00:12:40,530 [Nick Pettit]: --they're just like, "Wow." 277 00:12:40,530 --> 00:12:42,840 "What's all this weird code?" 278 00:12:42,840 --> 00:12:44,340 Let's talk about that a little bit. 279 00:12:44,340 --> 00:12:48,320 From the top, what are all those IE conditional comments, 280 00:12:48,320 --> 00:12:50,090 because that's the first thing people see? 281 00:12:50,090 --> 00:12:52,200 [Paul Irish]: Yeah, so the IE conditional comments, 282 00:12:52,200 --> 00:12:54,320 they don't look great. 283 00:12:54,320 --> 00:12:56,170 They look kind of nasty. 284 00:12:56,170 --> 00:12:59,250 It's like sometimes you want your mark-up to look 285 00:12:59,250 --> 00:13:01,770 svelt and sexy and minimal, 286 00:13:01,770 --> 00:13:04,080 and I love doing that as well. 287 00:13:04,080 --> 00:13:06,770 Inevitably when you're developing-- 288 00:13:06,770 --> 00:13:09,430 So, this is not a problem for IE6 and IE7, 289 00:13:09,430 --> 00:13:11,830 which have no market share anymore. 290 00:13:11,830 --> 00:13:13,950 IE8's definitely still around, 291 00:13:13,950 --> 00:13:16,740 but it's been a case where 292 00:13:16,740 --> 00:13:20,990 they have actual CSS bugs in their implementation, 293 00:13:20,990 --> 00:13:23,530 and you can use CSS hacks, 294 00:13:23,530 --> 00:13:27,640 like syntax hacks, to target them and change the width or something, 295 00:13:27,640 --> 00:13:29,300 and change the padding 296 00:13:29,300 --> 00:13:31,430 to make your layout work and to fix those bugs. 297 00:13:31,430 --> 00:13:36,220 But using undocumented CSS hacks, 298 00:13:36,220 --> 00:13:40,820 it doesn't allow you to communicate well with your team, 299 00:13:40,820 --> 00:13:42,720 and when you're working in a group 300 00:13:42,720 --> 00:13:44,950 you want everyone to read the code and understand. 301 00:13:44,950 --> 00:13:47,510 So, the conditional comments 302 00:13:47,510 --> 00:13:49,460 provide a first-class way, 303 00:13:49,460 --> 00:13:52,460 that was provided by IE luckily, 304 00:13:52,460 --> 00:13:54,190 to specifically target these browsers 305 00:13:54,190 --> 00:14:00,050 with CSS styles that affect just IE7 and just IE8, 306 00:14:00,050 --> 00:14:02,940 or a combination thereof. 307 00:14:02,940 --> 00:14:06,650 It's tricky because that's provided for you for free 308 00:14:06,650 --> 00:14:08,230 in the Boilerplate, 309 00:14:08,230 --> 00:14:10,390 but I do think that you do want 310 00:14:10,390 --> 00:14:16,030 to try as hard as you can to avoid vendor-specific styles. 311 00:14:16,030 --> 00:14:19,680 A lot of times just setting explicit dimensions, 312 00:14:19,680 --> 00:14:23,560 width and height, on an element will let you avoid 313 00:14:23,560 --> 00:14:26,810 doing that, and so you should try and go as long as you can 314 00:14:26,810 --> 00:14:29,220 without specifying specific browsers. 315 00:14:29,220 --> 00:14:31,770 But it is there when you need it, and it helps a lot. 316 00:14:31,770 --> 00:14:34,510 [Nick Pettit]: There's plenty more in Boilerplate 317 00:14:34,510 --> 00:14:36,350 that we could talk about. 318 00:14:36,350 --> 00:14:38,580 There's--I've heard you talk about 319 00:14:38,580 --> 00:14:40,670 all the weirdness with carsets. >>[Paul Irish]: Yes. 320 00:14:40,670 --> 00:14:45,360 [Nick Pettit]: There's Chrome Frame, Modernizr, setting the viewport, and so on. 321 00:14:45,360 --> 00:14:47,090 What's your favorite feature, 322 00:14:47,090 --> 00:14:50,840 and what do you think is the most interesting thing that's there? 323 00:14:50,840 --> 00:14:54,130 [Paul Irish]: I found this on Ajaxian a long time ago, 324 00:14:54,130 --> 00:14:57,020 and now on Stack Overflow there's a great question called, 325 00:14:57,020 --> 00:15:00,020 'The Hidden Features of HTML.' 326 00:15:00,020 --> 00:15:02,690 I submitted it a long time ago, and it's the highest voted, and it's in HTML Boilerplate, 327 00:15:02,690 --> 00:15:05,720 and this is the protocol-relative URLs. 328 00:15:05,720 --> 00:15:07,950 So, down at the bottom when we include jQuery, 329 00:15:07,950 --> 00:15:09,770 we pull it in from the Google CDN, 330 00:15:09,770 --> 00:15:12,460 but the script source is equal to 331 00:15:12,460 --> 00:15:15,710 //ajaxgoogleapis.com stuff stuff, 332 00:15:15,710 --> 00:15:18,740 and you're like, "I think you're--" 333 00:15:18,740 --> 00:15:22,590 We get pull requests and bug reports on a monthly basis. 334 00:15:22,590 --> 00:15:25,630 Like, "You got a typo, you missed the http:." 335 00:15:25,630 --> 00:15:28,570 And we're like, "Actually, we didn't." 336 00:15:28,570 --> 00:15:31,500 So, the protocol-relevant URL 337 00:15:31,500 --> 00:15:33,850 provides an ability to-- 338 00:15:33,850 --> 00:15:37,160 the browser will grab the HTTP version 339 00:15:37,160 --> 00:15:39,150 when the page is in HTTP 340 00:15:39,150 --> 00:15:41,390 and HTTPS when you're hosted in SSL. 341 00:15:41,390 --> 00:15:43,140 This is cool because it guarantees 342 00:15:43,140 --> 00:15:46,750 that the assets are requested securely 343 00:15:46,750 --> 00:15:48,080 only when it's required. 344 00:15:48,080 --> 00:15:50,970 There is a small overhead in requesting a secure asset 345 00:15:50,970 --> 00:15:53,980 when you're in regular HTTP. 346 00:15:53,980 --> 00:15:55,270 So, this is really cool 347 00:15:55,270 --> 00:15:59,160 and helps, although it is a little tricky on Windows 348 00:15:59,160 --> 00:16:02,270 when you're just developing, when you've loaded it up 349 00:16:02,270 --> 00:16:05,370 from the file system and then in your browser it says, "file:," 350 00:16:05,370 --> 00:16:07,430 it can be really slow. 351 00:16:07,430 --> 00:16:09,350 If you use a local development server 352 00:16:09,350 --> 00:16:12,990 however, you don't have that problem. 353 00:16:12,990 --> 00:16:14,750 So, I think the feature is really awesome, 354 00:16:14,750 --> 00:16:16,930 and that's probably one of my more favorite things. 355 00:16:16,930 --> 00:16:18,820 [Nick Pettit]: It's crazy you brought that up 356 00:16:18,820 --> 00:16:20,670 because I was just looking at that the other day 357 00:16:20,670 --> 00:16:23,930 trying to figure out what happened here. 358 00:16:23,930 --> 00:16:26,710 It's kind of amazing to me just how much 359 00:16:26,710 --> 00:16:30,240 goes into a, supposedly, vanilla webpage. 360 00:16:30,240 --> 00:16:32,130 I mean, it's called 'Boilerplate,' right? 361 00:16:32,130 --> 00:16:37,100 So, it seems like it should only be the most basic things that you need, 362 00:16:37,100 --> 00:16:39,170 but there's a lot there. 363 00:16:39,170 --> 00:16:41,930 Do you think the job of a front-end developer has become 364 00:16:41,930 --> 00:16:44,790 a lot more complicated in recent years? 365 00:16:44,790 --> 00:16:47,060 And is that a good or a bad thing? 366 00:16:47,060 --> 00:16:50,000 [Paul Irish]: Well, there's 2 things happening at the same time. 367 00:16:50,000 --> 00:16:55,600 One of which is that age-old legacy browsers 368 00:16:55,600 --> 00:16:58,100 are on the decline. IE6 is dead. 369 00:16:58,100 --> 00:17:01,260 If you look at market share numbers, IE6 is dead. 370 00:17:01,260 --> 00:17:04,950 IE7 has under--actually just about 1%. 371 00:17:04,950 --> 00:17:06,750 IE is really strong but still 372 00:17:06,750 --> 00:17:08,200 that's improving. 373 00:17:08,200 --> 00:17:10,420 A lot of front-end developers' pain has been 374 00:17:10,420 --> 00:17:13,790 the old browsers that haven't kept up 375 00:17:13,790 --> 00:17:17,700 with not only fixes, but features that we want to use. 376 00:17:17,700 --> 00:17:19,760 So, that part is getting easier. 377 00:17:19,760 --> 00:17:21,790 By the same point, the last 3 years 378 00:17:21,790 --> 00:17:24,160 have brought an enormous amount of features 379 00:17:24,160 --> 00:17:26,800 to browsers that we now get to incorporate 380 00:17:26,800 --> 00:17:29,140 and figure out the best way to incorporate. 381 00:17:29,140 --> 00:17:33,040 So, for instance, if you're using a CSS transition, 382 00:17:33,040 --> 00:17:36,630 do you use that CSS transition 383 00:17:36,630 --> 00:17:38,480 and just let it fall back 384 00:17:38,480 --> 00:17:42,310 if it's not supported by the browser? 385 00:17:42,310 --> 00:17:44,560 I recommend you do. 386 00:17:44,560 --> 00:17:48,220 But you could choose to feature detect it with Modernizr 387 00:17:48,220 --> 00:17:51,740 and then use jQuery to animate 388 00:17:51,740 --> 00:17:54,510 the same general transition. 389 00:17:54,510 --> 00:17:57,720 So, figuring out your fallback scenario 390 00:17:57,720 --> 00:17:59,050 is a little tough. 391 00:17:59,050 --> 00:18:01,210 A little bit ago, a few of us put out a site called, 392 00:18:01,210 --> 00:18:04,960 'HTML5 Please,' which aims to provide 393 00:18:04,960 --> 00:18:06,810 a bit more guidance for all this stuff. 394 00:18:06,810 --> 00:18:08,370 So, basically, you get to look up 395 00:18:08,370 --> 00:18:11,230 for every feature, all the new stuff, 396 00:18:11,230 --> 00:18:13,610 you get to look up exactly 397 00:18:13,610 --> 00:18:15,980 what is probably the best way to handle this 398 00:18:15,980 --> 00:18:17,800 for a cross-browser scenario, 399 00:18:17,800 --> 00:18:19,500 where you might not have support everywhere. 400 00:18:19,500 --> 00:18:23,370 Should you use a polyfill script to enable that feature in an old browser 401 00:18:23,370 --> 00:18:25,060 or should you just let it fall back 402 00:18:25,060 --> 00:18:29,070 or is there some in-between state that is probably the best way? 403 00:18:29,070 --> 00:18:33,890 Finding that is tricky, but I think there's more and more resources out there that help. 404 00:18:33,890 --> 00:18:35,770 [Nick Pettit]: It seems like this is something 405 00:18:35,770 --> 00:18:38,690 that's unique to the nature of web development 406 00:18:38,690 --> 00:18:40,440 where you have to come up with these fallbacks 407 00:18:40,440 --> 00:18:43,920 for all of these different browsers coming out. 408 00:18:43,920 --> 00:18:45,630 Do you think it'll always be that way, 409 00:18:45,630 --> 00:18:48,680 or do you think we'll hit some point 410 00:18:48,680 --> 00:18:50,520 where things are pretty stable, 411 00:18:50,520 --> 00:18:56,000 and web development is just kind of a little bit more static? 412 00:18:56,000 --> 00:18:58,110 [Paul Irish]: Well, so if we got there, 413 00:18:58,110 --> 00:19:00,500 if we got to that point, that would essentially indicate 414 00:19:00,500 --> 00:19:03,430 that there's not any 415 00:19:03,430 --> 00:19:07,220 groundbreaking new features being added. 416 00:19:07,220 --> 00:19:09,980 I kind of don't want to be there. Right? 417 00:19:09,980 --> 00:19:12,820 At the same time, I don't like 418 00:19:12,820 --> 00:19:16,730 having to send a bunch of polyfills 419 00:19:16,730 --> 00:19:19,110 at older browsers 420 00:19:19,110 --> 00:19:22,030 and just testing and worrying about that. 421 00:19:22,030 --> 00:19:24,940 So,yeah, that's getting really complicated and messy, 422 00:19:24,940 --> 00:19:27,420 and managing the various states, 423 00:19:27,420 --> 00:19:31,160 like if you think about the old state of 424 00:19:31,160 --> 00:19:34,720 all browsers must look--the experience must look the same in all browsers 425 00:19:34,720 --> 00:19:39,860 to the new one which is we feature detect, we find out what we can provide, 426 00:19:39,860 --> 00:19:42,880 and there's a lot of combinations of how your site looks. 427 00:19:42,880 --> 00:19:45,740 Then you're like bringing responsive design, and it's changing. 428 00:19:45,740 --> 00:19:48,890 So, from a capability and future perspective, it's different 429 00:19:48,890 --> 00:19:52,940 from a viewport size; it's a different experience, 430 00:19:52,940 --> 00:19:55,780 and when you've built a site, 431 00:19:55,780 --> 00:19:57,940 and you're testing it to make sure that everything is right, 432 00:19:57,940 --> 00:19:59,910 there's a lot of combinations to look through. 433 00:19:59,910 --> 00:20:01,640 Here, the most important things are 434 00:20:01,640 --> 00:20:05,060 choosing features to use where the fallback scenario 435 00:20:05,060 --> 00:20:07,250 is you kind of forget about it. 436 00:20:07,250 --> 00:20:10,610 If a browser doesn't have border radius CSS transitions, 437 00:20:10,610 --> 00:20:12,560 that's probably okay. 438 00:20:12,560 --> 00:20:14,940 A lot of these just kind of enhance. 439 00:20:14,940 --> 00:20:16,930 The other part is 440 00:20:16,930 --> 00:20:19,690 that I think we could actually, as a community, 441 00:20:19,690 --> 00:20:23,830 do better to help encourage our users 442 00:20:23,830 --> 00:20:26,260 to be using browsers that we specifically want 443 00:20:26,260 --> 00:20:28,400 to support, and that helps our job, 444 00:20:28,400 --> 00:20:30,420 and it helps them. 445 00:20:30,420 --> 00:20:33,770 I know conversion rates improve significantly 446 00:20:33,770 --> 00:20:35,840 when the experience is faster. 447 00:20:35,840 --> 00:20:39,330 Helping your users be on the kind of browsers 448 00:20:39,330 --> 00:20:41,450 that you yourself enjoy 449 00:20:41,450 --> 00:20:45,900 actually has a good business support, 450 00:20:45,900 --> 00:20:49,130 and is a lot more fun for users and developers, of course. 451 00:20:49,130 --> 00:20:51,960 [Nick Pettit]: There's so many steps 452 00:20:51,960 --> 00:20:54,200 that are involved in front-end development at this point. 453 00:20:54,200 --> 00:20:57,320 This is something you were blogging about recently 454 00:20:57,320 --> 00:21:01,270 where you said the tool chain is a little bit overwhelming. 455 00:21:01,270 --> 00:21:03,450 There are so many steps and there are so many different 456 00:21:03,450 --> 00:21:06,610 tools and techniques to deal with each one of them. 457 00:21:06,610 --> 00:21:09,960 Do you think there's a need to simplify that 458 00:21:09,960 --> 00:21:12,540 and try to bundle all of that together? 459 00:21:12,540 --> 00:21:14,870 What are your thoughts on that? 460 00:21:14,870 --> 00:21:16,550 Because I feel like the barrier to entry 461 00:21:16,550 --> 00:21:19,360 is really high for somebody that's new to it. 462 00:21:19,360 --> 00:21:21,520 [Paul Irish]: Yeah, so, it's tricky. 463 00:21:21,520 --> 00:21:24,430 There's a lot going on, 464 00:21:24,430 --> 00:21:26,150 and, yeah, it's a lot to absorb. 465 00:21:26,150 --> 00:21:29,960 I've recently been working 466 00:21:29,960 --> 00:21:32,330 with Addy Osmani 467 00:21:32,330 --> 00:21:34,000 and some other people inside the web development community 468 00:21:34,000 --> 00:21:36,150 to put out a project called, 'Yeoman,' 469 00:21:36,150 --> 00:21:39,830 and this project is about putting together a lot of tools 470 00:21:39,830 --> 00:21:42,600 that help you build better web apps. 471 00:21:42,600 --> 00:21:44,340 Now, there's a lot going on in there, 472 00:21:44,340 --> 00:21:47,880 but it's using things like CSS pre-processors, 473 00:21:47,880 --> 00:21:50,150 live reload, 474 00:21:50,150 --> 00:21:53,160 even shipping a plug-in for Sublime text. 475 00:21:53,160 --> 00:21:56,260 So, there is like a baseline of features 476 00:21:56,260 --> 00:21:58,400 that most front-end developers use, 477 00:21:58,400 --> 00:22:00,480 and I don't think this is really listed anywhere. 478 00:22:00,480 --> 00:22:02,370 Maybe I should make a blog post out of this, 479 00:22:02,370 --> 00:22:07,100 but there's a few things that these days are pretty well accepted 480 00:22:07,100 --> 00:22:10,420 as these are fundamental to development. 481 00:22:10,420 --> 00:22:14,640 People don't talk enough to their colleagues, coworkers 482 00:22:14,640 --> 00:22:18,850 about what is their process for developing. 483 00:22:18,850 --> 00:22:23,090 How are they interacting 484 00:22:23,090 --> 00:22:25,600 with their text editor, their source control? 485 00:22:25,600 --> 00:22:28,750 I think there could be a bit more of a conversation 486 00:22:28,750 --> 00:22:33,750 around what we can do to make sure that 487 00:22:33,750 --> 00:22:36,230 when we're coming back to work on our projects 488 00:22:36,230 --> 00:22:38,870 it's not frustrating and instead it's fun, 489 00:22:38,870 --> 00:22:40,970 and I'm getting work done quickly. 490 00:22:40,970 --> 00:22:44,440 Every time I watch someone else do their work 491 00:22:44,440 --> 00:22:46,160 and I sit next to them and I'm like, "Whoa, whoa, whoa," 492 00:22:46,160 --> 00:22:48,300 "What did you just do? What was that keyboard shortcut?" 493 00:22:48,300 --> 00:22:50,080 [Nick Pettit]: Right. 494 00:22:50,080 --> 00:22:52,770 {Paul Irish]: I think we should do a lot more of that. 495 00:22:52,770 --> 00:22:55,520 [Nick Pettit]: Do you think it's okay for people to just use the stuff 496 00:22:55,520 --> 00:22:59,720 and maybe not totally understand it but just know that, 497 00:22:59,720 --> 00:23:03,060 "I need to do this thing for it to work?" 498 00:23:03,060 --> 00:23:06,150 At what point does it just become an abstraction? 499 00:23:06,150 --> 00:23:09,190 [Paul Irish]: I think it's--that's a great question. 500 00:23:09,190 --> 00:23:12,070 So, right now-- 501 00:23:12,070 --> 00:23:16,240 Nicolas Gallagher is the new project lead 502 00:23:16,240 --> 00:23:18,560 on HTML5 Boilerplate. 503 00:23:18,560 --> 00:23:20,340 He's kind of taken over, and he's doing a fantastic job. 504 00:23:20,340 --> 00:23:23,690 So, his perspective is that 505 00:23:23,690 --> 00:23:28,060 the Boilerplate project is aimed specifically 506 00:23:28,060 --> 00:23:30,850 as a baseline--this is a baseline for web apps, 507 00:23:30,850 --> 00:23:32,840 and it can be used for web apps and websites, 508 00:23:32,840 --> 00:23:36,590 and there's not really much to take away, 509 00:23:36,590 --> 00:23:38,620 and there's probably not much to add. 510 00:23:38,620 --> 00:23:40,930 In fact, it's a very stable project 511 00:23:40,930 --> 00:23:42,730 at this point because it's not trying to solve 512 00:23:42,730 --> 00:23:44,160 other problems. 513 00:23:44,160 --> 00:23:46,720 Now, let's say in jQuery, for instance, 514 00:23:46,720 --> 00:23:48,040 this has been a longtime question 515 00:23:48,040 --> 00:23:52,930 which is, "Should I learn JavaScript at the same time as I learn jQuery?" 516 00:23:52,930 --> 00:23:54,170 "Should I learn it first?" 517 00:23:54,170 --> 00:23:56,660 My answer to that has always been 518 00:23:56,660 --> 00:23:58,730 you learn them at the same time, 519 00:23:58,730 --> 00:24:02,090 especially things like math and strings and array methods. 520 00:24:02,090 --> 00:24:06,810 You want to learn those JavaScript methods fairly quickly, 521 00:24:06,810 --> 00:24:08,650 because there are not good answers for them in jQuery. 522 00:24:08,650 --> 00:24:11,280 At the same time, you don't want to have to learn 523 00:24:11,280 --> 00:24:14,230 how a lot of the intricacies of the DOM work 524 00:24:14,230 --> 00:24:16,350 very early on. 525 00:24:16,350 --> 00:24:19,610 So, I think it's a matter of 526 00:24:19,610 --> 00:24:21,960 learning the techniques as you're using the tools. 527 00:24:21,960 --> 00:24:23,130 So, in HTML5 Boilerplate, 528 00:24:23,130 --> 00:24:25,230 you kind of dig into some of the documentation, 529 00:24:25,230 --> 00:24:27,060 and at some point you'll just be like, 530 00:24:27,060 --> 00:24:30,010 "Why?" And you should be asking that question. 531 00:24:30,010 --> 00:24:33,270 That shouldn't preclude you from using the tool. 532 00:24:33,270 --> 00:24:36,810 At the end of the day, you want to enjoy what you're doing, 533 00:24:36,810 --> 00:24:38,430 and you want to do it fairly quickly, 534 00:24:38,430 --> 00:24:40,330 and you don't want to be frustrated. 535 00:24:40,330 --> 00:24:42,210 So, you use the tools that are available. 536 00:24:42,210 --> 00:24:45,610 I think it's important to understand how they work, 537 00:24:45,610 --> 00:24:48,390 and right now I'm trying to get a better understanding 538 00:24:48,390 --> 00:24:50,750 how browsers work, and those are really complicated. 539 00:24:50,750 --> 00:24:54,690 But I'm not going to tell everyone that every web developer 540 00:24:54,690 --> 00:24:57,580 needs to understand how all of the web browsers work. 541 00:24:57,580 --> 00:25:01,470 I think we're okay with that kind of working as a tool. 542 00:25:01,470 --> 00:25:03,230 It's a balance. 543 00:25:03,230 --> 00:25:06,670 Understanding the internals of any tool 544 00:25:06,670 --> 00:25:10,350 will help you be much stronger at using it, 545 00:25:10,350 --> 00:25:13,750 but you don't need to understand it 546 00:25:13,750 --> 00:25:15,060 to use it. 547 00:25:15,060 --> 00:25:17,230 [Nick Pettit]: So, wrapping up, what advice would you give 548 00:25:17,230 --> 00:25:20,700 to web designers and developers out there, 549 00:25:20,700 --> 00:25:23,630 just as a very general question? 550 00:25:23,630 --> 00:25:25,040 [Paul Irish]: Sure. 551 00:25:25,040 --> 00:25:27,220 [Nick Pettit]: What can they do to better themselves? 552 00:25:27,220 --> 00:25:29,440 [Paul Irish]: One of the things that happened to me 553 00:25:29,440 --> 00:25:31,140 a while ago was, 554 00:25:31,140 --> 00:25:33,730 I had joined the jQuery IRC channel. 555 00:25:35,390 --> 00:25:38,350 So, IRC is kind of, it seems nerdy. 556 00:25:38,350 --> 00:25:41,130 Yeah. Nick's like, "Yeah, definitely nerdy." 557 00:25:41,130 --> 00:25:43,030 But I joined that a long time ago, 558 00:25:43,030 --> 00:25:45,830 and I was just super active in it, and that's how I got involved 559 00:25:45,830 --> 00:25:49,340 in jQuery projects, started doing developer relations for jQuery, 560 00:25:49,340 --> 00:25:52,180 joined the jQuery team, was involved in the project for a long time, 561 00:25:52,180 --> 00:25:55,050 and it was all because I joined the IRC channel 562 00:25:55,050 --> 00:25:57,250 and just started talking to people and helping people. 563 00:25:57,250 --> 00:26:00,560 So, helping other people with 564 00:26:00,560 --> 00:26:03,160 front-end development 565 00:26:03,160 --> 00:26:06,220 you learn a lot, and I would recommend that. 566 00:26:06,220 --> 00:26:08,400 The same time that that happened, 567 00:26:08,400 --> 00:26:11,590 I found a group of people that were 568 00:26:11,590 --> 00:26:14,000 doing a bunch of jQuery, doing a bunch of JavaScript, 569 00:26:14,000 --> 00:26:18,030 and we just formed this kind of social group 570 00:26:18,030 --> 00:26:20,460 of 20 of us. 571 00:26:20,460 --> 00:26:24,350 It was also on IRC, and we would just talk all the time 572 00:26:24,350 --> 00:26:26,970 about what we were doing, 573 00:26:26,970 --> 00:26:30,170 and this led to--there was a little bit of competitiveness, 574 00:26:30,170 --> 00:26:32,460 but a lot of cooperation. 575 00:26:32,460 --> 00:26:34,060 We would work on projects together, 576 00:26:34,060 --> 00:26:36,750 things like MovetheWebForward.org 577 00:26:36,750 --> 00:26:39,220 and HTML5 Please, have come out of this group. 578 00:26:41,470 --> 00:26:43,130 So, having-- 579 00:26:43,130 --> 00:26:47,560 So you're not alone without a mentor. 580 00:26:47,560 --> 00:26:49,380 It's great to have a social group 581 00:26:49,380 --> 00:26:52,070 where you don't feel like completely inferior to everyone around you 582 00:26:52,070 --> 00:26:54,070 and can kind of support each other. 583 00:26:54,070 --> 00:26:56,480 The last part of this is really just to 584 00:26:56,480 --> 00:26:58,680 be able to have fun while you're learning. 585 00:26:58,680 --> 00:27:00,650 I think part of that is 586 00:27:00,650 --> 00:27:03,210 creating little demos and experiments for yourself. 587 00:27:03,210 --> 00:27:06,940 Doing that will give you more experience with cool features 588 00:27:06,940 --> 00:27:08,180 and things that you want to explore 589 00:27:08,180 --> 00:27:10,300 and help you feel more confident when you 590 00:27:10,300 --> 00:27:12,630 propose to your boss, "Really we should do it this way," 591 00:27:12,630 --> 00:27:14,920 "Why? Why?" 592 00:27:14,920 --> 00:27:16,800 And you'll be like, "Well, I've actually done some work with this, 593 00:27:16,800 --> 00:27:19,390 and it's not as bad or as scary as you think, 594 00:27:21,520 --> 00:27:23,600 and, I don't know, it'll all work out." 595 00:27:23,600 --> 00:27:25,590 [Nick Pettit]: That's the advice that I always give to people 596 00:27:25,590 --> 00:27:28,430 is just, "Do cool stuff and share it with other people." 597 00:27:28,430 --> 00:27:30,130 [Paul Irish]: Yeah, absolutely. 598 00:27:30,130 --> 00:27:32,520 [Nick Pettit]: Awesome. Well, thanks so much for being here. I really appreciate it. 599 00:27:32,520 --> 00:27:34,150 [Paul Irish]: Cool, thanks. 600 00:27:34,150 --> 00:27:36,830 [Treehouse FRIENDS] 601 00:27:36,830 --> 00:27:39,260 [?music playing?]