There are only two hard things in Computer Science: cache invalidation and naming things.
This quote is one of my favorite programming quotes and we will discuss the reason why here
We will discuss the naming things part here.
In your entire career in coding what you will do most is reading others code or reading others libraries or new technologies and understanding them, solving bugs in the existing code. If you agree lets move forward.
Now a small story, there was a bug in our existing system and one of my fellow programmer was working on that. The bug was in the core libraries written years back and to add to his woes there was no documentation neither external and nor on code.
He was working on it for days with no result and we were discussing the problem and he said i was unable to understand the code, now i start debugging with him and the bug was solved in minutes (not to brag about my skills), and he said how you are able to go to the problem class and function so easily. I said its just intuition from the naming of the classes and function.
Here i understood its still not natural or important for people the naming convention.
Story part over.
Lets discuss that – what is this intuition thing all about . What i learnt in my coding career that before naming a class first associate a purpose with that class and name the class such that one can understand most part of the purpose with that name and then start adding function in that class and any function if not in alignment to that class purpose then that function should not be there and also through the function name one should be able to make out its implementation without looking at the code.
Now people who read lots of code will realize that’s how most of the good code are written and most of the libraries you will come around will follow this.
Now with the intuition you got from the name without reading the code one can make out the functions and so on. This thing happen in real life as well, if i say something a screen you know mostly what it does (if you think in right context).
Similarly if we start naming our classes or functions correctly this not just help us but help other programmers who will be working on it later.
So be very careful about when you name anything (class , function ) it should convey the purpose.
Also as a developer you should and must build the intution from naming and read code.
Start naming things correctly and read code with the right intuition – dont just jump into the code.