Let’s start with some first aid:
Focused computer work and study force us into our heads and out of contact with the rest of the world. The way you are feeling is just the way you are feeling, and it will pass. Take 3 deep breaths. Go for a walk around the room, or a stroll outside. Do a body scan meditation. When you’re feeling calm and centered come back and read this article. It will be here when you get back. Listen to what your body tells you. It helps.
We are all Learners
Everything we do on a day to day basis is something we learned how to do. As children, we are blank slates, and throughout our lives we pick up new skills and abilities. We’re all learners, throughout our lives. Programming is no different. You learned how to tie your shoes, how to live your life, and you can learn to program too. Even veteran Software Engineers are all learning every day. Learning is just what we do. A little structure will help you move forward.
Tactical Method to Feel Better and Make Progress
I’m going to share some tactics that work for me. I invite you to try them yourself. You may find that some work better for you than others, or that a combination of these make a big difference.
- Make a long list of everything that you’re thinking about, every bit of technology you’re trying to learn, every problem you’re trying to solve, every thing you’re researching. Pour them out of your head and onto a piece of physical paper.
- Make a short list that is a subset of the previous list. Of the items you are most drawn to, or the parts that are most exciting to you, what would you like to tackle first? This short list should be no more than 3 items. In the Real World (as opposed to the Virtual World), this list is usually enough to achieve focus for the moment, but the Virtual World is a complex place, so we’re going to keep going.
- Make the Shortest List Ever. Write down the one singular thing that you want to understand next. Ask yourself – am I interested in learning this? Am I excited about it? Why do I want to learn this? Write down your Why next to your Shortest List Ever. This item on your Shortest List Ever might still be overwhelming to you – let’s keep going.
- Break Down your Shortest List Ever into the component pieces. If you want to learn Java, well, that’s a big item! Some items may feel overwhelming on their own, and all that means is that the item is too big to tackle all at once. That’s OK. Most problems in Software are too big to tackle all at once, so we need to break them down into more bite-size pieces. What resource are you going to go through first to learn Java? What part of the language are you going to tackle first? If it’s a problem, like making a certain feature work in your project, can you break that feature down into smaller parts? Since we are all learning, we may not know all of the components yet, and that’s OK! Be comfortable with that. Write down the items you do know now.
- Out of the component pieces, choose One Place to Start. Choose what feels approachable. Circle or copy over your one place to start. This is what you can focus on right now. We all can only focus on one thing at a time. You now have all the other things that you want to do safely written down and you can let them go for the moment to focus on this One Thing. The other things will be there later if you want to visit them again, but they no longer need to stay in focus in your mind’s eye. Let them blur, let them go.
- Now take a breath, stand up and walk around the room. You’ve done something really important in choosing your One Place to Start, and you need to shake it off! Check in with your body again, take a few deep breaths, wiggle your toes, relax your shoulders. Now return to your work.
- In celebration of our Human Imperfection, Start. Start on your One Place to Start, in celebration of how imperfect we Humans are. Accept that this will take time and there will be bumps in the road. Allow yourself to read resources multiple times, re-watch videos, and try different approaches to a feature when you’re not sure what will work. By working imperfectly and studying imperfectly and listening imperfectly and building imperfect things you will learn. The most important thing is to Start in a focused way.
- Every 15 to 30 minutes, look at your One Place to Start that you wrote down earlier. Have you drifted away from it? Did you go down a rabbit hole? If so, that’s OK. It’s good that you caught yourself. Gently bring yourself back to your One Place to Start and keep going there.
What to do When the Starting Point is Unknown
When you’re just getting into programming, the number of possible ways forward is enormous. What language should I learn? What libraries do I need? What resources are best? There are a ton of options out there and it can be overwhelming. Here’s how to get a direction that makes sense:
- Start with your goal. Figure out what you want to do. If you want to build something, figure out what you want to build. Desktop applications, mobile applications, games, Arduino, web applications – they all typically use different suites of technologies. Figure out what it is you’re trying to make first.
- Research your destination. If you’re learning to program to get a job, figure out what type of company you want to work for, and what they and similar organizations use. They’re going to hire you to build stuff, so choose to build something similar as a goal for learning. Once you know what you want to build, figure out the technologies necessary to build it.
- That becomes your Big List from the previous section. Follow the path from there.