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

Последние 2-3 недели определенные обстоятельства требовали моего полного внимания, поэтому программированием заниматься времени совершенно не оставалось. Наряду с такими обстоятельствами случаются дни, когда не понимаешь зачем ты лезешь в новую профессию, чувствуешь свою беспомощность и хочешь все бросить…

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

Обстоятельства случаются. От этого никуда не деться. Важно после них продолжать начатое, что я сейчас и собираюсь делать.
Июль 2020:

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

Сильно снизил темп изучения языка и прочтения литературы из-за разного рода обстоятельств.

#результаты
Август 2020:

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

Появилось более глубокое понимание API программы Autodesk Revit, написал несколько полезных в работе кнопочек.

Отложил книгу Петцольда “Код”, так как понял, что для меня сейчас неактуально и лучше сосредоточиться на других задачах.

#результаты
Бывают моменты, когда “накатывает”. Ты начинаешь размышлять: туда ли ты движешься, зачем вообще тебе это и сможешь ли осилить тот путь, по которому пошел? Смотришь по сторонам и замечаешь тех, кто моложе, но уже опытнее и успешнее тебя в том, в чем ты рьяно хочешь преуспеть. В такие моменты важно помнить ради чего ты начинал и к чему в конечном итоге ты хочешь прийти. -Вспомнил? Теперь помножь на непрерывную работу и стремление идти к этой цели. Вооружившись этим знанием в конечном итоге ты обречен на успех.

Так ли важна для тебя та цель, ради достижения которой ты не потратил и минуты сегодня?

#процесс
Сентябрь 2020:

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

Написал еще одну полезную кнопку для работы, используя WPF (Winforms тоже попробовал, но пришел к выводу, что WPF - более прогрессивный инструмент) // Revit API + WPF

Застрял с задачей по формированию сбалансированного дерева и представлением его в массиве

Забросил книги по программированию

#результаты
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#

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

#результаты