Responder essa, parece que estão querendo colocar os programadores em um patamar superior. SQN. Programadores precisam se dedicar muito nessa profissão.
A profissão de programador, como um todo, demanda que o profissional seja capaz de desmembrar tarefas complexas em passos menores e facilmente executáveis, utilizando uma linguagem extremamente precisa e que não admite erros.

Programas simples como solicitar que um led acenda ao abrirmos uma porta, demandam uma série de instruções que precisam estar ordenadas na sequência correta e devem ser sintática e semanticamente corretas.
Exemplificando, para o Arduino, um programa desses que acende ou apaga um led a partir do monitoramento de um sensor, seria mais ou menos assim:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <Arduino.h> int ledPortaAberta=8; int ledPortaFechada=10; int sensorPorta=6; #define DESLIGADO LOW #define LIGADO HIGH void setup(){ pinMode(ledPortaAberta, OUTPUT); pinMode(ledPortaFechada, OUTPUT); pinMode(sensorPorta, INPUT); Serial.begin(9600); } void loop(){ if (digitalRead(sensorPorta)==LIGADO){ digitalWrite(ledPortaAberta, DESLIGADO); digitalWrite(ledPortaFechada, LIGADO); Serial.println( "Porta fechada" ); } else { digitalWrite(ledPortaAberta, LIGADO); digitalWrite(ledPortaFechada, DESLIGADO); Serial.println( "Porta aberta" ); } delay(1); } |
Conforme dito, o programa não deve ter nenhum erro sintático, caso contrário ele não ele não irá compilar e muito menos será possível gerar o código executável abaixo:

Ainda assim, não basta saber escrever o programa, colocar os comandos na sequência correta, seguir todas regras da linguagem, saber compilar, gerar esse código hexadecimal e até entender cada um dos comandos hexa acima.
O programa também tem que ser semanticamente correto.
A semântica, o sentido das palavras bem como a interpretação das sentenças e dos enunciados utilizados nessa linguagem acima devem refletir exatamente o que foi solicitado em linguagem natural, “quando uma porta se abre, um led se acende e quanto a mesma porta se fecha, o led tem que apagar”.
O trabalho do programador é converter um requisito em linguagem natural para a linguagem formal.
Esse trabalho de fazer a conversão e garantir que a semântica de ambas linguagens estejam alinhadas é onde está a arte e o desafio que programadores enfrentam todos os dias.
Dá para aprender, mas eu diria que poucos são metódicos o suficiente para tal.
É uma questão de perfil, nada mais.
Resposta originalmente postada no Quora em 29/maio/2020 e fonte da foto do teclado: https://www.cybercentralcorp.com/blog/