Чтобы написать программу требуется: - знать язык программирования - детально понимать поставленную задачу Вот и все что нужно. По аналогии, чтобы построить дом требуется: - инструменты и материал (это язык программирования) - знание инструментов (это знание языка программирования) - проект дома (это понимание поставленной задачи)