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

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

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

Полюбопытствовать. Задавайте вопросы окружающим. И старайтесь узнавать что-то новое при каждой возможности, которая у вас есть. Новые знания накапливаются, и даже если вы чувствуете, что никогда не будете достаточно хороши, чтобы опубликовать собственное приложение, небольшие шаги сегодня будут иметь решающее значение в будущем. Не изучайте Swift, потому что вы хотите разбогатеть, продавая приложения для iPhone: изучайте его, потому что это интересный и познавательный опыт.

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

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

Придумать проект для постройки

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

Но управляйте своими ожиданиями

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

Поделитесь своим прогрессом с другими

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

Думайте об этом как об игре

Разработка программного обеспечения полна препятствий. Устаревшие руководства, непонятные проблемы, бесполезные сообщения об ошибках и т. д. Легко разочароваться во всех этих проблемах, которые стоят на вашем пути. Вот почему очень важно рассматривать их не как что-то, что вас замедляет, а как проблемы в игре. Когда вы играете, вы хотите чувствовать вызов, иначе у вас не будет этого чувства достижения. Здесь то же самое: преодоление этих препятствий делает программирование в конечном итоге таким полезным.

Будьте готовы к неудаче и учитесь на ней

Даже если вы воспринимаете все трудности как вознаграждающие вызовы, вы все равно будете чувствовать себя потерянным много раз. При программировании это нормально. Даже эксперты постоянно терпят неудачу. Хитрость заключается в том, чтобы не принимать это на свой счет и просто принять как часть процесса программирования. Практика Разработки через тестирование (TDD), например, заключается в том, чтобы на раннем этапе привнести неудачу, чтобы учиться и развиваться дальше.

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

Рикардо Лопес — разработчик Ruby в FutureLearn (и они набирают сотрудников!). Вы можете следить за ним в твиттере @ricardoplopes.