Last week, I posted a question to twitter to which I got VERY interesting responses. The topic was confidence, particularly self-confidence.
I'm not a new developer. I'm no longer a junior developer. But that doesn't mean that I'm not learning new things. That's part of being a developer, right? Continuing to be faced with problems and challenges that you need to solve and architect solutions for. I love that there are new things I face every day. It's honestly one of my most favorite parts of being a developer. And I do a fair amount to track my learning and growth. I journal. I have a digital notebook where I outline both what I want to learn and what I have learned. I do personal retrospectives every week that summarize what I've learned. I keep a "happy thoughts" folder where I have documents with positive feedback or screenshots of recognition I've received. And I make sure to reflect on where I was 6 months ago, a year ago, a few years ago, etc. But there are so many new things and what I'm realizing is that my attitude and confidence level are starting to make the largest impact on my productivity level.
I'm sure I'm not alone here. Sometimes I feel like I can tackle anything and other times I feel like I'm not even sure if I've learned anything over the past few years. But, it's not about practice. When I first mentioned code confidence on twitter, a lot of people responded with ideas for code exercises I could do, but I know that's not the core of the problem I'm solving. It's not about practice, it's about the fact that when I feel confident, on days where I'm making progress and feeling good, I accomplish a TON. I tackle hard problems. I pick up tickets no matter how familiar or unfamiliar I am with the area they deal with. When I ask questions, they are pointed and have been thoroughly thought through and researched until I truly am stuck. And when I pair, I drive effectively or offer solid thoughts on what direction we should go in next. I can almost always do more than I think I can, but only on those days where I'm feeling confident.
The days where I'm not confident, the opposite happens. I'm hesitant to pick up a ticket unless I can almost immediately see what the solve will be. When I pair, I often offer for the other person to drive and may suggest ideas quietly but infrequently. I think I'll get stuck early and therefore I do. I've worked with some great folks in the past and some not so great folks. I've worked on teams and in situations where the disrespect is obvious and it's hard to be heard or seen as a peer. This is often exasperated by the fact that I work remote. Sometimes in person, it's easier to lift yourself out of a lower place because you have other people around to help you do so. No matter how much chat interaction you have, when people can't see you and you can't see people, it's easy to stare at code and mope until you can reach out for help, and if that request for help goes unanswered or the wrong person answers that cry for help is more easily muted as a remote worker.
The right pair or right sentence can lift me out of a funk and into a better place but I don't want to have to depend on others to do this.
Every year I set goals for myself and every quarter I revisit them. This quarter (and for the next 6 months), I decided that working on my code confidence, or my ability to stay in this confident, more positive mindset for more days or more hours at a time. There are a variety of action steps I've outlined for myself to make progress on this goal but step one is how do I even track this?! I'm curious to learn id there are trends related to when I feel more or less confident. Is it when I get good code reviews from folks on my team? Or does a more difficult review make a difference? Is there a difference between Mondays and Fridays? Do I have confident streaks and then streaks of not feeling confident? Do both trends last the same amount of time? What questions should I be asking myself about this covering some sort of survey or scale on this topic? Does my assessment of the difficulty of tasks I'm working on make a difference? Should that even be noted?
An easy way to track this is to just be able to mark down a happy face or a frown face (or red days and green days) and then go from there, but maybe there are more questions that I'm not thinking about. And if it's just a happy face or frown face, there isn't much context or ability to determine patterns or trends related to it. This is going to be subjective and that's ok. This is really just an experiment for me to think about me, which is why I also want it to be EASY.
Does an app like this exist? Is anyone else doing anything like this? The best way to solve a problem is to know as much about it as possible and so that's what I'm trying to do.