A person learns by his mistake is a common thing but learning from others mistakes will take you far along your way to achieving success in life.
As a fresh software developer we are very excited and more nervous while starting our journey in this field, most of us come fresh out of university with little bit of experience of summer internship or worse not even that. We become overwhelmed with all the changes in work environment and we worry about if we have what is required at this level.
When I entered into this field as a fresh college graduate with no prior internship experience, it was very different environment for me, it took a while to get adjusted to this environment and start contributing to the work for which I was hired for.
So these are some mistakes I made during my initial days from which I learned and improved myself, you also can learn from my mistakes
When we are in college all we care about is code, if it works then its all good, no matter how ugly it looks or how poorly its designed or if its maintainable enough or hundred other reasons.
We do not care about anything as long as its works and gives correct output on our perfectly tailored test cases.
Whenever we write code, we should plan how its going to shape up when its finished and think over these points.
When we develop our personal projects in college then this is the last thing we worry about because we are the main users of our projects and we run our project with known parameters because we know what will work and what will not work.
But in real world more often than not we are not the end users of the application we develop as professional software engineer, and this becomes the most important part of our job, because software reliability is all that consumers want. No one likes a buggy application that keeps crashing once in a while.
So before writing any code , write down the unit tests for that code, what kind of scenarios it can face and if something major happens from which we can not recover, design it for graceful failures.
Thinking coding is all or all we have to is coding , this is a common misconception most of the freshers has and I also had that but there are lot more things to worry about then code.
Code reviews are the most important process that I got to know that helped me become a good software developer , Initially code review seems like a overkill ,that why we need to get our code reviewed by some other developers ever after its working fine.
But one important thing we miss that having an extra set of eyes and some brainstorming can help us discover some scenarios where our code might fail and we never thought of it because we were too much confident in our code.
Initially our focus is on getting the code to work and getting desired result no matter what, but in that process we compromise with the code quality, modularity or extensibility.
It has happened with me that some tools I developed initially was not of much use in other projects which needed that functionality because of lack of modularity. Most of my focus was on solving that particular problem and not thinking about future use cases.
Most of the time we get disappointed with ourselves because of some code review, finding ten bugs in twenty line script is also not very encouraging.
But one thing we should remember that initial few years are our learning years and its Ok to make mistakes as long as we learn from those mistakes. Its always good to do new mistakes rather than repeating old mistakes and everything will come into its correct place.
At last its all about enjoying yourself and learning continuously and making progress.
Day by day in every way I am getting better. So should you.