Логическое мышление или математика?
=====================================

 Доброе утро, форум! Хотелось бы задать вопрос уже состоявшимся программистам, у которых большой багаж опыта за спиной. Занимаюсь Computer Science уже год, а сам ЯП **Python**  начал учить примено пол-года назад. Появилось некое понимание языка и то, как он работает, но отстутствует сама искра, мышление построения кода. Стараюсь писать в стиле ООП, но получается каша-малаша.  
  

Читал форумы, один говорят, что нужны знания математики, другие говорят, что достаточно развивать логическое мышление. Хотелось бы узнать, что думаете вы? 

 Скорее не логическое мышление, а умение структурировать задачу - есть задача, а ты сразу понимаешь какой алгоритм в ней будет. Это чуть выше чем просто логическое мышление. Математика конечно важна, но ее не так много - зависит от задачи. 

 1. Увы, "логическое мышление" существует не у всех. А как "развивать" то чего нет? Я не утверждаю что его нет у вас и что вы идиот. Недавно на тостере некто жаловался, что не смог решить олимпиадную задачку, я эту задачку показал сыну 11 лет, он прочитал и мгновенно выдал ответ, а его мама (не глупая женщина с двумя ВО) решить не смогла  

2. "Чайники" обычно путают программирование и кодирование. Программирование это, как написал Александр, " умение структурировать задачу". Т.е. у вас как в школе, есть задача и вам ее требуется решить. Только ваша задача очень сложная и ее нужно разделить на более мелкие, а те на совсем простые, которые имеют стандартное решение. В этом случае без логики ни как. Про стандартные решения можно почитать в книге Д.Кнута "Искусство программирование" (в принципе есть более упрощенные аналоги других авторов)  

3. Что касается математики. Нужно понимать, что компьютер это всего навсего крутой калькулятор, по сути он умеет выполнять только четыре арифметические действия. Т.е. программист должен построить математическую модель заданного процесса или явления и записать эту модель на подходящем ЯП 

 ИМХО - ты рано полез в ООП не освоив как следует процедурное программирование, и только потом нужно в ооп идти хорошенько изучив зачем оно нужно и когда. 

 Есть математика - это одна из многих предметных областей. Ничем не лучше других вроде физики или экономики для разработчика. Зависит от типа проекта.  

Есть логическое мышление - это ваша способность быстро делать выводы "за жизнь".  

А есть опыт в программировании, его вам и нужно нарабатывать.  
  

P.S. Есть еще и английский - для программиста его надо знать хотя бы на уровне B1, но желательно лучше.