Sometimes we may consider failing as a punishment or second point of disappointment but that’s not true.
Failing is the weakness that we have in our daily lives and drives almost everything that we do. As a result, quite simple tasks might seem too big to handle/solve or lead you not to do what you could be capable of doing just because you have that negative feeling in you that keeps on setting you back.
We have all failed! and that’s a fact. And by the way, if you have not, please close this browser tab and continue doing something else as this is not meant for non-humans like you and if you feel bad about coding, or programming, this is your last chance to quit the browser and shutdown your machine…huh!! just kidding.
Just as in daily lives, we as programmers failing is monthly if not daily routine. Sometimes you just forget and leave codes untested, bugs half fixed, code un-commented, software product shipped without any documentation, test data not cleaned up during deployment e.t.c. and this is all your fault as a developer. If you write code that can’t be maintained by another developer that’s a failure, not just the maintainability itself but you can really waste an organization’s resources by punishing someone to spend sleepless nights and hundreds of hours trying to understand how your code is organized, who is still being paid, rather than making that person continue peacefully from where you left.
I have failed several times, and i sometimes do but i try to limit the number of failures as much as i can.
The following is a list of what i have learnt so far from my failures, feel free to add to this list.
- You get to understand what failing really is. Sometimes when you make a mistake and try to recall what really happened, you feel like you need to hit your CTRL+Z to undo all that but its all late. Making a mistake makes you understand what its like to make a mistake. You don’t comment your code, later on you get employed in a company, be given 1 big project that a stu..pid developer like you did and you will know exactly how it feels not to comment your code.
- You get to know a better way of doing something. Sometimes we might use a long way and time to achieve something which would have been easy to achieve through a very simple approach. E.g. Back in the days when i was in college( 2nd year), i didn’t know whether some functions were inbuilt in php like in_array. what i used to do is create my array and whenever i wanted to check whether a value exists in that array, i create a for loop that keep on comparing each value in the array with my value. I found this tiresome to an extend i decided to create one big helper class that would do these basic functions. This continued for a while only to discover that all of my projects back then had errors originating from that god like class. Then i had to use Google and i learnt simpler ways of doing some magics with built in functions.
- Its actually the best teacher – Having failed, you always work very hard not to fall in the same trap again.
- It shapes your career and equips you with more knowledge. Suppose you had a startup and you were looking for co-founders. ? You have two guys in mind. One was already in a startup that recently failed, the other one has never worked in any startup. Assuming they somehow have the same coding experience whom would you choose? The dude who was alreaady in another startup that failed or another developer who doesn’t have any experience in startups?. its upon you to make the mistake and make the decision but i bet you would choose the one who has prior knowledge to what you really want because to some extend he understands how stuff goes on in startups and will give some guidance on what should be avoided to ensure startup success as he had learnt something from the past one. I know there is alot of debate on this so push a comment if any.
The list is not over yet. Feel free to raise anything that seems burning to you and don’t forget to comment your code and always write code as if you are not the one who is going to maintain the software.