Порой возникают ситуации, когда под рукой нет ничего кроме планшета, подключенного к интернету, а решать задачи связанные с программированием - надо. Особенно остро это ощущается при переходе на дистанционное обучение, когда учащиеся вынуждены использовать те устройства, которые у них есть в наличии. Как правило, это смартфон или планшет под управлением ОС Android. Такое устройство можно довольно просто "превратить" в функциональный аналог персонального компьютера, как описано в этой статье. Но единственным оптимальным решением для задач программирования на таких устройствах являются системы онлайн-программирования (Online IDE). Нельзя сказать, что выбор таких систем, особенно бесплатных, в настоящее время достаточно велик, однако в настоящее время существует достаточно бесплатных интернет-сервисов, позволяющих выполнить написание и отладку программного кода на многих языках программирования.
Тем не менее, если у вас есть старый персональный компьютер, который вас не очень устраивает в плане характеристик, попытайтесь "привести его в чувства", воспользовавшись нашей статьёй "Удалёнка. Возврат к персональным компьютерам". Работа на нём все равно будет гораздо удобнее и эффективнее, чем на смартфоне или планшете.
Диаграммы Creately
Несмотря на то, что статья о программировании, следуя "хорошим манерам" (разумеется, в программировании) начнём её с описания онлайн-системы построения диаграмм, схем и блок-схем алгоритмов - Creately. Ограничения бесплатной версии: до 5 диаграмм на 1 учётную запись и до 60 элементов в одной диаграмме.
Вот еще один мощный инструмент рисования диаграмм Diagramms.net. Это отличный сервис, бесплатный с открытым исходным кодом. Есть русский язык интерфейса (переключается глобусом справа вверху) и возможность сохранения в XML формат.
Особенность этих сервисов, в частности, в том, что они позволяют организовать совместную работу над диаграммой нескольких человек. Интерфейс — максимально приближен к Microsoft Visio.
Разумеется, область применения таких систем крайне широка, но к программированию они имеют самое прямое отношение. Очень часто для создания программы, её структуры или просто понимания её работы необходимо быстренько набросать визуальную схему алгоритма. И вот для этой цели подобная система - просто незаменима.
Scratch
Начнем мы, как обычно, с самых простых систем, которые отлично подходят для самого начального обучения программированию. Самой простой системой программирования является Scratch, которая отлично подходит для обучения программированию детей на самом начальном этапе. Онлайн версия среды программирования, которую можно открыть в любом интернет браузере расположена по адресу: https://scratch.mit.edu/projects/editor/?tutorial=getStarted. Здесь вы можете просмотреть небольшое обучающее видео, создавать свои программы, персонажей и запускать получившиеся проекты для просмотра результатов. Для переключения на русский язык необходимо ткнуть в значок глобуса в левом верхнем углу и выбрать в выпадающем списке языков "Русский". Если же у вас есть персональный компьютер под управлением Windows, вы можете скачать и установить полноценную среду разработки Scratch с этой страницы: https://scratch.mit.edu/download. Не так давно появились версии Scratch для Android и других мобильных систем. Так что выбор, чем пользоваться - достаточно велик. Следует отметить, что хоть в Scratch наконец-то появилась поддержка программирования роботов Lego, в частности EV3 и WeDo, однако до функционала библиотеки EV3 Basic для MS Small Basic ей очень далеко.
MS Small Basic
Следующей средой для программирования онлайн является, собственно, сам Microsoft Small Basic. Это очень неплохая замена оффлайн версии, однако, существует ряд недостатков, которые позволяют рекомендовать эту среду разработки только в крайнем случае. Во-первых, в онлайн версии разработчики от Microsoft решили не утруждать себя переводом интерфейса и т.п., поэтому в отличие от оффлайн версии всё - только на английском. Во вторых, часть функций стандартной библиотеки выключена из соображений безопасности, совместимости и проч. И, в-третьих, многие функции языка в онлайн-среде работают не совсем так, как в оффлайн, что может добавлять проблем при программировании. Онлайн версию среды разработки MS Small Basic можно открыть в браузере по адресу: https://superbasic-v2.azurewebsites.net/.
PythonTutor
Сервис PythonTutor позволяет программировать и наглядно отлаживать онлайн программы, написанные на языках Python, JavaScript, C, C++, и Java. При этом можно выбрать версию компилятора, поделиться кодом и даже создать Iframe (встроенное окно) для своего сайта.
IdeOne.com
В качестве очень мощного универсального онлайн-сервиса для разработки программ на разных языках программирования стоит порекомендовать сайт IdeOne.com этот сервис позволит вам создать и отладить проект более чем на 30 популярных языках программирования, включая C, C++, C#, PHP, Pascal, Python, Ruby, Java, JS, VB.net и даже Assembler и Ada. Сервис позволяет настроить лимит времени, указать данные для стандартного потока ввода, добавить к коду описание, а также поделиться им с друзьями или коллегами, которые, в свою очередь, с помощью удобного интерфейса смогут сделать форк ваших исходников. Доступна также вставка сохраненного кода на сайт через специальный виджет.
CodePad
CodePad — это минималистичный сервис, предоставляющий возможность хранения, шаринга, а также запуска кода с последующим выводом результатов его выполнения. На выбор предоставляется несколько наиболее распространенных языков программирования, но, к сожалению, без выбора конкретных версий. Главным его достоинством является простота и легкость: всё будет быстро работать даже при медленном интернете. Предусмотрено автоподключение стандартных заголовков, а также, интеграция с Vim или Emacs. Из минусов можно назвать полное отсутствие подсветки синтаксиса при вводе кода в форму.
Compiler Explorer
Compiler Explorer (ранее - GCC GodBolt) — уникальный проект для исследования компилируемого кода. Достаточно ввести исходный код в левую панель, и сайт мгновенно покажет вам на правой панели скомпилированный результат (обычно на языке ассемблера).
Интересуетесь компиляторами? Хотите сравнить архитектуры процессоров, компиляторы, команды разных языков? Всё это есть здесь.
SandBox и PHPFiddle
Сервисы SandBox и PHPFiddle позволяют выполнить ваш PHP код и получить результат его работы. При этом PHPFiddle работает с последней актуальной версией PHP, и имеет возможность форматирования вывода скрипта HTML разметкой. SandBox же дает пользователю возможность выбрать версию PHP самостоятельно. Это может быть полезно, например, для проверки кода на обратную совместимость.
VEXcode
Хотелось бы обратить особое внимание на систему программирования виртуальных роботов VEXcode. Эта система сочетает в себе графическое программирование Scratch и текстовое программирование (правда, только на английском языке). Сама система полностью переведена на русский язык и позволяет в удобной игрофой форме программировать роботов и наблюдать, как они выполняют заданные программы.
https://education.vex.com/stemlabs/cs
И многие другие...
Вот ещё некоторое количество онлайн ресурсов, которыен можно использовать для обучения программированию (к сожалению, почти все ресурсы англоязычные):
Repl.it - интернет-сервис, позволяющий писать приложения в браузере. Сервис поддерживает множество языков программирования и библиотек к ним, а также большинство популярных фреймворков. Он даёт много возможностей и максимально приближен к десктопной IDE. Во-первых, здесь можно создавать целостную структуру проекта, разделяя код не только по разным файлам, но и по директориям. Разрешено использовать систему контроля версий, подключить имеющийся репозиторий с GitHub или создать новый. Можно воспользоваться дебагером, устанавливать переменные среды, подсоединить базу данных, пригласить людей для совместной работы. Здесь также отображаются предложения, пока вы пишете. И все это — бесплатно. В платной версии доступно неограниченное количество частных репозиториев, большая скорость и объём памяти.
Code.org - система онлайн-программирования.
HackerRank — это социальная платформа, которая предлагает задания разной сложности по программированию. Запущена платформа была в 2012 году. Сейчас аудитория проекта насчитывает около полутора миллиона пользователей. Статистику по результатам решений заданий своими пользователями ресурс регулярно публикует в виде рейтинга по 50 странам.
Coderbyte — предлагает 200+ соревновательных задач, которые вы можете решать в онлайн-редакторе, используя 10 различных языков программирования. Вы сможете ознакомиться с официальными решениями для некоторых задач, а также найти более 800 тысяч пользовательских решений. Coderbyte рекомендован командами многих известных образовательных курсов по программированию благодаря коллекции задач, полезных для подготовки к собеседованию.
Codewars — предоставляет разработчиками большую коллекцию интересных задач, созданных сообществом платформы. Вы можете выполнять задания непосредственно в online-редакторе, используя один из 20 языков программирования. Зарабатывайте очки и поднимайтесь в рейтинге. Вы можете просмотреть обсуждение как для каждой задачи, так и для пользовательский решений.
CodeFights — платформа, состоящая из коллекции задач, которые можно решать в онлайн-редакторе, и форума пользователей для обсуждения возникающих проблем. Отличительной особенностью является функция «Company Bots». Это возможность конкурировать с «ботами», которые были запрограммированы инженерами крупных технологических компаний. Вы когда-нибудь задумывались, насколько ваши навыки программирования соответствуют стандартам инженеров из Uber, Dropbox, Quora и других высокотехнологичных компаний? Посоревнуйтесь с этими ботами и узнайте.
CodinGame — Этот сайт отличается от перечисленных выше тем, что вместо обычного решения, на CodinGame вы пишете код непосредственно для того, чтобы сыграть в онлайн-игру. Это увлекательно и некоторые из игр очень забавны. Игровая графика хороша, а пользовательский интерфейс редактора/игры очень плавный. В целом, это отличный веб-сайт для новичков, изучающих программирование.
TopCoder — одна из первых платформ для соревнований по онлайн-программированию. Популярные Single Round Matches происходят несколько раз в месяц в определенное время. Это возможность посоревноваться с другими разработчиками. Вот несколько тем, которые могут быть затронуты. Помимо решения головоломок для развлечения, предлагаются и соревнования, в которых вы можете выиграть призы от спонсоров (реальных компаний) за лучшее решение.
LeetCode — В LeetCode собрана одна из лучших коллекций задач на применение алгоритмов. Темы, которые охватывают задания, требуют знания структур данных (binary trees, heaps, linked lists, etc.) Задачи более сложные, чем на других сайтах, но они окажутся очень полезными, если использовать их при подготовке к собеседованию. Раздел "Mock Interview" (Пробное интервью) специально предназначен для подготовки к собеседованию. Также проводятся соревнования по программированию, и есть раздел статей, который поможет вам лучше понять определенные задания.
CodeChef — это некоммерческая образовательная инициатива индийской софтверной компании. Это глобальное сообщество программистов, объединенное целью обучения и дружеской конкуренции в рамках платформы для соревновательного программирования. Каждый месяц CodeChef проводит три конкурса и раздает призы победителям в качестве поощрения.
GeeksforGeeks — имеет лучшую коллекцию статей, объяснений и решений по теме алгоритмов и структурам данных. По ссылке вы можете увидеть пример того, как сложный вопрос разбивается на более простые части, объяснение и код решения. Если вы готовитесь к собеседованию, советуем вам использовать этот сайт, чтобы подготовиться и освежить сложные темы в изучении алгоритмов.
Codeforces — российская платформа для соревнований по программированию, на которой регулярно проводятся турниры, в которых участвуют одни из лучших программистов в мире. Если вы начинающий кодер, задания, скорее всего, будут слишком сложны для вас — вот пример из недавнего соревнования. Для решения этих задач обычно требуются передовые знания в области математики и алгоритмов. Цель Codeforces — предложить разработчикам удобную платформу для создания, проведения и обсуждения соревнований по программированию.
С++ Shell - простая платформа для работы с коном на C++.
CodingGround - довольно простой редактор, без широкого спектра возможностей, но удобный, когда надо быстро проверить что-то в пределах одного файла. Поддерживает более 70 языков и технологий, можно делиться кодом. Вообще это один из проектов ресурса TutorialsPoint, поэтому сайт можно использовать и для обучения — здесь есть много платных курсов и бесплатных детальных туториалов.
OneCompiler - эта платформа позволяет работать с 40 языками программирования, а также с фронтендовыми фреймворками. Из интересных возможностей — для зарегистрированных пользователей есть большой сборник задач по программированию разного уровня сложности.
W3Schools - это ещё одна известная платформа с курсами, туториалами, упражнениями и тестами. Онлайн-компиляторы предлагают для тех языков, которые можно изучать на сайте — PHP, Java, C++, C#, R, JavaScript, Go, а также этот онлайн компилятор поддерживает Python и другие. Также есть редакторы для работы с HTML, CSS, SQL и тому подобное. Ресурс имеет простой минималистичный интерфейс, без продвинутых функций.
OnlineGDB - этот компилятор C++ поддерживает несколько языков, но в первую очередь предназначен для C и C++. Есть дебаггер. Интересная функция «beautify», автоматически форматирующая код, в частности отступы в нём, в соответствии со стандартами.
DotNetFiddle - Этот онлайн компилятор C# поддерживает C#, F# и VB.NET. Он позволяет делиться кодом, как для просмотра, так и для совместной работы. Также есть разные режимы — для консольного приложения, скрипта, по шаблону MVC и с фреймворком Nancy. А ещё имеется опция «tidy up» — если ручная расстановка отступов отнимает много времени.
CodeSandbox - на этой платформе можно работать с HTML и многочисленными JavaScript библиотеками и фреймворками — React, Vue.js, Node.js и многими другими технологиями. Поддерживается создание иерархической структуры проекта, можно подсоединить профиль GitHub. А ещё — развернуть разработанное приложение на одном из предложенных сервисов. Среди возможных недостатков — вся ваша работа будет в публичном доступе. Частные проекты можно разрабатывать в платной версии.
The Go Playground - это компилятор от официального сайта Go. Возможности довольно ограничены, есть только пространство для работы с кодом и консоль для вывода. Поэтому если нужно быстро проверить небольшой участок кода, сервис справится, а для более широкого функционала можно воспользоваться Repl.it, Online IDE, Online GDB или иной площадкой, что поддерживает Go.
JDoodle - здесь можно выбирать версию языка, задавать аргументы командной строки, добавлять ввод. Также есть возможность совместной работы над кодом, который можно использовать для проведения интервью. Сервис поддерживает более 70 языков, однако особенно полезен для разработки на Java. Например, именно для неё есть два типа компилятора — базовый, когда нужно быстро выполнить несколько строк кода, и продвинутый — для структуры из многочисленных файлов, работы с чтением и записью к документам.
Кстати, советуем посмотреть очень наглядное и полезное краткое видео о том, как правильно совмещать работу на компьютере и заботу о своём здоровье:
Поделиться: