Friday, August 29, 2014

Data Structure that empowers

Once again I started to feel as if I missed something interesting back in my education. I found myself embedded in the jargon of the professional IT and forgotten the deep academic concepts. I realized the importance of the non-cheating labs and the strong motives to do and not to score. And back to data structure I started going through MIT book on structure and interpretation of computer programs. This text revealed some in depth data structure concept I started to forget.
The essence of any software lies in the power of abstraction that has been utilized. The more precisely you abstract your business model, the more you are ready to accept the changing business need. Also, the more re-usable you make the software. For example, if you build a few-line module for doing a simple functionality then what it worths depends upon how often the functionality is needed. But, how re-usable it is depends upon how you model your software. To elaborate the re-usability of abstraction I want to take help from a real life example.
Suppose we are building a text processing engine. What you do at the very first is parse and validate individual records in the text. Then you map the records to some useful data structure. Now, how often you use this data structure and what you can build from that data structure relies upon how you model the data structure and of course the entire engine. Properly designed structure will find its use in every addition in the business usecases and every extension in the ultimate business. Well thought off model can extend to any business need by just assembling the business components in different ways or re-writing some of the components using the sub-components and reassembling them in different ways and so on.
Power of a programmer lies in utilizing the standard concept of abstraction without affecting the readability of the code underlying. Academics provides us with the key idea in the theories behind these standards and the concepts that apply to many domains.

No comments: