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

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

Вы будете бороться

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

Но когда дело доходит до изучения любого нового навыка, бывают моменты, когда это кажется невозможным.

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

Не надо.

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

Задавать вопросы

Никогда не бойтесь задавать вопрос. Лучше спросить кого-то другого, чем тратить время на беготню по кругу.

Если у вас нет прямых связей, чтобы спросить, в Интернете есть множество людей, готовых помочь:

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

Не повторяйте одни и те же вопросы

Если вы задаете кому-то вопрос и получаете четкий ответ, запишите его — в документации или в личных заметках.

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

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

Не обращайте внимания на привратников

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

Мой совет - уделяйте им мало внимания.

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

Если вы хотите учиться в качестве хобби, это здорово.

Если ваша цель — работать в крупной компании N, это здорово.

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

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

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

Сосредоточьтесь на основах, а не на фреймворках

Все языки программирования и фреймворки — это одни и те же основы, объединенные в разные пакеты.

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

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

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

Нырнуть глубоко

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

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

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

Почему это решает мою проблему?

Можно ли улучшить это решение для моего конкретного варианта использования?

Держите сравнения в страхе

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

Я до сих пор виноват в этом.

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

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

Держите свое эго в страхе

Вы будете писать код.

Вы получите его рассмотрение.

Его разорвут.

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

Построй что-нибудь

Вы не продвинетесь, не построив что-то. Это так просто.

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

Стройте что угодно.

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

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

Примером для меня может быть мое веб-приложение Thought Reps. Я никогда не занимался веб-разработкой, но хотел попробовать React. Я просто нырнул и начал строить.

Хотя я уверен, что многое мог бы сделать по-другому, я многому научился на этом пути, и это все, о чем я мог просить.

Если вы не применяете то, чему научились, вы далеко не продвинетесь.

Дело не всегда в коде

Я думаю, одна вещь, которую часто упускают из виду, — это ценность того, что происходит вне кода.

Конечно, код — это здорово, и с его помощью происходят все забавные вещи, но на самом деле быть разработчиком программного обеспечения — это гораздо больше.

Например, твердое письмо и общение. Это очень важно и то, как много отличных идей в конечном итоге находят свое воплощение в коде.

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

Ничего не меняется

Если честно, ничего из вышеперечисленного на самом деле не меняется по мере вашего продвижения.

Это применимо ко всем — независимо от того, пишете ли вы свою первую программу hello world или имеете 20-летний опыт работы. По крайней мере, это то, что мой опыт показал мне до сих пор.

Не относитесь к советам слишком серьезно

Нет, серьезно. Даже то, что я только что написал выше.

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

Всегда будьте любопытны, задавайте вопросы и формируйте собственное мнение.

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

Для большего

Спасибо, что нашли время прочитать. Если вас интересует больше:

Следите за мной здесь, на Медиуме или в Твиттере.

Первоначально опубликовано на https://blog.nickhorn.com 13 февраля 2020 г.