I'm Wes Bos, a full stack developer from Canada who makes some really great online courses like JavaScript30, React For Beginners, What The Flexbox?!, ES6 for Everyone and Learn Node.
I'm pretty active on twitter @wesbos and I've just started a podcast with Scott Tolinkski called Syntax
I'm pretty fortunate to have turned my love of web development and business into a career so I'd love to chat about either of those topics (or anything else really!). My AMA will start at 2PM ET today, August 9, so please feel free to Ask Me Anything!
Top comments (156)
Wes, I just want to tell you that you're the most phenomenal teacher out there, there's something incredibly friendly about your approach to teaching which helps even the most entry level devs to pick it up with supreme ease. Thanks for your on going contribution to the community!
☺️
☺️☺️
☺️☺️☺️
☺️☺️☺️☺️
☺️☺️☺️☺️☺️
☺️☺️☺️☺️☺️☺️
☺️☺️☺️☺️☺️☺️☺️ Thanks!
☺️☺️☺️☺️☺️☺️
☺️☺️☺️☺️☺️
☺️☺️☺️☺️
☺️☺️☺️
☺️☺️
☺️
I guess you could describe my style as "pedestrian". The big ah-ha moment for me was that I can just explain things in a way that makes sense to me.
No formal training, probably no born talent, just lots of practice? I've been doing it for 7 years now and I think I'm just starting to get decent at it :)
So tip - just start. Youtube/blog/tweet tips/whatever. Share what you know!
What concepts have you found most devs tend to struggle with?
By far is how values get passed into functions.
Why is it
name
and notfirstName
?!Seems to simple to anyone programming for a while, but it's often a cause for confusion in my students.
References (arrays, objects) VS values (strings, numbers) is another one.
Truthy/falsy was another one but I've got pretty good at explaining that :)
This brings me back. I remember this tripping me up early on. It lead to some behavior like always using the same name for both things just in case.
Beginner here, is this because whatever you put in the brackets after sayHello is what is passed, 'name' is essentially a placeholder for the value you are passing into it?
Correct.
name
is the parameter scoped to that function.That's really good info. I never would have guessed that. Thanks for answering!
What is your go-to equipment for everything? Microphones, laptop, IDEs, editors, etc?
wesbos.com/uses/ :)
Ahaha - I almost always have someone /uses reply before I can.
One thing that isn't on there - I'm slowly being won over by VS Code.
<3 VS Code!
I asked about this on Twitter but you didn't reply. Will you be comparing VS code and Sublime? What about writing a book on VS code?
Sorry I don't see everything on Twitter - they only give me so much scrollback history and sometimes I miss things!
I rather use Vim rather Sublime or VS Code.
@Wes Bos did you try Vim.
Using it make me better developer and typing is more fun.
I want to start a video blog about programming, but in spanish, because I want video blogs like that in my language, do you have any tips to someone that's going to do something like this for the first time?
Just start! You'll figure it out along the way. Create small, focused tutorials on a variety of topics and you'll quickly figure out what ones do well and the ones people want more of.
Good luck - you should start today because I know tons of Spanish speakers take my courses and would probably rather something in their native language.
Thanks, I'll start today, I hope that someone could found helpful my videos :)
Any thoughts about the #GoogleManifesto?
I didn't know what that was until just now - what a douche. It kills me to see people furthering stereotypes like this :(
Have you actually read it or is that going by headlines? Serious question as I've seen conflicting opinions but haven't decided if it's worth the time.
What is #GoogleManifesto?
diversitymemo.com/
Hey Wes, I was hoping you'd touch briefly on the #productivity side of things. One thing that immediately stands out when viewing your overall professional presence is just the sheer volume of substantial and successful projects, courses, etc., that you've undertaken.
I'm sure the shortest and truest answer is that "It's a ton of hard work," but I was wondering whether there were any eureka moments or specific insights that have helped you find such productivity and ability to execute.
Thanks for taking the time to do this AMA!
It's all about finishing things. I always loose steam on things right about 90% o the way through. That last 10% is the hardest, but well worth it.
Learning how to push through that has helped a lot. There are no secrets here - just having a bit to grit to double down and finish things.
I can definitely see "Just finish things" becoming a personal mantra. Thanks again! 🙌🏽
Shia LaBeouf gif incoming!
How can I make an Open Source Project (bloomer.js.org) more visible for Developers to discover?
You can post it on my ama and now everyone will check it out!
That's a good start :)
Nice Components though Carlos
I looked at Bloomer to see what it's all about! My one thing: I don't really understand what it's for unless I get digging. Something on the homepage that explains it (or better, shows it) further would be great :)
Thanks for your feedback :)
I'll try to figure out how to sell the idea in the first seconds so you can be excited to dig into the docs.
Yeah, this.
I don't want to sound arrogant but if it's not immediately obvious what a 'thing' does within a few seconds of me reading the README I usually lose interest and move onto something I can grok.
A gif usually does it for me
Thanks Scott, I'm going to try something cool for the next release, I really need to work on the README :)
What's your process for planning an online course? What advice would you have for someone interested in doing that?
It mostly boils down to:
It's a lot of work - this process takes 4-5 months.
My advice would be to not worry about process too much and just start creating things - you'll figure it out pretty quickly. What I do might not work for everyone :)
Do you work on one project for 4-5 months at a time or do you do a few things at once?
Other than tending to my own course platform, doing conf talks, and doing little code-pen type stuff, it's almost entirely one thing.
With the pending closing of Iron Yard, there will be a void (at least in my local area) for person-to-person instruction on Web Technologies.
As someone who has taught at a school and runs a learning platform, any ideas on how individuals can help fill the void?
Yeah! Some ideas:
I've tried to learn functional programming, but feel it's too hard to learn when everyone's afraid of words like monads and functors. But when reading about the concepts they feel very simple. What do you think about FP in JS for everyday work, and the future progress of FP in JS? Why do you think people are scared to learn this kind of stuff?
Yeah most FP stuff gets real deep real quick and lots of devs are left more confused than when they came in. It's not that people are scared, it just is often way over their heads.
unpopular opinion: If you are just learning JS, don't worry about FP or OOP - just make it work. As you get better, you'll pick up little pieces of FP and start to realize why everyone is so hyped about it.
Thanks Wes!
I hope FP community gets more spread. There's some beginner friendly content available so you don't need to get over your head when starting out.
I agree totally with your opinion. Just learn to get things done. And if we can learn to code better it doesn't matter what it's called.
How you know you are ready to teach something you've been studying?
When I've built at least 3-4 real world things in it. Most of the things I teach are lessons learned from me applying it in the field. I've been learning GraphQL for the 6 months or so, and just getting into a space where I feel comfortable enough with it that I'm starting to talk about it :)
Wes,
I absolutely love your courses (particularly with the option to have captioning), I have about 3 of them and I'm still going back to them when I find that I might have forgotten a specific detail.
Ever thought about doing a course on TDD? I have found there's not a lot of tutorials or material that covers test driven development (especially with JavaScript). Would this be a possible one to undertake?
Yes - this is really high on my list. Something on testing will come out soon
Awesome, I look forward to seeing what you come up with this :D
Hi James,
Randomly, I'm just writing a course on JavaScript testing right now. I'll have a 7-day FREE mini-course on JavaScript testing coming out before the end of August. If you fancy getting involved then you can sign up here
Shout if you need any help.
Thanks,
Marc
Hey, Wes!
Since I know you so well, I only have one question — it's a bit personal!
Q: — How's life as an educator? I have been meaning to quit freelancing back in the day (2010) and I did, moved to products side of things, now I have been meaning to quit products and get into teaching (I love to teach, it's genetic believe me) — but the amount of time getting spent on building one free course have scared the shit out of me (English is not my native lang but I do OK...). Now, I am afraid to embark on a journey of building a premium course that would take about six months. While I have a huge audience, what if the course I am building doesn't get enough sales? — Scary waters!
Any tips to deal with all of that?
I freelanced for the first 3 years of selling courses so it wasn't all that scary for me. The ship was close enough to the dock by the time I made that jump.
It is a ton of work, as is things like maintenance and support of the courses. I'm still figuring that out so I'm not sure I have an answer for you.
You should have an idea that your course will sell well - if you are going in blind I'd recommend doing some smaller stuff to test the topic's waters first. Free course, blog posts, tweet tips, podcasts, youtube vids will all show you if people are hungry for that topic.
Thank you! That helps!
Hey Wes, excited to have you on dev.to!
What's it like teaching full time as well as doing your own development? Or more specifically, how do you manage your time doing both? Being a TA as well as keeping up my programming skills was too much for me, so I'd love to hear how you do it.
I'm in a pretty lucky spot where I work on my own course platform, which is where I can sharpen my skills. I never want to be the teacher that doesn't actually build real stuff