For a long time, I was a very indecisive person. I had trouble even picking a career path because I was afraid of picking the wrong one.
What I was lacking was a sense of self-agency.
I needed others to tell me what the correct path was, whether that was friends, family, or even society as a whole. I didn't trust myself to make decisions that would benefit me. It was only when I self-reflected and finally acted on what I thought was best for me, that I gained more confidence to trust my own decision-making abilities.
What is self-agency? Here are some examples from Psychology Today:
- Asking someone to eat dessert with you so you don't feel guilty.
- Borrowing societal definitions of success, beauty, etc. w/o considering your own.
- Asking for dating advice before defining your own thinking.
- Following the advice of self-help experts without thinking for yourself.
- Using social media “likes” to boost your confidence.
- Using your spouse as a buffer at family gatherings (or even a friend at a party).
- Asking your therapist for advice.
- Using an impressive job title to boost your confidence.
There's a lot of the need for reassurance in these examples. Self-agency, in essence, is a skill in which we don't require that reassurance. We have faith in our abilities to handle various tasks and solve tough problems.
Where does programming come into this?
When I first started at Flatiron School, we learned about the Personal Empowerment Protocol, which goes:
1.) Read the error: See if you understand what the error is telling you (errors are there to guide you!) and try to solve the problem on your own.
Step 1 of the PEP is self-agency in action. Especially when we're beginners to a coding language, we might feel like we really don't know anything. And that might be true if we're starting from scratch. However, once we have a handle on the basics, it's amazing what we can figure out using our limited knowledge. Even if there's an easier solution out there than the one we come up with, we've just practiced a skill that's needed when we inevitably run into problems that don't have an easy answer.
2.) Google the problem
Googling can be considered its own skill. We have to know how to even word our question in a way that the solution we want will come up in our search results. While we might not always find the solution that exactly fits our needs, we can get pushed in the right direction, even if that just means understanding our error better.
If you've given the first two steps on this list your best shot, but still can't figure out what to do, don't fret! The PEP still recognizes the importance of asking for help/guidance.
3.) Ask a neighbor
Google coming up with a whole bunch of technical mumbo-jumbo that you don't quite understand yet? Been at this problem for half an hour already? Ask a neighbor! Neighbor in this case refers to a "table-mate" when studying at Flatiron, or in my class's case, "zoom-room-mates". If you're not in any classes, reach out to friends who are programmers or any online communities! Teaching is one of the best ways to learn something, so no one is going to shy away from helping. If someone else can teach you in a way that you truly understand the subject, they'll gain more understanding as well. It's a win/win situation!
4.) Ask a teacher
The teacher is there to guide you. Or maybe you're not in school and this person is one of your superiors wherever you work. Either way, this person has more experience and can more than likely solve the problem you're having very quickly. However, you don't want to skip ahead to number 4 because of this. It helps to remember that in programming, you can be an expert and still have to resort to numbers 1 and 2 on this list! Coding languages are constantly evolving, so as programmers, we have to be okay with constantly learning. That's why we love it, right?
When my class had our first chat with Career Services, we were told that those who were most successful in finding a job once they graduated had a similar pattern of thinking: they were confident that if they didn't know something, they could figure it out. That is essentially what we are training ourselves to do when we use the Personal Empowerment Protocol. We are teaching ourselves that when we actually try and solve a problem on our own, we are surprisingly capable of more than we originally thought. It's a positive cycle where we gain more confidence that we can do it again in the future.
There's nothing wrong with asking for help; however, that shouldn't be our automatic way of approaching problems. What happens if someone can't help us in the ways that we're looking for? The long-term cost of foregoing self-agency can be that we give up more easily when we can't get help from others, rather than taking things one error at a time on our own.
If you give it some practice, the Personal Empowerment Protocol will make you a better programmer in the long-run. I guarantee it!