Hello fellow nerds! I'm back with another blog post for you guys. Here, I'm going to share with you what I believe to be a great mindset to bring you greatness in your career and life. While this isn't specific to software development, this will certainly help anyone trying to learn and grow themselves as programmers to reach their fullest potential. I'll try to make some references to your learning process as programmers but in general, this will be more on the philosophical end of things. This is what I intended my blog to be more about, the soft-skills side of being a programmer or a higher-level overview of learning to be one. While I did touch on this topic in my first blog post on learning to code, I felt I had more insightful and passionate thoughts on this subject that I had to share.
But... John? How does this relate to learning to be a programmer?
This is a legitimate question that I'm sure you might be thinking of right now. While someone could tell you an exact path of what to learn to get to where you want to be (which is just fine) I thoroughly believe mindset is a huge part of the battle too. Without the right mindset, you won't be equipped to deal with the inevitable hardships in the process. For example, you might give up too early or feel too discouraged by failure. While you can work your hardest to be the person/programmer you want to become, you also need the mindset to bear with any setbacks along the way and get there more effectively. Overall, I believe that this topic of mindset is important for anyone in the learning process right now to get what they want in life and themselves.
It all starts with a purpose
The biggest starting point for anyone wanting to make great changes to themselves and their life in any way is a sense of purpose and belief in it. I've given myself a purpose of wanting to be the best version of myself I can be. Alongside this, I've fostered a belief that one day it will manifest into great things. From this belief, I've given myself the motivation to go beyond where others are willing to go and do so gladly. Over the past two years, I've found that my sense of purpose has driven me to learn many new technologies, spend long hours coding some days, and go through days when the motivation just wasn't there. How do you find a sense of purpose you may ask? Personally, I've developed it from daily reflections and reminders of what it is I want from and envision for myself. It doesn't have to be super specific for now; just believing that I'm on the path to great things has helped me a lot. A great book I've found and read on this topic is called Think and Grow Rich by Napolean Hill (although I must warn you its ideas are pretty weird and unconventional but read it with an open mind).
Be willing to try hard and try exceptional things
Nothing truly meaningful in life comes easy. This isn't a bad thing because how satisfied would you be if all your accomplishments were just handed to you? As I would like to say: without hardship, there is no glory. You've probably heard me nag about it throughout this blog but here I am saying this again: BE WILLING TO PAY THE PRICE OF GREAT RESULTS. At the end of their lives, it's often what people didn't do that they regret then what they did do. While you may feel you have a lot of time left on this earth, you never know if fate can take it away tomorrow or 50 years from now. Not only that but at an older age, you'll have trouble physically doing what you desire. That's why I've been trying to engrain in my mind the idea of living now as though you are who you strive to be already. Don't wait to one day be that or the opportunity might not arrive. You can only be something in the present. Sure, you may not have the skills of a great developer now, but play the part of one. How much hard work do you think one has to bear with? What best practices does one follow? Fake it til you make it as you are often told.
Aside from trying hard, you must also be willing to try exceptional things. This is certainly something I need to work on since it is only a concept I've heard of and been thinking about recently. As well, I tend to think too much of what others might think of me which prevents me from doing so. It's no secret that doing down the clear path that everyone else follows will leave you, well... like everyone else (shocker I know). You may argue that he or she just got lucky or was born in the right circumstances to get exceptional results. While it could be true to some degree, why assume that to be true if you don't know that other non-lucky routes fail? I'd much rather try something new and outside the box than sit there and cry that I'm not getting the results I want. A book I've been reading recently: The Complete Software Developer's Career Guide by John Somnez had an excellent section talking about this. The section was on finding a job as a software developer. It mentioned a variety of outside the box and bold strategies like helping on an organization's code without asking and sending them the changes, helping a company you are interested in set up their own internship program and being a part of it, networking with people from a company you are interested in directly, and much more. While these may sound crazy, the author claims to have seen these things work for himself and others. He argues here that getting exceptional results requires you to do exceptional things and that if you think outside of the box and go the extra mile, you'll be too good to ignore. This also applies if you get stuck in a rut as you learn or code. I've found that certain ideas or strategies I've assumed would work have only led to mediocre or horrible results. While you may be inclined to do what you are familiar and comfortable with, at some point you have to try new things if you want to find the best results.
Dealing with hardships
No matter how passionate and competent you are, you are going to face hardships in life, your career, and in learning to code. There is just no getting around that. You'll face days where you just don't feel like doing anything or nothing seems to work. I know I've certainly been through that and can share some of my ideas on this topic.
To explain my thoughts, I want to share with you a paragraph in my private journal that I've held on to (slightly modified and shortened where I see fit but the message should remain):
Is pain really negative or is it just another experience? All great things come with the seed of pain: love becomes hate, what we've been excited about for a long time quickly loses that joy, the thought of loss makes us anxious, we become depressed after achieving all we've wanted to, comfort breeding weakness. Yet conversely, look at how much pain bears the seeds of great things: look at how the pain you've endured brought you to the path of great things, how much you grew, the anti-fragility of systems and yourself. As such, we can see that pain and pleasure are two sides of the same coin; neither good nor bad but experiences. Don't seek to avoid either of them then but be indifferent to whichever of them comes your way because through acceptance it can become a blessing. Remember this any time you experience great resistance to reality.
In this passage, I'm reminding myself that pain is a part of the process and to not see it as a curse but as a potential blessing. I know I can say that this has been the case throughout my time learning and practicing programming. Huge frustrating bugs I've faced taught me more about the languages and/or technologies I've been using. Working long hard hours on side projects, hackathons, or competitions brought me great memories and learning experiences. Suffering through days of not being in the mood to work has tested my character. No matter what hardships come your way on whatever path you are choosing, I want you to remember to make the very best out of it and grow from it. Keep in mind this concept of antifragility from the book Antifragile by Nassim Taleb. The idea of antifragility is this concept of a substance or system that benefits from harm to it and volatility. Learn to accept and prepare for pain and it can become a blessing. Learn to love the volatile and unpredictable nature of life because what you might see as crushing one day can become empowering.
With that, I hope I gave you a vivid idea of the type of mindset I believe will bring you great success in your life and career as a software developer. While I haven't been perfect at implementing this mindset, it's certainly a tough task that I have to overcome if I want to reach my fullest potential. Let me know your thoughts in the comments below and if you want a book review of any of the books I mentioned here (especially The Complete Software Developer's Career Guide which I already plan to write a review on for this blog). Happy coding!
If you like what you read, consider subscribing to my newsletter to be notified of new blog posts. Also, check out my programming tutorials here.