Главное - уметь находить ответы на свои вопросы самостоятельно в гугле без помощи форума. Я серьезно. Без такого скилла будешь упираться в стену на каждом затыке, а тут этих затыков по десятку в день ) Либо учишься гуглить, либо меняешь род занятий.
Надо думать, как машина. Есть анекдот такой, жена посылает мужа-программиста в магазин: купи булку хлеба, а если будут яйца, возьми десяток. Яйца были, муж приносит 10 булок хлеба. На самом деле, всё так и есть, когда вместо программиста - железяка. Она никогда не ошибается, зато начинающие программисты часто получают неожиданный результат из-за ошибочных ожиданий. Чтобы научиться правильно мыслить, надо писать код. Особенно помогают сложные логические цепочки с вложенными циклами, рекурсиями, многоступенчатыми условиями и т.д., с целью решить задачу максимально эффективно. А чтобы читать код, надо знать проверенные приемы и паттерны программирования, потому что только такой код заслуживает чтения.