There is no career path for programmers. Once you are a programmer, that's the end of your career. You climb the ladder by starting to manage people. But you don't become a super-programmer.
* Overwhelming majority of programming companies don't have anything like that.
* Overwhelming majority of programmers, even if they work in a company who has that will never become principals or fellows simply because there's no official process of becoming one. It's usually a gift from your management. You don't take a test, nobody's going to count your commits or measure your programming output in any other way and say "whoa, this guy now qualifies for this title!"
* You are confused between being good at what you do and a title HR puts on your paycheck. To make you understand this better: say, if you are a surgeon, then bettering yourself as a surgeon is very likely to make you more valuable in the eyes of your employer, and, subsequently, put more money into your bank account. If you better yourself as a programmer, in most likelihood you will end up disappointed you wasted all this time for nothing. You will have problems getting a job, since often you'll be overqualified for what's on the offer. On top of this, a title you earned with one employer doesn't translate into an equivalent title at a different employer. Employers use these "principal" or "fellow" titles to justify paying you a bit more, so that they don't have to deal with hiring a replacement for you. If you switch jobs, the new employer has no incentive to hire you at the same level of "pretend seniority".
In other words you are confused between added pay that you accumulate as long as you keep working for the same employer, no matter the quality of your output, with the pay you get for being good at what you do. Usually, in many professions, people become better the longer they spend in their field. In programming this is less so.