Devin AI отличается от обычных программистов. Этот инновационный ИИ разработан стартапом Cognition и считается первым в мире инженером-программистом ИИ. Но какие именно преимущества это дает и как оно повлияет на будущее кодирования? Как он изменет игру...
Devin AI отличается от обычных программистов. Этот инновационный ИИ разработан стартапом Cognition и считается первым в мире инженером-программистом ИИ. Но какие именно преимущества это дает и как оно повлияет на будущее кодирования?
Devin AI, проект стартапа Cognition, вызвал настоящий шок в технологическом мире. Этот ИИ - не просто еще один помощник по программированию, он создан с целью стать полноценным инженером-программистом, способным управлять проектом от идеи до реализации. Но что стоит за ним? Давайте взглянем на его возможности и изучим потенциальную технологию, которая лежит в его основе.
Что способен делать Devin?
В отличие от традиционных помощников по программированию на базе искусственного интеллекта, таких как GitHub Copilot, которые предлагают фрагменты кода и предложения, Devin работает на совершенно новом уровне.
Вот его главные отличия:
1. Независимое выполнение проектов: Если вы дадите Devin четкую цель, например, создание платформы электронной коммерции, он способен взять на себя полный цикл разработки. Он пишет чистый код, исправляет ошибки и даже разворачивает готовый продукт.
2. Превосходное планирование и предотвращение проблем: Говорят, что Devin обладает удивительной способностью предвидеть потенциальные проблемы и организовывать процесс разработки таким образом, чтобы обеспечить максимальную эффективность.
3. Самообучение и совершенствование: Постоянно обновляясь и развиваясь, Devin учится на своем опыте, улучшая свои навыки программирования и способность решать проблемы.
4. Отладка на профессиональном уровне: Devin способен находить и исправлять ошибки в своем собственном коде, что экономит драгоценное время разработчиков на отладку.
И многое другое...
Тестирование Devin:
Devin успешно прошел тестирование на площадке SWE-Bench, где агенты решают реальные проблемы GitHub, обнаруженные в проектах с открытым исходным кодом, таких как Django и Scikit-learn.
Devin правильно решает 13,86%* сложных проблем, что значительно превышает предыдущий результат в 1,96%. Даже при предоставлении точных файлов для редактирования лучшие предыдущие модели справляются только с 4,80% проблем.
Потенциальное влияние Devin: волна изменений в технологической отрасли
Появление Devin в качестве первого в мире инженера-программиста ИИ вызвало необычайный резонанс в технологической отрасли. Его возможности могут потенциально революционизировать различные аспекты разработки программного обеспечения и оказать воздействие на бизнес, разработчиков и даже пользователей. Рассмотрим некоторые значимые последствия:
Повышение производительности разработчиков:
- Освобождение от рутинных задач: Devin способен автоматизировать повторяющиеся задачи кодирования, такие как создание шаблонного кода или базовых функций. Это позволяет разработчикам сконцентрироваться на стратегическом мышлении, творческом решении проблем и инновациях.
- Ускорение циклов разработки: Скорость и эффективность, которые обеспечивает Devin, могут значительно сократить время разработки. Это может привести к более быстрому запуску продукта и более частым итерациям на основе обратной связи пользователей.
- Уменьшение размера команды: В некоторых проектах возможность Devin выполнять значительную часть процесса разработки позволяет компаниям работать с более компактными командами разработчиков.
Демократизация разработки программного обеспечения:
- Снижение барьера вхождения: Удобный интерфейс Devin и его способность генерировать код на основе простых инструкций могут поставить на поток даже тех, у кого ограниченные знания в области программирования, и позволить им создавать базовые приложения.
- Рост гражданских разработчиков: Люди в компаниях без технического образования, например, менеджеры продукта или маркетологи, смогут использовать Devin для создания прототипов своих идей или простых инструментов для оптимизации рабочих процессов.
- Появление инноваций из неожиданных источников: Сделав разработку приложений более доступной, Devin стимулирует инновации со стороны более широкого круга людей и команд, что приводит к более разнообразному спектру программных решений.
Преимущества для бизнеса и потенциальные риски:
- Ускорение выхода на рынок: Благодаря Devin компании могут быстрее представлять свои продукты и услуги на рынок, что потенциально дает им конкурентное преимущество.
- Снижение затрат на разработку: Более быстрые циклы разработки и более компактные команды могут привести к существенной экономии затрат для бизнеса.
- Изменение набора навыков разработчиков: Поскольку Devin берет на себя многие рутинные задачи, разработчикам приходится адаптироваться и развивать новые навыки, уделяя больше внимания таким областям, как дизайн-мышление, пользовательский опыт и сложное решение проблем.
Воздействие на технологическую сферу:
- Наблюдается стремительное развитие программного обеспечения: Благодаря эффективности Devin, возможно значительное увеличение количества разработанных программных приложений, что приведет к созданию насыщенного и конкурентоспособного рынка.
- Фокус на пользовательском опыте: Благодаря ускоренным циклам разработки компании могут уделять более приоритетное внимание тестированию и итерации пользовательского опыта, чтобы выделиться на перегруженном рынке.
- Эволюция роли разработчиков: С развитием искусственного интеллекта, такого как Devin, роль разработчиков может эволюционировать в направлении управления этими инструментами, управления сложными проектами и обеспечения общего качества и безопасности программного обеспечения.
Возможные потери рабочих мест:
- Автоматизация повторяющихся задач:
Способность Devin выполнять рутинные задачи кодирования, такие как написание шаблонного кода или базовых функций, может сделать некоторые задачи начинающих программистов устаревшими.
- Уменьшение размера команд: В случае менее сложных проектов эффективность Devin может позволить компаниям работать с более компактными командами разработчиков, что потенциально может привести к сокращению рабочих мест.
- Изменение набора навыков: По мере того, как искусственный интеллект берет на себя рутинные задачи по кодированию, спрос на разработчиков с такими специфическими навыками может снизиться.
Важно помнить, что это лишь потенциальные последствия. Как Devin окончательно сформирует технологическую индустрию, будет зависеть от его дальнейшего развития, его интеграции в существующие рабочие процессы и от того, как заинтересованные стороны будут адаптироваться к этому меняющемуся ландшафту.
Является ли Devin ИИ будущим?
Разработка Devin представляет собой значительный прогресс в области использования искусственного интеллекта в кодировании. Но важно помнить, что он все еще находится в стадии разработки. Несмотря на то, что Devin может справиться с многими задачами, сложные проекты все равно могут требовать человеческого опыта.
Будущее разработки программного обеспечения, вероятно, связано с сотрудничеством, при котором инструменты искусственного интеллекта, такие как Devin, расширяют возможности человека. Это может привести к созданию более эффективной и инновационной среды разработки, приносящей пользу как предприятиям, так и пользователям.
Понимание возможностей системы 1С позволяет специалистам создавать индивидуальные решения для различных предприятий, повышая их эффективность и конкурентоспособность. Многие компании готовы предложить высокооплачиваемую работу квалифицированным специалистам по 1С. Особенно этот язык востребован на отечественном рынке. Мы подобрали курсы по 1с программированию от самых популярных школ с высоким рейтингом.
Статья обновлена 3 апреля 2024 года.
Курсы по 1с программированию из подборки разработаны таким образом, чтобы вы могли не только овладеть основами на платформе 1С, но и научиться создавать индивидуальные решения, повышающие эффективность работы предприятий. Большинство школ программистов 1с из рейтинга предлагают по завершении обучения дипломы, которые котируются у работодателей. Также некоторые помогают в трудоустройстве, давая рекомендации фирмам-партнерам.
ТОП-7 лучших курсов по 1С-программированию
Профессия «1C-разработчик» от Skillbox — создатели обещают выход на зарплату в 80 000 ₽ через 6 месяцев обучения (промокод ГДЕКУРС — скидка 45% на курсы)
«1C-программист: расширенный курс» от Нетологии — курс с программой помощи в трудоустройстве (промокод GDEKURS — дополнительная скидка 5% на обучение)
Профессия «1С-программист» от SkillFactory — есть гарантия возврата средств, если после окончания курсы вы не сможете найти работу по специальности
Здесь вы научитесь не просто синтаксису языка, но сможете поработать над реальными проектами, а также получить помощь в трудоустройстве. На выходе у вас будет сертификат и сформированное портфолио, которое станет отличным конкурентным преимуществом на рынке труда. Мы собрали курсы по 1с программированию от лучших IT-школ на СНГ рынке. У них много положительных отзывов, отлично налажена организационная работа, а у некоторых даже есть стажировки для студентов.
🎁 По промокоду ГДЕКУРС доступна скидка 45% на курсы.
Пройдите курс программиста 1С и обеспечьте себе перспективное трудоустройство уже после окончания обучения. Образовательная программа сертифицирована создателями платформы 1С: Предприятие. В ходе обучения вы создадите полноценное решение по реальному техническому заданию, овладеете навыками разработки справочников, документов и регистров для учета товаров, а также настроите процессы работы с CSV-файлами и сбора данных с веб-ресурсов.
Доступ к материалам и видеоурокам сохраняется навсегда, позволяя вам обновлять свои знания в удобное время. Важным аспектом является также возможность обучения и практики в рабочей среде 1С:Предприятие, которая предоставляется студентам бесплатно. Каждая практическая работа будет детально разобрана куратором-экспертом, который даст обратную связь в кратчайшие сроки.
Skillbox — онлайн-курс по 1С-разработке с нуля
Стоимость: от 131 600 ₽
Рассрочка: от 4 714 ₽ в месяц на 28 месяцев с отложенным платежом на 3 месяца
Длительность курса: от 12 месяцев
Формат: теория + практические занятия + кураторская поддержка
Домашние задания: есть
Документ об окончании: сертификат, свидетельство разработчика 1С
Особенности и преимущества школы:
Школа обещает вернуть деньги, если вы не сможете трудоустроиться по специальности после обучения.
Можно оформить налоговый вычет на обучение.
Дополнительно выдается свидетельство от разработчиков 1С, которое станет хорошим конкурентным преимуществом.
Пожизненный доступ к материалам курса.
Преподаватели практикующие senior-разработчики с 10-летним опытом.
Недостатки школы:
По отзывам некоторых пользователей — образовательная платформа неудобная.
Для обучения требуется предварительно настраивать программы, что не всегда понятно как делать.
🎁 По промокоду GDEKURS доступна дополнительная скидка 5% на обучение.
Погрузитесь в мир 1С программирования с нуля и станьте востребованным специалистом всего за 8 месяцев обучения. Курс дает возможность освоить продвинутые инструменты, такие как «1С: EDT» и Git, а также создать мобильное приложение на базе «1С». Это будет отличным проектом для портфолио, что даст вам конкурентное преимущество на рынке труда.
Под руководством опытных преподавателей вы подготовитесь к сдаче экзаменов на сертификаты «1С: Профессионал» и «1С: Специалист». В ходе обучения освоите навыки создания и доработки функционала 1С, автоматизации бизнес-процессов, интеграции системы с другими веб-сервисами, а также разработки мобильных приложений на основе 1С. Кроме того, вы научитесь проводить автоматизированное тестирование, контролировать эффективность разработанных решений.
Нетология — расширенный курс по программированию на платформе 1С
Стоимость: от 115 700 ₽
Рассрочка: от 3 383 ₽ в месяц на 36 месяцев
Длительность курса: 18 месяцев
Формат: теория + практические занятия + кураторская поддержка
Домашние задания: есть
Документ об окончании: диплом о профессиональной переподготовке
Особенности и преимущества школы:
Нетология сотрудничает с основными IT-компаниями РФ и может устроить вас к ним в штаб.
Кураторы максимально оперативно отвечают на любые вопросы.
Есть реальная практика.
На курсе также рассматривается трудоустройство.
Можно оформить налоговый вычет за обучение.
Недостатки школы:
Часто дополнительную информацию приходится искать самостоятельно.
На протяжении 9,5 месяцев обучения на программиста 1С вы освоите широкий спектр навыков, необходимых для работы в области разработки. Научитесь устанавливать и администрировать платформу «1С:Предприятие», работать с конфигурацией «1С:Управление торговлей», а также устанавливать, настраивать и обновлять типовые и нетиповые конфигурации. Вы также научитесь писать код на языке программирования 1С и языке запросов, работать с отчетами, адаптируя их под требования заказчика, использовать библиотеку стандартных подсистем.
По завершении курса программиста 1С вы будете готовы уверенно претендовать на позицию разработчика 1С уровня junior в компании, использующей ПО от 1С, или во франчайзи-агентстве. Школа гарантирует возврат средств, если после завершения курса вы не найдете работу по специальности. Центр карьеры начинает сотрудничество со студентами с первого дня обучения и продолжает поддерживать вас даже после получения первого оффера трудоустройства.
SkillFactory — дистанционный курс по легкому входу в 1С с нуля
Стоимость: от 118 400 ₽
Рассрочка: от 3 290 ₽ в месяц на 36 месяцев
Длительность курса: 9,5 месяцев
Формат: теория + практические занятия + кураторская поддержка
Домашние задания: есть
Документ об окончании: диплом о профессиональной переподготовке
Особенности и преимущества школы:
Многие слушатели отмечают высокий уровень квалификации преподавателей и их готовность помогать в процессе обучения.
Курс включает в себя множество практических заданий, что помогает лучше усвоить материал.
Оперативная поддержка и обратная связь от менторов.
Гарантия возврата средств, если не сможете найти работу.
Помощь в трудоустройстве.
Недостатки школы:
Время от времени студенты сталкиваются с техническими проблемами на платформе или при работе с обучающими материалами.
Материал подается очень интенсивно, из-за чего обучение может быть сложно совмещать с работой на полный день.
Погрузитесь в мир программирования на платформе 1С с нуля и освойте профессию программиста за 12 месяцев обучения по 12 часов в неделю. На курсе вы будете создавать архитектуру приложений, разрабатывать подсистемы и готовиться к сдаче экзаменов 1С. Так сможете получить не только теоретические, но и практические знания.
Школа программистов 1с постоянно поддерживает актуальность программы обучения, регулярно обновляя ее и адаптируя под изменяющиеся требования рынка. Каждый месяц будете онлайн-общение с экспертами и руководителями компаний, чтобы быть в курсе новых требований к вакансиям и обязанностям. Кроме того, программы специализаций частично совпадают, что позволяет вам изменить специализацию в процессе обучения, если вы поймете, что 1С разработка вам не подходит.
GeekBrains — обучение удаленной профессии программиста 1С с нуля
Стоимость: от 116 000 ₽
Рассрочка: от 3 216 ₽ в месяц на 36 месяцев
Длительность курса: 12 месяцев
Формат: теория + практические занятия + кураторская поддержка
Домашние задания: есть
Документ об окончании: диплом о профессиональной переподготовке
Особенности и преимущества школы:
На курсе также дается дополнительная информация, которая может быть полезна.
По отзывам учеников информация на курсе отлично систематизирована.
Можно перейти на смежное направление, если поймете, что выбранная специальность не нравится.
Помощь в трудоустройстве.
Недостатки школы:
По отзывам с техподдержкой возникают проблемы.
Курс очень наполнен информацией, из-за чего лекции приходится пересматривать по несколько раз.
За шесть месяцев вы освоите один из самых простых языков программирования и пройдете стажировку, обеспечивая себе перспективы в области 1С-разработки. Программа разработана экспертами из Яндекса, обладающими более чем 10-летним опытом работы в сфере 1С-разработки, что гарантирует вам качественное и актуальное обучение.
В течение курса по 1с программированию вы примете участие в создании шести проектов, которые станут вашим ценным портфолио и помогут вам найти работу в этой области. Получив диплом о профессиональной переподготовке, вы будете готовы к сертификациям 1С:Специалист и 1С:Профессионал, открывающим двери к карьерному росту. После окончания курса вы пройдете стажировку у партнеров Яндекса.
Яндекс Практикум — курс по 1С-разработке со стажировкой
Стоимость: от 124 000 ₽
Рассрочка: от 21 500 ₽ в месяц на 6 месяцев
Длительность курса: 6 месяцев
Формат: теория + практические занятия + кураторская поддержка
Домашние задания: есть
Документ об окончании: диплом о профессиональной переподготовке
Особенности и преимущества школы:
Программа обучения регулярно обновляется, учитывая требования современного рынка труда.
Многие преподаватели и менторы имеют опыт работы в крупных IT-компаниях или являются действующими сотрудниками Яндекса.
Обучение проходит в интерактивной форме с постоянной обратной связью.
Есть возможность трудоустроиться в Яндекс по завершении курса.
Недостатки школы:
Для некоторых студентов темп курса может показаться слишком быстрым, что усложняет усвоение материала.
Время от времени студенты сталкиваются с техническими проблемами на платформе.
Условия рассрочки менее выгодные, чем у других школ.
Всего за 4 месяца вы получите необходимые навыки написания кода и администрирования решений на базе архитектуры 1С. Формат обучения включает вебинары, видеоматериалы и практические задания. Каждый студент обучается под руководством личного наставника и команды поддержки. Вы всегда можете обратиться за помощью в личном чате.
Вы научитесь использовать все функции программы 1С, включая настройку и администрирование баз данных. Вы сможете проходить курс в любом удобном для вас месте, при этом предусмотрено расписание и дедлайны. Материал разработан на основе требований компаний к 1С-разработчикам.
Бруноям — интенсив по написанию кода и администрированию решений на основе архитектуры 1С
Стоимость: от 60 000 ₽
Рассрочка: от 4 991 ₽ в месяц на 12 месяцев
Длительность курса: 4 месяца
Формат: теория + практические занятия + кураторская поддержка
Домашние задания: есть
Документ об окончании: сертификат
Особенности и преимущества школы:
На курсе хорошо проработана база по основным инструментам 1С.
Кураторы стараются отвечать на вопросы учеников в течение нескольких часов.
Много полезных, по отзывам учеников, домашних заданий.
Недостатки школы:
Высокая интенсивность курса — будет сложно совмещать с постоянной работой.
Часто приходится искать дополнительную информацию самостоятельно.
Курс «Программирование на 1С» предлагает полный комплекс знаний, необходимых для успешной работы в этой области. Вы будете работать с готовыми конфигурациями, такими как «Бухгалтерия предприятия» и «Управление торговлей», и консультировать пользователей по этим конфигурациям. Обучение рассчитано на людей, которые уже работают, поэтому оно организовано таким образом, чтобы сочетать с обычным рабочим графиком.
Курс по 1с программированию длится полгода, с еженедельными уроками, чтобы у вас было достаточно времени для усвоения материала. Кроме того, вы сможете зарабатывать в процессе обучения, выполняя реальные задачи и применяя полученные навыки на практике. Преподаватель всегда будет готов помочь вам с консультациями. После окончания курса есть поддержка студентов.
1С Верный Старт — базовый курс по программированию в 1С
Стоимость: от 7 000 ₽
Рассрочка: от 12 000 ₽ в месяц на 3 месяца
Длительность курса: индивидуально
Формат: теория + практические занятия + кураторская поддержка
Домашние задания: есть
Документ об окончании: сертификат
Особенности и преимущества школы:
В отзывах отмечают доступную подачу материала.
Оперативная проверка домашних заданий.
Недостатки школы:
Низкое качество видео.
Нет личного кабинета для обучения — уроки приходится скачивать, что не всегда удобно.
В ходе курса программиста 1с вы узнаете, как адаптировать готовые программные продукты 1С под потребности конкретных предприятий, в основном в сфере бухгалтерии. Преподаватели, имеющие опыт работы в сфере 1С-разработки, предоставят вам все необходимые навыки: от настройки и поддержки программного обеспечения до написания и доработки новых конфигураций баз данных, форм, отчетов и обработок.
Преимущества профессии программиста 1С включают в себя востребованность на рынке труда, высокую заработную плату и возможность легко найти работу в любом регионе России. По окончании курса вы будете готовы к работе в фирмах-франчайзи 1С или в других компаниях, где используется программа 1С. Получив сертификат 1С: Профессионал, вы получите конкурентное преимущество при поиске работы в этой области.
Специалист — курс по программированию, настройке и поддержке программного продукта на базе 1С
Стоимость: от 173 690 ₽
Рассрочка: уточняйте у менеджера
Длительность курса: от 3 месяцев
Формат: теория + практические занятия + кураторская поддержка
Домашние задания: есть
Документ об окончании: диплом о профессиональной переподготовке
Особенности и преимущества школы:
Учебный материал разбит по удобным модулям с теорией и практикой.
Среди преподавателей встречаются специалисты из МГТУ Баумана.
Программа обучения «Программист 1С» предлагает дистанционный формат, включающий видеоуроки и онлайн-занятия. Видеозаписи занятий доступны в личном кабинете студента, а онлайн-вебинары проводятся по расписанию, и их записи также будут доступны, но с некоторой задержкой. Одним из ключевых преимуществ обучения является доступность чат-бота. Он поможет студентам получить ответы на свои вопросы, дополнительные объяснения.
По окончании курса 1 с разработчика все студенты, успешно сдавшие итоговый экзамен, получают диплом о профессиональной переподготовке. Исключением являются только те, у кого нет законченного высшего или среднего профессионального образования — им будет выдано свидетельство. Для студентов или учащихся, которые еще не получили свой основной диплом в вузе или колледже, будет выдано свидетельство и диплом о профессиональной переподготовке, как только они получат свой диплом.
1C:Учебный центр №1 — курс для подготовки разработчиков 1С с выдачей диплома о профессиональной переподготовке
Стоимость: от 31 800 ₽
Рассрочка: уточняйте у менеджера
Длительность курса: 6 месяцев
Формат: теория + практические занятия + кураторская поддержка
Домашние задания: есть
Документ об окончании: диплом о профессиональной переподготовке
Особенности и преимущества школы:
Цена ниже, чем у других школ, но качество преподавания при этом не сильно хуже.
Организована оперативная обратная связь с преподавателями.
Недостатки школы:
По отзывам учеников, личный кабинет не очень удобный.
По окончании курса «Программирование на 1С» вы будете владеть навыками, позволяющими легко разбираться в коде на языке 1С и понимать алгоритмы, созданные другими программистами. Благодаря обучению вы сможете разрабатывать собственные алгоритмы, а также находить и исправлять ошибки в коде, повышая эффективность работы программ.
Кроме того, после завершения курса 1с программист вы будете способны дорабатывать конфигурации, открывая для себя возможности удаленной работы и дополнительного заработка. Специалисты школы также всегда готовы оказать консультационную поддержку, помогая разъяснить вопросы и решить возникающие проблемы в процессе вашей деятельности.
IRONSKILLS — пошаговая онлайн программа обучения программированию в 1С
Стоимость: от 75 600 ₽
Рассрочка: от 10 500 ₽ в месяц на 8 месяцев
Длительность курса: 8 месяцев
Формат: теория + практические занятия + кураторская поддержка
Домашние задания: есть
Документ об окончании: сертификат
Особенности и преимущества школы:
Пользователи отмечают хорошую подачу материала.
Большое количество примеров и разборов задач.
Недостатки школы:
По отзывам учеников, преподаватели дают очень скудную обратную связь по домашним заданиям.
Бесплатные курсы по 1С дают вводную информацию об этом языке программирования и рабочих средах. Этого недостаточно, чтобы устроиться на работу, но достаточно, чтобы понять основы и определиться, хотите ли вы развиваться дальше в этом направлении.
1С программист от Содействия занятости (полный курс, длительностью до 4 месяцев с государственной поддержкой, подходит для тех, у кого есть высшее или среднеспециальное образование)
1C-разработка от Skillbox (перечень видеолекций средней продолжительностью 1–2 часа, доступны после регистрации на платформе)
При подготовке рейтинга лучших курсов по 1С программированию мы анализировали следующие критерии:
Репутация и отзывы. Учитывали репутацию каждого курса на рынке, а также изучали отзывы учеников о качестве обучения. Наш выбор основывался на долголетии школы, квалификации преподавателей, содержании программы и успехах студентов.
Квалификация преподавателей. Важной составляющей обучения является опытный и квалифицированный преподаватель. Мы анализировали информацию об образовании, опыте работы и методиках преподавания преподавателей, чтобы убедиться в их профессионализме и подходе к обучению.
Гибкость расписания. Оценивали гибкость расписания курсов, так как это важно для учащихся, имеющих занятый график. Выбирали курсы, предлагающие гибкие учебные планы и графики занятий.
Разнообразие программ. Мы учитывали разнообразие программ, предлагаемых курсами, чтобы обеспечить подходящий выбор для широкого круга студентов с разным уровнем подготовки — от начинающих до продвинутых.
Техническая поддержка и оборудование. Обращали внимание на наличие надежной технической поддержки, так как это важный аспект при обучении онлайн. Отбирали курсы, где предоставляется доступ к удобной образовательной платформе.
Цена и оплата. Мы сравнивали стоимость обучения на различных курсах, учитывая также варианты оплаты, скидки и бонусные предложения, чтобы помочь студентам выбрать наиболее выгодные условия обучения.
Программист 1С имеет разнообразные обязанности, включающие:
Разработку и настройку программных решений. Это включает в себя работу с готовыми конфигурациями «1С: Предприятие», адаптацию их под требования клиентов, создание нового функционала, а также интеграцию с другими системами.
Исправление ошибок и обеспечение технической поддержки. Программист 1С отвечает за выявление и устранение ошибок в программном коде, а также оказание консультационной поддержки пользователям.
Оптимизацию процессов и повышение эффективности. Программист 1С стремится к постоянному улучшению процессов взаимодействия с программными решениями, оптимизируя их работу и повышая производительность.
Карьерный путь программиста 1С может включать следующие ступени:
Стажер или джуниор-разработчик. Начальные позиции, где приобретается опыт работы с платформой «1С: Предприятие» и конфигурациями.
Middle-разработчик. Программист, имеющий опыт работы и способный решать более сложные задачи, самостоятельно разрабатывать новый функционал и взаимодействовать с заказчиками.
Senior-разработчик. Опытный специалист, обладающий глубокими знаниями платформы «1С: Предприятие», способный разрабатывать сложные программные решения, управлять проектами и обучать младших разработчиков.
Руководитель проекта или технический директор. Высшая ступень карьерного роста, включающая управление командой разработчиков, принятие стратегических решений и направление развития IT-инфраструктуры компании.
Что касается зарплаты, она зависит от ряда факторов:
Уровня опыта и квалификации. Чем больше опыта и квалификации у программиста, тем выше его заработная плата.
Региональных особенностей. Зарплата программиста 1С может варьироваться в различных регионах страны.
Размера и типа компании. Работа в крупных компаниях или фирмах-разработчиках может предоставить более высокую заработную плату, чем в малых или средних предприятиях.
В среднем по России 1С программисты могут рассчитывать на зарплату от 50 000 (джуниоры) до 150 000 (сеньоры и руководители проектов).
Итоги
В этом обзоре мы представляем различные варианты обучения системе 1С для всех возрастов и уровней подготовки. Вы можете выбрать индивидуальные занятия с преподавателем или присоединиться к групповым занятиям, использовать самоучители или обучаться по бесплатным онлайн-ресурсам, а также работать с тренажерами или обучающими карточками. Ваш выбор зависит от ваших предпочтений и потребностей.
Вот три лучших курса по 1С разработке по мнению редакции:
Профессия «1C-разработчик» от Skillbox — создатели обещают выход на з/п в 80 000 ₽ через 6 месяцев обучения
Профессия «1С-программист» от SkillFactory — есть гарантия возврата средств, если после окончания курсы вы не сможете найти работу по специальности.
Изучение 1С с нуля может быть вызовом, но при правильном подходе и регулярной практике вы сможете достичь успеха. Установите конкретные цели, разработайте собственное расписание, изучайте основы. Практикуйте все аспекты работы с системой, включая программирование, настройку и использование различных модулей. Участвуйте в обсуждениях и общении с другими студентами, и помните, что настойчивость — ваш ключ к успеху. С постоянным усердием и усилиями вы сможете овладеть системой 1С на высоком уровне. Удачи в вашем обучении!
Расскажите, какие курсы вы проходили или хотели бы пройти?
Реклама ООО «Нетология», ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ООО «СКИЛФЭКТОРИ», ООО «ГикБреинс», ООО «Тривиум», АНО ДПО «Образовательные технологии Яндекса», ООО «БРУНОЯМ», ОЧУ «Специалист», ЧОУ ДПО «1С-Образование», ООО «ИРОНСКИЛС», ООО «АДИ ГРУПП», ООО «Цифровые образовательные решения»
Представьте себе, что вам нужно обучить алгоритм распознавать изображения животных. Для этого вам необходимо предоставить ему обширный набор изображений, размеченных в соответствии с классами. И здесь возникает проблема: картинки с животными, которые вы собрали, отличаются друг от друга по позам, локациям, освещению и другим факторам.
Вот и как теперь алгоритму их различать?
Для этого нужно обучить алгоритм представлять эти изображения в абстрактной форме, содержащей только ключевую информацию для распознавания животных. Этот подход известен как обучение представлений или признаков.
Обучение представлений — это метод преобразования входных данных в более абстрактное представление, содержащее только существенную информацию для решения конкретной задачи.
Чтобы лучше понять, как работает обучение представлений, рассмотрим один из самых простых и популярных методов — классификацию.
Классификация используется для разделения данных на различные категории или классы. В контексте обучения представлений она помогает обучить нейронную сеть распознавать определенные особенности в данных.
На практике это означает, что мы даем на вход нейросети много картинок животных с соответствующими метками классов. Нейросеть старается выявить определенные признаки в этих изображениях, которые помогут ей правильно классифицировать их. При этом мы учитываем только ту информацию, которая важна для распознавания животных, и игнорируем все остальное.
В итоге мы получаем обученную нейронную сеть, способную распознавать новые изображения животных и классифицировать их с высокой точностью. Этот подход может быть использован для автоматической категоризации изображений животных на сайтах или в приложениях.
Amazon признался, что магазины с функцией «Just Walk Out» с ИИ, контролировались обычными людьми.
Изначально была представлена технология, которая якобы по камерам вычисляет стоимость вашей покупки и автоматически списывает деньги с карты. Но оказалось, что никакого автоматизма вовсе не было. За происходящей торговлей следили более 1000 сотрудников из Индии, которые работали в ручном режиме.
Через какое время мы узнаем, что в ChatGPT тоже тысяча индусов?
С момента выхода первой части статьи из рубрики «сам себе экосистема» прошёл уже практически год! За это время, мы успели с вами реализовать клиенты VK и YouTube, которые работают на Android 2.2+, а также на Windows Phone 8, написать небольшую 2D-игру с нуля весом менее 1Мб, которая работает практически везде и довести существующее приложение до ума, дабы оно работало даже на смартфоне с дисплеем 240x320! Но на дворе 2024 год, люди стремительно переходят из соц. сетей в продвинутые мессенджеры и уже сложно себе представить современного человека, который не пользовался бы «телегой» или даже «вайбером» в качестве основного средства общения. Поэтому я решил реализовать клиент Telegram на смартфоне 14-летней давности на базе официальной реализации MTProto от команды Telegram — TDLib. Сегодня мы с вами: узнаем новые причины мотивации вернуть в строй смартфоны прошлых лет, напишем на C# реле-сервер, который обрабатывает пакеты MTProto и кодирует их в простой текстовый формат датасетов, который можно моментально обработать даже при нестабильном GPRS-соединении на 21-летнем Siemens C60, а также узнаем о разработке миниатюрных Android-приложений на базе «голого» API-системы, которые не тянут за собой никаких зависимостей, в том числе и AppCompat/androidx. Интересно? Тогда жду вас под катом!
На дворе уже стукнул 2024 год, современные смартфоны предлагают какие-то немыслимые мощности относительно тех, которые когда-то были в первых Android-девайсах. Сейчас за сотню баксов можно купить смартфон с хорошей 1080p IPS-матрицей, 4Гб ОЗУ и 8-ядерным шустрым чипсетом, который вполне способен плавно тянуть даже стремительно «жиреющие» на ресурсы клиенты социальных сетей, банков и прочие необходимые в повседневной жизни приложения. И казалось бы: всё хорошо, покупай себе редмик раз в год или айфон раз в несколько лет и наслаждайся всеми прелестями работы современных приложений…
Для многих людей смартфон — это лишь инструмент, повседневный компаньон, который помогает облегчить выполнение каких-то задач. Им совершенно не важно, как он выглядит, как ощущается в руках, какой у него дисплей и железо «под капотом», лишь бы работал да и нормально. Но есть и другая категория людей, для которых телефоны, смартфоны и любые портативные гаджеты — это не просто утилитарный девайс, а настоящее инженерное произведение искусства, с которого буквально сдувают пылинки и стараются до последнего пользоваться ими как повседневными устройствами. Хотите пример? Смотрите ниже:
Фактически, среди современных смартфонов по сути и нет представителей такого нынче вымершего форм-фактора, как сайдслайдеры с физической QWERTY-клавиатурой, боковые раскладушки с двумя дисплеями и даже из QWERTY-моноблоков есть только смартфоны от Unihertz. Даже среди моноблоков с тачскринами нет никакого разнообразия, лишь без-рамочные одинаковые девайсы за исключением устройств от Sony.
Galaxy S Plus
Раньше меня часто спрашивали, мол, да как ты вообще можешь пользоваться смартфоном 10-летней давности, на котором давно нет официальных клиентов популярных сервисов и только недавно, с развитием блога, мне перестали задавать этот вопрос, поняв, что это бесполезно — ведь это дело принципа и порыва энтузиазма! Смотрите сами: у нас уже есть простенькие, но вполне рабочие клиенты ВК, YouTube, сейчас я допиливаю клиент «Сбера» на СМСках, реализую карты OpenStreetMap (правда пока без адекватной навигации), а в будущем планирую написать приложение для мониторинга погоды и трекинга посылок. Кроме того, в рамках этой статьи мы реализуем с вами клиент Telegram: так чем же это не функционал современного смартфона?
Но хорошо, с функционалом разобрались, однако для многих читателей слова «старый смартфон» это прямые синонимы «тормозной смартфон», мол «фуу, да как можно пользоваться этим тормозным кирпичом, он же лагает в последней версии моей ВКшечки!». Но давайте поставим вопрос ребром: может, это не столько девайсы немощные, сколько сами приложения, с кодовой базой, которая тянется более 10 лет, откровенно жиреют, обрастают костылями и хаками после далеко не одного поколения программистов, которые над ними работали? :) Один, вот, предпочитал пользоваться чистым AppCompat'ом, другой решил притащить зависимость, которая, например, оптимизирует виртуализацию ListView, третий решил заменить всю сериализацию Json со встроенных классов в Android на что-то стороннее и реализовал это костылями и вот так, по чуть-чуть изначально оптимальный и шустрый код превращается в неповоротливое УГ, которое не рефакторили кучу лет.
На видео Galaxy Pocket Neo — очень дешёвый Android-смартфон из 2011 года с 1-ядерным чипсетом на ~800МГц и 256Мб ОЗУ. При этом всём, Android софтварно рисует все анимации на процессоре, без участия GPU.
А значит у стареньких девайсов всё равно есть шанс быть полезными и стать полноценными повседневными смартфонами даже спустя более чем десять лет после выхода! И в сегодняшнем материале, я вам расскажу об особенностях разработки самопального клиента Telegram с собственным прокси-сервером, которое концептуально допускает реализацию даже на кнопочном Siemens C60 2003 года. Как? Читаем ниже!
❯ Принцип работы
В отличии от ВК (который разрабатывали те же самые люди, что и Telegram), API которого построено на базе REST-запросов и концепции Longpolling'а для моментального получения событий с сервера, Telegram построен на базе собственного протокола под названием MTProto, который может работать поверх любого «транспорта» (протокола нижнего уровня) — TCP, HTTP, WebSocket и т.п. Сам по себе MTProto в современном виде, разработка прожженного математика Николая Дурова и его команды — протокол относительно сложный для реализации «на коленке» и в первую очередь требует довольно серьезного понимания принципов работы современной криптографии, да и документирован он всё ещё не особо хорошо. Кроме того, у MTProto весьма интересный бинарный формат пакетов, эдакий велосипед Protobuf. В долгосрочной перспективе поддерживать свой велосипед MTProto может быть весьма проблематично, учитывая не самую лучшую документацию.
Но городить велосипед и не нужно, поскольку у команды Telegram есть официальная реализация MTProto — библиотека TDLib, которая инкапсулирует в себе не только детали реализации протокола, но и сетевой ввод/вывод и выбор транспорта, хранение базы данных сообщений и авторизации, автоматическую загрузку фото и видео, конвертация объектов из бинарного формата MTProto в JSON и полная многопоточность и частичная потоко-безопасность. С одной стороны это плюс — уже готовое решение для реализации клиента на новой поддерживаемой платформе, где есть OpenSSL (можно статически слинковать), zlib (линкуется статически), сокеты и файловый ввод/вывод, а также довольно неплохой механизм JSON-based API, которое позволяет использовать библиотеку в любом языке, который поддерживает вызов C-функций, а с другой и минус — библиотека довольно много весит, в одиночку прибавляя ~20Мб веса приложения для каждой архитектуры, у неё течёт память и у нее странный механизм получения данных с сервера (например, нельзя ответить на сообщение, зная его ID, если сообщение предварительно не загружено, при том что на сервере весь ответ — это просто ID, на какое сообщение прилетел ответ).
Понятное дело, что на стареньком смартфоне использовать оригинальный TDLib будет проблематичным — даже если собрать либы современным NDK и запилить JNI-интерфейс, библиотека «жрёт» много ОЗУ (20-100Мб «вхолостую», в зависимости от числа диалогов и частоты прилетающих событий, плюс со временем течет до 1-2Гб, если не использовать базу данных сообщений. Скорее всего, это косяк в реализации пулов, объекты из которых выгружаются при сбросе в базу, но не выгружаются при высоком потреблении ОЗУ) и уж тем-более TDLib не запустить на любимых кнопочных Java-сонериках! Поэтому я решил написать прокси-сервер, который отправляет команды, слушает ивенты TDLib и предоставляет REST-like API для клиентских программ, которые просто вызывают какой-либо метод, а в ответ получают простой и короткий строковой датасет только с необходимыми полями, весом до 10Кб (что позволяет его быстро загрузить даже с GPRS-интернетом), который можно быстро распарсить даже на преусловутом Siemens C60!
К сожалению, поскольку TDLib прожорлив, я не смогу захостить на своём сервере инстансы для читателей, которые хотят поюзать приложение, поэтому вам придется ставить и запускать сервер на своём VDS/компьютере с белым IP/роутере, если под него есть .NET Core :)
Клиентом же будет выступать Android-смартфон, где приложение будет фронтэндом данных с сервера. Ничего сложного на первое время нет: первое окно — это список диалогов, второе окно — список сообщений в диалоге + поле для написания сообщения, третье окно — информация о пользователе. Всё это я реализовал за три дня не-напряжной работы «на коленке».
Давайте же перейдем к реализации сервера!
❯ Прокси-сервер
Сервер я решил писать на C#, поскольку у .NET Core сейчас всё очень хорошо с кроссплатформенностью и производительностью. Его можно даже на Raspberry Pi запустить :)
Итак, какая-же архитектура такого сервера может быть? Программа инициализирует TDLib, начинает слушать её события в отдельном потоке, пока в основном потоке крутится HTTP-сервер, который обрабатывает каждый отдельный запрос с клиентского приложения. Почему синхронно? Потому что TDLib фактически не возвращает никаких идентификаторов для возвращаемых датасетов, дабы их можно было отличить друг от друга. Приведу пример: у нас есть метод getChatHistory, который возвращает n-сообщений. При этом TDLib сам определяет, сколько хочет сообщений вернуть (и в первый вызов возвращает одно сообщение вне зависимости от настрое и отправляем пакет message n-раз. При этом в пакете message нет какого-либо ID, который позволял бы ассоциировать текущий объект с какой-либо операцией. Увы!
Начинаем с коммуникации с TDLib. Для работы с библиотекой, мы будем использовать json-интерфейс. Для .NET есть биндинги через C++/CLI, но в таком случае, сервер не будет работать на Linux. Для работы с библиотекой хватит лишь три функции: CreateClientID, которая аллокейтит новый инстанс клиента, Send, которая асинхронно отправляет JSON-объект с командой, которую затем обработает TDLib и Receive, которая ждёт N-секунд и возвращает в виде ASCII-строки (!) JSON-объект с описанием события или данными после одного из запросов. За это у нас отвечает класс TDLibInterface, который объявляет PInvoke-методы для вызова нативных методов из библиотеки. .NET Core сам подгрузит библиотеку tdjson (причём на Linux он добавит ей префикс а-ля libtdjson.so, а на Windows загрузит tdjson.dll) и сам разберется с маршаллингом аргументов функций: например, string автоматически преобразует в const char*. Тем не менее, с const char* возвратами нужно быть аккуратнее — у меня был SIGSEGV, пока я ручками не конвертировал их в обычную строку.
З.Ы: На Пикабу нет отдельного тега для кода, а вставить листинги картинками я не могу из-за ограничения на 25 медиаэлементов. Так что листинги будут совсем без табов, но алгоритм их работы понять можно :)
Позволю себе чуточку критики в сторону TDLib. Во первых, почему нет s-версии функции с возможностью указать длину входной строки, а tdjson полагается исключительно на \0 в конце строки? Во вторых, почему const char*, а не wchar_t*? Сейчас юникод во входной строке приходится escape'ами превращать в \u-последовательности. После этого, нам нужно написать обёртку над TDLib, которая будет вызывать для зарегистрированных событий специальные функции, называемые коллбэками. При этом закомментированный WriteLine снизу — это «дебаг» для того, чтобы узнать названия неизвестных мне ивентов :)
В каждом объекте, полученном с помощью receive, есть поле "@type", которое содержит в себе имя класса возвращаемого объекта. Первый же вопрос от читателей — почему я использую JObject с ручным дерганьем нужных полей и вручную пишу JSON в виде строковых литералов вместо нормальной сериализации/десериализации? Ответ прост: во-первых, для актуализации Data-классов придется писать кодогенератор из TL-схемы, а во-вторых иногда TDLib может возвращать немного разные объекты в JSON, из-за чего приходится мудрить с атрибутами на этих самых Data-классах, иначе десериализатор выбросит исключение. Это решается нормальными юнит-тестами на всех вариантах данных, но зачем себе в колени стрелять, если нужен конкретный фиксированный функционал и лишь малое число от всех полей, возвращаемых TDLib?
string recv = NativeInterface.Receive(10.0d);
if (recv != null) { JObject json = JObject.Parse(recv);
if (!handlers.ContainsKey(type)) { //Console.WriteLine("Unknown event type: {0}", type); continue; }
handlers[type](recv, json); }
Теперь переходим к самому интересному — обработке событий и реализации синхронного клиента, который позволяет без async/await просто запросить список сообщений и сразу же его получить (такой подход может быть полезен и юзерботам, которые не хотят размазывать стейты по всей программе). Почему без асинков? Честно сказать, мне они просто не нравятся: как привык к концепции wait/notify и коллбэков из Java, так их и юзаю всю жизнь :)
Сначала TDLib запрашивает параметры инициализации (стейт authorizationStateWaitTdlibParameters), затем если пользователь не авторизован — запрашивает номер телефона и код подтверждения (плюс дополнительные шаги для авторизации если они есть). В конце, TDLib возвращает стейт Ready, что означает готовность библиотеки к работе:
После этого, можно начать работу с данными. Обратите внимание, мой подход потоко-небезопасен, его нельзя дергать из нескольких потоков одновременно! В коде ниже, я вызываю метод для фетча сообщений, а затем в соответствующем коллбэке от TDLib обрабатываю данные (дабы статья не разрасталась на 20+ минут, я чуть урезал все листинги).
public List<Message> QueryMessagesInChat(long chatId, long lastMessage, int count) { messages.Clear();
public User QueryUser(long userId) { string json = Utils.Format("{\"@type\": \"getUser\", \"user_id\": \"{0}\" }", userId); NativeInterface.Send(InstanceID, json);
waitHandle.WaitOne(); return user; }
Переходим к реализации самого сервера, для наших целей хватит обычного HttpListener. Сначала мы зарегистрируем все поддерживаемые методы и занесем их в ассоциативный список ключ-значение. Сами методы реализованы в виде делегатов, которые принимают лишь один аргумент — список параметров из строки запроса, а возвращают строку — все ответы, за исключением особых (связанных с загрузкой вложений) — текстовые.
Переходим к обработке запроса. Метод ищет, зарегистрирован ли запрошенный метод и если да, то парсит строку запроса, которая начинается с "?", которую затем передаёт в виде коллекции ключ->значения обработчику метода:
А сами методы, в свою очередь, дергают соответствующие функции из клиента и формируют на их основе датасет в примитивном формате:
public staticstring QueryChats(Dictionary<string, string> args) { if(args.ContainsKey("count")) { int count = int.Parse(args["count"]); StringBuilder ret = new StringBuilder();
В результате получаем вот такой простой датасет, который, как я и говорил, легко распарсить и на Siemens C60, и на Atmega328 — да где угодно! В целом, такой сервер можно использовать для реализации бота в телеграме, который будет передавать показания каких-то датчиков, сигнализацию и прочие клевые штуки!
Переходим к реализации клиента, т.е. приложения на Android. Здесь будет не менее интересно!
❯ Пилим для Android
В геймдеве есть своеобразный мем — некоторые инди-разработчики сначала начинают делать меню, вместо основного геймплея, что становится предметом насмешек среди других разработчиков. Но в разработке приложений для смартфонов всё по другому — здесь как-раз таки хорошо заранее продумывать макет будущего приложения!
Поскольку у нас с вами мессенджер, то главный экран должен представлять из себя список чатов (ListView) и верхнюю панельку, где в будущем могут разместиться настройки и свайп-менюшка:
Такой вот простой макет.
Каждый пункт меню — это тоже отдельный layout, в котором мы по шаблону строим внешний вид будущего элемента списка. На немолодых устройствах есть смысл использовать как можно меньше контейнеров в layout'е, поскольку пересчет позиций и размеров элементов — одна из самых «тяжелых» операций в UI-фреймворке вообще. Кроме того, не стоит использовать кучу картинок и drawable — в Android 2.x всё 2D рисуется софтварно, аппаратное ускорение появилось только в 3.0 (частично).
Но дабы в списке диалогов что-то появилось, нужно сначала реализовать фетчинг (получение) этих самых диалогов с сервера! Сам объект, который занимается обработкой запросов называется ClientManager и является синглтоном — он в единственном экземпляре на все время работы программы. Помимо менеджмента «ноды» (т.е. прокси-сервера), токена для авторизации и обработчика ошибок, ClientManager реализует метод для асинхронного запроса информации с сервера и, собственно, формирует строки запросов с помощью соответствующих методов:
Подгрузка чатов и сообщений реализована через Adapter — концепция «виртуальных» списков, которая предполагает что система создаст не 50 элементов интерфейса на каждую кнопку чата, а только 5 и будет их виртуально «мотать по кругу», обновляя только данные в уже существующих элементах. Это позволяет значительно ускорить отрисовку, учитывая то, что Android 2.x Canvas рисуется программно.
Ну вы уже явно замучились видеть простыни кода, давайте посмотрим что у нас вышло!
Шустренько, да? А ведь это ультрабюджетник Alcatel OT-916D, один из последних массовых дешевых QWERTY-смартфонов за 5 000 рублей из 2012 года. Кстати, смартфон подарил мне читатель chuvakoff с Хабра!
Переходим к окну чата. Основной макет почти такой-же, как и у основного окна: только добавилась панелька для ввода сообщения снизу.
Концептуально, всё тоже самое — запрашиваем данные с сервера, парсим их и загружаем в адаптер, благодаря чему мы сможем листать наш диалог. Однако в сообщения я добавил контекстное меню с стандартными фишками типа копирования, ответа и прочих подобных действий. Поскольку у нас нет ни пушей, ни еще каких-либо средств для поулчения данных о новых сообщениях, я раз в определенный интервал просто получаю сообщения — и если новый датасет отличается от старого — обновляю окошко чата.
Переходим к реализации поля для ввода сообщения. Здесь всё просто — на серверсайде за это отвечает метод SendMessage. Однако для того, чтобы с нашего клиента можно было ответить на другие сообщения, я ввёл также «контекст ответа», в котором запоминается сообщение, на которое мы хотим ответить. Telegram также поддерживает Markdown, однако его полная поддержка пока не реализована.
В остальном же, функционал конечно пока совсем базовый, однако клиент работает очень шустро даже бюджетной X10 Mini Pro и позволяет чатится с моими читателями в Telegram. В будущем хотелось бы допилить:
Поддержка картинок: Сейчас уже есть кривоватый механизм кэширования изображений на стороне сервера, который позволяет загружать аватарки чатов. В будущем, я добавлю поддержку «галерей» с картинками!
Поддержка голосовых сообщений: Не все их любят, но они порой удобны и выручают. Реализую как прослушивание, так и запись!
Подробный просмотр профилей и менеджмент чатов: Удаление сообщений, чатов и прочие фишечки из официальных клиентов.
Казалось бы — до официальных клиентов ещё очень далеко. Но сам факт, чтобы всё это работало достаточно шустро на девайсах, которым уже более 10 лет!
❯ Звучит интересно! Как заюзать твой клиент?
Тут всё очень и очень просто! В первую очередь, нам понадобится ПК с белым IP, роутер (если под него есть сборка dotnet), либо VDS. Виртуальные сервера сейчас стоят копейки, у ТаймВеба есть тариф за 188 рублей в месяц, которого с головой хватит для нашего сервера.
Такая вот рекламная интеграция (к слову, прокси для всех приложений уже более года крутятся именно на мощностях TimeWeb Cloud)!
Программа сначала запросит номер телефона, а затем код подтверждения Telegram. После этого будет создана папка tdlib/, где будут хранится данные вашей сессии, а также файл authkey.txt, где хранится случайный ключ для сессии (md5 phone_number + response code + псевдослучайное число). Не оставляйте его в /var/www/!
Если всё нормально, программа начнёт слушать порт 13377 на всех сетевых интерфейсах, в т.ч и в локальной сети. После этого, ставим уже предварительно собранный, либо собираем сами в Android Studio APK и в окне авторизации пишем адрес ноды и ключ авторизации. Если всё настроено верно — программа запомнит сервер и будет работать без проблем! Вот так всё легко :) Как видите — всё очень и очень просто!
Кроме того, буквально за пару дней до публикации статьи я сел вечерком из интереса что-нить под Java-телефоны попилить… и, как и обещал, реализовал Proof of Concept возможности работы Telegram даже на сонериках, которым скоро 20 лет стукнет! А ведь если ещё чуть заморочится, можно запустить приложение даже на преусловутых монохромных сименсах!
❯ Заключение
Вот такой у нас получился проект с реализацией лёгкого, примитивного, но тем не менее рабочего клиента Telegram, который на клиентской части вообще не использует никаких зависимостей. Вес собранного APK в release-версии — всего 54 килобайта! Понятное дело что с ростом функционала, вес программы будет увеличиваться, но я обещаю — больше 1Мб он не вырастет :)
Ну а вам, моим читателям, надеюсь было интересно прочитать такой «двойной материал» не только о разработке сетевой части без использования Apache/nginx/IIS, но и UI-фронтэнда для Android-смартфонов, которым уже более 10 лет! Исходный код проекта можно найти на моём GitHub: как приложения, так и сервера, а также убедиться в отсутствии каких либо закладок и, если совсем не доверяете, собрать бинарники сами! Для сборки понадобится VS2017 или свежее, а также Android Studio 2.3.2 (если собираете для Android 2.1 и ниже).
Друзья! Сейчас на Хабре опросы сломаны, поэтому если у вас есть желание, вы можете проголосовать в комментариях: какой стиль статей вам больше нравится — где больше конкретики и кода с пояснением как конкретно работает та или иная часть программы, или наоборот стиль ближе к научпопу, где фрагментов кода нет, или их значительно меньше? Пишите своё мнение о проекте в комментариях!
Кроме того, у меня есть канал в Telegram, куда я публикую бэкстейдж статей, ссылки на новый материал, свои наработки, а также посты о ремонте девайсов и различные мысли.
Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!