Я достаточно часто консультирую пользователей по работе с Thunkable и другими визуальными инструментами разработки, и могу сказать, что использование данных IDE является не таким уж простым занятием, как об этом пишется в рекламной информации о них. Неужели так сложно соединять блоки друг с другом?
Нет, соединять блоки не сложно! Основную сложность представляет непонимание общего алгоритма действий для решения задачи. Первое и самое главное правило гласит:
Если что-то непонятно, то задайте свой вопрос в Yandex или Google
С большой долей вероятности у кого-то ещё была похожая задача или проблема и, возможно, где-то это уже обсуждалось и было дано решение. Большое количество проблем решается на англоязычных ресурсах. Установите в браузер плагин с переводчиком и задавайте свои вопросы в Google на английском языке.
Для решения какой-то задачи используется тот или иной инструмент разработки. С большой долей вероятности существует сообщество (возможно, только англоязычное), в котором обсуждаются вопросы, связанные с использованием данного инструмента. Не всегда участники готовы с энтузиазмом отвечать на элементарные вопросы, но сообщество может быстрее помочь в чём-то, по сравнению с изучением книг. Но следует понимать, что бесплатно никто не будет делать приложение за другого.
Визуальное программирование с использованием блоков позиционируется как инструмент, требующий минимальных знаний программирования. В иной рекламе сообщается о том, что любой сможет при помощи них создавать приложения даже без навыков кодирования! Что из этого ближе всего к истине? Первая фраза, в которой косвенно говориться о необходимости знания каких-то основ программирования. Если пользователь не знаком с типами данных, операторами, управляющими инструкциями, функциями, объектами и др., то он будет постоянно сталкиваться со сложностями. Более того, при разработке приложений возникают вопросы, которые напрямую не относятся к среде разработки, например, этапы разработки приложений, прототипирование, отладка, использование CSV, JSON, URI, Javascript, Web API и другое. Можно, конечно, работать методом копирования, но практика показывает, что в случае непонимания основ даже при наличии примера не каждый пользователь сможет адаптировать его для решения своей задачи.
Опытные программисты, возможно, усмехнутся, увидя курсы по обучению программирования на App Inventor, Thunkable, Sketchware и др., но при помощи этих инструментов создаются работающие приложения и пользователь, который прошел обучение, потенциально и на перспективу будет иметь на порядок больше знаний того, кто пытается с нуля самостоятельно разобраться с этим. Нюанс состоит в том, что визуальное программирование рассматривается как инструмент для начинающих и большая часть документации, материалов и примеров, которые можно в сети, даётся с позиции простоты и без учёта эффективности. В результате, пользователи быстро учатся простым, но неэффективным приёмам, в результате чего появляются приложения, состоящие из сотен одинаковых блоков, тогда как всё можно было сделать намного быстрее и с использованием в несколько раз меньшего числа блоков.
Однажды меня попросили посмотреть проект на предмет странного отображения разметки на iPhone. Я открыл проект, но работать с ним было совершенно невозможно. Из-за огромного количества однотипных блоков область редактора блоков растянулась экранов на 20-30 в высоту, и всё просто дико тормозило на весьма приличном компьютере. После демонстрации оптимизированного блока разработчик исправил часть алгоритма, но дублирующиеся блоки остались. На предложение убрать повторяющиеся блоки в функции он сказал, что данные блоки работают и он сомневается в том, что тут можно и нужно что-то улучшать. После демонстрации результата он изумился и согласился с тем, что с проектом действительно стало работать проще.
В текстовом программировании обучение эффективным приёмам составления алгоритмов и программирования происходит после изучения основ, что вполне логично. Но в случае визуального программирования навыки эффективной разработки желательно показывать одновременно с традиционным решением после изучения основ. Например, cначала показали то, как создаётся список при помощи 20 блоков, а затем с использованием двух блоков для наглядной демонстрации трудозатрат и простоты поддержки в будущем.
Является ли наличие преподавателя гарантией того, что он будет обучать эффективным приёмам работы в визуальных средах разработки? Нет. Многое зависит от методики преподавания, материала и уровня подготовки. При помощи визуального программирования можно и учиться программировать, и создавать приложения.
В текстовом программировании существуют тысячи функция для решения частных задач - для работы с данными, строками, числами, объектами, файловой системой, интерфейсами и др. Для выполнения того или иного действия здесь часто достаточно просто найти нужную функцию из всего их разнообразия, а в визуальном программировании для этого часто приходится составлять алгоритм. Из сего этого следует простой вывод о том, что обучение визуального программирования должно включать в себя 3 направления:
Эффективные приёмы работы необходимо давать на втором и третьем этапе.