I can't believe how many people claim to have years of experience but are completely unfamiliar with terms like "binary", "library", "compiler", and "filesystem".
How do you expect to convince the interviewer that your solution was correct without tests? How can you debug your code properly if you end up with a spaghetti mess instead of using a clean design?
They're parallel in theory and get paid the same, but if you look at the ratio of high-level managers to high level ICs, climbing the management ladder is clearly easier.
I don't think Starcraft players are great examples. Many of the most successful ones walked the "Royal Road," i.e. they won the OSL on their first try. I can't think of any player who was mediocre for years, and then became an all-time great. If anything, every Starcraft legend except Flash had a front-loaded career where they had the majority of their big wins at the start of their career, and then stuck around due to their brand name without ever recapturing their peak.
When I left my previous employer, the reason was absolutely arbitrary. The new one paid more. I didn't have to wait for the old company to not pay me the agreed upon salary, spend months offering them a "compensation improvement plan", and documenting their failure to follow it in fear that they might sue me for leaving for the "wrong" reason. It's amazing how people pretend at-will employment is somehow equal for both sides when only employees can actually terminate the employment at-will.
Usually phone screens only check how well you can code, whereas onsite interviewers dig deeper on your design skills and experience in addition to coding. So it could be that you over-indexed on coding when preparing.