Learning to take a breath. I learn to dev code by sitting in front of a computer and banging on a keyboard till it compile. I always felt like my code was shit because I was praying to the computer gods for it to just work. Then I read "Flash Boys" by Michael Lewis. In the book there was a god tier programmer that was a legend among his peers. He describe his way of coding was first writing the entire program using paper and pencil. Then he would sit down type it all in, and bam he would be done. I realize at my current level I couldn't do something so simple. I relied to much on my ide to handle simple task. It was causing a disconnection with logic flow in my head. So I stop just drawing boxes with class names and such on a white board, and start actually writing code on paper. It help me find small knowledge gaps, force me to remember little things, and reinforce what I know and don't know. The other thing it does is remove the simple temptation to bang on something till it works. We should be aiming to become software engineers, not grease monkeys. A engineer calculates and design a solution before he even attempts to make something. A grease monkey first thought is to hit it with a wrench. My mentor would tell me stories about going into meetings to design software where he would point out possible problems with the design they had come up with. Many of the programmers would disagree with him out of the box, but every time they would ran into problems right where he said they would be. This pattern always seem to repeat itself programmers would rather spend time with their keyboards then a white board. Taking a breath thinking about the problem calculating what is needed design and test a possible solution then actually attempting the solution is something truly difficult to do. Current state of programming is like asking a kid a math problem Me:"Timmy whats 1+2?" Timmy:"1?" Me:"No, whats 1+2?" Timmy:"2?" Me:"No, whats 1+2?" Timmy:"3?" Me:"Correct, next problem".