The Wetware of Coding: How to Deal with Stress and Stuckness
Tags: beginners, coding
Published: 2023-05-11 21:56:42

I've been practicing full-stack software development in a Flatiron boot camp for the past 2.5 months now. In that time, I've learned a lot about JavaScript, and I've also learned a lot about the wetware of coding: what goes on behind the scenes, in your head and in your body, when you're coding.

One of the things I've learned is that getting stuck and feeling stressed is a natural part of the coding process. We've all been there: staring at a difficult problem, with no solution in sight, banging our heads against our desks in frustration, feeling the pressure of time as it slips away and we're getting nowhere. These feelings are often heightened even more when we're new to coding.

The good news is that there are things you can do to deal with stress and stuckness when you're coding.

## Stress Management
For me, learning to deal with the stress and doubt has been critical to moving forward in coding and improving my life while doing it. Some techniques that are great for this are: 

- Take a break. Seriously, take breaks! It may seem counterintuitive, but taking a break can actually help you to be more productive. Get up and move around, or step away from your computer for a few minutes to clear your head. This has been critical in helping me.
- Talk to someone. Sometimes, just talking to someone about what you're stuck on can help you to see the problem in a new light. Find a friend, family member, or mentor who you can talk to about your coding challenges. Failing that, try the rubber-duck method: talk to an inanimate object, like a rubber-duck, walk through the issue, explain the code and what it is you are trying to do.
- Ask for help. There are many resources available to help you when you're stuck on a coding problem. You can search online for help articles or tutorials, or you can ask for help from your classmates, teachers, or mentors. There is even AI nowadays that can help explain things differently or point you in the right direction  
- Don't be afraid to fail. Everyone fails at coding sometimes. It's part of the learning process. Failure is a learning opportunity and a powerful way to learn something well. Don't let failure discourage you. Just pick yourself up, dust yourself off, and keep going. 

In general, I try to follow these tips for stress management:

- Get enough sleep. When you're well-rested, you're better able to cope with stress.
- Eat a healthy diet. Eating nutritious foods gives you the energy you need to power through tough coding sessions.
- Exercise regularly. Exercise is a great way to relieve stress and improve your mood. I love biking and rock climbing myself.
- Practice relaxation techniques. There are many different relaxation techniques that can help to reduce stress, such as meditation, yoga, and deep breathing.
- Set realistic expectations. Don't expect to be an expert overnight. Coding takes time and practice.
- Celebrate your successes. When you reach a coding milestone, take a moment to celebrate your accomplishment. This will help you to stay motivated and on track.

## Time Management 
My favorite ways to take a break and destress are to meditate, do calisthenics, and go for a walk. Doing those things really helps me chill out and refocus. Additionally, knowing _when_ to seek help is super critical. I have spent way to much time going down rabbit-holes when trying to get unstuck. As a general rule, I follow the 10-15 approach: spend 10-15 min researching online, reaching out to colleagues, leveraging AI tools, or taking a break. If these steps don't yield results, it's time to escalate the issue to a teacher, senior developer, etc.

Some time management strategies for coding I have looked into and would recommend checking out are:
- Pomodoro Technique: The Pomodoro Technique is a time management method that breaks down work into intervals, typically 25 minutes in length, separated by short breaks. (my favorite, I do a 60 to 10 interval)
- Eat the Frog: The Eat the Frog method is a time management method that prioritizes tasks by importance and difficulty. The idea is to "eat the frog" first, meaning to tackle the most important and difficult task first thing in the morning.
- Time Blocking: Time blocking is a time management method that involves scheduling specific blocks of time for specific tasks. This can help you to stay focused and avoid distractions.
- Getting Things Done (GTD): GTD is a time management method that involves five steps: capture, clarify, organize, reflect, and execute. The goal of GTD is to get everything out of your head and into a system so that you can focus on the most important tasks.

There is no perfect way to destress or manage time. You should experiment with various methods and find what works for you. Create your own workflow.

Keep these ideas in mind. They are very important. Don't forget, you are not alone, we have all been there, and will all be there again. So let's help support each other! Good luck!