This week, I'm at Big Nerd Ranch's Javascript Bootcamp. If you've never heard of their bootcamps, they're intense to say the least. It's one week of coding, 12 hours a day, and it moves fast. As I write this, I'm halfway through and I feel like I'm drinking through a fire hose. I'm learning tons of new things, and my brain feels like it's getting the workout of its life.

As I go through this experience, one of the things that has been helpful is being able to push through the fatigue that comes from learning programming. The challenge is like any tough skill we try to pick up. Learning to play basketball when all we do is throw up air balls, or fighting through an impossible workout.

These are the times where I've noticed how crucial it is to fight through and keep pushing myself.

To do this, I'm going to share with you some techniques I've learned over time. These small but simple tricks will help you get through those last minutes of your workout, or the last couple lines of code.

1. Smile through the tough times

When things get hard, it's easy to get down on ourselves. We see this all the time in others. In basketball, someone misses an easy shot and they're upset the whole game. A quarterback throws an interception, and his attitude brings down the entire team. Or your startup goes through a hiccup and you just want to sit at your desk and cry.

Whenever you feel yourself about to experience something like this, show your teeth and smile. Our smiles tell our minds how to feel. When you show your teeth and pull the ends of your mouth up, you'll notice a huge difference in your attitude.

For instance, today I was stuck on this coding problem for over an hour. I was extremely frustrated I couldn't figure it out, and I could feel the energy draining from my body. Instead of getting upset, I started smiling and even started laughing about the situation. Believe it or not, the next few minutes I found the solution and I got pumped up!

2. Band with the people who are struggling with you

Knowing there is someone else going through your problem helps psychologically. This is one of the reasons things like Crossfit are taking off. Apart from the physical workout, people love pushing through exhaustion together. It creates amazing relationships, and gives everyone extra energy to keep fighting together.

One of the nice things about learning to code in groups is that you can work on problems together. In fact, pair programming is one of the best ways to learn. And when you're all away from the outside world coding through impossible problems, you end up wanting to help each other out. The friends I've made so far have helped push me to keep moving even when I wanted to stop, and that's been a huge reason why I'm still going.

3. Make up an enemy

What I'm about to say is going to sound a bit nerdy, but just go with it. My first day at Big Nerd Ranch, I had a problem that I thought would take me the entire camp to solve. Here was this giant obstacle that stood in my way, and I felt way in over my head.

To get pumped up, I imagined that the problem I was solving was the enemy. It was my job to write this code to show the problem that was the boss, and I had to do it to save the day.

Now besides that being a bit extreme, I'm sure most of you have had that same feeling. Maybe it was a high school rival, or a major competitor in your industry who you were going up against. Regardless, having an enemy pumped you up and got to ready to rock and roll.

When times get tough, create an enemy and make it your mission to defeat it. Competition is a great aid in helping you optimize your perserverance.