Area codes were instituted way back when rotary phones were "state-of-the-art," so they were assigned in a way that allowed the largest number of users to take the least amount of time to dial the numbers. All area codes back then had a 1 or 0 as the middle digit. The largest cities were assigned area codes with a 1 in the middle and with low numbers as the first and third digits -- since these would dial the fastest on a rotary phone (it took several moments to dial a 9 or a 0 back then, when you had to wait for the dial to rotate all the way back into place before dialing the next number).
This is how New York City ended up with an area code of 212 -- the area code that dialed faster than any other on the old rotary phones. Los Angeles (213) and Chicago (312) were next in line in terms of "dial speed" followed by Detroit (313), Dallas (214), Pittsburgh (412), St. Louis (314), etc. Notice how the original area codes for many of the large cities in the country all had a "1" in the middle -- including Philadelphia (215), Cleveland (216), Indianapolis (317), Milwaukee (414), San Francisco (415), Toronto, Ontario (416), etc.
Conversely, most area codes with a 0 in the middle and high numbers for the first and third digits were very rural (or had very limited phone service) at the time these area codes were put in place. The most cumbersome area code to dial was the one for the "Inland Empire" of California (909), followed by others like central New Jersey (908), the Dominican Republic (809), Hawaii (808), Alaska (907), Newfoundland (709), western Ontario (807), and the area that is now Chicago's southern suburbs (708).
The Inland Empire's 909 area code is the result of a split that took place about 12 years ago. The IE, parts of East LA County, and Orange County were ALL originally 714.