LINUX.ORG.RU
ФорумTalks

Как обучиться логике?

 


0

3

Здравствуйте! Моя работа не совсем программист, но программировать умею. И многие друзья-родственники просят обучить их программированию. Обычно я отказываю, но если всё же соглашаюсь, то встречаю проблему, что у многих напрочь отсутствует умение в логику. Даже простые алгоритмы по-типу суммы последовательности целых чисел — мало того, что они не могут до них додуматься, так ещё приходится объяснять по часу, что уж говорить о алгоритмах сложнее… А как сам обучался уже не помню, давно это было…

Может, кто-то знает, как обучиться логике новичку?

Перемещено hobbit из general

Тогда тебе нужно не программирование конкретно, а CS. Алгебра логики, блок-схемы, вот это вот всё.

Bfgeshka ★★★★★
()

Ну если десять лет школы не научили, то это дохлый номер.

andytux ★★★★★
()
  1. Общая логика «Наука о правильном мышлении»: Виногадов 1954 год.
  2. Задачи на Leetcode, HackerRank, CodeWars. Особенно про манипулцию с битами. Решить пару сотен, разобраться в решениях.
  3. Методички 1 го курса специальноcтей из Вуза где учат программировать.
  4. 1 том у Столярова http://stolyarov.info/books там есть про математику, комбинаторику, логику.
  5. Last but not least: google.com.
lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 2)

Плохо объясняешь, попробуй другие методы. На примерах разбирай от простого к сложному. Требовать с нуля просуммировать числа это слишком много.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)

Обычно я отказываю, но если всё же соглашаюсь, то встречаю проблему

Дед с бутылкой пива.jpg

мало того, что они не могут до них додуматься

Хм. Странный момент, если ВСЕМ не понятно одно и то же - наверное объяснение не очень? Можно в примерах как ты рассказываешь?)

Давай побуду твоим учеником 😊

frunobulax ★★★
()
Последнее исправление: frunobulax (всего исправлений: 1)

И многие друзья-родственники просят обучить их программированию.

Чтобы ничего не делать и получать 300к в наносекунду?

MoldAndLimeHoney
()

И многие друзья-родственники просят обучить их программированию.

  1. Две книги Таненбаума.
  2. Три книги Столярова.
  3. Leetcode.

Вперёд и с песней. Никто лучше не научит. Если человек не может читать, то программировать он тоже не сможет.

lbvf50txt
()

зачем тебе быть ло-гиком?

покури логику Аристотелеву

ежель про булеву де морганся

qulinxao3 ★★
()
Ответ на: комментарий от MoldAndLimeHoney

Чтобы ничего не делать и получать 300к в наносекунду?

Да. Обыватель считает, что программист это как водитель тролейбуса или трамвая. Друг покажет как газ нажимать, куда рулить, где остановки там по ходу разберемся.

И буду платить миллион рублей в месяц. А когда достаешь книгу в 1000 страниц сразу скучнеют.

lbvf50txt
()
Ответ на: комментарий от lbvf50txt

проблема с leetcode и прочими гриндилками - что если пациент волчит то вместо самостоятельной прорешки использует чужое

компы(прог-прыг) многим не заходят не по причине их тупости+умности - а чисто «нафига утруждатся» если можно «срезать углы» - т.е. хитрят на пропалую - ибо зачем быть узким спецом если «хитрость» универсально применима

qulinxao3 ★★
()
Ответ на: комментарий от qulinxao3

проблема с leetcode и прочими гриндилками - что если пациент волчит то вместо самостоятельной прорешки использует чужое

Это уже личные проблемы читера. Можно вместо пробежки кататься на мопеде или машине, потом хвастаться «вчера я пробежа 10км за 5 минут». А смысл?

lbvf50txt
()

«близким» подсунь https://norvig.com/21-days.html

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

людЯм чясто «что б всё было и ничего за это не было» - а ваще чем больше вкатунов тем дороже реальные(часть вкатунов оказываются крутыми спецами по итогу) спецы

qulinxao3 ★★
()
Ответ на: комментарий от lbvf50txt

дык «Эффект безбилетника» ибо цель то не столько быть хоть каким то прогером(да хоть ойтишником) а стать «царь во дворца»

поэтому ....

крч если серьёзно - то вопрос «трудовой этики» и прочая хурма

qulinxao3 ★★
()
Ответ на: комментарий от qulinxao3

крч если серьёзно - то вопрос «трудовой этики» и прочая хурма

Задачи на Leetcode решают для прохождения собеседования в частности, и для развития навыка программирования в общем. Копипаста ни даст ни того, ни другого.

Есть какой-то процент читеров, которым нравится нагонять цифры в профиле. В принципе, они никому не мешают. Потому что профиль, бейджики — это просто психологическая конфета для регулярных занятий. Чуть-чуть подсластить рутину. Профиль особой роли не играет. Так, бонус небольшой.

Да. Очень важно. Если задача не решилась за пол часа - час, то надо идти смотреть решение и изучать алгоритм. Вот для этого и открывают решения. Чтоб те кто занимается не тратили время зря. Можно месяцами изобретать веолсипед, а он так и не поедет.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 3)

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

amd_amd ★★★★★
()

у многих напрочь отсутствует умение в логику.

В контексте программирования речь идёт не про логику, а про умение в алгоритмы. Тебе сначала нужно объяснить человеку, что вначале следует строить алгоритм. В голове или на бумаге, но нужно представлять последовательность действий для выполнения задачи, а уже потом писать непосредственно код.

u5er ★★
()
Последнее исправление: u5er (всего исправлений: 1)

Может, кто-то знает, как обучиться логике новичку?

Попробуй черепашку. А вообще любые логические игры, но есть шанс что они не обучают логие а отсеивают тех кто в неё не может.

ya-betmen ★★★★★
()
Ответ на: комментарий от dataman

Не буду. Нет цели занимать призовые места.

Значит не научишься играть в шахматы даже на уровне новичка. Твой максимум «знаю как ходят».

MoldAndLimeHoney
()
Ответ на: комментарий от lbvf50txt

хз я как то дерево фенфика (переоткрыл велос)изобрёл именно потому что не пытался учиться на чужих решениях

на 3ий день после контеста зная что многие другие решили - решил и я - чисто знаю про себя этот факт

лит код теми же дейликами поощеряет к списыванию

да блин если мониторить обзоры на ютубе тех же дейликов то можно заметить груссный факт - у задачи которая имеет 3-4 разных алгоритмически но почти эквивалентые по О и M решения - в обзоре у ~97% будет одно и тоже решение которое как ни удивительно не самое оптимальное именно по критерию показать на собесе и обьяснить почему трэйдофы вот такие а не другие

в целом нужно упражняться для достижений - но у неофитов увереность что чем навороченей инструмент тем эффективней обучение

да блин даже широкораспрострянённые на том же ютубе «приёмы математической магии» - люди вместо БАЗЫ любят обмазываться эвристиками ибо чем больше личинка умеет эвристик тем «круче»

ю....

qulinxao3 ★★
()
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от lbvf50txt

Чтоб те кто занимается не тратили время зря

это реально очень сложно понять - вот вот эта трата времени трата зря а вот эта инвестиция в проблемсолвинг например

т.е люди которые волча срезают все углы они реально стремятся «не тратить время зря» ибо алгосы ща в 95% случаях не нужны ибо вот так

чем круче компы тем ниже планка для входа

в результате мало кто в уме и здравой памяти будет даже пытатся перемножать трёхзначные в уме - хотя это достаточно простой навык которым владели кому надо в эпоху до массовой грамотности лица занятые в «бухгалтерии» :)

qulinxao3 ★★
()
Последнее исправление: qulinxao3 (всего исправлений: 1)

Чтобы что-то освоить нужно прочитать учебник по данной теме. Даешь прочитать учебник по логике/паскалю/хоть_дарью_донцову, если человек прочитает и вернется, значит у него есть хоть какая-то мотивация и он готов приложить усилия. Нет — его выбор.

Знаешь, сколько у меня спрашивали как научиться программировать? Думаешь, хоть один из них прочитал дальше вступления книгу, что я им давал? У таких людей обычно представления: взял разукраску, полистал картинки и освоил программирование. Приложить хоть какие-то усилия на протяжении длительного времени они не способны (не хотят).

urxvt ★★★★★
()
Последнее исправление: urxvt (всего исправлений: 1)
Ответ на: комментарий от amd_amd

Я еще замечал среди сотрудников забавную штуку. Знает человек, допустим, Java и если ему подсунуть простой кусок C/Python/AnyLanguage он сразу начинает отбиваться руками и ногами с криками «Я его не знаю». Всегда удивляло.

urxvt ★★★★★
()
Ответ на: комментарий от qulinxao3

О и M решения - в обзоре у ~97%

Что значит O и М? С O понятно Big O notation, c M не понятно. Есть два критерия Runtime и Memory в Leetcode. И то и то оценивается через BigO.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 2)
Ответ на: комментарий от urxvt

Знаешь, сколько у меня спрашивали как научиться программировать?

Мое мнение такое.

Чтоб научиться программировать, надо программировать. Решать сначала простенькие задачки, потом сложней и сложней. Раньше это были книги, теперь есть сайты.

При том есть неочевидные действия которые надо подсказать: читать Таненбаума и Столярова. Потому, что кажеться где Сети и ОС и где программирование на Python/C/Whatever?

Вот это вот единственное, к чему надо подтолкнуть новичка. Указать на книги про UNIX/Cети. Он сам к этому придет спустя годы, лучше указать сразу.

А так решение задачек теоретических и практических каждый день, каждый день.

lbvf50txt
()

…у многих напрочь отсутствует умение в логику. Даже простые алгоритмы по-типу суммы последовательности целых чисел — мало того, что они не могут до них додуматься, так ещё приходится объяснять по часу, что уж говорить о алгоритмах сложнее…

Я бы начал с того, что не путал логику и алгоритмику. Логика — это о «наука о правильном мышлении» и «способность к рассуждению», в том числе методы доказательства и математическая логика. Построение алгоритмов — это совсем другое.

И я бы не стал учить знакомых программированию сам. Я бы дал в зубы классическую книжку Вирта «Алгоритмы + структуры данных = программы» (Паскаль) или её вторую версию «Алгоритмы и структуры данных» (Модула-2) и сказал что готов ответить на вопросы, если таковые появятся и помог с установкой компилятора Паскаля или Модулы-2. Вирт пишет просто и понятно. Если человек сам не вывозит (с моей небольшой помощью) — ну, значит, не судьба ему идти в программисты.

debugger ★★★★★
()
Последнее исправление: debugger (всего исправлений: 1)
Ответ на: комментарий от lbvf50txt

Согласен.
Я сторонник начинать с основ: если не ассемблера, то C или Pascal. Ни в к коем случае с Python. Не зря именно так классическое образование (было?) построено. Согласен с товарищем ниже, если кто-то не может осилить то ему лучше поискать себя в другой сфере.

urxvt ★★★★★
()

Нужно отправить их учиться в ВУЗ на соответствующую специальность. Слишком много материала, чтобы просто «дать его почитать».

Shushundr ★★★★
()
Ответ на: комментарий от urxvt

Просто на просто должно нравиться программировать. Понять нраиться или нет можно через простые задачи на специализированных сайтах: CodeWars - начинает с самых простых задач на синтакис.

По поводу Python я не так категоричен, учиться писать алгоритмы можно на нём. По сути это псевдокод классического образования. Си и Ассемблер однозначно нужны, так как это часть технического образования.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от Shushundr

Нужно отправить их учиться в ВУЗ на соответствующую специальность.

Не надо в ВУЗ. В Вузе Воз ненужных дисциплин: химий, физик, математик всех сортов. Для того чтоб быть хорошим программистом уметь интегрировать не надо и решать дифуры тоже.

Слишком много материала, чтобы просто «дать его почитать».

Материала много. Но он собран в курсы профессором Таненбаумом и К.Т.Н Столяровым.

P.S. Тут надо сделать ремарку. В Вуз - желательно, но соврешенно НЕ НЕОБХОДИМО. Вполне можно без вуза, тем более провинциального средней паршивости. Да и без столичного тоже как показывает своим примером Столяров. Столяров который написал прерасные учебники для новичков, но потом его заело и он начал бороться «со всем кроме Си» - даже супер образование не помогает. Как учитель он хорош, как работник нет, постоянно желание мастерить велосипеды и NIH синдром.

Вуз это опционально для детей богатых родителей которые сособны чадо 5 лет кормить и одевать. Остальным вполне можно самим научиться через Таненбаума+Столярова+Leetcode.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 2)
Ответ на: комментарий от urxvt

Приложить хоть какие-то усилия на протяжении длительного времени они не способны (не хотят).

И таких как мы учат, это называется «геймификация».

Shushundr ★★★★
()
Ответ на: комментарий от Shushundr

И таких как мы учат, это называется «геймификация».

как бы оно не называлось, внедрить в повседневную практику преподавания «обучение через игру» пытались неоднократно, ни разу не получилось. Наверное, потому что «в легкой игровой форме» можно освоить только какие-то совсем-совсем базовые вещи, а как только начинается хоть чуть-чуть «матана» игра становится неинтересной.

FishHook
()

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

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Никак. Мозги под это или заточены или нет.

Ну «конечно». Все программисты с рождения умеют читать, писать, знают алгебру и программируют.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Послушайте, вы пишите про инвалидов, больных людей неспособных к обучению.

Здорового человека все равно надо учить читать, считать, писать программы. Вы же по китайски не читаете? Потому, что вас не учили иероглифам. Точно также человек которого не учили математической логкие не понимает логические выражения.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Хотя я понимаю, что вы хотите сказать, если ученик безкультурный и необразованный, то ему бесполезно что-то втулять про логику, операторы и программирование.

Нужен определённый базис культуры и развития для занятий программированием.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от lbvf50txt

Точно также человек которого не учили математической логкие не понимает логические выражения.

но ведь обратное утверждение не верно - я знаю сколько угодно людей, которых учили математике 10 лет в школе и 5 лет в институте, и они так и не научились решать квадратное уравнение

FishHook
()
Ответ на: комментарий от lbvf50txt

Послушайте, вы пишите про инвалидов, больных людей неспособных к обучению.

А есть еще дислексики, топографические кретины, социопаты и прочие аутисты. Идите научите социопата эмпатии. Удачи.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от lbvf50txt

Дело не в базисе совершенно. Трудно научить танцевать безногого. Вы вот думаете, что раз для вас формальная логика это просто, значит для всех это просто. А это не так. Есть люди, которые мыслят словами, а есть те, кто мыслит образами. И вы даже понять не сможете как это, если у вас противоположный тип мышления.

crutch_master ★★★★★
()

tis100 инди игрушка с алгоритмическими задачками, мне кажется она может показать кто может в кодинг а кто нет.

Aber ★★★★★
()
Ответ на: комментарий от Shushundr

10+ лет назад эта тема про геймпфикацию звучала из каждого утюга. Я тогда очень мучался с своей кодерской продуктивностью, смотрел в сторону геймефикации и в итоге понял что я никогда не играл сколько сколько работаю :) А если бы я столько играл то это было бы совсем не весело, а было бы работой от которой хоть вешайся.

Aber ★★★★★
()
Ответ на: комментарий от lbvf50txt

Есть уровень среднеобразовательной школы понятный всем нормальным людям

Уровень школы не понятен очень многим. С чего вы вообще взяли, что он подавляющему большинству понятен? Школьников давно не видели со студентами, которые вечно всё у кого-то списывают?

И вы надоели хуже горькой редьки.

А что? С вами все *обязаны* быть согласны?

Вы постоянно рассказываете про какие-то тяжелые патологии

Вот лёгкая «паталогия» - отсутствие музыкального слуха и чувства ритма.

Логика это учебник средне образовательной школы.

Логику в школе не преподают. Если бы и преподавали, домашние добрая половина школьников так же списывали, как списывают сейчас алгебру. Есть мозги не предрасположенные к точным наукам, ничего с этим не сделать.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Это не то, чем можно кого-то тут напугать.

У меня нет цели кого-то пугать, мне не хочется скатываться в токсичное общение.

Ваш тезис о том, что условные операторы можно понимать не обучаясь считаю ложным.

Ты или смотришь на условный оператор и тебе сразу все понятно или тебе нихрена не понятно.

Тебе все понятно если ты 10 лет изучал математику до этого под строжайшим котролем взрослых. С бухты барахты понятно не будет. Человека к пониманию условных операторов надо готовить годами с пеленок. Львиная доля не понимания математики не из-за патологий, а из-за не выученных вовремя уроков.

Дальше вы начали приводить примеры болезний. Мне это не приятно. Больные люди есть - но их единицы, в основном просто не учат уроки вовремя.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 2)
Ответ на: комментарий от crutch_master

Никак. Мозги под это или заточены или нет.

Хотя вы правы. Слово «заточены». Все я погорячился. Приношу свои публичные извинения за резкость.

В смысле человека надо натаскивать, или по другому затачивать на определенную деятельность.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 2)
Ответ на: комментарий от lbvf50txt

Ваш тезис о том, что условные операторы можно понимать не обучаясь считаю ложным.

Показываешь оператор. Говоришь, мол, вот если то, то выполняется вот это, иначе вот это. Одному всё сразу понятно, другому ничерта не понятно. Одному можно показать это в дошкольном возврате и он сразу вкурит, другому не понятно даже на 2-м курсе вуза.

Тебе все понятно если ты 10 лет изучал математику до этого под строжайшим котролем взрослых. С бухты барахты понятно не будет.

Я программировать начал в 8 лет. Я не понимаю и не способен понять, как можно не вкурить основы алгоритмов.

а из-за не выученных вовремя уроков.

Посыл, что среднего человека можно научить чему угодно - не верный, но часто принимаемый за аксиому. Ни научить нельзя, ни среднего человека никакого нет.

Дальше вы начали приводить примеры болезний. Мне это не приятно. Больные люди есть

А мне не приятно, что вы считаете социопатов, а особенно, аутистов, больными. Они не больные. Болезнь лечится, а это - особенность мозга. Социопатия не корректируется. Аутизм тоже практически не корректируется, только компенсируется чем-то. Прочих таких особенностей, причём неявных, более чем дохрена. В том числе как очень слабая способность к одним видам мыслительной и наоборот выраженная склонность к другой.

crutch_master ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)