[code]Zombie #2 : How to avoid burnout & survive the learning curve

Coding for the brain-dead…

● Confronting the dreaded dip.
● You vs. yourself.
Tricks to learn better for the frustrated developer. 
● Survive code learning apocalypse.


Learning to code is fun. Especially if you find confusion and mind numbing frustration to be fun. Doing cryptic puzzles on a black monitor for 8–14 hours a day sort of fun. And don’t worry, its years of fun, considering the sheer amount there is to learn and the ever evolving technological landscape. Your only friends are the console errors, until they are not your friends and they turn into evil little letters and numbers that misdirect you at every turn. Yet every day, you start up your computer and stare into the void, determined to survive coding oblivion.

I believe its important to get this out of the way, coding is hard. It is a well known. Nobody breezes through. Nobody makes it out without a few scars and at least some level of coding induced PTSD. There are too many things to learn. There are too many strange counter-intuitive and alien backwards ideas. You are going up against a truly formidable foe. The ever growing sea of technology to be learned and your own personal demons (some of which you never knew you had) will leave your head spinning. Your intelligence will be in doubt constantly. Your patience will be tested daily.

It may seem counterproductive to start a blog about burnout by talking about how absolutely terrifying something is, but hear me out, 
here are 5 ideas to fight the demons of your mind while you go on your perilous quest to become a software developer.

1. The Dip (desert of despair)

Just remembering the fact what you have decided to do is difficult, is the first step in possibly getting some control. Its not much, but it helps. Hearing people talk about coding in a light hearted fun way personally makes my anxiety skyrocket. It makes me feel like I should be having a good time, that I shouldn’t be struggling, that I should be smarter than this. The truth is that after a certain point, pain and lack of fun, lack of motivation is inevitable. The only difference is in how you deal with it. Enter the DIP.

Almost everything in life worth doing is controlled by the Dip. At the beginning, when you first start something, it’s fun. The Dip is the long slog between starting and mastery. The Dip is the difference between the easy “beginner” technique and the more useful “expert” approach.”
- Seth Godin

The above diagram was taken from an incredible article entitled 
“Why learning to code is so damn hard” (told you so). 

The Dip is very real. It exists for essentially anything worth doing. Remembering this idea can be the difference between getting through and being crushed by it. Freaking out means you care, thats a good thing, but too much panic mode can be debilitating. Let yourself know on a daily basis that you are climbing a mountain. It is perfectly ok to find it un-fun, or overwhelming at times. You are not crazy for thinking so. You are not stupid for not having all the answers. Programming can be frustratingly exact. The smallest missed letter or period could be the difference between a fully functioning program and an error that takes 2 hours and 15 cigarettes to find. It would actually be quite strange if everything went smoothly (also incredibly unrealistic).

If you're going through Hell, keep going. 
- Winston Churchill

2. Grit

Research has determined that the most the important aspect of learning anything difficult is not IQ or talent. It is something which has been coined “Grit”. Grit is a persons level of persistence in the face of a long standing challenge. Grit is the long haul. The marathon. Not the sprint. Grit means you can take a beating and get back up, many times. 
Grit means sitting for hours until you figure out the solution to the problem,
or using all resources to get something done despite it seeming impossible. 
The true strength of your inner character. The bad ass gene.

Just remembering to think about grit will help you lose those thoughts of intelligence inadequacy or your lack of natural coding talents. Grit laughs at all of those things. Can’t figure something out, grit says you will figure it out within a few hours or days. Can’t learn fast enough, grit says it doesn’t matter. What will take a naturally talented computer person 1 week to learn will take you a month. Grit doesn’t care. Studied for days and still failed your test? Grit is already making plans to crush the next one. Made a crappy project that doesn’t work? Grit laughs at your stupid project. Grit is your steel. It is the mountain you can summon when things get really tough. 
Grit states that with enough time and effort, everything can be beaten.

The trick is to cultivate Grit. At your current level, maybe its not as strong as you would like. Remember to work on it. Level up. Train yourself to fight through all challenges no matter how obtuse or boring. Train yourself to work when it isn’t fun. Find a way. There is always a way. Accept that you will do that which you have set out to do. Whether that means becoming a software engineer or anything else you have your mind set on. All the ships home have been burned, you must move forward or die (no pressure).

In the year 1519, Hernán Cortés arrived in the New World with six hundred men and, upon arrival, made history by destroying his ships. This sent a clear message to his men: There is no turning back.
Two years later, he succeeded in his conquest of the Aztec empire.

3. Meditation. Yes its weird and boring. Do it anyway.

Nobody has time for meditation. Give me a break. I have coding errors coming out of my ears and deadlines. I have to learn 3 new languages yesterday. Im running late. Im on two hours of sleep this week. How am I supposed to sit in a quiet room for 10 minutes? What is the point?

Im sure you have all heard the hype for meditation and either considered it for a second or dismissed it completely. Others maybe tried a few times, assumed they were doing it wrong and gave up. I am one of these people. I found meditation to be weird and boring but the truth is, I know it works. I have seen dramatic differences from just a few minutes a day. Nothing even comes close in terms of time spent over benefits gained. Ten minutes is all it takes to remember that everything is going to be ok.
This can be a game changer when you are at your wits end.

To be calm in the face of challenge is the other side of the coin. If Grit helps you plow through and brute force your way down any challenge, patience and a clear mind will take away the pressure so that Grit can get to work. Together they are a lethal combination against the hordes of darkness (and yourself).

There are too many studies to list here, but suffice it to say, meditation has been credited with some of the most amazing improvements to both well being and learning. It helps you get centered when everything around you feels like its burning. Meditation helps you step out of the storm, and view it from a distance. Everything is ok. You can take a few minutes and remember that you are a human being floating on a giant space sphere. That life is strange. People are strange. Coding is really strange. These are the thoughts that help me when I sit in silence right after realizing something is broken. These are the thoughts I think when I get overwhelmed by all the things I still don’t know. When the darkness tells me to stop embarrassing myself and quit. When even Grit is running on final reserves, clarity comes to the rescue. Only with meditation can you harness and grow its power.

Neo: What are you trying to tell me? That I can dodge bullets?
Morpheus: No, Neo. I’m trying to tell you that when you’re ready, you won’t have to.
- The Matrix

4. Neuroplasticity

Neuroplasticity: The brain's ability to reorganize itself by forming new neural connections throughout life. Neuroplasticity allows the neurons (nerve cells) in the brain to compensate for injury and disease and to adjust their activities in response to new situations or to changes in their environment.

There is currently a host of research which suggests that basically the more we learn a topic, the more solidified the connections in our brain become and therefore the easier it gets. So if at first something seems like an impossible task, this research suggests that if you keep at it, your brain will adapt and you will be able to do it. Obviously it will come faster for some, but keeping this idea in your mind as you learn might help you get past the thoughts that our brains are set in stone. They are not, and this is now scientifically proven. 
If we continue to push through, the brain adapts and helps you learn. It is also proven that the brain does this throughout ones lifetime and doesn’t stop when you get older.

There is an excellent article entitled “Are Programmer Brains Different?”
by Eric Elliott that expresses this idea in great detail: https://medium.com/javascript-scene/are-programmer-brains-different-2068a52648a7

If you want to be a body builder, you need to work out your muscles. If you want to be a software developer, you need to work out your brain. 
-Eric Elliott

5. Learning tools for your journey across the wastes:

Learning can be hard. Sitting and focusing on something for long periods of time can be grueling. Especially when you don’t feel like the material is sticking. You read the same page multiple times. Still your mind wanders and you don’t understand what they are trying to teach you. It can be very frustrating. Here are some ideas to try when nothing else is working.

Break down each part of the problem in its smallest detail.
Press this, then press that. Put this here because it does this. 
Be simple, as if you are trying to communicate with the walking dead.
Write it as if you might get amnesia tomorrow and have to literally relearn every single tiny step. Teach it to yourself as if you were 3 years old.

There was a study conducted by psychologists of the University of California, LA, stating that by slowing down the process of writing you actually have to think about what you are writing (go figure).
“When we write, a unique neural circuit is automatically activated.” “There is a core recognition of the gesture in the written word, a sort of recognition by mental simulation in your brain, it seems that this circuit is contributing in unique ways we didn’t realize.”

The technique works like this, turn off all distractions and give whatever you are doing full attention for 20–25 minutes. Then take a break for 1–5 minutes. This really helps to create a work then rest situation that many find very helpful in keeping them motivated. You can set an alarm that reminds you of when to work and there are even apps available for the purpose. Using this technique has been found to increase productivity greatly in those who take to the habit of actually using it.

In a recent study is was found that we learn things fastest when doing them immediately after learning about them.
Here is the breakdown representing knowledge retained:
10% from reading
20% from audio-visual
50% from demonstration
70% when practicing
90% using immediately

This method has been explored by many people and seems to give good results. Using index cards is a time old tradition to help in learning. Though it might take a bit of ingenuity to use this sort of technique for programming specifically, it is still worth a shot for anyone looking for another way. 
A very popular free app called Anki is easy to use and free to download. 
Basically you just write a question on one side and an answer on the other. 
You create a deck of cards that you can go through every day to learn anything that you need. Its simple and definitely worth a try.

5. Blocking distractions:

Turn off your phone. Turn off your internet (if your work doesn’t require it). Turn off all televisions and sit in a quiet place. Don’t do work around people that will distract you. It is a myth that we humans can multitask well. In reality, the more ideas you are juggling, the less focus you can devote to your work. It has also been shown that just a minor interruption can take you away from the flow state necessary to work or learn at maximum capacity. 
Just one instant message or tweet can throw you off. 
Don’t let that happen to you.

Next, you can use dedicated software to block your computer from distractions if you can’t control yourself. I sure can’t most of the time. 
Here are 5 examples (there are many more):

1. RESCUE TIME ( tracking productivity and blocking distracting sites)

2. FREEDOM (app for blocking anything you want)

3. Hocus Focus (app for viewing one window at a time on macOS)

4. Cold Turkey (for locking yourself out your computer)

5. Self-Control (focus app for macOS)

● Remember that the Dip is real. Everyone must traverse the desert. Accept it. 
● Grit is more important than IQ or talent. Grit destroys all obstacles. 
● Meditation will help you stay centered when everything seems impossible. 
● Use learning tools to help you. There are ways to make things easier.
● Remove the multitasking mind-frame and all unnecessary distractions.
● Burn your ships. Accept that there is no way back. You are going to beat this.

I will end this article where I started it, coding is hard. There are no two ways about it. Anyone who says otherwise is either a liar, android or computer wizard. It is a mighty challenge to learn such a mountain of information(especially if its in a short time). If you stay focused, use your grit, and don’t let the demons get to you, it is only a matter of time. Don’t get tricked by the confusion and frustration. Everything is fine. Coding is counter-intuitive and weird, especially when you are just starting. Brush it off and move forward.

As a side note, drink lots of water, eat a healthy diet, go to the gym/go for a run every now and again. And most important of all, get a full nights rest. 
I get into it in this article but its definitely important. 
If any of these things are out of alignment, your learning will suffer greatly. 
And yes there is a great article about that here:

You survived…for now.