Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру 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 я столкнулся на первом официальном месте работы: небольшой 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.
Расскажу о том, как обычный казахстанский парень решил стать программистом, переходил с одного технологического стека на другой и почему в итоге выбрал 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.