In daily life we do many things by the help of abstraction. We don’t need to understand every low level details. For example a .NET programmer is writing code for his client but he don’t need deep understanding of how the compiler works and how his program become native code for execution. This is because most of these details are abstract away by the .NET framework. In this way with abstraction we can build applications with self defined modules but don’t need to understand how the module works internally. We only know the interface, what is the input and what we will expect to get as output. You can find other examples of abstraction in real life also. When you type a website name in your favorite web browser it automatically open the page. What happens in between is an abstraction for you. Your web browser already knows that and you don’t need to know the underlying details.
In previous age of computer programming the programmers are lot expected to know about much low level stuffs. But today we are lot more expected to build things on top of that low level details. Now a days how compiler works knowledge is become good to have and how you can build cloud solutions is a must for example. We are changing. Today that module you are building may be tomorrow someone will use that. Next generation programmers will not try to understand what we do today because those will be abstract away from them. They will build things on top of them.
For Indians, English is a foreign language. In our students life we putted a lots of effort to understand English grammar and spelling. Learning process is changing. Future students will write with the help of spell checker. Understanding of spelling and grammar is becoming must have to good to have. They don’t need to know English spelling instead they will write letters on top of spell checker.
Still if you have time and interest you can dig in to some extent to the abstraction layers. Try to understand how compiler works, what happens when you type in your browser address bar. It will make your knowledge stronger and help you to debug when things go wrong.