София е разположена в голяма котловина, а не на река или на бряг, и това определя всичко останало. Софийското поле е най-голямото подбалканско поле и едно от най-високите — градът стои на около 550 метра, а Витоша се издига на 2 290 метра непосредствено на юг. Оттук идват и студените зими, и късното цъфтене на дърветата, и характерният вятър, който слиза от планината. Положението обаче е и стратегическо: през котловината минават пътищата от Дунав към Егейско море и от Адриатика към Черно море, а това е причина град да има тук още от античността.
Античната Сердика е била римски град с крепостни стени, терми, амфитеатър и базилики. Днес под площад „Независимост“ и около Ларгото се виждат улици, сгради и канали на това селище, а ротондата „Св. Георги“ от IV век е най-старата запазена църква в града. Името Сердика се свързва с племето серди, за което историците още спорят дали е съществувало като отделен народ. По-късно славянското население нарича града Средец — „среден“, защото е в средата на пътя между Дунав и юга.
Името София идва от църквата „Св. София“, която стои в центъра още от VI век и е дала име на целия град през османския период. През Възраждането българите си връщат Средец, а след Освобождението спорът се възобновява: през 1879 година група видни граждани искат историческото име, но Временното руско управление и държавата предпочитат София. Така един въпрос на идентичност се решава административно, а резултатът днес изглежда естествен.