Patiencethe capacity to accept or tolerate delay, problems, or suffering without becoming annoyed or anxious.
Let’s make it even simpler than that.
Things you can use patience for according to the above definition:
- Wait when you are supposed to without getting anxious about the time spent waiting.
- Wait for things to happen when they are delayed without becoming really annoyed with the delay.
- Solve complicated problems, instead of an explanation, a quote:
It’s not that I’m so smart, it’s just that I stay with problems longer.Albert Einstein
That’s right, Albert! Thanks for that one! But he was also actually very smart.
My path to excellency could not start without patience. It’s the foundation needed to build discipline. Combined, discipline, patience and motivation are needed to build consistency. Being consistent in working with one or two languages while actually keeping up with the new developments in the area, opens the possibility of becoming 2x, even a 3x programmer. I’ll sidetrack a bit: some people like to throw around 10x programmer concept. Well, I always thought that it depends who you compare the 10x programmer with. But enough on that from me, if you want to read an article about it here’s one called Forget About the 10x Developer, Focus on 3x Instead.
Back to patience, the main topic of this article. Starting from the definition, I defined the role which patience plays on the road to achieving my goal of excellency in Web Development. Patience is needed to:
- Actually deliver complete projects – Web Development is fun, especially if you are implementing something new and exciting. But it’s not all fun and games. Actually, many times, the finishes touches and the small details in a web project are the ones that take a longer time and are more dull to work on than the core fancy features we all want to code all day long. You’ll have to put in the hours, test or get feedback from testers and get that pixel perfect project delivered as you promised.
- Keep up to date – Web Development is ever changing, there are so many new features to go through. There’s no room for impatience either, even if after a while you get to assimilate things faster as you know the general working of the systems you have been working with for so long. You still need to put in the time to learn how to use new concepts, tools, or new versions of old tools. Sometimes I need to take out the pen and paper while I go more than once through the documentation, in order to create mental bookmarks about what can be achieved. I do not typically remember the documentation, but I always go through it when I start with a new package. The time invested in reading the documentation saves a lot because you will always know what can be done and avoid re-inventing the wheel just because you did not know there’s a function/method that already does what you want to achieve.
- Work with non technical people. Inevitably, your work will be connected with non technical people. Except the users of your systems you will have to explain concepts to people you come in contact with who do not have the same level of technical training or the same experience as you. Patience is key here, but you should also put in the time to develop great communication skills if you want to be able make everyone understand what you did, and why you did it. I have seen many patient developers when it comes to coding being impatient and outright obnoxious when talking about their work with people who don’t have the same training. You should be better than that, technical excellency is only a part of your success, being able to showcase your work is the other.
Training my patience
Luckily patience can be trained. And luckier for me I have trained it since childhood. Probably the most efficient way to do this for me was sitting through long explanations of things I already knew or I had figured out faster. In the first years of school things were pretty simple and I could grasp them from the first explanation the teacher would give. Afterwards, the new notions were inevitably explained again in one form or another which is completely normal, but I saw it as a torture. Having to sit in while listening to things I knew was the first sustained exercise of patience which stretched for a long time. After a couple of years, it stopped bothering me.
There are other early memories of me waiting on my parents, especially my dad, to finish some never ending conversations with other adults. The talks seemed to stretched for hours sometimes, and maybe they did.
My parents were not strict, quite the opposite, but I was too shy to start whining about wanting to do something else, and I would just wait for that boring adult talk to finish. I did not want to bother, thus, I ended up developing a lot of patience even before going to school. All in all, it turned out just fine, and all this helped me later on to not feel overwhelmed when a long task laid ahead.
How do I train my patience nowadays :
1. Take courses
I learn continuously and make sure to not skip any part of it, even if I believe I know that part already. I have formed a habit of learning a daily minimum of 30 minutes outside my work (which also includes learning a lot of times). Most things I learn are now quite complex, so they require many chunks of 30 minutes. Basically having to take one step of a time into finishing each learning journey is the equivalent of flexing a “patience muscle”. The more I do it, the more patient I become.
Truth to be told, I usually stretch the allocated time more to about 30 minutes to about 1h-1h30′ which used to be spent on my phone, so that comes easily. I estimate if I keep it up it will add to 5-600 hours / year, which is a respectable time spent on education outside of school/univeristy years. I’ll soon have an article up explaining where this available time comes from.
A simple exercise, practised every day. I started at 5 minutes and I am making my way up to 10, then 15, or however much I will feel like it is necessary. Nothing strange here, I just concentrate for the duration of the meditation on pushing away all the thoughts that come to my head and try to keep a clear mind. It was pretty hard in the begining but nowadays I managed to keep the mind a lot more empty during the time of the practice. In return, I find it a lot easier to keep distractions away in deep work sessions (about that, in a future post).
3.Slowing down when the situation requires it
This is comes up mostly in professional situations. Typically, I like pragmatism and doing tasks right away when possible. I do not enjoy waiting on third party collaborators who need to deliver something that blocks my progress. However, this is inevitable, and professionally, it is unavoidable. I learned to slow down when delayed, and use the extra time to advance on other tasks, or occupy it with something productive. It is an exercise of patience, as I need to shift my focus from the priority task until I can continue it, and focus on something else until the opportunity comes. Shifting the focus is not something that comes easy, and it is in a way similar to the meditation technique, as I need to constantly re-align my focus from the top priority task to lower priority ones.
Expertise is a field is something that anyone can achieve but which is not achieved by everyone. Most people give up on the way or don’t even make a single effort for it. If you are reading this you probably have more ambition than the aforementioned crowd and, like me, you strive to be an expert in at least one field.
In my opinion there is a dumb way and a smart way to achieve the experise. I used the dump way in the begining of my programming career, but I understood soon there’s a smart way as well. And this way has some prerequirements, none of which are technical and all of which are chained together. Patience is the first link in the chain. The next one is discipline, and I’m going to write about it next.