Новиков > путь в Big Tech – Telegram
Новиков > путь в Big Tech
184 subscribers
94 photos
192 links
От зеро-кодинга на стройке до написания высоконагруженных сервисов в Big Tech. 

Пишет SWE в Avito.ru (backend), в прошлом: .NET developer и сертифицированный специалист по использованию BIM.

Написать автору: @nvkv_ai

Книги: https://boosty.to/time2code
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Октябрь 2020:

Прошел 75% от второй части курса по Алгоритмам и структурам данных // СБВШП

Нарисовал концепт будущего плагина для Revit, который позволяет назначать код классификатора элементам информационной модели в защищенный от ручного изменения параметр // Revit API + WPF

#результаты
Изучая WPF, для реализации концепции собственного плагина, наталкиваешься на интересные задачи.

Первым таким вызовом для меня стала организация древовидной структуры классификации строительных видов работ для удобной навигации пользователя.

#процесс
Нет ничего приятнее, чем использовать полученные теоретические навыки в реальной практике.

Ключом к решению задачи на организацию хранения информации в древовидном виде стал выбор правильной структуры данных! В начале этого месяца я закончил 2-ой цикл курса Алгоритмы и Структуры данных, про который писал ранее. Второй цикл был посвящен, главным образом, деревьям. Таким образом, полученные знания на курсе помогли правильно построить класс для организации классифицируемой информации и решить задачу.

#процесс
Ноябрь 2020:

Прошел вторую часть курса по Алгоритмам и структурам данных // СБВШП

Разработал плагин для Revit, который позволяет назначать код классификатора элементам информационной модели в защищенный от ручного изменения параметр // Revit API + WPF

#результаты
Интересный адвент-календарь для программистов - https://adventofcode.com/

Механика следующая: каждый день, начиная с 01.12 по 25.12, открывается сначала одна задача, а после успешного решения и вторая, которая является усложненной версией первой. Такой новогодний марафон сопровождает вас приятным нарративом - каждая задача имеет свою предысторию и логично вписывается в общую канву повествования, что не дает заскучать и мотивирует на решение следующей.

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

Для себя поставил цель: не сойти с дистанции и решить хотя бы по одной задаче из каждого дня, стремясь закрыть их все. Сейчас мой результат по окончании четырех дней - 8/8 (всего задач 50).

Свои решения также буду выкладывать на гитхаб.

#процесс
Шел 14-ый день новогоднего марафона (advent of code). То ли от недостатка времени, то ли от нехватки знаний, а возможно совпало оба фактора, но сейчас мой результат 17/28 всех доступных задач.

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

#процесс
Декабрь 2020:

Прошел 72% от видео-курса C# Базовый // itvdn

Решил 10 задач из 25 новогоднего марафона // advent of code

#результаты
Итоги 2020:

Прочитано 3 книги по программированию

Пройдено 2 курса по Алгоритмам и структурам данных (решено более 34 алгоритмических задач)

Написано >8 плагинов для программы Autodesk Revit

Пройдено >5 видео-курсов разной направленности

#результаты
Цели на 2021:

🎯 Официально переквалифицироваться в разработчика-программиста на языке C# в среде .NET (с занесением соответствующей записи в трудовую книжку) // junior .NET developer

🎯 Прочитать >3 книг по разработке в среде .NET

🎯 Пройти 3 курса по Алгоритмам и структурам данных // СБВШП

#цели
Январь 2021:

Написал несложный плагин для Autodesk Revit, который экономит время работы проектировщиков - получил за это первые деньги, что не может не радовать // $$$

Заказчик первого плагина остался доволен и предложил новые задачи, воплощением которых занимаюсь в свободное время // Autodesk Revit API + .NET Framework +WPF

Забросил курсы itvdn, доступ к которым заканчивается в следующем месяце // планирую взять максимум из того, что осталось

До сих пор не опубликовал свои решения задач в марафоне Advent of Code // обязательно выложу позже

#результаты
Чем серьезнее проект, тем больше информации приходится в нем хранить. Для удобной организации информации и ее обслуживания используются базы данных (сокращено - "БД").

БД бывают самими разными. Элементарным примером, с которым сталкивается большинство в повседневной офисной работе - базы данных, организованные при помощи электронных таблиц Microsoft Excel.

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

В технологии информационного моделирования зданий (англ.: Building Information Modeling, сокращено - "BIM"), ядром является работа с информацией (хранение, обмен, изменение), а не просто создание красивой 3D модели будущего объекта строительства, из которой получаются картинки. Технология BIM стала инновационной благодаря неразрывной связи геометрии элементов с их атрибутивных наполнением (информацией), которую можно использовать на всех стадиях жизненного цикла здания.

Для работы с элементами сначала нужно их выбрать в проекте, а если информационная модель состоит из десятков тысяч элементов, то это делать затруднительно.

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

#процесс #идеи
Главным нюансом при работе с внешними приложениями становится вопрос совместимости. Например, я могу написать рабочий инструмент для версии Excel 2003 года, но конечный пользователь может использовать Excel 2020, в котором изменилось API, через которое мы с ним взаимодействовали, и готовый плагин просто не заработает.

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

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

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

Мой Github похвастаться солидностью пока не может, сейчас там всего 2 репозитория: один с реализацией алгоритмов и базовых структур данных, второй был добавлен только сегодня, он состоит из решений к некоторым задачам из Advent of Code (в этом году планирую значительно улучшить свой результат по данному марафону). Также планирую выложить некоторые реализованные плагины, написанные для Autodesk Revit.

#процесс
Февраль 2021:

Закончил базовый видео-курс по C# // itvdn

Опубликовал свои решения задач на github в марафоне Advent of Code // к сожалению, только 10 из 25; в следующем году планирую значительно улучшить результат

Сделал CV на английском языке, а также обновил резюме на head hunter, чтобы откликаться на потенциально интересные вакансии

#результаты
06.03.2021 - исполнился 1 год с момента, когда решил поменять свой карьерный путь и стать полноценным разработчиком на C#. Краткая сводка и мысли за эти 12 месяцев:

1) Уверенность, что я двигаюсь в правильном направлении, лишь укрепилась. Несомненно я буду продолжать и обязательно брать и реализовывать более амбициозные проекты.
2) Немного о расходах. На платные видео-курсы было потрачено ~9 тыс. рублей, они помогли мне освоить азы языка C#, которых мне хватает, чтобы решать алгоритмические задачи и разрабатывать плагины среднего уровня для Autodesk Revit.
3) На курсы по решению алгоритмических задач было потрачено ~10 тыс. рублей. Мое мнение, что без фундамента в виде базовых алгоритмов и структур данных - никуда. Самостоятельная реализация простейших структур данных и алгоритмов помогли мне выработать определенный подход и тип мышления к решению задач, который несомненно нужно постоянно развивать и укреплять.
4) На книги по изучению программирования суммарно потрачено ~3 тыс. рублей. Не все книги были прочитаны, но о потраченных деньгах не жалею и с нетерпением жду момента, когда к ним приступлю.
5) Были написаны некоторые решения в виде плагинов для Autodesk Revit, которые значительно помогают специалистам в работе (получено небольшое вознаграждение за это, а также заказ на полноценный инструментарий для программы, состоящий из подобных плагинов, которые планирую реализовать в этом году).

Коротко о планах на обучение:
1) Для закрепления уверенного навыка владения C# я планирую дочитать 2-ую книгу Васильева А.Н об особенностях языка C# (крайне рекомендую обе книги под названием “Программирование для начинающих”) и пройти еще 2 видео-курса: профессиональный C# и паттерны проектирования - оба ведет замечательный преподаватель - Александр Шевчук, которому премного благодарен за все записанные им материалы (прекрасный стиль изложения). Если только начинаете изучать язык, то настоятельно рекомендую присмотреться к нему.
2) За 2021 год планирую пройти еще 3 курса по алгоритмам и структурам данных (продолжаем закладывать фундамент).
3) Также в планах на весну освоить азы HTML5 / CSS3, а также базу JavaScript. Минимальные знания по ним необходимы любому разработчику + встречаются во многих вакансиях, что расширяет нашу конкурентоспособность на рынке.
4) Обязательно: введение в базы данных - SQL и прочее, в планах пройти вводный курс по теме до середины лета.
5) Интересно присмотреться к Unity и gamedev, но понимаю, что это отдельная кухня, куда нужно погружаться с головой, а сейчас стоят другие задачи…

Важно! Не все так гладко в обучении и профессиональной смене карьерного пути: бывают взлеты и падения, порой хочется опустить руки, все бросить и заниматься совершенно отвлеченным. Очень важно себя не загнать бесконечным потоком новой информации, усталостью и завистью к молодым, которые в 20 лет имеют 5+ опыта и полный github реализованных проектов. Нужно делать перерывы, устраивать дни разгрузки (когда занимаешься чем-то отвлеченным, но не программированием), возможно, с кем-то поговорить по душам, сходить в поход или просто на пробежку и всегда продолжать в себя верить и планомерно двигаться к цели. Все получится.

#результаты #планы
Март 2021:

После разговора с работодателем удалось пересмотреть мои обязанности и теперь я преимущественно занимаюсь разработкой решений для автоматизации работы с информационными моделями нашего отдела // карьера

Была подана заявка на прохождение тренинга по C# в крупнейшей аутсорсинговой IT-компании, а также пройдено 4 интервью, в том числе техническое, где проверялись знания языка (C# и английского) и ООП // результаты должны быть в этом месяце

С переменным успехом продолжаю реализовывать заказ на плагины от стороннего Заказчика

Перестал читать книги по теме // за апрель обещаю дочитать вторую книгу Васильева по C#

Гитхаб на текущий момент не развивается // планирую выложить один из своих плагинов

#результаты
Апрель 2021:

Отобрался на тренинг (!), про который писал ранее; предстоит 13 недель интенсивного обучения, после которого имею вполне реальные шансы получить свой первый оффер в IT-компанию // карьера

Основная работа + сторонний Заказчик + интенсивный тренинг с выполнением домашних заданий = нехватка времени на любую литературу (“Васильев Часть 2” - у меня так и подвис непрочитанным) // даю себе несколько недель, чтобы адаптироваться к нагрузке и дочитать книгу

#результаты
Что самое важное в любом интенсивном тренинге? Раньше мне казалось, что это лекционный материал, который тебе читают… Лекции действительно важны, но, к сожалению, полезны они бывают в редких случаях: только тогда, когда преподаватель умеет их грамотно рассказать (на моей практике, таких преподавателей из 15 наберется не больше 1-2 человек).

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

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

По завершению тренинга выложу реализацию задач на Гитхаб, думаю будет хорошо смотреться.

#процесс
Тренинг оказался интенсивнее, чем я планировал…

Когда вы работаете полный день в офисе, берете на себя какие-то сторонние задачи + еще вписывается в интенсивный тренинг, цель которого вырастить из вас джуниор специалиста, про здоровый сон 7-8 часов можно смело забыть. Понятное дело, что так очень легко перегореть, особенно, если что-то начинает не получаться.

За тренинг нужной выполнить 10 домашних работ (на последную дается месяц, так как это планируется быть похожим на первый +- серьезный проект, который будет не стыдно положить в свое портфолио, как пет-проджект (личный проект). На текущий момент я отстаю по дедлайнам на 2-3 задания (вот только сегодня отправил 7-ое на проверку ментору). Не все получается, много нужно разбираться в новом, лениться нет времени.

Я полон решимости завершить данное обучение и получить от компании оффер, иначе зачем было начинать?

#процесс
1
Май 2021:

Продолжаю обучаться на тренинге, на текущий момент сделано и принято ментором 8/10 задач (осталось одну исправить, а также разработать и сдать финальный проект) // если бы не фидбек от ментора и выполнение заданий, то определенно разочаровался в подобных интенсивах (лекции очень посредственные)

По мере сил продолжаю развивать плагин для стороннего Заказчика // интересный опыт, который пойдет в портфолио, как разработчика плагинов под Revit

Читаю статьи Сергея Бобровского про построение карьеры в IT, которые доступны за условные единицы (если ты когда-то успешно проходил курсы по Алгоритмам или другие из его школы) // выжимки очень полезного жизненного опыта

Все еще тяготит офисная рутина, когда ты обязан с понедельника по пятницу приезжать в офис и “быть эффективным сотрудником” с 08-17 (или 09-18, или 10-19) // но это меняется и скоро будет иначе

Забросил книги, времени нет совершенно ни на что кроме текущих проектов // ищу в себя силы, чтобы возобновить хотя бы по несколько минут в день

#результаты
Июнь 2021:

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

Так или иначе, тренингом и возможными перспективами в компании, которая это организует, все не ограничилось. В конце мая мне стало очень интересно, насколько я ценен на рынке труда в своей строительной сфере, но уже в новом качестве, как программист с 1 годом опыта. В одном из телеграм чатов было найдено привлекательное предложение о работе, но в другом городе. Недолго думая, обновил свое резюме с учетом новых знаний и отправил отклик. По мотивам своего интереса (все начиналось с изучения рынка и своего места на нем) и спустя 2 онлайн-собеседования в компании, я получаю неплохой оффер и причем полностью удаленно! Все тщательно взвесив, предложение я принял и уже активно вливаюсь в рабочий процесс на новом месте // карьера

Была сделана важная инвестиция - куплена весьма удобная IDE от прекрасной компании JetBrains - Rider. Цена вопроса ~13.000 рублей в год, но спустя то время, что я пользуюсь этим инструментом, могу сказать, что это себя уже окупило полностью // инвестируйте в свой комфорт и то, что экономит ваше время и преумножает деньги

Сильно сдал в обучении на тренинге, есть вероятность, что не успею сдать финальный проект

Книги так и стоят на паузе

#результаты