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

Я работал над небольшими программами, которые обычно использовали 5 или меньше функций. Это решило небольшую проблему. Теперь я вижу в них очень простую программу и, возможно, мало практичную и полезную. Тем не менее, я практиковался и учился решать проблемы, разделенные на маленькие, и они представляли мое предложение того, как я ее решил.

После этого я начал с JavaFX. Я попал в мир пользовательского интерфейса. Для меня это был самый невероятный опыт в программировании, я смог изобразить дизайн и попытаться воспроизвести его с помощью кода. Я был действительно впечатлен тем, как Java может создавать интерфейсы пользовательского интерфейса с (не маленьким, но) простым кодом.

Я был мотивирован, потому что чувствовал, что могу создавать полезные вещи. Я смог создать что-то, что можно использовать для других. Я помню, что я создаю видеоигру с картой памяти, используя JavaFX. Мои кузены были так счастливы, играя в эту игру (я был счастливее).

Когда я почувствовал себя комфортно со своими знаниями Java, я начал изучать дизайн шаблонов, принципы SOLID и рефакторинг на https://refactoring.guru/es. Я многому здесь научился. Я просмотрел старый код в антипаттернах, которых не знал. Во время этого процесса я почувствовал, что могу писать хороший код. Код, способный выживать в течение длительного времени (Builders, Abstract Factory, Adapters) с хорошим использованием памяти (Singlenton). Для пользовательского интерфейса Mediator и Observer были действительно полезны.

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

После этих двух невероятных лет работы с настольными приложениями. Я знакомлюсь с брокерами Arduino и mqtt, используя ESP8266 и C++. Это был хороший период. Я узнаю об электронике, программировании и протоколе mqtt с его брокером и слушателями, которые делают такие вещи, как отчеты о температуре, мигание светодиодов или включение / выключение интеграции с Google Home и адресным светодиодным контроллером.

После этого мне стало интересно, как работают веб-сайты. Так что я начал самостоятельно изучать веб-разработку. Я прошел вводный курс по Angular в Udemy. В этом курсе я узнаю о создании приложений Frontend с начальной загрузкой, маршрутизацией, потреблением API и безопасностью. Я работал над Recope API Consumer цен на газ в Коста-Рике https://precios-recope.jeisonaraya.com/. В настоящее время доступен, вы можете проверить его.

В тот момент я мог создать фронтенд, но хочу, чтобы я тоже создал бэкэнд. Поэтому я начал исследовать бэкэнд-разработку. Я читал о фляге, которая является фреймворком Python для создания API. Поскольку этот фреймворк очень прост, и Python тоже. Я начал изучать python и их flask api, используя его документацию. Я создаю несколько простых примеров, которых было достаточно, чтобы подтолкнуть меня к большему изучению веб-разработки и баз данных с помощью инструментов ORM.

Сейчас я работаю учеником разработчика в Pernix в Коста-Рике. Я работал в реальных производственных средах с CI/CD в Circleci, действиями github, автоматическим тестированием, кабанами Trello, списками кликов и многими другими инструментами, связанными с веб-разработкой. Я работал над личными проектами, такими как Recope API, боты Discord, интеграция Discord Auth0, веб-сайты для небольших компаний и небольшие видеоигры.

В данный момент я создаю Часто задаваемые вопросы/ответы для своего колледжа (Университет Коста-Рики). Это проект, который поможет сообществу, у которого есть повторяющиеся вопросы. Это сократит время отклика и ускорит общение. Я создаю интеграцию с бот-приложением Discord, которое может прослушивать, анализировать сообщения и генерировать ответы для пользователей в сообществе, использующих Discord. У него будет база данных вопросов и ответов, которую администраторы могут настраивать, например контактные номера или адреса электронной почты, даты событий, информация о курсах и многие другие мелкие функции, которые будут полезны.