“I don’t know,” I remember saying to my mentor on our check-in call. “I’m worried I can’t do this. Do you think maybe I’m not cut out for this?”
I waited for her assessment, fearing she would confirm my suspicion: I wasn’t good enough. But instead, she gave a kind, patient laugh.
“Ah, so you’ve reached this point,” she said. “Many apprentices feel this way at some point. No, Grace, you’re going to be able to be a good consultant. You can do this.”
That was a low point. But with the support of my patient mentors, I gathered myself up and realized I could do it — I had just been doing it wrong. The worst thing you can do when faced with a difficult technical problem is panic. From that point on, I concentrated on finding sustainable ways to tackle tough problems and keep learning sustainably.
Programming is a vast field. And it is completely normal to feel anxious when you’re just getting started and you don’t know a lot. How can you stop worrying about what you don’t know and gain the confidence, patience, and skills to learn what you need to learn?
Here are nine lessons I've learned during my time in the 8th Light Apprenticeship Program.
Lesson 1. Learning may require a new approach than you’re used to.
If you are just starting your technical journey, and haven’t completed much technical learning before, you may need some help figuring out a good learning technique.
Although the concepts may feel unintuitive or overwhelming at first, it’s important to remember that just because you haven’t done this kind of thing before doesn’t mean you can’t. When you’re learning something as complex as a programming language or new framework, it’s expected that you won’t get it all at once, and certain concepts will take repetition to sink in. This isn’t you being stupid; this is how everyone feels.
Lesson 2. Embrace both diffuse and active learning.
According to Learn Like A Pro, a good learning session involves both active and diffuse learning. Active learning is when you’re concentrated — focusing all your attention on the task at hand. But this alone is not enough. Active, concentrated thinking on a topic is great — but you can’t sustainably do it forever.
When you’re at rest, your brain is making other connections known as diffuse learning. So after a hard study session, take a break, take a walk, even take a quick nap, and know that your brain is still making valuable connections as you rest. The catch? You need to actually relax your mind, so doom scrolling on your phone doesn’t count.
Lesson 3. Pair pair pair.
One of 8th Light’s great strengths is an emphasis on pairing. When you pair with a more experienced colleague, you can learn from how they think and solve problems in real time. When you pair with someone less experienced than you, you can reinforce your own knowledge by explaining it to others. It’s a win-win, and a great use of time.
Lesson 4. Remember that it’s not magic.
Nothing that happens in a computer program is magic or devilry, even if it seems like it. There’s a reason for everything (even if you can’t understand it quite yet).
Debugging can be painful, but it doesn’t have to be. Try approaching it with curiosity instead of terror, and see how much you learn along the way as you try to solve the mystery of the bug. San Francisco-based software engineer Allison Kaptur provides a refreshing take about how to love your bugs.
Lesson 5. Learn to read technical books.
Learning to read technical books effectively can be tricky when you’re just getting started. One technique I like from Learn Like A Pro is to first skim a chapter from start to finish, looking for key concepts and getting the main gist. Then, with that framework in mind, go back and read more slowly. It can help to have a high-level framework and general idea of how the concepts connect to contextualize the details as you go.
Lesson 6. Active learning through coding is powerful.
Learning by doing is a common technique to cement specific concepts. Even just repeating programming examples by retyping them, even if you don’t fully understand them, helps with muscle memory and learning. That’s because it’s more active, which strengthens your associations.
“When action grows unprofitable, gather information; when information grows unprofitable, sleep.”– Ursula K Le Guin
Lesson 7. Don’t panic or burn out if you’re blocked. Take a break.
When I look back at my apprenticeship, I can see I’ve made a huge amount of progress. But I didn’t necessarily feel that progress every day. Sometimes, I just felt stuck and unclear after a day of struggling. But sometimes diffuse learning processes percolated in my brain as I rested or slept. Unbeknownst to me, I came back refreshed and with a new ability to understand. (Think of how often a good idea comes to you in the shower, or on a walk.) Sometimes, a change of pace is needed.
Lesson 8. Timebox it!
Especially in an apprenticeship (or other training program), your mentors are there to help. When you’re just getting started, certain bugs may be beyond your understanding at first — you just don’t have the context.
My mentor recommended I set an amount of time to try to figure something out on my own, and then ask for help. Then you can reach out to a more experienced person, who may be able to get you unstuck in a few minutes. Plus, this gives you an opportunity to summarize what you tried so far and explain your theories, which is a useful opportunity for feedback and growth.
Lesson 9. Think of it as exploring.
I think of learning a new language or framework as starting a new open-world video game. Like in Skyrim, your character explores and slowly adds features to the map as she discovers them. It may take her six hours of gameplay to figure out where a certain location is, but after she has found it, it’s easy to get there.
This serves as a metaphor for learning programming. At first, it’s just a big foggy field of mysteries. But eventually, little by little, parts of it become clear. It becomes part of your mental map and you can navigate with ease. When you recognize a point you’ve already seen on your journey, that part of the problem becomes easier to solve.
I hope these tips are helpful. To anyone considering applying for the 8th Light apprenticeship program, know that it is a worthwhile, challenging, and satisfying journey.
About the 8th Light Apprenticeship
The 8th Light Apprenticeship Program has been the spark of our success since day one. For more than 15 years, we have cultivated the next generation of software professionals by prioritizing curiosity and creativity over credentials. Apprentices typically spend five to seven months, working alongside a team of mentors and other apprentices to develop fundamental skills across a variety of learning experiences. Learn more about the 8th Light Apprenticeship Program.