Курсы по Android
В Житомире планируется проведение курсов для начинающих Android разработчиков.
Что Вы от ожидаете от подобной затеи?
В Житомире планируется проведение курсов для начинающих Android разработчиков.
Что Вы от ожидаете от подобной затеи?
Сам стартовал с подобных курсов. Было просто супер! Нам тогда повезло, был кризис и люди с уровнем рабочий джуниор сильно были не нужны на работе, поэтому собралась достаточно сильная группа. А это я считаю самым главным в процессе обучения, когда ваши студенты будут сами друг друга подгонять с помощью своего энтузиазма.
По курсовому проекту считаю, что намного лучше пилять один большой проект, чтобы люди могли сделать что-то достаточно большее чем они делали до этого(если без опыта работы), чем куча маленьких программок, для прощупывания каждой фичи.
я — не профессиональный преподаватель программирования конечно, но вот некоторые наблюдения, которые я извлек из собственного почти годового опыта ведения различных курсов:
1) вы должны искренне хотеть научить людей профессии, а не по-быренькомы натаскать их на какое-то определенное API, чтобы потом закрыть кадровые дырки в своих текущих проектах. Иначе ничего не получится — люди интуитивно будут чувствовать, что Вы просто хотите их использовать
2) человек, который ведет курсы, должен испытывать от этого процесса что-то сродни оргазму, иначе он просто не сможет увлечь аудиторию и до конца курсов вся группа рассеется. Если вы просто в административно порядке заставите какого-нибудь лида читать курсы, а оно ему «100 лет не надо» — лучше даже не пытайтесь.
3) не делайте курсы платными (если только не хотите именно на этом зарабатывать деньги)
4) не делайте слишком жестких входных условий (в идеале — никаких входных условий). те кому неинтересно — отсеются после
5) начните с азов. вы удивитесь, узнав, что даже многие практикующие программисты понятия не имеют о сложности алгоритмов, о том, зачем нужна инкапсуляция, как устроен стек протоколов TCP/IP, что такое связность, и почему сильная связность — это плохо
6) после каждого занятия давайте домашнее задание на практическое программирование. лучше домашнее задание давать на 1 сквозном рабочем примере, постепенно его усложняя. я в качестве примера выбрал для себя чат. на этом примере можно легко демонстрировать практически все: многопоточность, TCP/IP, HTTP, REST, JSON, XML, работу с БД, принципы построения UI, все GoF паттерны, практически все фаулеровские паттерны (вот Вам, кстати, и примерный список тем для лекций)
7) проверяйте наличие домашнего задания на каждом занятии. тут с ними злую шутку будет играть славянский менталитет: если не будет контроля — никто ничего не будет делать, даже если будет понимание, что это нужно в первую очередь им — все-равно будут забивать — это у нас в крови :)
ну вот в принципе вседерзайте :)
Жесть :)
Я представляю, какая каша в голове будет царить у нуба, когда ему будут втолмачивать GoF и фаулеровские паттерны под соусом программинга Ведроида.
Обучают ведь не программированию как искусству, а чисто как запрограммировать железяку, так что, мне кажется, универсалов подготовить физически не получится, и Фаулер идет лесом :)
Ну прочтете вы Фаулера, и что дальше? Чел не сможет сделать простейшее приложение, скажем, считывающее координаты девайса и отображающее на MapView точку, где он сейчас. Потому что чтобы это сделать — есть четкий набор шагов (чисто только по MapView — положить ее на MapActivity, сделать ключ, зарегать, получить доступ к API, не забывать и дебажной и релизной сборке и т.д., не говоря уже о том, как работать с LocationService), который нужно помнить как отче наш.
Или когда использовать AsyncTask, когда Handler а когда Messenger. Или когда использовать BoundService, а когда IntentService. И так далее, и тому подобное.
Архитектуру устройства надо учить, понимание на уровне как оно работает в девайсе, все кирпичи (активити, интенты, сервисы, ) и не GoF, а android UI patterns, знать, каким образом задумано взаимодействие сервиса с юзером, к примеру (подсказка начинается на букву N). Чтоб чел сам пощупал руками каждый view — тогда будет понимание, как оно проектируется. Ну и IDE соответственно, лучше использовать не Эклипс, хоть оно и официальное, а Idea (у нубов будет меньше неврозов :) Ну и не на эмуляторе крутить-вертеть, а на официальном девелоперском гуглофоне.
Вы еще под соусом Ведроида Джаве обучайте. Уверен — всем будет непонятно, но все постесняются сказать, чтобы не ударить в грязь лицом.
Как максимум, на таких курсах люди должны уже иметь бэкграунд. Либо очень хотеть его иметь. А не посещать, потому что программеры поднимают тонны бабла :) И курсы могут свестить к коллективному чтению developer.android.com под руководством наставника — там раскрывается тема сисек технологических подробностей, и весь возможный API. А все остальное ИМХО — замыливание глаз.
как раз все в обратном порядке:
сначала джава, элементарные алгоритмы (поиски, сортировки) с разбором понятия «сложность алгоритма»резултат: люди ПОНИМАЮТ как нужно писать программы чтобы они быстро работали
потом TCP/IP — весь стек, заканчивая HTTP(домашним заданием аля написать краулер или примитивный сервер)результат: люди ПОНИМАЮТ как работает инет
потом тоже самое — только во многих потокахрезультат: ПОНИМАНИЕ почему наличие нескольких потоков при одном процессоре может в разы ускорить работу приложения
потом паттерны c примерами на конкретном учебном проектеони ПОНИМАЮТ, почему копипаста — это плохо
и только потом конкретное АПИ конкретной платформы, которое идет на ура, как семечки, потому что люди ПОНИМАЮТ ПРИНЦИПЫ, на которых АПИ строитсяони ПОНИМАЮТ, почему разработчики фреймворка приняли то или иное решение
а вот это:
это так индусов учат программироватьПотому что чтобы это сделать — есть четкий набор шагов
в результате рождаются перлы типа:
Thread.sleep(24*60*60*1000);Date d = new Date();
это типа индус берет дату завтрашнего дняа думать не научили
я не хочу учить индусов — их и так полтора миллиарда — мне это не интересно
Вы это своими глазами видели? Или это Фаулер написал? :)ПОНИМАНИЕ почему наличие нескольких потоков при одном процессоре может в разы ускорить работу приложения
Своими глазами видел под WinMobile, 400MHz CPU, как три еще нормально, а 4 потока, даже с приоритетом BelowNormal, давало жесткие тормоза, даже UI поток нормально не обновлялся. а все потому, что есть бока в виртуальной памяти. А то, что асинхронная работа увеличивает производительность — это ясно и так. Так что, че-то вы там не то преподаете :)
Кстати, есть вариант нубов учить программингу Ведроида через AppInventor (www.appinventorbeta.com/about/. Можно очень быстро войти, но если быстро не выйти — можно остаться авнокодером :)
спасибо за красочную иллюстрацию к моему повествованию :)
А вы, наверное, прочесть не можете объяснение в тексте? И не надо, пожалуйста, перекручивать мои слова. Кстати, последовательность — сугубо у теоретиков, коими вы и являетесь. На практике уверен, вы делаете умное лицо и пускаете пыль в глаза умными фразами
Коментар порушує правила спільноти і видалений модераторами.
Коментар порушує правила спільноти і видалений модераторами.
не :) табличек надо как минимум
человек, который ведет курсы, должен испытывать от этого процесса что-то сродни оргазму
Лектора сразу в дурдом :)
Коментар порушує правила спільноти і видалений модераторами.
Хорошие пункты. Хочу добавить еще один. Привяжите, все что Вы хотели бы преподавать к расписанию, напишите программу и прикиньте сколько времени — вашего и обучаемого — это займет. И тогда вы сильно подумаете над тем, как сократить предложенный список.
Или Вам придется свое учебное заведение организовывать.
Или Вам придется свое учебное заведение организовывать.
к этому и идем :)
у особо одарённых забирают паспорт (чтобы оформить на работу)
ИМХО, на подобных курсах самое ценное — это общение, а не зубрение мат.части
С целью общения логичней сделать не курсы, а встречу Android разработчиков
Тогда это будет называться встречи будущих андроид разработчиков :)
опыта разработки под мобайл у них нет, опыта ведения курсов тоже. Что еще ожидать?
так может сразу на кладбище? ))
:)
33 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів