Курсы по Android

В Житомире планируется проведение курсов для начинающих Android разработчиков.
Что Вы от ожидаете от подобной затеи?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
мнение студента:

Сам стартовал с подобных курсов. Было просто супер! Нам тогда повезло, был кризис и люди с уровнем рабочий джуниор сильно были не нужны на работе, поэтому собралась достаточно сильная группа. А это я считаю самым главным в процессе обучения, когда ваши студенты будут сами друг друга подгонять с помощью своего энтузиазма.

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

c удовольствием выслушаем все советы =)

я — не профессиональный преподаватель программирования конечно, но вот некоторые наблюдения, которые я извлек из собственного почти годового опыта ведения различных курсов:

1) вы должны искренне хотеть научить людей профессии, а не по-быренькомы натаскать их на какое-то определенное API, чтобы потом закрыть кадровые дырки в своих текущих проектах. Иначе ничего не получится — люди интуитивно будут чувствовать, что Вы просто хотите их использовать

2) человек, который ведет курсы, должен испытывать от этого процесса что-то сродни оргазму, иначе он просто не сможет увлечь аудиторию и до конца курсов вся группа рассеется. Если вы просто в административно порядке заставите какого-нибудь лида читать курсы, а оно ему «100 лет не надо» — лучше даже не пытайтесь.

3) не делайте курсы платными (если только не хотите именно на этом зарабатывать деньги)

4) не делайте слишком жестких входных условий (в идеале — никаких входных условий). те кому неинтересно — отсеются после 3-го занятия сами, а те, кому интересно — подтянутся до среднего уровня

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/. Можно очень быстро войти, но если быстро не выйти — можно остаться авнокодером :)

ну вот это как раз тот случай:
последовательность действий какую-то заучили,
а почему тормозит — объяснить не можем
почему в одних случаях добавление потока — ускоряет,
а в дугих — замедляет, не понимаем

спасибо за красочную иллюстрацию к моему повествованию :)

А вы, наверное, прочесть не можете объяснение в тексте? И не надо, пожалуйста, перекручивать мои слова. Кстати, последовательность — сугубо у теоретиков, коими вы и являетесь. На практике уверен, вы делаете умное лицо и пускаете пыль в глаза умными фразами

Thread.sleep(24*60*60*1000);
Date d = new Date();

Хм, а это мысль.

о да! передовая мысли индийской IT науки :)

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

не :) табличек надо как минимум 3-4, чтобы была возможность продемонстрировать «1 ко многим» и «многие ко многим». проект же учебный — там можно изобрести какую-угодно предметную область и какие-угодно требования :)

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

Лектора сразу в дурдом :)

Коментар порушує правила спільноти і видалений модераторами.

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

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

к этому и идем :)

мы делаем то же самое у себя

интересно было бы поделиться опытом :)

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

у особо одарённых забирают паспорт (чтобы оформить на работу)

Лично я — ничего не ожидаю от подобной затеи :)

ИМХО, на подобных курсах самое ценное — это общение, а не зубрение мат.части

С целью общения логичней сделать не курсы, а встречу Android разработчиков

Тогда это будет называться встречи будущих андроид разработчиков :)

зачем? есть куча курсов по разработке под андроид на торрентах.

опыта разработки под мобайл у них нет, опыта ведения курсов тоже. Что еще ожидать?

ага
а еще мы все рано или позно умрем

так может сразу на кладбище? ))

откуда такая уверенность?

так покажите портфолио, или хоть что-то на своем сайте

А хорошая идея, требовать с работодателя портфолио. «Рынок-то перегрет!» © кто-то здесь.

:)

Підписатись на коментарі