Abstract definitions are a deep rabbit hole. To illustrate the point:
Imagine a non-English speaker trying to read the dictionary. First word: Aardvark. A nocturnal badger-sized burrowing mammal of Africa, ...
Wait, what does nocturnal mean? Done, occurring, or active at night.
Wait, what does occurring mean? ...
And this is the core of the issue: you end up with an ever-growing web of definitions composed of words whose definitions you don't understand. You've already had to look up more than three words and you're still not quire sure what an aardvark (the first word) is!
Let's try again. You're learning English because you want to work as a chef cook in an English speaking zone. You're going to be a pasta chef, so how about you look up the translation of dishes you know how to make. Afterwards, look up the translation of the ingredients you use to make these dishes.
Why was the second attempt so much more succesful? Simply put, because you were looking up the words that belong to a concrete concept you already know and understand.
When I read about it words like 'parsing'
When you look up what parsing is, you will get some vague and generalized definition. The dictionary isn't much help here, even when looking at the computing definition. Google tells me:
[COMPUTING] analyse (a string or text) into logical syntactic components.
This definition won't help you if you've never done any parsing before, or you haven't even thought about doing the act of parsing (even if you didn't know that it's called parsing).
So let's approach this from the other way: You are writing an application, and the users expect to be able to upload an excel file so that the data from the file can be saved in your application('s database).
How do you do that? Well, you will have to open up the file, look at the content of the file, and then add this data to your database.
Now you know that, it will make more sense what parsing is: parsing is making sense of the content you receive.
This can take on many forms, not just the reading of excel files. For example, when you ask Siri (or Alexa, or the Google Assistant) a question, it parses your sentence in order to understand what it means. When your web browser receives HTML from the web server, it parses the HTML in order to figure out what it needs to show to the user. When you load a savegame in a videogame, the game parses the save file to know what your last saved game state was.
So how do you learn computer science concepts?
The general rule is to approach it from a practical side. First, you try to accomplish something. When you struggle accomplishing it, or you want to read up on doing it even better; you will be able to look at the documentation and will already understand its inherent goal or what it adds.
For example, I am horrible at trying to understand new frameworks by reading the documentation or even seeing it presented. I learn much quicker by trying to use this, obviously failing because I don't know how to do things, and then look up how to do [simple thing, e.g. make the text bigger] in this framework.
By using this practical approach, my search for information is a directed search (like the chef looking for the translation of a dish he knows), as opposed to an abstract search (learning random words in the hopes that you'll want to use them in the future).
I'm not saying abstract searches can't be interesting. We've all spent some times clickbrowsing through Wikipedia or TV Tropes to find interesting things. But the abstract nature of computer science makes it hard to innately understand something you didn't know about before.
The best science teachers I've had always employed a similar strategy. At the beginning of the class, they pose a seemingly simple question, but the students are unable to actually find the answer. And only when they're curious about the answer to this question, the teacher starts to explain how to find the answer.
The above answer is written in regards to your desire to self-learn. Of course, there are better ways of learning CS through courses and lectures. These courses are specifically designed to introduce concepts to you in a way that you understand them.
When self-learning, it's hard to know where to start and to separate the simple topics from the complex ones.
This is part of your issue. E.g. "parsing" is by no means a beginner topic. But if you had already learned the basics of file manipulation, collection (and preferably some OOP), the concept of parsing would've been a lot easier to understand from the get to. This is where guided courses help to, they ensure that you learn the necessary basics before starting on the more complex topics.
As an aside
I was given a problem of image processing yesterday by the seniors in my company
I don't mean to offend, but if you're currently struggling to grasp what parsing it, you're way out of your league of broaching the topic of image processing. There seems to be a huge disconnect between your current skill level and the tasks you're being given.
Whether you're in over your head at your current job, or your seniors are oblivious to your technical skill level, in either case I suggest being open about what you do and do not yet grasp. Trying to tackle complex subjects without the necessary basic skills is not only going to take a lot of time and effort, but it will inevitably teach you some bad habits because you will be unaware of alternative options.