Hello fellow nerds, welcome to this new blog post. Here, I thought I'd share with you some simple advice I've been telling myself to advance my goals as a developer and a person: the simple idea of developing confidence in yourself. While you've probably heard everywhere your entire life of the importance of this, I have some great further insights as someone who struggles with it himself. From my experiences, thoughts, ideas, and learning around this subject, I hope to hammer home the importance of it so you may learn to pursue this goal yourself and realize how a lack of confidence hinders you.
Software engineering is much more of a social field than you would think
In software engineering, you might think that you'll just sit around and code isolated from a lot of human interaction. In reality, a lot of software engineering revolves around effective human interaction. From my software engineering course, I've learned that much of the battle is requirements gathering from clients who might not know what they want, are saying, or have different domain expertise than you. With this, a software engineering team must be careful not to play a game of broken telephone and clearly communicate with clients, make sure they are understood, and understand the technical lingo of the application domain they are building a product for. This way, you ensure your code specifications are complete and accurate so you don't end up writing the wrong functionality and waste a lot of time.
Not only that but during the coding phase of project development, a lot of communication will still be required. With other developers, you may need to train them, be trained by them, attend meetings with them, pitch your ideas, do code reviews, or even do some pair programming if your company follows extreme programming or parts of it. That's not even mentioning the amount of communication you may need between management and QA (quality assurance). With how critical human interaction is in software engineering, it would be a huge advantage for you to project the confidence to speak your mind and effectively communicate with others. This way, you can market yourself and ideas to other developers and management, deal with the potential problems that can arise with human egos, and display leadership in these settings to climb the corporate ladder. How could you market yourself and ideas if you don't have confidence in them in the first place?
A lack of confidence can sabotage your learning
This might seem quite hard to believe but hear me out here. You might be thinking that being confident here can hinder your ability to learn through a lack of humility and thinking you are much better than what you are. While these are valid points, that confidence is more so arrogance than real confidence. Here, I'm defining confidence as comfort and acceptance in yourself and your realistic abilities so that no matter what mistakes you make, you won't feel down about yourself. You'll just stay on course and do what needs to be done without personalizing things. The arrogance shown above is different in that it is trying to prove a better picture of yourself to the world and yourself that is not true.
With that disclaimer aside, in what ways does a lack of confidence sabotage your learning? Well, I like to see this as being similar to confirmation bias. If you are doubtful of your abilities and think you aren't good enough, your mind will be looking for and interpreting things as proof of this. How much harder will it be for you to achieve your goals if you are simultaneously looking for proof you can't achieve them? From my personal experience, I've sometimes found myself in doubt thinking: "does this person dislike me?" and interpreting little things as proof of it. Later on, I would learn what these little things really were and that I was too much in my head the whole time. As a more relevant example, when I first started technical writing, I was getting much more critiques from my peer reviewer on my first article. Throughout that whole revision process, I was thinking things like: "Am I not good enough?", "Is there something wrong with me?" or "How much longer will this review process be?" which was draining a lot of my mental space with negative energy. Because of this, I couldn't as effectively learn from constructive criticism or work with as much energy as I normally would. Had these thoughts gone too far, I even could have self-sabotaged myself by giving up and never becoming a technical writer. You probably wouldn't be reading this right now then. Contrarily, had I been more confident in myself and my abilities, I would have had more helpful thoughts such as: "I know I'm making a lot of mistakes right now but it's good my reviewer is showing them to me so I can learn and get better" or "I may not be the greatest right now but through more practice and exposure I'll get there. Keep it going". Overall, without a good baseline level of confidence, you will have a harder time learning through adversity and growing from mistakes. From confidence, you can then bear with failure and see it more for what it is: a learning experience that can't be easily replaced.
On the contrary, you may respond to a lack of confidence by trying too much to prove yourself worthy to others. You might try as hard as possible to show off how great you are and look perfect so that you won't have room for growth. How could you let yourself fail while simultaneously trying to look perfect to other people? Likewise, how much can you learn if you cover up your shortcomings and fail to accept them? While I don't have any strong personal examples of this, I can tell that I've struggled with this to a degree at times. At one point during a hackathon, I've made a flawed design decision of using Spring Boot instead of Firebase. Here, I realized it was because I didn't want to feel unimportant with how much firebase would make my role obsolete as a backend dev for that project. In hindsight I've realized that with the hackathon setting we were in, we were better off sticking with firebase which would have saved us loads of time and built us a better prototype. Had I had the confidence and security in myself to not need to prove my usefulness/worthiness to my team, we would have been better off there. I know that example isn't exactly in the context of learning but it just goes to show that a lack of confidence can draw you away from what's best.
With that, I hope you see how far confidence can go as an aspiring or practicing software developer. Through it, you can stop focusing on destructive thoughts and proving yourself to others and focus harder on the journey to great things. If you have any further thoughts on this idea or this article, feel free to drop them in the comments below. Happy learning!
If you like what you read, consider subscribing to my newsletter or following me on Hashnode to be notified of new blog posts. Also, check out my programming tutorials here.