Talk · Dale Spoonemore
Code the Change — OKC.js 2018

Edited excerpts from this talk. Follow the recording links to watch the full presentation.
You got to care about what you want to build
In the recording: 1:54–3:12.
The first step is to get inspired. Obviously my inspiration was the garden. I wanted to build something. When I took programming classes in college, the stuff that I was building was like rebuilding a calculator or doing something that I just had no interest in. The way that my brain works, got to be interested in something to be effective at all in that thing. If I don't care, then I might as well not even do it.
My team, they were the ones that inspired me to actually do it. That programming class that I mentioned, I've failed that class in college. I had made programming this huge mountain. You got to get inspired about something. You got to care about what you want to build or just care that you want to build something.
Mentors they're gonna guide your learning path
In the recording: 3:21–5:06.
You've got to find someone. This community is very willing to help. There's all sorts of people on Twitter that will help you. Mentors, they're gonna guide your learning path. They're gonna help you know what you need to be learning.
They're gonna answer your questions, but you don't want to go to them immediately for every question. You got to learn how to learn on your own. If I get three hours deep into a problem and I have no solution and nothing's working and I've already taken a couple of breaks and I can't figure it out, I know I can go to Chase. Having that reassurance frees me up to go figure out problems instead of worry about if I'm gonna figure out the problem.
Building something taking it apart
In the recording: 5:29–6:21 · 7:23–8:18.
The next step is to learn the foundation in principles, and this is where you got to do some work on your own. No matter who your mentor is, this is where you got to go do work. I'm a very visual learner. I'd like to learn by watching someone build something and then redo that on my own. Code school is a great place where you can actually just go do code. They have little coding assignments. It took me a couple weeks to go through a JavaScript course and get my basics down and understand how loops work and all that kind of stuff that you need to learn.
Whatever framework you want to choose, it should have great documentation behind it. All the good ones out there right now have really great documentation behind it, so just go to those websites and just follow that documentation. Those websites all linked to other great resources. Just immerse yourself in that stuff and just start building.
I went through the angular tour of Heroes probably eight times, just going through and building it and getting to the point where I was confused and I felt overwhelmed. Then I would go back and start at the beginning again, and I build it again from the beginning. Every time I made it farther and farther until I got to the end and it all made sense. For me that was how I was able to learn: building something, taking it apart, taking a finished code, trying to take it apart or just change it and to see what happens.
It gives you a lot of confidence in the beginning
In the recording: 11:45–12:34 · 23:26–24:29.
These frameworks make things so much easier. Yes, it's daunting when you first come into it because these frameworks seem huge and complicated. Whenever I built my app, for example, I could go through the ionic documentation. They have pre-built examples of everything you would ever want to use: buttons, lists, grids, search boxes, everything. The code for it's already written. I copy and paste that code over, I change some labels around and maybe change the data model. It's a great way to start, and that's how I was able to get that prototype up in three weeks. It gives you a lot of confidence in the beginning and some momentum going.
It was the end of July whenever I started, like I decided okay I'm gonna do this. I dedicated all of August to watching Deborah Kurata over and over on Pluralsight. I would go build enough until I got to a wall, and then I knew okay I got to learn all this stuff now. I go in cycles, like three to four weeks of learning and then three to four weeks of building. That's the way it's worked out so far. That also adjusts. That was in the beginning. Now it's maybe a week of learning and it changes.
Patience and the power of walking away
In the recording: 12:39–13:58.
Patience and the power of walking away. Whenever I got stuck in a problem in the past, I would just keep looking at it and spin all day and all night, just keep thinking and ruminating on it the whole day. Most the time that would not end up being successful. If I can't figure it out within an hour or two, whatever that kind of time limit I've given myself, I would get up and I'll walk away and I'll go do something that uses another part of my brain, something completely mindless like my garden or just doing something I don't have to think about.
Almost every single time an idea will pop in my head of the way that I could solve that problem, and I'll sprint inside and start coding. You've got to walk away from a problem and you got to have patience. Sometimes it takes two or three times of walking away or two or three days of doing that, but you just have to have patience and have trust in yourself that you're gonna be able to figure it out.
Code something every day
In the recording: 15:31–16:28.
Code something every day. I still struggle with this because if I can't go build a whole thing, then I don't really want to build it. But you've got to commit yourself to coding a little bit every day. Even in those days that you don't feel like you can, you still have to do a little bit, especially in the beginning when you're trying to get that syntax down and you're trying to remember where the semicolon goes and how you open up an object. When you're learning that stuff in the beginning, you've got to do a little bit every day to make it a habit.
The next thing is to fight through imposter syndrome. It's real. You're gonna have it. You're gonna have times where I have it with my own code, where I have code that I've written two weeks ago and I look: what was I doing there? How was I so smart in that moment? You just gotta fight through that. You're gonna have bad days and it's okay, but it doesn't necessarily mean that you don't know what you're doing.