Как вы научились мыслить «как программист»?
Многолетняя практика. И этот процесс никогда не останавливается, растёт только сложность конструкций.
На этот вопрос нельзя получить однозначный ответ. У всех по-разному.