ДонНТУ   Портал магистров

Коврик Кирилл Александрович

Институт компьютерных наук и технологий

Факультет интеллектуальных систем и программирования

Кафедра Программная инженерия им. Л. П. Фельдмана

Специальность «Программная Инженерия»

Исследование методов классификации информации на примере рекомендательной системы для пользователей мессенджера Telegram

Научный руководитель: д.т.н., проф. Зори Сергей Анатольевич

Консультант: ст. преподаватель Коломойцева Ирина Александровна

Мой опыт в качестве разработчика

Введение

Стремительное развитие информационных технологий непременно влечет за собой и развитие средств и способов разработки программного обеспечения. Множество сфер человеческой жизни нуждается в различном применении информационных технологий и различном программном обеспечении. Web-приложения, мобильные приложения, desktop-приложения, клиент-серверные системы, информационные комплексы и простые однофункциональные приложения. Все эти разновидности ПО нашли себе применение в современном мире и каждая отдельная компания или предприятие может использовать как отдельные из них, так и все разом, создавая и проектируя собственные информационные системы.

Мои первые шаги в программировании

Интерес к программированию проявился у меня еще в средней школе, когда я начал посещать кружок по программированию в школе. Там мы начинали с азов и первым моим языком программирования стал Pascal. При помощи Pascal я создавал простые приложения-калькуляторы с интегрированным в компилятор вводом-выводом, а также впервые познакомился с «компьютерной графикой». С помощью графических средств Pascal мы учились создавать вначале простые, а затем и более сложные «компьютерные» рисунки.


Рисунок 1. Графика созданная при помощи Pascal

Рисунок 1. Графика созданная при помощи Pascal


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


Рисунок 2. Табличная верстка

Рисунок 2. Табличная верстка


Программирование в университете

Хоть разработка сайтов и перспектива того, что каждый сможет увидеть их в интернете и пользоваться ими и была очень привлекательной, разработка программ привлекала меня гораздо больше, и еще лучше я понял это после поступления в университет. Такие дисциплины как «Основы программирования», «Объектно-ориентированное программирование», «Групповая динамика», «Операционные системы» и лабораторные и курсовые работы по ним, где приходилось писать много полезного и интересного кода, давали понять, что именно разработка программ – это очень творческий процесс, результат которого может приносить большую пользу людям. Первым более-менее крупным программным продуктом, который мне пришлось разработать во время учебы в университете стала симуляция файловой системы – курсовой проект по дисциплине «Операционные системы». Там я впервые столкнулся с количеством строк кода, перевалившим за 3 тысячи, с несколькими модулями и множеством форм.


Рисунок 3. Главное окно программы-симуляции файловой системы

Рисунок 3. Главное окно программы-симуляции файловой системы


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


Рисунок 4. Главное окно программы DBS-Client

Рисунок 4. Главное окно программы DBS-Client


Коммерческая разработка

Именно после успешного завершения студенческой практики и окончания бакалавриата я принял решение о том, что хочу начать свой профессиональный путь разработчика. В течение лета я занимался поиском удаленной работы на позиции Junior-разработчика и нашел подходящую вакансию в стартап-студии, где после испытательного срока был принят в штат и занялся разработкой мобильного приложения на языке Kotlin. Это был мой второй опыт в разработке приложений для платформы Android, и первый мой проект на Kotlin. Именно так я понял, что лучше всего погружаешься в изучение тех или иных вещей только тогда, когда сталкиваешься с реальными задачами. Изучение Kotlin и платформы Android давалось достаточно тяжело, порой для выполнения одной задачи требовался не один час и даже рабочий день, порой хотелось остановиться на полпути и даже возникали мысли о том, что разработка – это не мое. Однако каждый последующий успех возрождал во мне веру в себя и полезность моего дела. В результате спустя полгода я смог представить полностью работающий вариант приложения, соблюдающий все требования ТЗ и даже улучшенный моими собственными доработками. Приложение являлось вспомогательным сервисом для Telegram и предоставляло дополнительный непредусмотренный самим Telegram функционал. При разработке использовалось открытое API Telegram и все необходимые безопасные механизмы аутентификации и верификации пользователей.


Рисунок 5. Содержимое созданной папки с каналами в Teleguide

Рисунок 5. Содержимое созданной папки с каналами в Teleguide


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

Следующей ступенью на моем пути стало также удаленное сотрудничество с компанией, разрабатывающей ПО для коммерческих организаций с большим оборотом различной информации и нуждающихся в упрощении и автоматизации данных процессов. Мы занимались разработкой desktop-приложений для ОС Windows на уже давно знакомом мне языке C#. Это было кратковременное, однако тоже довольно плодотворное сотрудничество, за время которого я смог значительно поднять теоретическую подготовку, расширить знания, касающиеся не только непосредственно разработки приложений на C#, но и о том, как оптимизировать процесс разработки, как писать более качественный и чистый код. Также данное место работы дало мне кое-что еще: понимание того, что код, который ты пишешь, может начать приносить пользу кому-то в уже очень короткие сроки. Благодаря нашим продуктам, множество компаний смогли очень сильно уменьшить трудозатраты своих сотрудников.


Рисунок 6. Простое приложение-обработчик файлов Excel

Рисунок 6. Простое приложение-обработчик файлов Excel


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

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

Заключение

Путь каждого разработчика программного обеспечения индивидуален и каждый сталкивается со своими трудностями. Всех объединяет одно – стремление к совершенствованию и поиск того занятия, которое будет по душе и которое будет приносить хороший и стабильный доход. Одни сразу выбирают для себя подходящую сферу разработки, другие долгое время находятся в поисках, меняют места работы и направления развития, но главное для человека профессии «разработчик», да и для любой другой профессии - не стоять на месте и не опускать рук при столкновении с трудностями.

Ссылки на подобные работы магистров

  1. Коношенко Владислав Олегович
  2. Михно Валентин Юрьевич
  3. Константинов Виталий Сергееввич

Список использованной литературы

  1. Как я стал программистом [Электронный ресурс] – Режим доступа: https://zen.yandex.ru/media/journal.tinkoff.ru/kak-ia-stal-programmistom-potratil-na-obuchenie-300--poluchaiu-2600--60224d434849a6360860c878 – Загл. с экрана.
  2. Как стать программистом: мой опыт [Электронный ресурс] – Режим доступа: https://pikabu.ru/story/kak_stat_programmistom_moy_opyit_6761055 – Загл. с экрана.
  3. От «ничего не понятно» до первой работы: как становятся программистами с нуля [Электронный ресурс] – Режим доступа: http://masters.donntu.ru/m2021/fisp/bezdetniy/ind/index.htm – Загл. с экрана.