На первой неделе вы узнаете, что такое переменные, функции, методы, аргументы, параметры, классы, объекты, условия, циклы, массивы.
Не пугайтесь сложных терминов. На наших занятиях не будет скучных лекций. Очень скоро вы поймете, что написать функцию гораздо легче, чем выучить ее формальное определение. На первой неделе мы добьемся от вас интуитивного понимания, а только потом объясним, как формально называется то, что вы сделали. Вы сами не заметите, как начнете программировать.
Это возможно благодаря тому, в качестве первых примеров мы используем задания с участием робота по имени Карел. Карел - это супер-гипер-мега простой виртуальный робот, который изначально умеет выполнять всего пару простых команд (например, сделать шаг вперед, повернуть налево). Ваша задача максимально усовершенствовать его. У некоторых продвинутых студентов к концу первой недели Карел учится выполнять сложные математические действия и рисовать практически любые фигуры.
Робот Карел помогает учиться не только на наших курсах, в Стэнфордском Университете он помогает вести курс CS106A (
Programming Methodology).
Работая с Карелом, вы начнете знакомиться с концепциями "стена абстракции", "top-down design", "decomposition", которые помогут вам писать код быстро и понятно для других разработчиков.
Прелесть Карела заключается в том, что, при всей его простоте, вы сразу начинаете работать не в какой-то учебной программе, а в Android Studio, то есть в официальной среде разработки, с помощью которой создается большинство приложений под Андроид. Даже ошибки в своих Кареловских программах вы будете искать с помощью дебаггера Android Studio (дебаггер - это такая штука, которая помогает легче находить ошибки).
Уже на первой неделе вы начнете использовать аккаунт на GitHub, чтобы с его помощью сохранять и правильно организовывать исходный код своих программ (команды: init, clone, add, commit, push и др.).
Если вы хотите пропустить первую неделю, то вам следует:
- Уметь работать с переменными, методами, классами, объектами, условиями, циклами, массивами в Java.
- Уметь работать (включая дебаггинг) в любой современной Java IDE (Android Studio, Eclipse, NetBeans, IntelliJ IDEA и др.).
- Понимать, что такое абстракция и зачем она нужна.
- Иметь аккаунт на GitHub и уметь им пользоваться.
- Пройти собеседование с инструктором