[00:00:00.00] SY: Quick announcement - we are hiring! If you're a fan of the show and looking for a part-time gig, we are looking for a technical writer. This is a remote six-month contract, pays $2,000 a month, and you get to work with me! So, if you’re interested, apply by September 8th. That's this Friday. Link is the in the show notes. (Music). Welcome to the CodeNewbie podcast, where we talk to people on their coding journey in hopes of helping you on yours. I'm your host Saron, and today we're talking about JavaScript. (Music). If you're a fan of Wes Bos, you probably know this song (Music). That's the intro to JavaScript 30, his free and most popular tutorial series.
[00:00:49.29] WB: It's thirty days, each day you do one vanilla JavaScript tutorial -
SY: That's Wes Bos.
WB: And each of them dive into sort of a different aspect of JavaScript.
SY: He's produced a ton of resources on JavaScript including blog posts, videos, tutorials, and full courses. He's pretty popular in the learn to code community, but it took years for him to get there. In fact, it took him years to even like JavaScript.
[00:01:12.22] WB: I hated JavaScript, I remember being so frustrated with it because HTML and CSS - it would break, but it would still work, you could kind of like get through it and figure out what's going on, but JavaScript - you break one thing, the whole thing comes crashing down.
[00:01:28.21] SY: Today, we are getting a behind-the-scenes tour. We get to see how he learns, how he works - even how he designs his resume. So get ready for an honest, informative, and inspiring conversation with Wes Bos. After this. If you're building an app, you'll probably have users. And when you have users, you have to talk to those users - usually through email, which means as a developer, you need to pick an email service providers, which means you should check out SparkPost. They are the world's most reliable and fastest growing cloud email service provider, with a robust API to fit right into your app. They're super developer-friendly, they've got free self-service start-up accounts, perfect for solo developers, and sophisticated enterprise options, perfect for teams. So, if you need to send email - which you probably do - check out SparkPost at pages.sparkpost.com/codenewbie. Link is in the shownotes.
[00:02:22.15] When you're looking for a program to develop your skills and get that dev job, there are a few things you should consider. Does the program teach in-demand skills? Is the community supportive? Do they offer real world projects so you can get real world experience? And are they based in a tech hub, so you have job opportunities when you graduate? DigitalCrafts gives you all of that, through sixteen-week full-time classes, and twenty-four week part-time classes. They teach full stack web development, with JavaScript - no JS and Python. It's an intense program, designed to take you from beginner to full stack software engineer. Whenever possible, they also partner with local companies and nonprofits, so you can solve real world problems with real life projects. They have campuses in Houston, Texas and Atlanta, Georgia - the fourth largest tech hub in the US, and support for student housing is coming soon. Their cohorts start in early November, so check out www.digitalcrafts.com. Link is in the show notes.
[00:03:11.20] If you're learning to code, you're probably spending all of your time getting your app to do what it should do. So after a ton of work and time and banging your head against the wall, you finally get it to do the thing you want! But - the page takes too long to load. Or it goes down for a second. Or, even worse, it gets attacked by some botnet. What do you do? That's where Incapsula comes in. They sit between your servers and your users, inspecting every packet, filtering and blocking and protecting you and your app. They make sure you and your awesome app are safe and reliable, so you can focus on coding. And, they're offering our CodeNewbie listeners a chance to try it out for one month for free. Just go to Incapsula.com/codenewbie. That's incapsula.com/codenewbie. Link is in the show notes.
[00:03:57.21] (Music) I feel like you are one of our favorite people in the CodeNewbie community. Two things, right - one, anytime anyone mentions anything about JavaScript or learning JavaScript, your name comes up all the time, but then the other side of it is, anytime someone has a question about JavaScript, I feel like you're always one of the first responders as well. So, on both ends -
[00:04:21.00] WB: I like that, a JavaScript first responder.
[00:04:22.24] SY: There you go, new title, new title. (Laughs). So, tell us a little bit about some of the things that you're best known for.
[00:04:29.26] WB: Probably in the CodeNewbie community, I'm best for a free JavaScript tutorial series that's called JavaScript 30, at JavaScript30.com. It's thirty days - each day you do one JavaScript vanilla tutorial, and each other them dive into a sort of a different aspect of JavaScript, whether it's learning how events work, or how Ajax works, or dealing with some arrays and manipulating that data, or building some common UI things, and we also do some really fun stuff with image galleries and webcam access and speech synthesis - it's just thirty fun exercises that sort of trick you into learning better JavaScript.
[00:05:12.11] SY: I only like learning if I'm tricked into doing it, so I appreciate that. (Laughs). And I love the JavaScript 30 because there's so much information packed in there, that, as you said, it's kind of sneaky because it's not just oh, here's JavaScript, it's also, oh, by the way, look at what JavaScript can do, and how many things it can control, and look at the creativity that can be involved when you make something with this, so it really shows not just practical things to learn, but it really shows the power of that language.
[00:05:45.29] WB: Part of why people have trouble learning is that they'll say, oh, today I'm going to learn how reduce works, and then they go to the documentation for reduce, and it just doesn't make any sense - you're just like what is fubar and baz and when would I ever use this? But if we're building some sort of interface that needs to calculate some time maybe, that's a great time when you can reach for these different tools and explain, this is where you'd actually use it.
[00:06:08.05] SY: And I feel like a lot of tutorials miss the why - why am I here, why am I doing this, what is this going to get me to in the end. And your tutorials are very much focused on that why. We're here because we are trying to create this really cool pomodoro clock, and we're trying to create this little drum kit. It's very, very clear what the why is, and it's an exciting why, and that helps me get through the maybe less interesting parts, like what the actual methods are, and helps me get to the end. But the other side of that though is, when it's so focused on that end goal, how do you make sure that people still appreciate and pick up the fundamentals - because we're not always going to be making drum kits, right?
[00:06:49.16] WB: Yeah, exactly. I think that all of the exercises behind something like this, they are meant to teach you the fundamentals, but it doesn't mean that you have to do a boring exercise to learn the fundamentals. So, I think that those are really important. And maybe when we do a topic that's something that we've never touched upon, what I'll do, for example I use map a ton in these exercises, and often what I'll do is I'll pause for a second and show just a really quick, isolated example of what map is, and then we put it into our own application, because on the flip side, nobody also likes learning something where they can't pull that piece out and apply it to something else, because it's really frustrating to say I used it, but I don't know how I would apply this to something else as well. So, there's kind of a delicate balance that you have there.
[00:07:41.01] SY: Absolutely, and I think that part of that is on the instructor or the tutorial creator, but the other part is on the student, so for example, when I was doing JavaScript 30, I had my notebook and anytime you said a word or I saw something on the screen that I didn't recognize, I took the step to pause it, write it down, do a bit of additional research, try it out and kind of confirm that it works the way that I think it works, then I went back and resumed that tutorial as well because I feel like both parties have a role in that.
[00:08:08.27] WB: Yeah, exactly. If you're not feeling totally confident because some people at JavaScript when they're very new at JavaScript because there's a lot that's assumed there, it's not a total beginner series. But what I do see a lot of people is that they'll make notes, as you said, and follow up on those pieces that are maybe a little bit unclear to them.
[00:08:28.12] SY: So, I want to take a step back and appreciate the volume of work that you've done and stuff that you've produced. I feel like for our community, because I feel like our community just benefits a lot from you - tell us about your stats. How many courses have you put together, how many people have you taught, how many users you have on all your products. Tell us about that.
[00:08:47.16] WB: I think I have about eight courses right now, and each of those courses is anywhere from three or four hours up to twelve, fifteen hours on some of the bigger ones. So, I have four paid courses, and the rest of them are free, so I try to keep that number fairly balanced between giving back to the community and being able to feed myself and run a business and have success with that. In terms of how many people have I reached, it's a little bit hard to measure, in terms of the number of people who have signed up across all of my courses, unique individuals, it's at about a hundred and seventy thousand right now, about thirty thousand people have actually shelled out money for one of my courses -
[00:09:36.02] SY: That's a pretty good percentage. Thirty percent is pretty good.
[00:09:36.02] WB: Yeah, most people come and take a free course first, and they'll enjoy the way that I teach. Some people take it and they go, "I don't jive with the way this guy teaches, or it's not really - " because some people do like foo bar baz and being able to take it totally out of context and focus on that, and that's not really my crew, but I have found my crew that does enjoy the way that I teach as well. So, between that, about a hundred and seventy thousand. I have about a hundred sixty thousand people on my email list right now, so that's sort of how I gauge people who do like to hear from me.
[00:10:17.06] SY: So I imagine with so many people who are using your work, everyone has an opinion on what you should teach next, and what the next course should be and what you should focus on - how do you pick what new topic to put together a course on?
[00:10:30.23] WB: It's a mix between what I'm interested in at the moment, and what I'm actually using, because I don't necessarily want to teach something that I have never used in production before, because you don't want to be that teacher who just teaches stuff for the sake of it, I want to be that teach that says I actually use this in a real world application, and here are the problems I've run into. So that plays into it quite a bit, but also stuff that I think people need to know. So, I get a lot of requests from people for stuff that they want to know, but JavaScript 30 is by far my most successful course so far, and nobody asked for that. That was just me sort of listening to what people's pain points were, and trying to play doctor and prescribe the remedy for that. So, it's a mixture of those two things.
[00:11:21.02] SY: So, when you were putting together the JavaScript 30 course, how did you plan that, because there are obviously 30 days, 30 tutorials, and there are lots of pieces to it. First of all, when you said, what was the problem that you were trying to solve with that course?
[00:11:40.22] WB: I was teaching in person, here in Toronto, and a lot of people came to me and they said, I'm feeling overwhelmed with all of the frameworks and all of the libraries, and everything, and I just don't know how to get better at JavaScript, and people would sign up for a million tutorials, or they'd buy a whole bunch of books, and it doesn't pan out for everyone all the time. Or, they'd say I get it, this is great, thanks so much, but I want to do more - what can I do? And I always have tons of ideas of what I can build and tons of ideas for little examples, my mind's always flying, but I realize that not a lot of people knew exactly what to build. So for probably a year and a half I had been keeping a list of little exercises that I could do in a folder for over a year and a half, I collected them and filled them into some down time if I needed a little break, I'll build a little fun thing I like to try out, and then at a certain point I had about fifty of them, and decided that this would be a great way to do it. No frameworks, no compilers, no libraries, none of that stuff that's overwhelming people right now - just the good old days of HTML file and a script tag. That's sort of why people like it. So I took those fifty and I chiseled it down to a list of about thirty that you'd actually learn something in, and it'd actually be real world problems that you'd run into, and then I reported them and threw it up. That was about a three or fourth month process from getting those fifty to actually putting out the course.
[00:13:08.18] SY: And, I really, really connected with the no libraries, no framework, because that was my issue too - I'm definitely much more a ruby developer than I am a JavaScript developer, but when I think about JavaScript, that's the thing that annoys the crap out of me, is I think uh, it's going to be all these libraries and things I don't really understand and am I really learning JavaScript or am I learning the framework and the library - I can't really differentiate between the two. And it just feels like it's going to be a whole lot of work and I'm not going to actually understand anything. So when I saw your course and it said we're just going to focus on JavaScript, that was definitely a huge selling point for me. So, when you picked the thirty days and the thirty activities, how did you structure the learning part of it. Was it just, I'm going to walk through how I personally made this project, or how I would make this thing work, or how did you structure it in a way that would be helpful to a beginner?
[00:14:08.21] WB: Basically what would happen was I would build the thing and then I'd scrap it and I'd build it maybe two or three more times until it's at a point where the code is nice and clean, it's touching on maybe some new APIs and some older APIs and some fundamental lessons and at a point where I was happy with the code quality, then I would look at the code and write maybe a quick little outline, maybe four or five bullet points, what are the main steps of this actual video, and then we just step through it and explain it along the way. I don't have like a huge process for tackling something, I'll sort of just look at the thing we're going to build and think about how do I best explain this while making sure we touch on all of these different concepts and pausing at points where things might go awry, or things might not be totally clear.
[00:14:56.18] SY: Do you ever do any user testing or anything for a course to make sure that what you think are the right points to pause are actually the right points to pause, or anything like that?
[00:15:07.20] WB: I don't, but because I have taught in person for five years, I'm very in tune with that confused look. Or that - you get finished explaining it and it makes so much sense to you and you look up and it's just crickets. And people are just like, "What? What? What is going on?" So, I've definitely taught - I've taught JavaScript to absolute beginners, maybe six or seven times, so I definitely know all the common trip ups that more experienced developers might take for granted.
[00:15:41.14] SY: Yes, and I think the fact that you've taught in person is so valuable because I remember a few years ago I tried to write just a simple blog post tutorial on how to - I think I was trying to explain the MVC framework which is model view controller and it was so hard because my teaching experience is primarily in person, and I'm used to using the reaction and the facial expressions to figure out what direction to go in and what to push back on and what to repeat. And when I was writing out this thing, I was like I don't know what part of this doesn't make sense, because it all makes perfect sense to me. So, yeah, I think it's really great that you have that in person feedback to inform your online content creation.
[00:16:23.17] WB: Yeah, it's super valuable to me.
[00:16:25.27] SY: So, how do you personally learn a new topic?
[00:16:30.02] WB: I don't learn it through a course, which is funny because I create the course. I'm sort of a guy who goes out and I'll read all the documentation of a project, which is the most boring thing ever, and most people don't like to do that. I'll go on Youtube and I'll look for conference talks by whoever the industry experts are I'll try to build two or three different things to make sure that I run into actual problems. I'll try to implement it on my own stack so I get some real world experience doing that. And I also make sure that I tweet a lot about what I'm working on. Because often there are people who are experts in that one specific piece - like whether it's Google Maps or working with the webcam or weird quirks about form elements, there's always somebody on Twitter that has amazing knowledge in that specific area, and being able to tap into those people's brains is super valuable. So, I kind of just go all over the web and bring in as much as I can, go on GitHub, read all of the code, find examples people have created, and then once I've spent a couple months in a topic, I feel pretty confident in it, and then I know I can distill it down to a video series.
[00:17:44.26] SY: And I feel like that's how most people learn as well. I feel like there's, at least for me, when I first started to code, there was an assumption that I needed to find the resource, the one place, the one book, the course, the one whatever that was going to get me from zero to one hundred, but I realized that that's not really how it works, especially for our industry. It really is putting together a bunch of different resources that work.
[00:18:05.20] WB: Exactly - it would be really nice if you could just sit down and read a book and then you could stand up and you'd be an expert -
[00:18:12.15] SY: Instant developer!
[00:18:13.15] WB: Exactly, but unfortunately it's very messy, there's lots of dead ends that you hit when you're learning, which is so frustrating. You might spend a Friday night getting something set up, only to realize that it's a dead end. You think that's a waste of time, but that's just part of learning.
[00:18:27.12] SY: Absolutely. I feel like a huge shift for me, a huge turning point for me, when I shifted my expectations from everything is always a step forward to maybe this is a step forward, maybe it's a step sideways, we don't really know, we're going to figure it out though. And that made the learning process a lot easier.
[00:18:47.01] WB: Absolutely.
[00:18:44.29] SY: So, how do you see your own tutorials and your own courses. How do you see it fitting into a new developer’s toolkit?
[00:18:57.08] WB: I don't have any courses that are absolute beginner. I'm hoping to change that, I've got plans for - because that's some of the most commonly requested stuff - my stuff is more late beginner, intermediate, to advanced stuff. Typically what happens, though, is a developer who already knows a bit of JavaScript or a bit of something and they need to skill up in a specific area, whether that's learning react or learning known or updating their JavaScript skill set with ES6, they will just take that course, go through it, and then that one little piece of their skillset has greatly improved, as well as their underlying JavaScript skillset has also improved, because even though you're just learning - maybe you're learning react, you're going to learn a lot of fundamentals and best practices along the way.
[00:19:47.09] SY: So, why the focus on JavaScript?
[00:19:51.06] WB: It's just something that I had struggled with for a long time and finally had enlightenment in it. I had also taught it to quite a bunch of people and people seem to like the way that I explain things and the energy that I have behind it and the exercises and it's just been doing really for me. I have some courses on CSS as well. I don't really think of myself as a JavaScript teacher. I'm more of a web development teacher, but JavaScript is the language of choice, both for the front end and for my server. So a lot of my stuff revolves around that.
[00:20:21.22] SY: Yeah, cool. (Music) Coming up: remember that time I tweeted, asking if you had any questions for Wes? Well, if you responded, then you might hear your name and question on the show after this break. He also talks about how he feels about not having a computer science degree, and how scared he was to post his first video.
[00:20:39.14] WB: You put it out there, and what if someone who really knows what they're doing finds out that I'm a phony and I don't do this as well as I thought I would do?
[00:20:45.21] SY: After this. Choosing a boot camp isn't just about the curriculum. It's about the connections that program has to job opportunities, resources, and the local community. This is why you should check out DigitalCrafts. They've got campuses in Houston, TX and Atlanta, GA - the fourth largest tech hub in the US. That means plenty of networking opportunities and neighbors who understand what you're going through. In addition, students and alumni alike - they call themselves builders - get access to rotating elective classes in the evenings, so you can keep learning even after you graduate. They cover skills and topics like UI and UX design, CS fundamentals, and iOS mobile development. A great curriculum - and a community is essential. So check out digitalcrafts.com for a schedule of upcoming classes. They've also got a great list of resources that you can start prepping on your own. Their upcoming cohorts start in early November, so check them out at www.digitalcrafts.com.
[00:21:38.07] One of the most important features of any app is talking to your users, whether it's a email notification, a password reset, a new user welcome - emailing your users is an essential part of your app experience. Which means you need to pick an email service provider that you can count on. SparkPost is the world's most reliable and fastest growing cloud provider. They're built on AWS, and trusted by the world's biggest senders, to deliver unmatched uptime and resilience. And they're great for developers like you. They've got an amazing rust API to fit right into your app, or you can use plain SMTP. So check out SparkPost at pages.sparkpost.com/codenewbie. Link is in the show notes.
[00:22:13.01] And finally we have Incapsula. Building your website is a ton of work, and pushing it live and showing if off is an awesome feeling, but when you're done, you're not really done. You've got to make sure it stays up and it stays safe. Incapsula can help. They protect more than four million websites every day, from individual bloggers and personal apps, all the way up to Fortune 500 companies. They work to keep your site up, so you can focus on coding. And as a CodeNewbie podcast listener, you can try them out for a whole month for free. Just got to Incapsula.com/codenewbie. That's incapsula.com/codenewbie. Link is in the show notes. [00:22:52.09] Music. You are a primarily a self-taught developer, do you feel like you're at any kind of disadvantage by not having a CS degree?
[00:23:02.21] WB: For me no, not at all, because I think part of the reason for my success in creating these tutorials has been because I didn't come at this from a traditional academic standpoint. I'm coming at this at a I've taught myself, I was raised by the internet, and I've figured it out along the way and because I don't have any of these existing comp sci backgrounds, I may be a little bit more accessible to the regular person who's trying to learn web development.
[00:23:36.10] SY: When you think about the students that you have and folks who are getting into coding now and trying to be a developer, have you seen any benefits of having that CS degree, or do you feel like in general - especially if you're doing something like web development and you're primarily doing JavaScript, there's tons of really great resources like yours online, that it's generally fine to not have one?
[00:23:55.15] WB: I think it depends on what kind of stuff you're building. Because there's a huge benefit to having a comp sci degree when you get into algorithms and some of the more complicated stuff and I don't know, I think there's a couple different levels of developers, and I'm a web developer that primarily uses stuff. So, I will latch onto these frameworks and I will build websites and web apps with them, and you can make a really good living doing that. But there's also, not to say you need a comp sci degree for this, but there's a whole other tier of people who are actually building these libraries and actually influencing the web platform and building the actual browsers behind everything or are like rethinking languages like typescript or rethinking approaches to building applications. There's this whole - I like to think of people as smarter than me - that are out there and I'm really glad that those people - it's the same as with self-driving cars and whatnot - I'm really happy that those people have comp sci degrees. But for a web developer building apps and interfaces and backends and stuff, I don't know that it's a hundred percent necessary.
[00:25:11.19] SY: Cool. So, when I was looking at your website, specifically your about me, your work page, it was really good. Like, it was one of the best about me pages I've seen because it feels like a resume without feeling like a resume, you did such a great job of highlighting your skills and your knowledge. But it's also personal - I feel like I got to know you a little bit just as a human being, but I also could get a really good sense of your expertise. How long did it take you to get to that final page, that final structure and design for that?
[00:25:44.11] WB: That's funny because I haven't updated that in years. I often - I had to keep updating it. I wrote this when I had a girlfriend, and that's crossed out, and I had a fiance, and that's crossed out, and I have a wife, and now it says my daughter, Lux. So, I have a one year old daughter - she's turning one tomorrow, and she's not even on this page. So, like, I wrote this - what, maybe six, seven years ago? I came across it because I was doing freelance web development and I clearly understood that if you want to get good clients, you need to be very personable, and people need to know exactly what your skillset is, because often the person trying to hire you is not a developer themselves, but they are somewhat technical. So I like to play buzzword bingo, if you go on that page you'll see there's just a laundry list of different technologies, and what always happened is someone said hey, I see that you're good with - and then one of the technologies that they use is likely on my list as well - so that's how I came about that. And I've always been kind of a fun, personable guy and I like to show my personality and things, so that's why that's written like that.
[00:26:52.13] SY: Yeah, and I feel like it does a really good job of catering to two audiences, because like you said, if I'm a hiring manager or someone who's not exactly a developer but I work with developers, the part where you use English sentences and talk about yourself in a casual way is really helpful, but if I want to go straight to the tech and I want to know what exactly do you know, what libraries do you know, you have that too, it's just a really good example. I know one of the questions that comes up in our community is literally, how do I write a resume, what do I put on here, how do I talk about tech. And this is a really great example of that, so we're definitely going to include a link to that in the show notes for this.
[00:27:30.18] WB: Oh, awesome.
[00:27:32.05] SY: Yeah, so one thing that you mention in that bio, and you mention a couple times, is you say that you understand how technology and business work together. Tell us about that.
[00:27:41.15] WB: I have always been a fairly entrepreneurial person. Growing up, I would do all kinds of stuff, I had a lawn-mowing business, I used to sell pears by the side of the road, and through a university I would buy road bikes and flip them for ten times the amount that I bought them after cleaning them up and fixing stuff, so I've always had this entrepreneurial spirit in me, and I feel like I understand how that works, but I've also been really into technology and I understand how that works. I think that if you want to be a good developer, understanding both the tech but also very importantly you have to understand, what problems are you trying to solve with this tech. Because at the end of the day, your technology is either trying to push some sort of cause further, whether that's a business that's trying to make money, or a not for profit that's trying to help people - if you understand the stakeholder in that situation, you're going to make decisions about your tech a little bit different. So, I think that's why I had a little bit of a successful run as a freelancer, because I would always chat about the business owner - how do you make money, what does that process look like, not do you want Wordpress or stuff like that. They don't care, they just need to actually make money at the end of the day.
[00:28:57.04] SY: So before I got into coding, I used to work at startups, more on the businessy salesy side of things, and I feel like there's a tension - I don't want to say animosity, but I'm just going to say a tension between the business people and the tech people, where business people often view the tech folks as more of a commodity, and the tech people view the business people as the folks who have no idea what they're actually talking about and just kind of want unrealistic things and get on their nerves. So, has that been your experience, and what's the cause of that - why can't we all just get along?
[00:29:34.04] WB: Yeah, that's a great question. You definitely do see it - developers are always like, I could build Instagram in a weekend, they always look at just the tech of being actually saving it, whereas there's a whole lot of marketing and psychology in all this stuff that goes into it on the business and the marketing side of things to actually make it work. I remember I used to, what was that website people used to use - it was a website that everyone would use to sell whitepapers, and I didn't understand why people would want to use this website to give away whitepapers when Wordpress was free and much better in my opinion. And then I realized, oh, they're using it because it actually works to get them leads and so. Why do we have that? I don't necessarily know. I think developers don't like to be bothered that much -
[00:30:28.11] SY: Just in general, just in life.
[00:30:29.11] WB: Yeah, developers like to be told requirements and they want to build it and they want to build this beautiful thing, and I'm much of this way, but also from a business standpoint you need to move quick, and you need to be able to try things and experiment and that's the whole growth hacker mentality that people always cringe at hearing, but it's true that you need to be able to modify your actual product quickly to succeed in start ups and in this business, so I think that if you can have a little bit of grace on either end, you can run a pretty sweet business.
[00:31:04.00] SY: And even if you don't have a business, I think that that's so valuable when you're working at a company, on a team, especially in the job interview process, because when I would interview for dev jobs, when I asked questions that were focused on the company's overall success, when I asked questions like how do your tech goals line up with your business goals, people really appreciated that and they saw that I'm just here to produce hopefully really awesome code and show off my coding skills, but I understand that this is part of the larger picture.
[00:31:35.29] WB: Yeah, exactly. I think if we're to give a good example of this - how happy do you think the engineers at Instagram were when they walked in and they said Snapchat's eating our lunch, we're going to implement stories. Right? And the devs behind Instagram were probably like, oh, we don't have that, our beautiful code base is made for coding pictures. And they had to basically code an entire app on top of that to handle story. But that really saved Instagram, so it's a good example.
[00:32:07.15] SY: How did you develop those skills? How did you get to a point where you understand how both sides work?
[00:32:14.29] WB: Well, I went to school for what's called business technology management -
[00:32:19.21] SY: Wow, there' you go.
[00:32:20.22] WB: It's a business degree focused on more being like a manager in tech, so not so much actually coding - there was no coding classes at all - it's more focused on actually running a business successfully, and having systems in place, and being able to figure out what tech you actually need to make it work, so that was really helpful, but I don't think that that was all of it. I think that I was born with this entrepreneurial bug that I have always had, it's never really been squashed, I've always had very supportive people around me encouraging me to try new things out, so it's sort of grown in me over the years.
[00:32:59.14] SY: So, we tweeted earlier today and we said hey, we're going to have Wes Bos on the show, let us know what questions you have, so I have a couple questions that I want to ask you from our community. So the first one is from Ashley Lamar, and she wants to know, "I want to know what a typical workday actually looks like for him," she also said "He's amazing."
[00:33:15.10] WB: (Laughs). Awesome, thank you. My days are fairly simple, I try to keep everything in my life as simple as possible, so I don't have a whole lot of meetings or coffee. I used to do a lot more of those, but I read a really good book called "Essentialism: The Disciplined Pursuit of Less," and I've basically cut all of that out of my life. So, pretty much, I have a full day to do whatever it is that I want, so I'll usually start around 8:30 in the morning, and I'll start by figuring out what it is that I want to get done that day. So, if I'm working on a course or I'm exploring something, or I'm building something, I'll get right into that and for the first couple hours of my day. I usually have Twitter open, most of the day or I'll pop it open once or twice an hour to see what's going on. I know that's a big distraction for a lot of people, but it's a huge part of my marketing. And I'll usually check and do emails around eleven, I try to check and do emails once a day, I have a system called the Breakout Email Management system - I get a lot, probably sixty, seventy emails a day. And I'll just try to blow through those in an hour or so. And then I'll close it down and I'll keep building on whatever it is that I've been building. So, usually my days are filled with one thing and whether that's working on my course platform, or whether that's doing some marketing, or whether that's building an actual course, recording, my day is just filled with one thing and that's generally what I do all day. If I need to do something else, like marketing, I'll switch to that task another day, and that way I feel like at the end of the day I can look at what I've done and I can see if I was successful or not. If I get that one thing done, or those two things done, it's a yes or a no - I didn't hop around all day, pushing a few things around.
[00:35:09.08] SY: Very cool. Arrow Mancad? I'm sorry, I don't think I said that right, wants to know what would his advice be for people who want to start writing technically? Would a personal blog be the best place? Medium?
[00:35:21.08] WB: Wherever you can start writing it down. A lot of times people get tied up over should I post on Medium or should I post on my own blog, or should I be posting on whatever it is. The practice of you insistently creating something is what's most important. I'm of the opinion that you should for sure post your own blog because Medium will go down one day and you will be left without your blog posts and your links will no longer work - and trust me, it's happened, I'm old enough to have seen that happen three or four times so far. Always host your own content, is my opinion. And then just get writing. Or, in our case, get Youtubing or get podcasting or whatever medium really interests you, whatever thing you think you can have fun with, you're probably not a good writer or probably not a good Youtuber, but if you do it maybe thirty times, you're going to get good at that medium. So, just start, is my only advice there.
[00:36:18.27] SY: Lisa Yoder, hopefully that's correct, wants to know how does he learn fast enough to create a course about new stuff coming out. We talked about how you learn in general, but are there things that you do specifically to speed it up a little bit.
[00:36:32.15] WB: I don't think that I'm very fast at all. I'm often jealous of other people who can learn something so quickly, or they're like "I picked up Swift on the weekend," and I'm like, wow, that would take me a year.
[00:36:43.23] SY: Sentences I don't understand. Yes. Absolutely.
[00:36:46.21] WB: So, I don't know, I'm not very fast. I'll often take four months to build a course, even if I already know that topic fairly well, and that's just because I'm researching the nitty-gritty ins and outs, best practices of it, so I don't really have an answer because I think I'm a bit of a slow learner, but it also shows through the quality of my work so I'm ok with that.
[00:37:06.24] SY: Same. I'm not a fast learner at all. It takes me quite a number of rounds before something really sinks in, so it makes me feel a lot better to know that you're the same way.
[00:37:18.02] WB: Yeah, I think patience is key in learning, so if you have patience, it's going to help you out.
[00:37:23.06] SY: So our last question is from David. He wants to know what your thoughts are on the Facebook license issue for React, and how it can negatively affect companies - and I'm going to say, if it could possibly negatively affect just regular coders as well.
[00:37:37.21] WB: What's I've started doing on Twitter is replying with the shrug emoji, because I don't know, I think that it sucked that Facebook has this patent, whether it holds any water or not in that you should or shouldn't code with it. I would wish that Facebook would just get rid of it so people stopped talking about it, because I think React is an amazing framework. So my answer to everybody is there is an alternative framework called Preact, which is a drop-in replacement for React. It's the same API, same extends class, same life cycle methods - all of that stuff. It is written to match the API but not take any code from React, so if you're really that worried about it, switch to that. I'm not a lawyer, so don't quote me on that, but that would be my answer. But if you are really still sweating it, then pick a different framework. Like View or Angular or something like that, you can then sleep soundly at night. I'm not all that worried about it because I'm not going to be suing Facebook anytime soon.
[00:38:39.27] SY: Yeah, and it's good to know that there are other options as well. Because yeah, React has been so big - I feel like it's taken over a lot of the conversation with JavaScript framework, so knowing that there is another alternative is good information, thank you for that..
[00:38:52.29] WB: Yeah, absolutely.
[00:38:54.18] SY: So next let's do some fill in the blanks, are you ready?
[00:38:56.23] WB: Yes.
[00:38:57.13] SY: Number one. Worst advice I've ever received is?
[00:38:59.17] WB: Play it safe. So, I grew up in a family where you're supposed to work a job for forty years and you work your way up, and I've always tried to go out on my own, I've never actually had a real job, it's always been out on my own, so especially if you're early in your career, trying something that you might think you want is really important, especially if it's entrepreneurial, because by the time you have kids and a mortgage and all of the health care to worry about, it's a lot harder to actually break away from that than you think it is. Don't play it safe in your early years.
[00:39:33.07] SY: Has that attitude changed over the years, especially once you get married and have kids? For you personally, has that, have you felt more of an urge to play it a little bit safer over time?
[00:39:42.25] WB: No, because I think things went well enough for me well before I had anything to worry about. I was making pretty good money doing freelancing by the time I had graduated from university, so I was living very cheaply, I was still in sort of student mindset at that point, and I was able to transition from that. But I definitely think about it, what would it look like if I was thinking about getting into this now when I have a kid and a mortgage and stuff like that. There'd definitely be a lot more late-night hustles happening then there are now.
[00:40:16.16] SY: Yeah, absolutely. Number two - my first coding project was about?
[00:40:20.11] WB: It was a personal website for myself basically just pictures of myself, links to games online, pictures of friends, basically just learning HTML and frames.
[00:40:32.14] SY: Did you touch JavaScript for that project?
[00:40:34.06] WB: No, no. JavaScript was many, many years later. We just recorded on my own about my origin story, and that was probably sixteen years ago, and I really didn't get heavy into JavaScript until maybe six, eight years ago. So, JavaScript was a long time coming.
[00:40:51.07] SY: When you discovered JavaScript seven or eight years ago, did you know that was going to be a main focus, a main thing for you?
[00:41:00.09] WB: I hated JavaScript - I remember being so frustrated with it. Because HTML and CSS, it would break but it would still work, you could kind of get through it and figure out what was going on. But JavaScript, you'd break one thing, the whole thing comes crashing down, and that was so frustrating to me. I clearly remember, I remember where I am is such a vivid picture, I remember being like, do you think I can get by in this industry without knowing JavaScript, because I was so frustrated with it. And then I realized, after sort of getting involved in the community and keeping at it and having a good year or two of frustration with JavaScript, it started to make sense to me, things started to get easier, and I had a bit more confidence being like, it's broken but I think I can fix this.
[00:41:46.00] SY: Was there an inflection point in that, where it turned from I can tolerate it and I'm getting good at it, to oh, I actually really enjoy what I'm doing here?
[00:41:56.23] WB: I don't think so. I think that is was maybe a one percent increase every week over three or four years. Twenty-ten I went to my first JavaScript conference, at that point I had been getting ok at it, but then I got super excited about all the possibilities. Jay Corey was really big at the time and I was building all these websites, and I was like oh, I can make all sorts of neat interfaces with it. So, I guess maybe around seven, eight years ago, so I guess I've been doing JavaScript longer than eight years. Eight years it started to get easier for me, and then I started to become confident in it, and then I guess now I'm realizing that you get to a certain confidence with it, and then you realize, oh maybe you don't know it is as well as you actually do because programming is very big and very hard.
[00:42:42.10] SY: It's very humbling.
[00:42:42.10] WB: Yes, absolutely.
[00:42:43.28] SY: Yep. Number three - one thing I wish I knew when I first started to code is?
[00:42:49.05] WB: Helping others with what you do know will help really solidify it in yourself. When I finally started blogging and finally started making these Youtube videos after years of wanting to do it, I finally just, what the hell, I'll just start it, if somebody says I'm not very good at this, so what. By doing that, I started to actually understand it way better myself, and people would ask me for help, and I would have to really sit there and figure out how it works so I could explain it to them. So, even if you are just getting started, team up with somebody, even for JavaScript 30, because even if you understand one little piece, and you can explain it to someone else, it's going to be way more solidified in your mind than you think it will be.
[00:43:31.24] SY: So, it's interesting, you wanted to do videos and blog posts for years before you actually did it - what was stopping you?
[00:43:38.08] WB: I would see bloggers out there that had really popular websites, and they're making videos and screencasts and stuff like that, and I just love the idea of being able to create stuff and put it up online, I just didn't have the skillset at the time to do that.
[00:43:54.09] SY: Were you worried at all that people might not enjoy what you had to say, or people would be mean to you when it comes to comments and things like that?
[00:44:00.27] WB: Yeah, that was a huge scare for me, because you would put it out there, but what if someone who really knows what they're doing finds out that I'm a phony and I don't know this as well as I thought I would do, but that never really happened. Sometimes you get some jerks out there, but they definitely got more issues than you need to know about, so. Generally, the web development community is really good to each other, and that really helped me get good at this stuff.
[00:44:28.16] SY: Do you ever worry about that now, especially when you're doing a new library you're not familiar with, or a new topic you just learned? Do you worry about getting a negative reaction?
[00:44:35.11] WB: I think I'm a bit more humbled now, so I'm very open to just putting it out there and being like, hey, what do you think? Is this good? Is this the right way? I don't know everything, and if somebody wants to tell me the way that they do it, then that would be great, and I think that maybe I don't get it as bad as some people now, because there's a bit of respect, but I think people are generally pretty good about being able to help. If you're fine with being wrong a lot of the time without being corrected without it hurting your ego, then it's really going to help you.
[00:45:09.02] SY: Yeah, and even it sounds like the way that you present your work isn't necessarily from an expert position, like it's not, hi, I am master of JavaScript, let me teach you all the things. It's I learned this thing, and here's how you can learn it too. Right? It feels much more on a peer level, which helps anybody who thinks, oh, let me bring down Wes Bos, so. I think that perspective helps too.
[00:45:33.12] WB: Exactly. I think being like, I think that was a huge inspiration, was when I learned it was Chris Coyer's CSS tricks, and his stuff was always such from a point of hey, let's learn this together, or here's how I would build it - it might not be the best way, but this is my thoughts towards it. If you sort of approach it at that, I don't think people want to take you down. They're more willing to say interesting way, here's how I would've approached it, and that's the whole point of the web development community.
[00:46:01.15] SY: And that becomes a nice conversation.
[00:46:02.25] WB: Exactly.
[00:46:05.23] SY: You do blog posts and tutorials and a bunch of really awesome things, but there are a lot of people in the world who also do blogs and tutorials and a bunch of awesome things. But you're really successful at it, and you've been doing it for a long time, people really appreciate your work. What do you think made you successful from a business perspective, and an authority figure respect perspective, compared to folks who also might have similar content?
[00:46:28.14] WB: Persistence is one, I've been doing it for a long time and only recently has it started to pay off. I created courses and tutorials for years while I was freelancing, and only about a year ago have I fired all my clients and am doing this full time. So, I guess that's part of it. I think people really click with my personality and the way that I explain things and the sort of projects that we build are fun and they look good, I build stuff how I would actually want to learn and people start to click with that. And of course, part of it is also having a bit of business background as well. Understanding, now I've built this really good thing, there's that whole if you build it they will come, but that's not necessarily true. You can build something really good - and I see a lot of people create really nice stuff, but if you don't have any way to actually drive traffic to that, it's not going to be successful. So, being early in the Twitter game was big for me, understanding email marketing was big for me, probably some dumb luck, being a little early into it than some others was helpful for myself as well. So, I think all kinds of little stuff, but most of it I bet will boil down to it being good content, so people will refer it to their friends, and people liking the way that I teach.
[00:47:43.28] SY: Very cool. Well, thank you so much for sharing your story with us, and letting us get a little inside scoop behind Wes Bos and his life and his projects. Do you want to say goodbye?
[00:47:52.00] WB: Absolutely. Thanks so much for having me, and see ya everybody!
[00:47:55.28] SY: And that's the end of our fourth episode of Season One. We are halfway through this season, so let me know what you think. Tweet me @codenewbies, and send me an email hello@codenewbie.org, and keep an eye out on our Twitter account so you can ask questions to future guests. If you're in DC or Philly, check out our local CodeNewbie meetup groups, we've got community coding sessions and awesome events each month, so if you're looking for real life human interaction, look us up at meetup.com. For more information on the podcast, check out www.codenewbie.org/podcast, and join us for our weekly Twitter chat. We've got our Wednesday chat at 9PM EST and our weekly coding check-in every Sunday at 2 PM EST. Thanks for listening. See you next week. (Music).
Copyright © Dev Community Inc.