Talk · Dale Spoonemore
Code the Change — CocoaHeads OKC 2018

Edited excerpts from this talk. Follow the recording links to watch the full presentation.
I wanted to build an app to make it easier
In the recording: 0:31–1:02.
I had to memorize a lot about vegetables and what vegetables can go next to each other. All of these things I had to memorize and keep track of, and I was constantly carrying around books in my garden trying to keep track of all this information. I wanted to build an app to make it easier. I wanted to make an app to make gardening easier.
Mentors are a critical step
In the recording: 5:37–6:49.
Mentors are a critical step, or at least for me, for learning how to code. I had to have them. What they're going to do is they're going to help guide your learning path. In the beginning there was all these things I had to learn. Didn't know what to spend time on learning and what was a waste of time. Having them around really helps because they're gonna help guide and help you understand what you need to actually be learning. They're also gonna be there to answer questions, to review my code, and then to encourage me.
Once I had the mentor in place, once I learned what I need to learn, I knew that I needed to go back to the foundational principles because I had taken some programming courses in college, but it didn't stick with me, and I knew that I need to go back to that. As far as the foundational principles were concerned, I leaned on previous experience. I had a lot of HTML and CSS experience that I had no idea could even be used in mobile development.
Podcasts help fill that non screen time
In the recording: 8:35–9:20.
Podcasts help fill that non screen time. When I'm out in the garden I spend a lot of time listening to podcast. Syntax is my favorite one, and they're putting out a lot of content right now, so it's hard enough just keep up with that one. But when I do catch up on their stuff I'll move over to Dev Chat. There's a lot of podcasts out there that are great, so whatever your interest is, find a podcast that's about that, and I guarantee there's a good one.
What I did was on Twitter I started following all the people that I was learning from. All these Pluralsight authors and YouTube people that are making YouTube videos and things like that, I started following them on Twitter and then reading what they're writing about and reading what they're following and what they're interested in. From that it really helps. I mentioned earlier the mentor helps you know what you need to know. Well, this helps too.
You can't learn this stuff overnight
In the recording: 10:30–12:07.
You can't learn this stuff overnight. I'm not a very patient person by nature. If I can't figure something out, I get frustrated. What I've had to learn is to have patience. When I get stuck on something, there's the thing I can't figure out, just walk away from it and go do something that is completely of the opposite mind. For me that's going out the garden and watering or washing dishes or just something I don't have to think about, something I just do mindlessly. Every single time while I'm doing that an idea will just come to me. Learning to trust that process was huge for me because in the beginning I didn't. If I couldn't figure something out, I get frustrated, but you've got to learn just to walk away and to come back to it.
On a related note, don't get stuck. If you're stuck on a problem for a day, reach out to someone. It doesn't make you any less of a developer. It doesn't mean anything less of you. I spent a lot of time in the beginning just being stuck on something for two days, and then I go talk to someone at work and they have the answers right there, and it would have saved me so much time and frustration. On the other hand, you don't want to ask about everything. There's a balance there, and that's how I learned, is through being stuck. But don't be too hard on yourself.
Also, don't obsess over picking a language and a framework. When I first started learning, I was thinking about should be this, should be that. It was a lot of waste of time. I should just start moving, and then what I've learned now is anything I learn on one framework or language generally helps me in that other area. This is all pretty similar stuff.
The graphics and the text
In the recording: 18:42–19:11.
Spend time on the graphics and the text. It is really important. You've really got to put your marketing hat on. Find a friend that's good at this because it's so important. People were searching the App Store, that text they see and those screenshots they see, that's going to decide whether or not they download the app. I've spent a lot of time on that text and those graphics, just trying to make those as to the point as I can.
You've got to really be purposeful with your time
In the recording: 21:41–21:52 · 23:39–24:10.
You've got to really be purposeful with your time. I want to mention the book Essentialism. It helped me a lot deciding what you should spend your time on and what you shouldn't.
What Buffer does is automatically post for me at given intervals. What that allows me to do is go on a weekend, take a couple hours, write all of our marketing stuff for the next two weeks, and then go back to coding. When I have to manage that on a daily basis, that will drive you insane.
Don't sprint a marathon
In the recording: 25:04–25:51 · 27:18–27:43.
Lastly I want to talk about some lessons learned. These are just kind of from the past six months of running a side project and of having a full-time job, lessons I've learned from it. The first one is don't sprint a marathon. What I mean by this is when we first launched I had no idea what to expect. We released, and then within about a month it just started taking off like crazy. I tried to sprint with that. That was not the right plan. I should have remembered this is a marathon. I need to keep on my goals. I've run a marathon and I've done this before, so this is not a good idea because you use all your energy upfront. I'm still trying to kind of recoup from that and get back into a more sustainable way of running a side project and having a full-time job.
Reach out for help because it's going to come to a point to where it outgrows you, and you've got to reach out for help. When we launched this, it was just me, my wife and my kids, and now it's grown to having a friend that's a developer that works with me. We have other people that pitch in and help. People will be willing to help. Be open to it because I'm not very good at reaching out. I've had to learn that.