Путь казахстанского разработчика: как я пришел к Java

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Привет! Меня зовут Бинали, я руководитель отдела разработки в Beeline Казахстан, работаю в компании почти год. Пришёл в Beeline 1-го июня 2020-го года на позицию Java-разработчика, сейчас я менеджер отдела по разработке ESB. Менеджмент начинает занимать много времени, но пока ещё есть время, чтобы иногда взять задачу в разработку, дабы не потерять навыки программирования.

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



История становления


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

Я с детства интересовался техникой. Магией для меня было вставлять пластмассовую деталь в магнитофон и слышать как играет музыка. Позже я заинтересовался электричеством. Один раз пытался починить неисправную переноску, подсмотрев, как это делает дядя-электрик. Изолента, нож и моя гениальная идея соединить провода друг с другом привела к короткому замыканию, выбитым пробкам и паре шлепков от мамы. В 2007 году, когда я был семиклассником, у меня появился первый собственный мобильный телефон — Nokia 6151.


Через пару месяцев мне уже хотелось сделать какой-то аналог сайтика tegos.ru. На телефоне был только WAP (олды, думаю, вспомнили), а компьютера с интернетом у меня не было. Но я все равно искал варианты реализации идеи. Мне попался конструктор wap-сайтов wen.ru — максимально примитивный, но в этом и была его особенность. Так мне пришлось осваивать разметку WML — расширение XML для WAP. Да, в то время был уже xHTML, но я ещё ничего не понимал.


Нашлось в архиве :)

Я сделал сайт, на котором в основном хостил полезные ссылки для владельцев Nokia, а еще нашел сервис для организации чата. Так и началась мини-тусовка фанатов Nokia на сайте, который содержал всего пару десятков страниц. Здесь я познакомился со множеством единомышленников из Беларуси, Азербайджана и России. Кстати, если здесь есть кто-то из той тусовки, отзовитесь в комментах.

Следующий этап моей технической эволюции — сайты с формой регистрации, гостевые книги и формы обратной связи. Главная фишка в них — обилие цветов и фоновых картинок. Тут произошло знакомство с xHTML и PHP4. К этому моменту у меня появился компьютер — пекарня на базе процессора AMD Athlon XP, 2Гб ОЗУ, 128Гб HDD. Его купила руководительница моей мамы, которая заметила мое рвение к технологиям. В 2008 году б/у комп обошелся 18 000 тенге (сейчас это около $ 40). Началось мое путешествие в мир настоящего программирования с прочтения кучи статей о PHP, а писать код я начал, чтобы найти решение разных проблем.

Уже в 11 классе занимался фриланс-проектами приложений на PHP, а со второго курса нашел официальную работу в небольшой IT-компании, занимавшейся разработкой продуктов. Программировать нужно было на С#. Чтобы пройти собеседование я сам для себя создал и выполнил тестовое задание: описание тут, код тут. Реализовано оно было на PHP, спасибо сеньорам, которые в тот момент просто хотели понять, умею ли я писать хоть на чем-то.

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

Потом еще пара переходов из компании в компанию, собственный gamedev-проект, работа над системой менеджмента обслуживания (ТОиР или MMS) с активным использованием RFID-технологий. Кстати, в этом проекте мы с коллегами создали фреймворк для фреймворка, который руководители нам разрешили вывести в OpenSource. Код тут.

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

Мой первый проект на .NET


С .NET я столкнулся на первом официальном месте работы: небольшой IT-компании, сотрудничающей с нефтянкой. Мой первый проект был про расчёт наработки труб в нефтяных скважинах. Я получил рабочий образец реализации этой идеи, написанный на ASP.NET, .NET 4.1. Честно, тогда я вообще не понимал, как работают эти технологии.


У нас есть проект который работает, но мы не можем его собрать

Я целую неделю безуспешно собирал проект, после чего решил обратиться к старшему разработчику за помощью по сборке. Было нелегко. Сейчас можно вспомнить это как огромную проблему классического ASP.NET про запутанную систему привязи зависимостей.

После сборки меня ожидал ещё один сюрприз: проект предоставлял интерфейс для загрузки excel-файла. Для чтения он запускал полноценный MS Office и бегал по ячейкам, считывая значения в память. После чтения в память и проведения расчётов, приложение снова открывало Office и записывала данные по клеткам. Да да, прямо графическое приложение через interoperability.

Я был в шоке, ведь мне сказали, что проект уже работает и нужно просто развернуть его на IIS под Windows Server. Тут-то и началось мое настоящее знакомство с миром .NET.

На сервере, естественно, ничего не работало. Причина очевидна — сервер IIS не имеет доступа к графической подсистеме, поэтому и не может что-либо запускать, в том числе и взаимодействовать с рабочим столом.

Засучив рукава, я начал искать решение как вызывать графический Office и разбирать excel-файл вручную.Так я освоил библиотечку OpenXML, которая далась мне нелегко, но быстро решила все вопросы. Теперь файл разбирался с помощью OpenXML, после чего данные сохранялись в БД. Выходные данные можно было получать в виде отчета с нужными фильтрами.

Я был очень рад, что смог будучи джуном убрать костыль.

.NET со временем показался мне ещё более крутой технологией, и я совсем перестал писать на PHP. В какой-то момент начал участвовать в спорах и обсуждениях крутости той или иной технологии, и выступал именно за .NET. Сейчас мое мнение все-таки поменялось.

Самое ужасное с чем мне пришлось столкнуться — это разработка под Windows Mobile на .NET Compact Framework. Кстати, это было в рамках компании о которой я писал выше. Такие проекты были настолько сложны в разработке, что сеньор постоянно отвечал нашему менеджеру «это невозможно» на запрос о любой фиче :)

В целом язык C# и платформа .NET мне понравились, но обо всех плюсах и минусах я подробно напишу в следующей статье. Там же расскажу сколько раз я переходил со стека на стек, и почему остановился на Java.
Источник: https://habr.com/ru/company/beelinekz/blog/560416/


Интересные статьи

Интересные статьи

Автор статьи, перевод которой мы публикуем сегодня, хочет рассказать о нескольких JavaScript-паттернах, направленных на отложенную инициализацию свойств объектов, для выполнения которой т...
Всем привет! За последние пять лет мы достаточно часто сталкивались с запросами на мониторинг Java приложений. Собрав ос...
В таких языках программирования, как C#, Kotlin, Groovy, Scala есть возможность расширять класс путем добавления нового функционала, при этом не требуется наследование или изменение сам...
Хотите подготовиться к собеседованию по JavaScript и ищете вопросы, на которых можно попрактиковаться? Если так — считайте, что ваши поиски окончены. Автор материала, перевод которого мы сегодня ...
Привет, Хабр! Предлагаю вашему вниманию перевод замечательной статьи из цикла статей небезызвестного Джейка Вортона о том, как происходит поддержка Андроидом Java 8. Оригинал статьи лежит...