Почему выбирают язык программирования Java или Основная идея курса "Обучение Java. Для школьников (и не только)"

В начале нулевых годов, попробовав программировать в IDE Delphi и Borland C++ Builder, я не на шутку увлекся процессом создания программ. И это увлечение оказалось настолько устойчивым, что я программирую по сей день. Примерно в тоже самое время фирму Borland с ее линейкой продуктов для быстрой разработки, так полюбившейся российским программистам, активно начала вытеснять с рынка корпорация Microsoft с ее Visual Studio. Почти одновременно у меня появилось увлечение операционной системой (ОС) Linux как альтернативой порядком надоевшей всем ОС Windows, совсем небесплатной и так горячо любимой вирусописателями.

Разыскивая инструмент для создания своих программных поделок я наткнулся на лозунг создателей Java - "пишешь один раз, используешь везде", который показался чрезвычайно заманчивым. Написав программу в Windows или Linux можно легко использовать ее в различных операционных системах. Итак, одно из основных достоинств Java, и это отмечают все, - кроссплатформенность.

Кроссплатформенность Java достигается за счет применения технологии "виртуальной машины", как среды выполнения Java-программ, записанных в, так называемом, "байт-коде". Все достаточно просто - записываем программу с помощью текстового редактора, компилятор делает из исходного текста байт-код. Байт-код с успехом исполняется операционной системой с использованием программы под названием "виртуальная машина Java" Java Virtual Machine (JVM). Главный архитектор Java Джеймс Госслинг еще будучи подростком проникся идеей создание такой программы (см. интервью), которая позволяла бы выполнять некий промежуточный код вне зависимости от платформы (операционной системы).

Реализовать эту идею ему удалось в компании Sun Microsystems в 1995 году. Безусловно, за универсальность виртуальной машины (ВМ) Java приходится чем то заплатить. В общем случае Java-программы выполняются медленнее аналогичных, написанных на C, C++ (см., например, Википедия). И это, определенно, "минус" самой идеи ВМ. Однако, в случаях, где скорость выполнения программы некритична, у технологий Java появляются определенные преимущества. А именно, простой и понятный синтаксис языка, близкий к C, что, кстати, способствует быстрому переходу на него C-программистов (не исключен и обратный процесс).

Далее, отказавшись от косвенной адресации объектов (указателей) создатели языка существенно упростили жизнь начинающим программистам, т.к. в общем случае при этом была повышена надежность кода и увеличена скорость разработки по сравнению с тем же C-C++ (см. Брюс Эккель "Философия Java", 4-е издание, с.13). И это, как оказалось, действительно облегчает работу программиста.

Список плюсов и "плюсиков" можно продолжать и далее. Однако, не все может быть понятно сразу. Самое главное - Java был выбран тысячами программистов и с помощью технологий Java они зарабатывают себе на жизнь. А это, по-моему, только подтверждает необходимость знакомства с данным языком программирования.

Желающим познакомиться с Java рекомендую вышеуказанную книгу Б.Эккеля, которая знакомит читателя с языком постепенно, с помощью несложных примеров, показывая правильное (с точки зрения создателей языка) применение заложенных в него технологий. Также рекомендую книгу Якова Файна "Программирование на Java для детей, родителей, дедушек и бабушек" (см. комментарий).

На веб-страницах сайта "Учись программировать", будут выкладываться материалы для занятий, которые могут помочь начинающим в изучении Java и применении этих технологий на практике, в том числе для программирования мобильный устройств, работающих под управлением операционной системы Android. Конечно, знание какого либо другого языка программирования (например Pascal), не повредит, но будет сделана попытка подать материал для людей не имеющих в программировании опыта, за эталон возьмем школьника старших классов, интересующегося программированием и понимающего что такое файл и текстовый редактор.

В изложении материала будут использованы некоторые принципы, первый: часть теории будет объясняться не сразу, основной упор - практика и получение работающей программы, объясняющей какой либо аспект языка или определенного алгоритма. В материалах занятий рассмотрение какого-либо теоретического момента может откладываться на потОм. Такой принцип изучения часто используется в технической литературе и не должен вызывать каких-либо недоумений. Программирование на языке, использующем объектно-ориентированный подход (термин ООП означает объектно-ориентированное программирование), достаточно сложный предмет для изучения и различные нюансы ООП можно изучать, не побоюсь сказать, на протяжении всей жизни.

Второй использованный принцип - это попытка предлагать на одном занятии минимальное количество нового материала с четким выделением того что изучается в данный момент. Конечно, желательно разбирать новое, основываясь на уже пройденном материале предыдущих занятий. Именно это и практикуется в данном курсе.

Не скрою основная трудность преподавания - это совмещение двух этих принципов, однако, опыт показывает, что такое совмещение возможно!

Итак, добро пожаловать на Занятие №1

Ознакомиться с книгой Б.Эккеля "Философия Java" (2-го издание) онлайн можно здесь.
Ссылка на книгу Я.Файна "Программирование на Java для детей, родителей, дедушек и бабушек" - http://myflex.org/books/java4kids/JavaKid8x11_ru.pdf

Комментарии

В процессе работы над любым проектом, даже небольшим, конечно возникают какие-то новые мысли, интересные идеи. Пропарсив Интернет запросом "Java для школьников" (я на полставки работаю учителем информатики) и не найдя ничего цельного я решил создать свою программу для элективного курса "Язык программирования Java".
Общую идею которого можно выразить такой схемой:
Основы ООП и Java (JDK)->Создание приложений для ОС Android (+простейшая игра).
То есть, мысль такая: изучаем язык "в процессе работы над игрой для Android".
Однако при подготовке материала обнаружил интересную книгу Файна Я. "Программирование на Java для детей, родителей, дедушек и бабушек". Книга выстраивает такую схему изучения языка:
Основы ООП и Java (JDK)->Создание приложений для персонального компьютера (+ простейшая игра), используя библиотеку SWING-> Использование Java в WEB.
Книга действительно стоящая, поэтому тоже - рекомендую. И даю ссылку в статье.

Страницы