Для какого именно программирования? Не существует сферического программирования в вакууме. Если ты пишешь софт для Windows, бессмысленно использовать Linux или macOS, а если пишешь софт для iOS, то только macOS вынужден будешь использовать.
Для разработки игр и приложений под windows - винда, а для всего остального лучше подойдёт Линукс,еще умение пользоваться линуксом очень полезно программисту, а пк для программирования, если это не разработка игр, может быть практически любым, желательно от 8гб оперативной памяти, и процессор от i3