Things aspiring Software Engineers should know - IX

Ashish Vaidya
Published on: 8th May 2014
As a Software Developer, I started my journey in the Software Industry at Novell from where I moved to Citrix and later to Amazon. Being in this industry for close to 6 years now, I have met and learnt from many wonderful intellectuals and have worked with them on various top class products that directly or indirectly impact billions of lives worldwide.

I have experienced diverse corporate cultures, working environments, software development practices and processes. During this journey where I accomplished some distinguished feats and also committed many silly mistakes, I have learnt lot of things of which I think some should be helpful and of interest to the aspiring Software Engineers. You may check out the points mentioned in the previous articles in this series. Here is another one-

Log it!

When we code in college, we do not care much about this important aspect. Logs are helpful not only for debugging but also for providing important information regarding what is going on in the system and what shape it is in. They work in the same way for software engineers as lab test reports do for doctors ie help them understand the situation up to a certain extent even without personally meeting him/her or the system.
things aspiring software engineers should know,log it
If there is an anomaly or crash at customer's site, logs are sent for analysis that act as medium to help you know what happened that resulted in the abnormal behavior. You might have noticed that when some application crashes Operating System or even the application asks you to submit report regarding the error. It also just collects certain logs and sends them to a specified address.

Too much of logging is also not desirable as writing to a stream or file consumes extra resources and reduces the overall performance. Therefore, log levels are introduced in the software. Depending on the kind of usage, corresponding log level is enabled. For example, while developing or debugging, you might want to see all the logs but in production, you may be interested only in informative logs and error logs. Log levels let you easily change what is getting logged. It is actually very easy and you may want to read about how it is done. I have detailed on the same in Hello World.

My sincere suggestion would be to start practicing writing crisp, concise and clear logs if you are not already doing so. Do it for your own benefit as it would help you and peers to easily spot the anomalies or errors in the system and take corresponding corrective measures. Also, be judicious in using log levels so that performance numbers do not go down due to the reason that you like to log it, log it.
This is one of the things that I seriously think an aspiring Software Engineer should know. If you think some point should be added to this topic or some topic deserves to be added to this series, do post a comment and let me know. Keep watching for more. If you are keen on learning more about the better software development practices you can start following right from the college days, do get a copy of my first book "Hello World - Student to Software Professional" published by Partridge (A Penguin Random House Company). Now available worldwide on all the MAJOR ONLINE Stores - Amazon, Google Play, Flipkart, Barnes & Noble and many others. Get in touch with me on My page on IU eMagazine's Expert Corner.
On a scale of 1-10, how inspiring did you find this article?