Why most of Programmers Listen to Music while Programming

I saw some discussion on programmers music listing, but it wasn’t well explained and convincing, so I decided to write this article.
In my experience programmers work in two mode , 1-Read and/or 2-Write,
What does it mean:
1- Write mode : Programmers always needs to update their knowledge or learn new technologies in their skill sets area, there are exceptions, I saw “Write Protected” programmers that won’t learn or look for new techs! 
2- Read mode : Programmers do programming and that is the time they search in their what I call it: “Mind Shelves” for proper knowledge, they already learned and use them for achieving the best results,
I should add that , programmers are using both modes simultaneously but as for walking , we don’t stand on both foot ,also programmers switch on these modes, sometimes they use what they learned and sometimes they learn more.

Now we know better how programmers do their jobs on their daily basis , lets see how they work in these two modes, 
First Read mode: It is obvious that finding or building something needs concentration, also needs an organized mind, but we live in a noisy environment and work among people that talk and discuss their matters with their family, friends, coworkers and walk and having excitements and… whatever making them to produce sounds! 
As a programmer I call these sounds: “Noise” , what is not related to my work or it is distracting.
What options do we have to get rid of noises and concentrate on our tasks?
We can use some sound patterns that could be used as tempo for musicians.
Musicians use some tools like metronome to sync their musics rhymes with it for training and use drums or a base instrument to synchronize tempo with it, in production.
So programmers can do the same to keep their mind calm and work in a tempo with desired speed , faster rhymes means faster programming and slower means slower programming and it depends on the skill and mastery level and most important item , current mood of the programmer.
And when they are in Write mode Mostly they don’t use music as they should learn and along with organizing, put new knowledge on their “Mind Shelves”.

Programmers listen to different types of music depends on their mind adopted pattern or musics their mind is familiar with it , what their mind is not curious about it ,
 I call that “Mind Background Sound Pattern” (MBSP) ,we can call it “Noise Canceling Sound Pattern” (NCSP) too.
MBSP is what keep programmers on the track, It is what they use to do their jobs!