Как можно развить математическое/логическое мышление для решения задач?
Учу программирование уже примерно полтора года. Начинал с питона, переходил на плюсы и джаву, не углублялся ни в один из этих языков серьезно, потому что искал именно ту область, которая заинтересует. Месяца 3-4 назад заинтересовался веб программированием(php,sql,html,css,js) И мне эта область реально понравилась. на данный момент, как не кажется я разобрался с базовыми принципами php, а именно: знаю и понимаю как работают циклы, массивы, условия , зачем нужно ООП и его основные концепции, даже если дадут какой нибудь код, то скорее всего разберусь как он работает.
Но как дело только доходит до решение каких либо задач(чуть связанных с логикой/математикой) я встаю в тупик, но дело даже не в том, как хорошо я понимаю математику, ведь в школе у меня не было с ней проблем, я понимал, что откуда вытекает и откуда берутся те или иные формулы/теоремы. Я пытался найти похожие вопросы на различных форумах, но всё что находил это советы по типу "больше решай головоломок" или "загугли сайт с логическими задачами и решай их" Я пытался делать и так, но после прочтения задачи я пытался решить ее и в уме, и на листке, но просто-напросто спустя часов раздумья, я просто выходил из себя, а когда смотрел решение, то мне становилось все понятно, что я мог эту задачу перевести и в программный вид(php,python).
От вас я бы хотел услышать совет, какую книгу прочесть, либо может сайт, который поможет мне в этой "нелегкой" ситуации(ведь терпения у меня достаточно, не сдвинусь с места, пока что то не пойму на 100%).
p.s Когда я учил питон, я прочитал книгу Адитии Бхаргавы, "Грокаем Агоритмы", она полностью перевернуло мое представление о логарифмах, очередях, кредитах, процентах и о числах в целом. Может есть что то похожее на эту книгу, только с пояснением на php-коде?
Сергей Сергей, Да не, когда ты не можешь решить задачку с лодками, движением против течения или хотя бы составить для них план решения - сидеть обдумывать одни и те же мысли и способы(нерабочие) максимально глупо.
сидеть обдумывать одни и те же мысли и способы(нерабочие)
это мышление среднего человека. Но при повторениях могут возникать отклонения в цепочке рассуждений (внешние факторы, новые знания, "озарение"), которые выводят на другие способы, может быть, даже рабочие.
spoiler
Неужели так всё плохо с нашим образованием, что задача лодки в течении настолько затруднительна?
Сергей Сергей, Да совсем нет, говорю же:) Я понимаю школьную программу, могу решать задачи 6-11 класса, прочитав буквально пару правил и формул. Проблема, как мне кажется кроется в логике, я не могу составить просто план решения той или иной задачи(Ну приукрасил я задачку про "лодку", но только для конкретизации вопроса)
Хм.
То есть, в школе не учат расписывать решение задач по шагам, достаточно просто правильного ответа? Ведь каждый раз, когда расписываешь решение, всегда задаешь вопросы к задаче. Вот эти вопросы и есть костяк плана. Конечно, можно задавать разные вопросы, в том числе и про шрифт печати в учебнике.
у нас, в 90-ых—2000-ых дело было так
Сначала мы читаем текст задачи, чтобы определить объекты. Пусть будут лодка, течение, мнимый наблюдатель на берегу.
Затем определяем количественные характеристики в разных ситуациях взаимодействия объектов: скорость по течению, скорость против течения, скорость лодки без гребца или мотора, ветер и паруса, сменяющиеся гребцы, заглохший мотор и время на заправку и ремонт.
Подбираем известные формулы для расчёта недостающих и требуемых значений. Комбинируем формулы в соответствии с последовательностью задачи (2 часа на моторе, 1 час на вёслах, 20 минут в водовороте) и в сочетании вычисляемых свойств (скорость с расстоянием не складывают, время считают в часах, а не километрах).
Считаем. Отвечаем.
Чисто для себя можно подумать, где здесь ввод данных, где условия и расчёты, а где типы данных.
Если после прочтения готового решения оно кажется логичным, то проблема не в логике, а в навыке применять логику. Ведь если решения задач просто возникают как образы в голове, то это скорее ассоциации, а не логика. То есть мозг работает как нейронная сеть по распознаванию картинок с формулами, а на собственные размышления уже не тянет.
Сергей Сергей, вне политики? Серьезно? Если ты не занимаешься о политике - это не значит что она тобой не занимается. Образование - неотъемлемая часть общества. Давай тогда про воздух не будем говорить? Представим что его нет.
mkone112, я помню (когда ещё рид-онли был, и студентом), как почётные высокорейтинговые пользователи всеми силами пытались отстраниться от политики, как отсылали куда-то в правила, как клеймили всякого заикнувшегося. Но в памяти всплывают антитеррористические законы и бурное негодование в комментариях, да.
Попробуйте решать задачи на алгоритмы, это хорошо развивает логическое мышление. Можете изучить как работают разные структуры данных, например: Set, List, Queue, Deque, Map. (Это из Java, но думаю в каждом языке есть эти коллекции)
У этих коллекций есть разные интересные реализации, посмотрите исходный код попытайтесь понять как это работает изнутри, попробуйте реализовать простые версии этих коллекций с основным функционалом.
Вы написали, что читали книгу "Грокаем Агоритмы", найдите применение этим алгоритмам. Только путем решения задач можно развить логическое мышление.
Тут есть некоторые задачи: www.itmathrepetitor.ru/zadachi-po-algoritmam-i-str... www.itmathrepetitor.ru/zadachi-po-programmirovaniyu
Только чуть дополню. Не "Попробуйте решать", а "Если хотите стать настоящим программистом разработчиком, обязательно решайте.." и далее по тексту.
А вообще-то не просто "Решайте..", а "Углубленно разбирайтесь". Изучить язык программирования - это как изучить ноты музыканту. А алгоритмы и структуры данных - это как освоить гаммы. Без этого музыкантом не станешь. Без изучения алгоритмов - не станешь программистом.
Математику принято считать наукой о расчетах и решении задач.
На самом деле такой ее делает плохое образование.
Математика - наука о том, как свести проблему к задаче.
Чтобы выучить такую математику, нужно не усидчиво решать шаблонные задачники, а выходить из плоскости - поэтому и советуют всяческие головоломки и логические задачи.
Зубрить алгоритмы в этом плане довольно бесполезно, имеет смысл только как знакомство с приемами и общей логикой.
А полезно собрать в кучку говно и палки и пособирать из них пусть неуклюжее, но свое.
Была такая фигня, очень похоже. Сейчас сюда придут люди которые скажут что математика не нужна веб-разрабам. Хотя если с ними пообщатся - окажется что они неплохо с ней знакомы. Немного алгоритмов, дискретки, мат. логики, алгебра, геометрия и т.д. Когда-то я застрял с одной задачей и понял что не помню даже как решаются дроби. Нанял репетитора, сдал егэ, поучился несколько лет в вузе - мозги встали на место. Рекомендую так-же репетитора, книжки, можно в вуз походить(но нужно учитывать что 90% в снг - мусор). Года за три - справишься(но это не точно).
Да если честно, были у меня репетиторы, благодаря которым сдал я егэ по матеше на хороший балл, в целом в матеше секу(как и говорил, что понимаю что откуда вытекает и откуда берутся те или иные формулы) Я настрочил этот вопрос именно потому, что не могу понять, в какой очереди идет код, какое условие поставить первым и т.д.
Ну просто нужно признать, что некоторым от природы лучше даются алгоритмические задачи. Кто-то вот от природы лучше бегает, например. Ничего страшного в этом нет.
А чтобы научиться решать алгоритмические задачи нужно их решать, далее смотреть решения других людей и анализировать. В конце концов появится скилл решения таких задач.
Сергей Горностаев, Ну это справедливо в среде любителей, а среди профессионалов уже не все так однозначно. Здоровье у всех разное. И антропометрические данные, разумеется тоже разные.
Ещё одна жертва культа. Выдыхайте, в программировании нет сакрального знания, как бы вас не уверяли в обратном. С какими вы там задачами на логику и математику сталкиваетесь в начале пути? Я с пятого класса прогуливал уроки математики и списывал домашку. Когда я в начале пути писал на Ассемблере утилитку, эксплуатирующую уязвимость NetBIOS для завешивания компа, там не было математики. Когда писал на Perl'е чат, там её не было. Когда на Сях писал асинхронные сетевые сервисы, тоже не было. Когда на Python'е делал интернет-магазины, не было. Когда на JEE писал всякие там ERP для кровавого энтерпрайза, не было. Даже сейчас, когда пишу нагруженные распределённые банковские системы, тоже не особо-то и сталкиваюсь с математикой. mkone112 уверяет, что я знаю дискретку, просто пришёл к этому знанию в результате практики. Если и так, то это интуитивное понимание, с тем же успехом можно обвинять пауков в знании сопромата. Работа подавляющего большинства программистов, особенно прикладных, больше общего имеет с лингвистикой или литературой, чем с математикой. Наша задача - это всего лишь внятно описать задачу на некотором языке. Просто меньше заморачивайтесь и больше практикуйтесь. Начните с простых программок, постепенно усложняйте, старайтесь решать практические задачи, а не числа Фибоначчи считать. Советы решать головоломки и логические задачи не слушайте, практика решения головоломок учит только решать головоломки.
Я с пятого класса прогуливал уроки математики и списывал домашку. Когда я в начале пути писал на Ассемблере утилитку, эксплуатирующую уязвимость NetBIOS для завешивания компа, там не было математики. Когда писал на Perl'е чат, там её не было. Когда на Сях писал асинхронные сетевые сервисы, тоже не было. Когда на Python'е делал интернет-магазины, не было. Когда на JEE писал всякие там ERP для кровавого энтерпрайза, не было. Даже сейчас, когда пишу нагруженные распределённые банковские системы, тоже не особо-то и сталкиваюсь с математикой.
...пока не наткнулись на ds или ml, не так ли?
уверяет, что я знаю дискретку, просто пришёл к этому знанию в результате практики. Если и так, то это интуитивное понимание, с тем же успехом можно обвинять пауков в знании сопромата.
Нельзя. Паук действует на инстинктах, постройка паутины заложена в его днк, не уверен что вообще что-то знает.
Ещё одна жертва культа.
Не знаю насчет культов, тс конечно сильно ошибся с формулировкой вопроса. Математика тут не к месту, ведь он не умеет даже в ветвления. С другой стороны - курс математики хорошо ставит мозги на место.
Ага, есть области, в которых математика обязательна. Просто их сильно меньше, чем уверяют сторонники сакральности. И уж точно не случай автора вопроса.
Просто их сильно меньше, чем уверяют сторонники сакральности.
Уж не знаю насчет сакральности, но лучше знать математику, чем не знать. И если у тс появилось такое желание(по любым причинам) - этим лучше воспользоваться, хотя-бы ради возможности выбирать любое направление по вкусу, а не по возможностям.