How To Be A Successful Software Engineer
[toc]
Introduction
In this post we are going to discuss a few points which you must be taken care of, to be a successful software engineer. We all are software engineers, we do creates software, are we the only people who works for it? Absolutely NO. Am I right? There are few pretty good cycle or steps to be followed. Here we are not going to discuss about that. There is a saying, “When you do your duty well, no need to worry about the other things”. So let us see what are all the things we need to keep in mind to make our product/software to be successful, in that way we can also be a successful software engineer. I hope you will like this.
Background
Last week, I attended India’s most awaited conference at Delhi. It is C# Corner annual conference. If you need to know about the conference more, please read it here. This conference will surprise you in all the way possible. I really got surprised when I get a chance to meet and attend sessions of wonderful gurus. Learned a lot. Here I am going to explain the key points which I have noted down from the session “How to be a successful software engineer” of Mr. https://www.facebook.com/glennblock. He really motivated all of the attendees like me. Mr. Glenn Block is a X Microsoft employee who has worked for Microsoft almost 10 years, He has been a part of Azure, WCF, .NET etc. Currently he is working as a Principal Product Manager at Splunk.
I am writing this Article with the permission form Mr. Glenn Block, I have asked for the permission after the conference. He was so kind and gave me the permission to do so.
You can always see the video version of this article below.
How to be a successful software engineer?
I found all the points said by Mr.Glenn Block, are very meaningful and it must be followed by each of us.
Don’t be afraid to fail
We all are developers/programmers. We do mistakes, all the human do that. It does not matter that you create your software without any fault or fail. If you say so, you may need to make sure that your software is working or not. There is a saying.
DON’T BE AFRAID OF FAILURE- Albert Einstein
Don’t be afraid to fail, your failure is your best teacher you ever have. We can all do mistakes which will make us fail, but most important thing is, learn form your failure/mistakes. If you do that, your next try will be successful.
Image Courtesy: Forbes
If you have never failed, you haven’t tried anything new.
Don’t be afraid to ask for help
We are all working in an environment where we all do mistakes and fail. You should never be afraid of asking help to others. This can reduce your work pressure and guess what? you can deliver your product on time. That’s what your Manager need from you. Sometimes, your junior can also lead you to the right path. So never be afraid to ask for help. Just let your ego flew away.
Image Courtesy: Psychology Today
Be a continuous learner
We live in a life where something new is arising in each seconds. It is same for our IT industries too. Everyday there is something new to learn. At the end of the day, what you have learn is most important. You should give a try to all the technologies which is being developed related to your designation. At the same time, it is important that you must be a master for few of them.
Image Courtesy : Keep Calm
You can’t learn it all
When you read the above points, there will be a thought in your mind. I know that. “How can I learn all?”. When I said to be a continuous learner, it is limited. You just need to give a try in the technologies which you think it may help in your programming life. At the same time, as I said in the above point, you must get mastered in few of them too.
Value your code
When I say “Value your code”, it is all related how you do your code exactly. When ever you do any code, just make sure that it does the things it is supposed to be in a clear and easy manner. It was glad hearing from my friend Mr.Dhananjay Kumar saying Mr.Glenn Block writes coding in a way a poet writes a poem. We must follows that. It is much important that your codes should be maintainable, or else the one who maintain your code after few days/months/years will have to struggle a lot.
Image Courtesy: Slide Share
Find a mentor, be a mentor
We all will have a teacher in life who gave us the knowledge, who help us to understand the things. Right? It is more important that you must find your mentor who narrate you to right direction. Learn from your mentor, because a mentor can teach you so many things which he/she got from his/her life. As we all know ‘Experience makes a man perfect’!. Once you learn, be a mentor for someone to whom you can share the knowledge you get from your mentor. While being a mentor, please make sure that you are directing your followers in a right direction.
Image Courtesy: The patter son foundation
Don’t be a jerk
There are quite a few around us. It is not required all of them to be good. Sometimes you may end up in a situation to work with people who speaks everything negative. What important is, you be an optimist.
Don’t over commit
We all will have deadlines in our projects, we all keep that. But there is a limit what you can do in a time frame. Try to understand that. When you accept the requirement sheet, try to understand the efforts need to be done and how must time you may need to work for the same. If it doesn’t matches the time frame given by your Manager/Client, please feel free to inform the same to your reporting person. It is very important that we give a product which works as they expects instead giving it with full of bugs. So never over commit, if you do that always, get ready to search for an another job. You may get fired.
Never say ‘Yes’ when you want to say ‘No’.
Image Courtesy: Leadership Freak
The right idea doesn’t have to be your idea
Do I really need to explain it? 🙂 We all work, we all have brain, we all have ideas. Sometimes your junior can teach you a lot, sometimes he will fix the problems more faster than you. Just admit it and agree the solutions given by them. Their idea will make the project delivery on time. That matters. So just let go your ego.
Image Courtesy: Sound of heart
Be a good listener
Being a good listener, you can see the things in others perspective. You can understand the things which he/she understood in their way. This will enrich your capability and reputation. If they are wrong, you can say them that they are wrong and what is to be followed.
Testing, testing, testing
Testing is one of the important role in any software development cycle. Never release your product without proper testing, because testing is the phase you gets the bugs which our clients or managers never like. If you think you are done with testing, do it once more.
Question:what is the most repeated lie by a developer?
Answer: I have done unit testing 🙂
Patterns
Always follow the most relevant pattern which suits to your project. A pattern can make you fail at the end cycle, if you select it according to your requirement.
Question:what is the most important phase of software development?
Answer: Requirement gathering or requirement understanding
Be a part of the community
This is very important. You need to be a part of the communities because these are made for us. There are so many communities available, few of them are listed below.
In this way you can make yourself visible in online world. Share your knowledge to all, and gain knowledge from all sources possible.
Contribute to OSS (Open Sources)
If you get a chance to contribute to any Open Source Projects, never miss that chance, go ahead and do that. This will make your reputation much higher. Because open source projects is being used by billions of users.
Last but not the least, please comment your suggestions and feedback.
Conclusion
Did I miss anything that you may think which is needed? I hope you liked this article. Please share me your valuable suggestions and feedback.
Your turn. What do you think?
A blog isn’t a blog without comments, but do try to stay on topic. If you have a question unrelated to this post, you’re better off posting it on C# Corner, Code Project, Stack Overflow, Asp.Net Forum instead of commenting here. Tweet or email me a link to your question there and I’ll definitely try to help if I can.
Kindest Regards
Sibeesh Venu