I’ve been doing something new with my coding. I’ve been doing two-hour code sprints–which seems more like a 5k, but whatever sprint is easier to say–where I eliminate distractions and just code. So no social media, email, meetings, slack, etc. I post on Twitter what I’m going to do to see if anyone wants to join in with me, turn on some classical music and dive in. It’s been really great, and I find that I’m way more productive in large chunks of time, rather than 25-minute sessions. You should join me sometime! But here’s the thing, this week, I couldn’t get my code working. Most of those two-hour sessions were spent breaking things or fixing one thing that broke another. It was frustrating, but I’m working on being ok with it. I know, I know, all you experienced devs are out there with your lecture voice telling me, “welcome, to the dev world.” I get it, but it’s going to take some getting used to, ok?

One of the great things about learning to code is that you’re almost always moving forward. You have tutorials and labs, and you can usually push through something without being stuck for hours because you’ve just learned to apply a particular skill that you need for that lab. Out here in the coding jungle, it’s not always so clear. For example, last week, I spent all this time researching the React hook useEffect. I was trying to get it working, and I was hitting wall after wall. I thought I was close, and then my teammate looked at my code and said I didn’t even need to use it there. I was so hyperfocused on using this cool thing, that I didn’t even look at the larger picture to see that I didn’t need it.

My last sprint, I spent on the coding seesaw. I fixed one thing and it broke another. Good times when all you want to do is keep moving on the monkey bars. Another week I coded out a component on a Friday and deleted it all on a Monday because I had a new and simpler idea. Thursday, I had ten lines of code, that I replaced with three. I was trying to write a novel to fix a problem when I should’ve been writing a poem. And yes, I was frustrated a lot of those times. Just like I would get frustrated with myself when I was still in Flatiron School, but you know what, I’m also really thankful for breaking all the things.

For me, the best way to learn is by breaking things. I have to look at what’s connected, how it’s connected, and how it’s communicating with the other pieces. There are times that it takes me a while to figure it out. I’m console.logging everything. Things that maybe I should already know, but when I’m out there in the jungle, it seems a little bit harder to figure out. Sometimes the answer is simple, I just needed to climb a tree and look out at all the pieces together. Other times, I really did need to get down in the dirt. And I’m still learning how to figure out where I need to be. It’s one thing to be working on your own project, something you’ve conceptualized from start to finish, and it’s another thing to be working on a piece of a larger project. It feels a little like Bear Grylls being dropped into a location, except he’s much better at getting out of the situation.

I know that even when I level up, even when I’m closer to being the Bear Grylls of coding, I’m still going to break things, I’m still going to look things up and learn new things, I’m still going to make mistakes. It’s all part of the journey. But every time I do make a mistake, I try to learn from it, to think about how I got to that point, what I thought I should do versus what I really should be doing. Some days, I feel like my brain is going to explode. Other days, I come out of a coding session feeling like I won. I’m not really sure what I won, but I won something.

And most of the time, I wish that I had asked for help earlier. I think this will decrease as I get used to working on other people’s projects. But there have been a handful of times where I didn’t know that I could do something, just because I haven’t had that experience yet and none of the resources I looked up had the same problems. I’m fortunate to be in a situation where I can ask for help. It’s definitely harder if you’re not working with someone on a project–or your spouse isn’t a software engineer :) –but there are slack groups of developers willing to help, Twitter, or other forms of social media where you can hopefully get some guidance.

I don’t think there will ever be a time where I won’t be breaking things. Maybe I’ll be breaking more complex code. Maybe the things I break today will be simple and quick solutions in the future. But what I do think is that I’ll be learning and growing and pushing myself to continue moving forward. So if you sat at your computer and broke things all week, you’re not alone. We’ve all been right there with you.