Одна из первых проблем, которая кажется очень важно: «Какой язык выбрать для обучения программированию?»
Прежде, чем ответить на этот вопрос, я скажу, что особого значения не имеет, какой язык программирования вы выберете для начала. Совсем не обязательно пытаться «сэкономить время» и учить «полезный» язык. Профессиональные программисты владеют не одним, а несколькими языками программирования, кроме того, эта область динамична и ситуация постоянно меняется — нет смысла искать инструмент, которым можно пользоваться всю жизнь. Для каждой задачи — свой язык. Разумеется, очень много языков решают одни и те же задачи, поэтому еще один критерий выбора — знакомство с языком. Другими словами вы используете то, что подходит и то, что вы знаете.
Для обучения основам программирования нужно выбирать языки, которые подходят для этой задачи, т.е. будут достаточно просты для начала, имеют богатые возможности, позволяют получить быстрый результат. Для изучения программирования я могу порекомендовать несколько вариантов: VBA, Python, JavaScript, Pascal ABC.
Рассмотрю подробнее достоинства и недостатки этих вариантов.
VBA = Visual Basic for Application — это язык для создания макросов, который включён в Microsoft Office и некоторые другие программы. Очень удобно использовать Excel. Нажмите Alt+F11 и … вперед! Если у вас уже есть MS Office, то ничего не придется устанавливать — всё уже есть для начала работы. VBA — серьезный и «взрослый» язык, который широко используется для автоматизации работы в Excel и других программах. Основное преимущество: самый быстрый результат! Вы сможете сделать что-то полезное еще на этапе обучения!
Python — это скриптовый язык. Его характерная особенность состоит в том, что он был создан одним человеком. Язык элегантен и красив настолько, что потом сложно начинать работать с «классическими языками для обучения» (С++, Pascal / Delphi), они кажутся неказистыми и неудобными. Python используется для веб-программирования и для написания фрагментов кода для игр. Python используется в тех же областях, где PHP, Perl, Ruby и т.д. Основное преимущество: элегантность и богатые возможности для всех уровней программистов.
JavaScript — язык, который используется для «оживления» веб-страниц. Он выполняется в браузере, т.е. на стороне клиента. На стороне сервера работают скриптовые языки (PHP, Ruby, Python,…), они формируют веб-страницу. После загрузки в браузер за работу динамических элементов отвечают два инструмента — JavaScript и Flash. Основное преимущество: можно использовать при создании своего сайта. UPD: На JS+HTML5 можно писать приложения для смартфонов (все платформы), Google Chrome и Вконтакте.
Pascal ABC — учебная среда, основанная на языке Pascal. Удобно использовать для начального обучения программированию, для чего и была создана. Нельзя создавать свои законченные программы. Включает в себя задачник, нередко используется в ВУЗах и очень часто в школах. Pascal — основной язык для ЕГЭ по информатике. Последнее и есть основное преимущество.
Наверняка, существуют и другие удобные среды и языки программирования для обучения основам. Присылайте названия и аргументы в пользу той или иной системы и я включу их в обзор.
Напомню, что главное в выборе языка для изучения основ программирования — наличия книг по этому языку, наличие задач (они универсальны) и, желательно, человек, который знает этот язык, чтобы можно было с ним советоваться.
В нашей школе на первом этапе обучения используется VBA (если на вашем компьютере уже есть Microsoft Office) или Python (если Ms Office нет или у вас на компьютере Linux). Повторюсь еще раз: важен не язык, а те задачи, которые в на нем решаете.
Помню нас в институте обучали на Бэйсике и Паскале, причем на таких допотопных машинах))))))))))) Но именно с этого я и втянулась в программирование. Потом начала писать макросы — жизнь заставила, надоело выполнять одни и те же расчеты из документа в документ. На счет языка — действительно не важно с какого начинать (если вы не берете что-то типа Ассемблера), тут главное — понять, что вообще такое программирование, и как работает код. А языки, в принципе, отличаются только синтаксисом.
Еще не стоит начинать с PHP, Perl, JavaScript.
С последним утверждением не соглашусь, однако — языки отличают не только синтаксисом. Он — вторичен.
Во-первых важны модули и функции, например секрет популярности Perl именно в этом. В Delphi — неплохие объекты для работы с базами данных, в Python есть множество модулей для научной работы, PHP имеет огромное количество функций, требуемых для работы веб-серверов, обработки текста и ничего для графики (или очень мало).
Но и это еще не всё. Например, в одном языке есть сборщик мусора и можно не заботиться об освобождении памяти, в другом — нет и приходится внимательно следить за памятью. В одном реализовано полноценное ООП, в другом — либо нет, либо не все возможности ООП.
Так что синтаксис — это последнее, чем языки программирования различаются. Но для начинающих это всё не важно.
А макросы — сила, согласен. Кстати, первое, что я показываю из программирования — это макросы в Excel. Результаты в первый же день обучения — это приятно.
Стоит заметить, что в ведущих университетах США и Канады PITHON — наиболее распространенный язык для начального обучения программированию. Как с этим обстоит в университетах Европы, не знаю.
Возможно. Это разумно. В некоторых институтах России Питон также используется для начального обучения. Особенно неспециалистов (т.е. не программистов).
Поверьте моему опыту. В школе не нужно преподавать устаревшие языки программирования. От этого ученики начинают ненавидеть предметы информатики и вычислительной техники. Язык программирования должен быть не сложный и в тоже время, современным. Учеников нужно заинтересовать предметом и они его будут изучать с удовольствием.
Одним из лучший языков программирования для изучения в школе я считаю PureBasic, потому что он обладает всеми необходимыми качествами — простотой и увлекательностью для учащихся. Для него имеются компиляторы под многие системы в том числе и бесплатные (Linux) что актуально в наших школах.
А устаревший — это какой?
Надеюсь вы не считаете Python устаревшим языком?