Обучение программированию

Значит так... Брат моей женушки (ему 19) решил заняться программированием. Конечно же был выбран кратчайший и удобный путь - использовать родственника-программиста (то-бишь меня   ). Человек он толковый, хорошо учится, любит математику, физику и политику   . Программированием он не занимался, но испытывает интерес к этой сфере и попросил меня помочь ему. С педагогикой на элементарном уровне у меня плохо, вроде знаю, а объяснить доступно не могу. Хотел начать обучать его с C#, т.к. считаю ненужными стадии QBasic и VB. Но как начать, ума не приложу. То есть ему нужно учить и язык и сами принципы программирования. Никогда не думал, что у меня когда-нибудь будут проблемы с поиском элементной базы по программированию. Помогите плиз кто чем может... Все что мне приходит в голову, это что-то типа "C# для начинающих", но как правило такие книги рассчитаны на людей, которые уже имеют хоть какую-то элементную базу, в каком-либо языке. Не знаю даже, что мне вообще искать? плохо у меня с этим... с обучением... Все таки брат жены, ну как же женушке откажешь Всем спасибо!
14 ответов

-Mikle-сочувствую  QBasic и VB я полностью согласен что не нужны  а может насчет С++ подумать?Все таки C# в отдельности от .NET трудно представить..


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


а может насчет С++ подумать?
Как вариант в голове держу, так как он отвязан вообще от всего. Но проблема в другом, надо начать, видимо, вобще не с языка. Я просто не представляю себе этого... как это: "садись, включи компьютер и запусти VisualStudio. Щас мы с тобой напишем программу HelloWorld". Написать то я напишу, но вот как это все объяснить ему поэтапно, чтоб он понял что к чему. Надо с чего-то начать наверное... Короче я в шоке от этой задачи... Не представляю... Не знаю...Добавлено через 5 минут и 27 секунд
-Mikle-, ну а что? дай ему книжку...
Книжку типа "C# для начинающих"?  А сгодится сразу такое? Он ведь даже не наверное не представляет что такое программа и зачем она нужна. Парень хороший, потенциал вроде есть, но вот не загубить бы дело. Или может наоборот, пихнуть ему книгу посложнее, пусть испугается и бросит, так я хоть к нормальной жизни вернусь  . А я типа потом скажу: "Я сделал все что смог!"   


Как вариант в голове держу, так как он отвязан вообще от всего. Но проблема в другом, надо начать, видимо, вобще не с языка. Я просто не представляю себе этого... как это: "садись, включи компьютер и запусти VisualStudio. Щас мы с тобой напишем программу HelloWorld". Написать то я напишу, но вот как это все объяснить ему поэтапно, чтоб он понял что к чему. Надо с чего-то начать наверное... Короче я в шоке от этой задачи... Не представляю... Не знаю...
Я делал так.1. Рассказывал что такое компьютер, что по сути это машина которая ничего не умеет кроме как считать..и ее всему надо учить. Но она не понимает русский, у нее свой язык и поскольку легче изучить ее язык, чем научить ее своему - надо учится.2. Рассказать что такое язык программирования, зачем он нужен3. Потом рассказать принцип построения програм, т.е. можно создавать переменные, что такое килобайт и мегабайт - он думаю уже знает, благо сотовые телефоны постарались (сейчас это даже грузчики знают).4. Написать Здравствуй Мир!!!  Думаю такДобавлено через 3 минуты и 19 секунд-Mikle-я не помню где, был такая игра на флеш. Нужно было запрограмировать робота, т.е. его действия, и запрограмировать так чтобы он добрался по ящикам до нужного места, там были и процедуры и функции, правда не код писал а просто готовые блоки в квадратики выставлял, но игра была что надо, о программировании даст кое какое понятие. Надо поискать


-Mikle-, была у меня недавно похожая ситуация, на работе(я работаю не программистом, но все на работе знают что я этим увлекаюсь и изучаю), короче подошел ко мне чел и говорит, хочу мол программировать. и что бы вы думали? я долго ему пытался объяснить что такое среда разработки, что такое технология, .NET и вообще, результатов было 0(я бы даже сказал null). и пришлось начать с самого начала. с изучения синтаксиса языка, консоли и написания элементарных алгоритмов(калькулятор, строки поскладывать и т.п. задачки на одно действие), и все это на уровне простой веры что так надо. если честно то я вообще хотел для этих целей приспособить Си, но объяснить челу почему я пишу в студии, а он под досовым компилятором я не смог. так что пришлось объяснять сразу с C#. постепенно наращивая обороты, и потом когда он мог уже разобраться как работают два вложенных for, можно бы и приступать к объяснению чего нить посерьезнее.(правда пока что он это дело чето забросил, может надоело, зато мне меньше работы))))мне кажется и вам стоит начать с начала, а потом уже добраться до сути, иначе вас просто не поймут, в лучшем случае заучат как школьники, но ведь для нормального использования нужно именно понимание.


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


С педагогикой на элементарном уровне у меня плохо, вроде знаю, а объяснить доступно не могу.
Не надо прибедняться, объяснять ты умеешь. Если парень толковый, то проблем быть не должно. Чем тебе васик не подходит - тоже не понятно. Язык более удобный чем шарп  , возможности те же(я про VB.Net) , да и редактор кода получше. А начать (ИМХО) лучше с изучения дизайнера форм, оно и интересней и можно постепенно, не объясняя деталей, вводить в курс дела.


diadiavova, по моему дизайнер форм это несколько жестко для начала! попробуйте потом объяснить человеку почему он вводит с клавиатуры "цифры" в текстбоксы, а они у него при складывании просто соединяются в одно слово...


Это всё равно придётся объяснять. Просто можно сам процесс обучения сделать интереснее.Добавлено через 4 минуты и 57 секундИ потом: не обязательно сразу калькулятор писать(хоть это и классика жанра )


-Mikle-, а на кого он учится? Ведь 19 лет - это примерно второй курс...


-Mikle-, скачай /*сам знаешь где*/ игрушку ColobotСтраница игры в викино я думаю ты его займешь на неделю минимум


Начинать надо с начала.   Язык конечно хорошо, но главное в обучении - это системность подхода. Поэтому я бы порекомендовал начать... с ассемблера    То есть перед этим, конечно, надо объяснить по методу azesmcar-а самые азы, но поподробнее остановиться на первых пунктах, пояснить разницу между компилируемыми и интерпретируемыми языками и т.п. Ассемблер учить не обязательно, но сам принцип работы программ на железе (с демонстрацией пары хелловоурлдов и пояснением значения регистров и адресов в памяти), думаю, был бы полезен, чтобы человек не считал "компутыр" черным ящиком. Потом рассказать про библиотеки, про ОС и АПИ. Коротенечко, минут на сорок. А потом уже переходить к основам фреймворка и синтаксису конкретного языка. Причем познакомив для начала с процедурным программированием (ну кто из нас писал сразу на ООП, понимая, что это такое?  ) Сделать это можно даже без си, а написав например заготовку на шарпе, чтобы человек выполнял задания прямо в функции main, пользуясь Console.WriteLine как данностью. Короче, движение от низкого уровня к высокому.И нельзя кидать человека сразу на ВиндовсФормс. Будет каша в голове, на крайняк он научится виндовсформс, но не программированию. Не вижу смысла в изучении дотнета как такового не по работе - только с крепкой привязкой к программированию в принципе. Это все равно, что человека, который хочет научиться строить дома, учить пользоваться подъемным краном, не дав при этом основы архитектурного дела.


Опасности обучения на Java - справедливо и для .NETСначала надо понять, есть ли у человека склонность к алгоритмическому мышлению, тут помогут всякие игры типа LightBot и такой замечательный язык как Logo. P.S. Человека, не способного справиться даже с черепашкой, не стоит учить программированию, ибо пустая трата времени.


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