Доброе утро, форум! Хотелось бы задать вопрос уже состоявшимся программистам, у которых большой багаж опыта за спиной. Занимаюсь Computer Science уже год, а сам ЯП Python начал учить примено пол-года назад. Появилось некое понимание языка и то, как он работает, но отстутствует сама искра, мышление построения кода. Стараюсь писать в стиле ООП, но получается каша-малаша.
Читал форумы, один говорят, что нужны знания математики, другие говорят, что достаточно развивать логическое мышление. Хотелось бы узнать, что думаете вы?
Скорее не логическое мышление, а умение структурировать задачу - есть задача, а ты сразу понимаешь какой алгоритм в ней будет. Это чуть выше чем просто логическое мышление. Математика конечно важна, но ее не так много - зависит от задачи.
1. Увы, "логическое мышление" существует не у всех. А как "развивать" то чего нет? Я не утверждаю что его нет у вас и что вы идиот. Недавно на тостере некто жаловался, что не смог решить олимпиадную задачку, я эту задачку показал сыну 11 лет, он прочитал и мгновенно выдал ответ, а его мама (не глупая женщина с двумя ВО) решить не смогла
2. "Чайники" обычно путают программирование и кодирование. Программирование это, как написал Александр, " умение структурировать задачу". Т.е. у вас как в школе, есть задача и вам ее требуется решить. Только ваша задача очень сложная и ее нужно разделить на более мелкие, а те на совсем простые, которые имеют стандартное решение. В этом случае без логики ни как. Про стандартные решения можно почитать в книге Д.Кнута "Искусство программирование" (в принципе есть более упрощенные аналоги других авторов)
3. Что касается математики. Нужно понимать, что компьютер это всего навсего крутой калькулятор, по сути он умеет выполнять только четыре арифметические действия. Т.е. программист должен построить математическую модель заданного процесса или явления и записать эту модель на подходящем ЯП
То есть, если у человека нет логического мышления, то он - идиот?
Совершенно верно. Идиот это человек не способный воспринимать и анализировать информацию. Некоторое время понятие "идиот" являлось медицинским диагнозом, сейчас его заменили понятием "умственная отсталость", а идиотами называют людей бесполезных, никчемных. Т.е. ближе к понятию которое в это слово вкладывали древние греки.
Человек может быть никудышным в технических сферах, но может быть талантлив, например, в каком-нибудь 3D-моделировании.
1. 3D-моделирование попадает в "техническую сферу".
2. Если человек не разбирается в технике, это не значит что он идиот, может он умеет писать музыку или детективные романы.
ИМХО - ты рано полез в ООП не освоив как следует процедурное программирование, и только потом нужно в ооп идти хорошенько изучив зачем оно нужно и когда.