Я бросил свою высококлассную корпоративную работу, чтобы создать мобильное приложение для программирования с группой друзей

Я открыл для себя программирование около 4 лет назад после разговора с другом, и это заставило мою жизнь повернуться на 180 градусов.
В то время я был страстным скейтбордистом, но у меня не было собственных серьезных планов - в основном, я так и делал. не знаю, что делать со своей жизнью.
Программирование кардинально изменило это для меня.

Внезапно у меня появилась масса вещей, которые я хотел попробовать - будь то фреймворки, лучшие практики, библиотеки, сторонние проекты, что угодно. У меня было так много идей и так мало времени. После двух лет экспериментов с множеством разных вещей я получил одну из лучших вакансий, которую только можно было получить в качестве нового инженера-программиста - я стал старшим разработчиком в Deutsche Bank.

У меня была отличная зарплата, у меня было много времени болтать с друзьями в рабочее время, и никто не знал, что я делаю, я чувствовал себя волшебником в этой старой теневой корпорации.
Все это время я говорил о программировании. с моими друзьями присылайте им курсы (Freecodecamp!) и фрагменты кода. Я исправлял их код через мессенджер более пары раз.

Именно тогда я заметил, что изучать программирование на мобильных устройствах сложно. Очень сложно.

Современные приложения предоставляют простые викторины. Хотя они полезны как источник базовых знаний и поощрения, они не позволяют на самом деле познакомиться с самим кодированием. Все, что вы могли делать, это изучать теорию, если только вы не были действительно настроены. С другой стороны, в сети было несколько хороших обучающих платформ, и я решил попробовать написать что-то похожее на то, что мне нравилось больше всего - Freeecodecamp.

Как только я начал работать над этим делом, я заметил, что больше не могу сосредоточиться на своей работе в Deutsche Bank. Все, что я хотел сделать, это создать классное обучающее приложение, которое можно было бы использовать в метро, ​​университете или в самолете. Это было похоже на идею, над которой стоит поработать. Я пригласил своих друзей, которые были очень новичками в программировании, но у них хватило духа присоединиться.

И мы сделали это: codengo.net

Мы собрали массу отзывов от друзей-программистов и выдвинули следующие требования:

  1. В отличие от других приложений, CodeNGo не должен основываться на тестах. Он должен запускать отправленный пользователем код и иметь возможность проверить, выполняет ли он то, что описано в задаче.
  2. Большинство задач должно быть решено очень быстро - мы хотели, чтобы приложение было посвящено пониманию концепции, а не написанию десятков строк кода без причины.
  3. У него должна быть модная клавиатура для программирования - мы знали, что будет трудно даже приблизиться к тому, что могут предложить компьютеры, но мы хотели сделать ее настолько хорошей, насколько это возможно. Такие функции, как копирование строки или отмена, должны были работать.
  4. Клавиатуру следует настраивать - нам нужен другой набор клавиш для CSS и другой для Javascript.
  5. Пользователи также должны иметь возможность создавать проекты и делиться ими. На создание этого проекта во многом вдохновил codepen.io. Довольно круто поиграться с пользовательским кодом и изменить его на лету.
  6. Приложение должно ссылаться на интернет-ресурсы, такие как блоги для разработчиков, жаждущих знаний. (В итоге мы также поддержали Youtube!)
  7. Это должно позволить пользователям создавать свои собственные курсы в будущем.
  8. Приложение должно использовать автономный подход. Мы хотели убедиться, что вы можете писать код где угодно, независимо от подключения к Интернету.

CodeNGo - первое в своем роде мобильное приложение, поэтому нам нужно было многое выяснить:
Будет ли оно работать даже в мобильных браузерах?
Как сделать хорошую клавиатуру для программирования и разместить на ней все важные клавиши?
Как сделать так, чтобы приложение, использующее javascript на мобильных устройствах, не зависало?
Как вы справляетесь с безумными ошибками клавиатуры? - Клавиатуры Gboard и Swift требуют некоторых хаков на уровне разработки игр для работы с редакторами кода.
Как мы поддерживаем автономное кодирование?
Почему разработчики мобильного сафари могут испортить закрытие? (да, разберитесь!)
Что такое браузер Samsung?

Мы особенно гордимся нашей первоначальной реализацией клавиатуры. Мы сделали возможным перемещаться по коду, использовать дополнительные знаки кода и, что наиболее важно, использовать такие функции, как «выбрать все» или «отменить». Эти последние было интересно реализовать. Мы также показываем немного другой набор ключей в зависимости от используемого языка.

Наше приложение все еще находится на очень ранней стадии разработки, но мы рады поделиться им.

Мы надеемся, что CodeNGo позволит многим начинающим разработчикам начать свой путь программирования!