In a word: gradually.
And my response.
ABSOLUTELY!! That was me, 100%, about three years ago.
Here’s what I did to change that:
- I picked a thing I wanted to build. In my case, a little expand/collapse widget seemed like it would be easy.
- I literally wrote down on paper what needed to happen to do it. For example,
- Detect when the link is clicked.
- Find the content that goes with the link.
- If it’s closed open it. If it’s opened, close it.
- Then, I googled how to do each part of that.
- I tossed it up on GitHub.
- I picked another project and repeated the process.
- I eventually started adding features, more learning.
- I started emailing authors of JS articles I liked, or bugging them on Twitter, with questions.
- Todd started ripping apart my work. I learned a ton.
- People started issues pull requests for my projects to add features or fix stupid bugs. More learning.
That brings me to today. There’s still so much I don’t know. ES6 arrow functions still confuse the hell out of me. I suck at prototypal coding (I prefer what’s called functional programming). And on and on.
The thing that had the biggest impact on my career, though, was open sourcing all of my pet projects. They started small, grew over time, and getting feedback, questions, and feature requests pushed me to learn even more. I’d recommend that to anyone.
Having someone more seasoned rip apart you code is a great way to learn, too. The Slack channel access that comes with my pocket guides is awesome for that.
Wow, sorry this was so long!