The title of this post may be misleading. This itself is not a great article. This is a great article! It was written by Dan Abramov, a software engineer at Meta and a coauthor of the Create React App and Redux. He is a well renowned developer who has accomplished great things and spoken at conferences filled with other highly respected developers in the world.

The reason I love the article linked above is because I think he really described a mental pendulum I feel in programming (and teaching) when he said:

no matter how experienced you get, you may still find yourself switching between feeling capable, inadequate (“Impostor syndrome”), and overconfident (“Dunning–Kruger effect”). It depends on your environment, job, personality, teammates, mental state, time of day, and so on

Dan Abramov

Particularly in programming, or teaching (or I guess anything I genuinely care about), I find it is very easy to go from feeling like I’ve got complete control of what I am doing and everything is as it should be and then suddenly I feel completely incapable and inadequate. While the world is full of helpful people who wish to only support and help one another to grow, there are others seeking only to expose other’s weaknesses and feed on them for their own egotistical (yet hollow) gains. It is important to recognize that the programming/software engineering/IT industry is vast. There is no way that any one person is an expert in everything.

This thought is particularly poignant to me. As a developer, I feel confident in my abilities to learn just about anything I need to, given the time to work with it. As a teacher, I take pride in allowing students who have proven capable with the curriculum to explore. This introduces a serious vulnerability to me. It is very common that when students explore areas they are interested in, they are areas that I have not explored or mastered (there are a lot, but a few examples are game engines like Unity, various javascript frameworks, or machine learning). I often find myself with a limited ability to support them and I experience the “Imposter syndrome.” It’s not that I could not understand these things, but simply that the time management prioritization of learning them has taken a back seat in favor of developing content that might be engaging and appropriate for all students (my primary job as a teacher). This can relegate me to a position of “cheerleader” at times. I am not above serving that role. Actually, I am happy to serve in it to encourage growth; but if this develops in conjunction with a student’s desire to feel superior or even conceited or arrogant, then the overall classroom environment can suffer.

I am often taken aback by the function of being a teacher in the sense that the amount of effort I put in rarely adds up to an output that leaves me feeling successful or looking back like I did a good job.

This seemingly “negative function” of my position was not the case when I worked in the field. Every day I worked hard and at the end of the day I felt better about what I was doing than I did at the start. I was always conjuring up wild ideas and known for being able to develop solutions for most problems. I did not always love the work, and work always seemed endless, but I was always growing; which is the definition of success to me and a key component to my personal happiness.

That is why this article is so important to me. When I accepted the position of teacher, I stepped into a new and unknown realm of scrutiny from nearly all angles as both a teacher and a programmer; and while there are many critics of both of my roles, the most significant one is myself. I do not like not having all the answers for students seeking my help. I do not like feeling vulnerable. I do not like struggling to convey the love I have for programming and enabling young programmers to grow, yet all of these things happen regularly. As the days pass, I believe I will continue to get better at my job, but I carry with me the shortcomings of past mistakes that only time can reconcile.

So, in writing this, and in my continued referring back to this article, I think the reason I think it’s so good is that it reminds me that even the most successful people are not masters of everything. What is most important is that each day I am honest with myself and aim to make the next day better. It’s okay to be vulnerable. It’s okay to be honest. It’s important to be aware of shortcomings, but it is not beneficial to dwell on them at the expense of growth. I will never know everything, and if I do my job well, some students will always be mastering the curriculum and coming back with questions I cannot answer. So, I put this post together so I’d always know where to find the article again and have an opportunity to center myself whenever needed. “Mastery” is a facade when thinking of an entire field such as programming; self-awareness and growth are the keys to happiness (at least for me).

Leave a Reply

Your email address will not be published. Required fields are marked *