LINUX.ORG.RU

Как учить программированию человека с полного 0?

 , ,


0

1

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

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

Что бы такого кроме Hello World и простых упражнений на знание синтаксиса придумать?

У меня идеи есть, но там нужно уже комплексно думать, да и паттерны применять надо. А для этого опыт нужен. Без опыта, с одним знанием синтаксиса, паттерны объяснять, показывать бизнес логику, это… Ну такое себе, каша в голове будет. Повторюсь, у девушки полный 0 в области программирования.

В интернете шарилась, но там либо сложно, либо скучно…

Хочу в качестве методички, взять официальную документацию питона.

Вот что ей объяснять после того как синтаксис покажу и она сделает задачи по нему? Я не знаю, поэтому прошу помощи здесь.

Работу с БД? Боюсь не потянет так сразу - каша будет. Думаю БД ей надо будет давать через месяца 2, плотной практики. А там потихоньку проектировать приложения для автоматизации чего-либо, сначала маленькие проекты,а потом потихоньку наращивать функционал, паттерны потихоньку вводить.

Но опять же, что мне ей давать в качестве задач на эти 2 месяца?

Сегодня ей сказала почитать про язык питон, что он из себя представляет, для чего нужен. Постепенно хочу её приучить искать информацию самостоятельно…

Кто обучал новичков, поделитесь опытом.



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

Ответ на: комментарий от beginnerSHA

сессию сдавать

Взять лабы у старшего курса, дрессировать на решение задач из них.

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

После этого можно уже давать курс/книжку и просто отвечать на вопросы.

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

Тут ситуация сложная… Насмотрелась фильмов всяких про айти и поступила на прогера. У неё все мечта стать супер дупер кул программистом. Почему я решила помочь в этом, не спрашивайте…

Но вот у девушки тараканы в голове… Я с ними ничего не сделаю, единственное что мне остается это пытаться учить её вместе с этими тарканами. Я не врач, чтобы их оттуда выводить.

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

Предмет профильный.

Почему не с лекции? Да потому что в лекциях, КУЧА математики. Задания математические и их нужно с помощью питона решать. Она у одногруппников попросила конспект, те ей скинули в word. Там сначала записан синтаксис конструкции, а потом показано как эту конструкцию применять. В основном на математических примерах. А в самом конце конспекта (конец первого курса предмет «язык программирования»), они уже прогали математику во всю и ещё задачи на логику были.

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

Математику она подтягивает с репетитором(это не я). Не знаю как она 1 курс сдала, потому что математика у неё хромает, не вся, но процентов 60 точно. Тут вообще хороший вопрос как она до 2 курса дошла, но узнавать мне как-то не хочется.

Так что задания я могу ей дать, только она их не потянет.

Мягко попыталась ей сказать о том что it ВОЗМОЖНО не ее сфера, на меня истерика обрушилась. Спасибо большое не хочу.

beginnerSHA
() автор топика
Ответ на: комментарий от mydibyje

можно заранее попросить у старших курсов.

Не получится. Задания каждый год новые, не лень придумывать преподавателю. Структура известна. Там 100% будут задания по математике(каждый раз разные), их будет процентов 50,не меньше, а остальное… На усмотрение преподавателя, может логика, может программирование, забыла как назвается. В общем дают текст и ты должен это в программу превратить. По типу «ночь на дворе, машина заехала во двор и припарковалась». И надо сделать классы машина, сделать методы заехать во двор, припарковаться. И в консоль вывести этот текст. Может еще что придумает… Не знаю.

Знаю что курсовые не меняются у них, там БД+яп, только темы разные но суть одна. Там уже бизнес логика пойдет. У них 2 курс, читают БД на которые мадам не ходила по причине больничного поэтому нагонять будет. Думаю 2 месяца хватит чтобы простой sql выучить, он же простой. ЕСЛИ в сильно сложные запросы не лезть.

В общем такая вот ситуация…

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

Насмотрелась фильмов всяких про айти и поступила на прогера. У неё все мечта стать супер дупер кул программистом.

Она даже не может запрограммировать вычисление какого-нибудь выражения дробного со знаком сигмы

Не хочу расстраивать - но больше уровня посредственности ей не светит в принципе (если не сказать жёстче).

Мягко попыталась ей сказать о том что it ВОЗМОЖНО не ее сфера, на меня истерика обрушилась. Спасибо большое не хочу.

Если можете - бегите оттуда.

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

Если можете - бегите оттуда.

Если до момента, когда им начнут объяснять ассесблер :D, ничего не смогу с ней сделать то придется бежать. Потому что выноса мозга асмом я не вынесу точно.

beginnerSHA
() автор топика
Ответ на: комментарий от bugfixer

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

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

Неизвестно что будет через 5 лет, может у неё всё хорошо пойдет если заниматься с ней.

А если выяснится что не ее сфера… Ну а я что могу сделать? Это её жизнь, ей решать… Во всяком случае она пыталась, это уже достойный поступок)

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

Я скорее не про «выяснится», а про «осознает». То, что сфера не её уже видно.

Если проблемы с элементарщиной то значит не понимат что такое алгоритм. Вот http://iharsw.login.by/gris/ Заниматься пока не сможет нарисовать квадрат по координатам независимо от начального положения букашки.

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

Ну она эмоциональная очень… Скорее всего будет истерика, что вот мол столько времени и все впустую… Будет жалко её если осознает.

Но я буду надеятся, что у неё хоть как-то получится влиться в профессию. Хоть она и не любит читать теорию и скучные занятия, что очень плохо для программиста. Буду пытаться приучать ее как-то… Читать скучные книжки, документацию, работать с дебагом. Может и получится. Во всяком случае мотивация есть, но она не туда энергию от этой мотивации направляет,не может приоритеты расставить… Возможно в силу возраста.

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

Если проблемы с элементарщиной то значит не понимат что такое алгоритм. Вот http://iharsw.login.by/gris/ Заниматься пока не сможет нарисовать квадрат по координатам независимо от начального положения букашки.

Это не алгоритм - это мусор.

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

Проблемы с элементарщиной обусловлены неспособностью выражать свои мысли, а не неспособностью брутфорсить подобный мусор.

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

Хоть она и не любит читать теорию и скучные занятия

Отлично.

что очень плохо для программиста.

Как раз таки очень хорошо.

Все эти рассуждения про теорию и прочее просиживание штанов - это пусть в никуда. И если человек готов это делать - шансы во что-то вырасти у него маленькие.

«Изучение» теории и выкидывание времени на «скучные занятия» - это обычная проблема в обучение. Когда человек вместо делать - занимается всякой хернёй. И большая проблема выбить человека из этой ловушки.

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

При этом обратная связь - это именно нормальная практика, где человек сам решает проблему. А не копипастит. Это ещё одна ловушка. Всё обучения дерьма строится на этом - адепт копипастит, а далее ему внушается уверенность в том, что это он, что это его прогресс.

Задача подобной херни - подсадить адепта на «могу». Тогда без продолжения сидеть/курсить - он потеряет эту возможность «могу».

right_security
()

что мне ей давать в качестве задач на эти 2 месяца

Любой школьный курс, на выбор. С нуля нужно разжовывать самые элементарные вещи, т.е. на один только if-then-else должен быть отдельный урок и т.д.

Питон обязательное условие? Так-то не лучший вариант для начала. Только если специально нужно для чего-то, типа аналитика, нейросетки и т.п.

no-such-file ★★★★★
()
Ответ на: комментарий от beginnerSHA

По типу «ночь на дворе, машина заехала во двор и припарковалась». И надо сделать классы машина, сделать методы заехать во двор, припарковаться

Чё за бред. Не удивительно, что человек чего-то не понимает.

Насмотрелась фильмов всяких про айти и поступила на прогера. У неё все мечта стать супер дупер кул программистом. Почему я решила помочь в этом, не спрашивайте…

Успехов тебе в этом нелёгком деле.

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

И самое главное, не торопись. Тема должна быть усвоена настолько, чтобы ученик мог свободно и спонтанно решать релевантные задачи, а не морщить лоб и вытуживать решение после 10 ошибок и поправок. Если на if-then-else нужно будет 10 занятий, значит должно быть 10. «Понять – значит привыкнуть и научиться использовать» (C)

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Нет необязательное условие. Из того что она мне сказала, на 1 курсе, им давали C. Потом преподаватель разрешил кто совсем не тянет, брать питон(мне кажется преподаватель отчаялся). Так та большая часть группы C++ сейчас изучает на этом курсе. Но побаиваюсь его давать, поэтому питон раз есть такая возможность.

Потом у них по плану будет мобильная разработка(наверное Java или kotlin будет), затем 1с, сетевое программирование и самое последнее ассемблер.

beginnerSHA
() автор топика
Ответ на: комментарий от no-such-file

Чё за бред. Не удивительно, что человек чего-то не понимает.

Согласна.

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

А то будут делать курсач и не поймут а зачем класс «Персона» например и почему у неё есть методы «Работать».

Могу ошибаться, но у меня нет другого объснения почему это давали.

Хотя я не запихиваю методы в классы, все методы в оркестратор выношу. В классах у меня только поля для хранения данных из бд.

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

Задания каждый год новые [...]

Вообще это не выглядит как что-то сверхъестественное и должно осваиваться даже школьником (с поправкой на уровень математики). Тут кончено могут быть проблемы в вопросом «для чего это нужно?», но судя о описанию это не самая страшная проблема.

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

Потом у них по плану будет мобильная разработка(наверное Java или kotlin будет), затем 1с, сетевое программирование и самое последнее ассемблер.

Орнул. На сколько лет всё это рассчитано? Десять?

no-such-file ★★★★★
()

у девушки полный 0 в области программирования.

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

Значит не надо.

Не всем всё дано, и это естественно. Проще не мучатся, время не тратить. А взять и на дизайнера/художника свалить, или куда ещё.

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

А то будут делать курсач и не поймут а зачем класс «Персона» например и почему у неё есть методы «Работать».

И правильно. Потому как никаких «методов» не существует. Это левое понятие, здесь оно вообще мимо.

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

Это всё кукареку. Хорошо, машина объект, но причём тут методы? В реальности нет никаких методов. А есть, действия, условно.

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

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

В результате никакой разницы между ООП и не-ооп нет. Есть действия, есть их «фигуранты». Это понятно человеку. А подобные объясняторы и сами ничего не понимают.

А далее у всех действий есть контекст - это те самые фигуранты. Кто делает, где, как и прочее. Конечно, действие достаточно узкое понятие, но для начала хватит.

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

Подобная организация прослеживается везде. Вот твоя задача объяснить человеку, чтобы он осознал это.

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

Здесь видно почему «у неё методы» - это чушь. Методы вне всего. А машина - это просто некий контекст, где существует этот метод. Причём наличие там метода - в этом контексте. Это условность.

Тоже самое с теми же действиями. Действия кто-то совершает, но сами явления существуют отдельно. Вот возьмём какое-нибудь открывание дверей.

Да, в реальности это действие - его кто-то совершает по отношению к машине. Если нам неинтересен субъект - мы его игнорируем. У нас получается «Некто». В рамках обычной логики у нас существует абстрактное некто. Людей это так же часто путает.

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

По-сути мы определяем некоего бога, который является базовым субъектом. И раз все действия осуществляются от бога, а бог везде - нет смысла дополнительно указывать на это. Это как некие природные явления, которые мы так же воспринимаем как «произошло». Мы выкидываем для упрощения причины действия.

Именно через это «открыть дверь» появляется на машине, но это не значит что у машны есть этот метод. Поэтому подобное это не следствие того что у машины что-то есть. И не потому что там в реальности(в реальности всё не так). Это просто допущение для упрощения.

Почему упрощение? Потому что правильно было бы определять это явление в контексте бога, но бог слишком широкий - в его контексте всё. А раз бог итак имеет всё, то мы просто определяем действие относительно машины в контексте машины.

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

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

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

Мягко попыталась ей сказать о том что it ВОЗМОЖНО не ее сфера, на меня истерика обрушилась. Спасибо большое не хочу.

Хотелось бы ошибиться, но боюсь, что подобная истерика может неоднократно повториться в ходе обучения...

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

машина объект, но причём тут методы? В реальности нет никаких методов. А есть, действия, условно.

Согласен, в реальности есть лишь

движение

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

Что есть причинное движение? Это обычная «школьная» функция y от x, где x - причина, y - следствие, а =f() - закон. А объект лишь один из параметров этой функции, один из иксов, один из фигурантов, поэтому нет разницы что едет, машина ли едет, человек ли едет, кукуха ли едет, ибо едет функция, а это просто её контексты выполнения.

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

У меня негативный опыт. Одно время обращались частенько, поначалу я пытался выстроить «как учили», с разжовыванием азов, алгоритмов, выдачей заданий, но в дальнейшем убедился, что подобные просьбы происходят от ленности просителя. Им нужно всё и быстро, быстрее, чем за 21 день.

sparkie ★★★★
()

Как выстроить обучение?

Доминируй@унижай... Обесценивай@давай вредные советы в саркастическом тоне :) Буди спортивную злость реверсивной психологией :) играй в добрый тренер@злой тренер :)

Или кнут@пряник — с обеих рук, по-македонски:)

Там истерика будет если учеба программированию будет без компьютера

Лечится по старинке звонкой оплеухой или стаканом воды... в лицо или на голову, конечно, эффективнее (лучше сразу ведро и по нему еще сверху дзынькнуть в днище), но... зачем, если можно просто предложить попить, выдохнуть, пересказать только что услышанное это отвлекает.

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

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

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

Но я буду надеятся, что у неё хоть как-то получится влиться в профессию.

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

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

Интересно узнать как это закончится, надеюсь с нами к концу года поделятся опытом

Поделятся)

К сожалению, уже нет:

Статус: анонимный (заблокирован) Блокирован 16.10.22 18:03:16 модератором maxcom по причине: Флуд

Не вникал что случилось…

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

Писали, что ТС тролль, но ситуация описанная ТС вполне реальная, злободневная, и надеюсь советы из этой темы будущим читателям этого треда пригодятся. Так что не понимаю в чём тут был троллинг, лол.

mydibyje ★★★
()
Ответ на: комментарий от ex-kiev

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

При всех моих тёрках с господином Столяровым - с одних из его посылов я согласен: программирование это искусство требующее определённого склада ума. Можно подготовить условного «кодера», но действительно талантливые Программисты (с большой буквы) получаются из людей с очень специфичным ДНК (складом ума, называйте как хотите). Таких действительно единицы, нравится это всем нам, или нет.

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

Что есть причинное движение? Это обычная «школьная» функция y от x, где x - причина, y - следствие, а =f() - закон. А объект лишь один из параметров этой функции, один из иксов, один из фигурантов, поэтому нет разницы что едет, машина ли едет, человек ли едет, кукуха ли едет, ибо едет функция, а это просто её контексты выполнения.

Сразу мимо - это академическая мура не имеющая отношения к реальности.

Как и никакое движение никому не интересно. Точно так же как в программировании. Я разбирал это выше.

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

Если кратко. Важно не что, а зачем/для чего/почему.

right_security
()

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

Примерная схема:

  1. что такое программа, переменная, операторы, аргументы. На этом этапе можно писать простые программки спрашивающие ввод и чего-то печатающие.

  2. что такое структурное программирование, условные операторы, циклы, функции. Первые простейшиее алгоритмы посчитать сумму, произведение.

  3. модульное программирование, в один файл все не влазит, модули, библиотеки, эскпорт функций из другого модуля и т.п.

  4. как развитие модульного программирования знакомство с ооп: классы, наследование, полиморфизм, инкпсуляция.

  5. дальше уже специализация: работа с бд, web, графика, ии и т.п.

cylon17
()