Мне не нравится, когда и в теории, и на практике программирования — пренебрегают вторым этапом.
Если первый этап — это идея, задача, или что должна делать программа. Тогда второй этап — уже написать на естественном языке реализацию этой идеи, задачи (без учёта синтаксиса и семантики языка программирования, на котором будем писать).
Когда как на третьем этапе, мы будем писать естественным языком код (псевдокод), который впоследствии напишем на языке программирования, на 4 этапе.
Соответственно, только тогда мы будем учитывать синтаксис и семантику языка программирования, держа в уме контекст, который получили на втором этапе.
Например, на втором этапе пишем: «предположим, что зарплата минимальна у первого сотрудника по массиву структуры…», когда как на третьем этапе будем писать: «целочисленный тип минИндекс равен нулю», а на четвёртом «int minIndex = 0;».
Надеюсь понятно.