Рубрики
Без рубрики

Мой Путь Промышленного Развития, Один Год На

кто я? Привет всем! Добро пожаловать на мой первый пост. Меня зовут Джейк, и я работаю… Помечено как начинающие, java.

Привет всем! Добро пожаловать на мой первый пост.

Меня зовут Джейк, и я работаю разработчиком в отрасли уже чуть больше года (начал 11 декабря 2017 года). Я пишу этот пост в попытке:

  1. дайте обзор моего опыта и того, что привело меня к выбору разработки.
  2. подведите итоги того, чего я достиг в этом году.
  3. дайте советы новым разработчикам в этом путешествии, основываясь на моем опыте до сих пор.

Поехали!

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

Во время моего последнего года обучения я приступил к проекту с Мелиной Фрейтаг с единственной всеобъемлющей целью: понять и внедрить простую Рекомендательную систему . Если кого-то интересуют подробности, то Я предоставил ссылку на свою статью здесь . (Забавное примечание: на данный момент я не понимал, что это технически машинное обучение !)

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

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

Первоначальный прогресс

Перед тем, как получить работу, я начал продвигаться по этому массовому открытому онлайн-курсу (MOOC) , чтобы понять синтаксис Java (поскольку это было за много световых лет от MATLAB)!

Однако первоначальный переход от MATLAB к Java с самого начала был болезненным…

  • Java, что вы имеете в виду, это не будет ” компилировать “?
  • Java, что ты имеешь в виду, это не Строка ? Конечно, a делает свое дело?
  • Java, что вы имеете в виду Несовместимые типы ?

” Java, что вы имеете в виду || Несовместимые типы || ? О, есть также много Java-y и не Java-y вещей, которые тоже нужно изучить!”

  • Java, что вы имеете в виду
  • Несовместимые типы ? О, есть также много Java-y и не Java-y вещей, которые тоже нужно изучить!” Написание “чистого кода”. Java, что вы имеете в виду Несовместимые типы ? О, есть также много Java-y и не Java-y вещей, которые тоже нужно изучить!” Написание “чистого кода”. Принцип объектно-ориентированного программирования ( Meyer ,
  • DRY , SOLID
  • .) Java, что вы имеете в виду Несовместимые типы
  • ? О, есть также много Java-y и не Java-y вещей, которые тоже нужно изучить!” Написание “чистого кода”. Принцип объектно-ориентированного программирования ( Meyer , DR Agile SDLC методологии ( Scrum
  • .) Y , SOLID

.. это было ошеломляюще.

Последовательность является ключевым фактором

Именно в такие моменты, когда человек чувствует себя подавленным, он может начать впадать в уныние. Я знаю, что прошел через этот процесс. Однако, благодаря последовательности и самоотверженности, я бы теперь считал себя в целом компетентным . Я многому научился, и с каждым днем мне все больше нравится эта дисциплина. Причина, по которой я использую термин в целом компетентный (я очень осторожен с выбором слов здесь!) заключается в том, что:

  • Я верю, что ни один отдельный человек не может выучить все до единой вещи, но
  • Я верю, что, будучи дисциплинированным и последовательным в одном деле и уделяя достаточно времени одному делу, можно научиться этому .

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

Совет №1 – Расслабьтесь, сделайте глубокий вдох

Учитывая все обстоятельства, я думаю, что это самое главное.

  • Легко быть ошеломленным необъятностью мира развития.
  • Легко опасно увлечься проблемой, которую должно быть “просто” решить.
  • Легко почувствовать, что вам нужно научиться этому.

Сделай шаг назад. Сделайте глубокий вдох. Расслабиться. Все будет хорошо. Отправляйтесь на быструю прогулку или приготовьте чашку чая! Вы сможете решить стоящую перед вами проблему, просто, возможно, не прямо сейчас. То есть хорошо .

Совет № 2 – Научитесь чувствовать себя комфортно в неструктурированном обучении

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

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

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

Главный совет в этом отношении – просто изучать то, что вы считаете интересным или крутым, независимо от того, глубоко ли вы понимаете предпосылки. Если вы считаете, что что-то интересное, то вы приложите все усилия, чтобы изучить предварительные условия (и у вас уже будут некоторые “информационные связи” бесплатно!).

Дайте ему время. Соединения будут происходить (и, когда они начнут происходить, они будут происходить все чаще и чаще).

Совет Нет. 3 – Вы (почти) никогда не напишете идеальный код с первой попытки

После того, как я начал осваиваться с основами реализации и дизайна, я закончил с writer’s block .

Когда я сталкиваюсь с проблемой, я бы подумал о конкретной реализации решения. Подумав об этом немного больше, я бы понял, что мне не нравится эта часть дизайна, поэтому я переделываю дизайн. Тогда я нашел бы с ним больше проблем, перепроектировал бы его и… что ж, вы поняли идею. В результате я бы потратил около часа без написания какого-либо кода .

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

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

Двумя основными преимуществами этого являются:

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

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

Совет № 4 – Ищите наставника

Мне невероятно повезло иметь фантастического наставника в моей нынешней роли. Действительно хороший наставник способен:

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

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

Совет № 5 – Понимание предметной области помогает разрабатывать лучшие решения

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

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

Чтобы получить представление о том, как я учился, я сделал следующее:

  • Как уже говорилось ранее, я использовал этот MOOC , чтобы начать изучать Java.
  • Затем я использовал Pluralsight чтобы начать узнавать больше о Java и методах ООП. (Примечание: Я никоим образом не связан с Pluralsight, но я считаю, что это фантастическая платформа для обучения).
  • Что касается литературы, я прочитал серию книг Чистый код , написанных Дядей Бобом .
  • В настоящее время я читаю Эффективная Java .

Оригинал: “https://dev.to/jakeallan/my-industrial-development-journey-one-year-on-361o”