Life is always throwing a wall in front of us. These walls can stop us, break us, or just impede our progress. Everyone hits them now and then. Some people really struggle to over come them. But, there are a few things I’ve learned from competitive swimming and my career as a developer that might just help you past that next wall.
I love to swim. I started swimming around 6 years of age and never stopped until near the end of high school. My favorite stroke is back stroke, but my favorite competetion is the 5k freestyle event. For most of the teams we competed against, I would win easily. But for the real competition in state meets, I lost terribly.
The hardest thing to do during a 5k is to keep track of your goal. Doing 200 laps in 25 meter pool is a bit boring. You start to loose focus on what your doing and start looking around (at least for me). This happens around the 100th lap. This is bad because you will turn your head and crash into the next lane. You have to keep your eyes straight on your lane and lane guide on the bottom of the pool to swin the least amount of distance. If you approach the wall at an angle, your flip turn will propel you into the next lane (I have experience with that!).
To get past the loss of focus, I would count the laps and each stroke on a lap. This way, I always knew how much further I had and when to really kick it in. When that gets too boring (around the 150 lap mark), I try to picture me winning the race. That would usually keep my focus.
Next comes the endurance wall. This comes around the 160 lap for me. Your arms and legs feel like they are too heavy to move through the water. Discouragement and pain makes it very hard to keep going. Not to mention the need to start going faster to beat the others who are experiencing the same feelings. This becomes the battle of your will. The “I can’t handle anymore” thoughts start bombing your mind and zaps your resolve to continue. If you can’t manage this wall, your out of the race!
Since misery likes company, I would remind myself that the other feel just like I do. They are most likely slowing down some and I can take this opportunity to get ahead. I would resolve to keep going no matter how it hurts. Then I would remember that other times when I got past that feeling that I actually felt better and stronger. Remembering past victories has helped me more than any other technique.
Programming and Designing
You might be thinking, “This is interesting, but what does it have to do with programming?” I feel they are the same problems. Every computer designer (I used to design ASIC chips) and programmer feel the effects of these walls: loss of focus and endurance. I feel it happens to writers, painters, and all forms of creative work. The reason for that is that there are not all exciting times in these tasks. They all have the borring areas and keeping at it until it’s done gets very hard when it seems to be a long time away. But, what I learned as a swimmer has helped me to overcome these issues as a developer.
Loss of Focus
Focus is always lost due to boredom. Not everything in a creative process is interesting. There are the boring times. Especilly during the beginning. You have to setup your work for the project. Install or acquire the items to help in that project. Organize it all in a way that is easy to keep working. The list goes on.
Worse than the boredom is the distractions: seeing a different library that looks interesting to use, but has no barings on the project at hand. Then you think of another project that would be great to use that library. Next thing you know, you have started a different project than your original project. I’m sure others have had this issue and not just me!
Boredom is often fought by keeping your goals in mind. When it’s boring, just think about how much the actual design would be fun. Start the programing in you head while scaffolding the project. This usually keeps me on the right track.
I fight distractions by having a file of future projects and interesting libraries always a hotkey away. In NeoVim, I use the Mind extension to keep notes while coding. In the desktop, I use Obsidian to track interests. Before these programs, I used many other programs and moved around to find what works best for me. Many of the side projects never see the light of day again, but that is okay. Once I’ve written it down, I can focus my mind on the project that is at hand.
I once had a project to design an 86 bit by 86 bit multiplier. They wanted to have it calculate a result every 100ns. This was around 1995 when the ASIC design system weren’t fast enough. I had to place each transistor and the interconnecting wires by hand to get the design fast enough. That was very boring.
To get past the boredom of placing transistors and wires to checking the timing, I had to focus on the results. I also kept thinking of ways to check each wire and how to make it shorter. But, even that doesn’t keep me on track always. Sometimes, you just have to switch what your doing for 15 minutes. Easy for me since I was the companies network maintainer as well. I would set a 15 minute timer, work on an issue with the network, website, or email server, and then get back to the design work. These scheduled stops helps keep me focused longer on each design project.
Design schedules get missed all the time. It’s a fact of life in the design community. Especially when you have a boss that likes to give deadlines that are impossible. Also, some projects are just long timers. Most ASIC chip designs last over a year! I’ve been working on Modal File Manager and EmailIt since 2018. They are my long running projects right now. It feels like they will never get done. I need more endurance to keep going.
I’ve taken a minute and looked at other long term projects on GitHub. I can see that many have lulls in development and changes about who supplies updates to the project. You see, they also have endurance issues. Just realize everyone feels like that from time to time. Don’t get hung up in the moment, but look to the end when the project is very usable. Think about all the ways your project will be useful for others. There is satisfaction in doing something for yourself. But when others are helped, you feel even better!
Everyone likes ice cream. Especially home made ice cream. I remember when there was a fresh snow fall and the road was covered in fresh snow as a kid. I would check to see if school was out. If so, I would rush outside to slide down the hill first. We had the perfect sleighing hill that had a 90 degree turn 3/4ths of the way down. It then ended with a launch out into the golf course. If you made the turn without hitting the neighbors house (I did some), you could launch up to ten feet in the air (I felt like it was more than that). I would throw the sled to the side so I wouldn’t land on it. It was great fun.
Afterwards, we would find a patch of snow that wasn’t touched by animals (you know, the white snow and not the yellow snow) and get a big bowl of it for mom. She would make the best snow cream there is (you know, lot’s of vanilla and sugar). The problem was the brain freeze while eating it. You can’t think or do anything while the freeze travels around your brain. You’re just totally locked up.
During writing a program, writing an article, or any creative work (I love tatting, crochet, and knit), you get to a point in a project where you go: what’s next? How do I fix this? How did I get here? Brain Freeze!
What do you do then? Unlike snow cream brain freeze, creative brain freeze can last a long time. As soon as you recognize that you are having brain freeze, get up and change jobs. I often take a shower or a nap to get away. Other times, I just switch projects to work on for a while. I always have several irons in the fire.
If the brain freeze is from a problem, look on Stack Overflow for a solution. Many great problems have been fixed this way. If you don’t find a match, ask your question. Having a community working with you is great for brain storming - a great method to get over brain freeze. Nothing like a good storm to thaw out a brain!
I hope this has helped you as well. Just remember, we’ve all been there and will be there again in the future. Just keep your eyes on the end result and keep moving.
- Fighting Boredom
- Keeping the none boring parts in mind while doing the boring parts.
- Taking 15 minute breaks to focus on something else when the boredom gets too bad.
- Just realize you aren’t alone. Everyone runs into this wall.
- Looking at the results when the project is done
- How much you are helped, but even more how others are helped
- Brain Freeze
- Walk away from it for 30 minutes and focus on something else
- Look on Stack Overflow for similar situations in your project
- Get advice from others - community projects are great
Acknowledgement: The picture at the top is from Envato Elements.