Итак, вы хотите быть программистом

ПРИМЕЧАНИЕ. Изначально этот пост был размещен в моем личном блоге, но я хотел поделиться им и здесь. Клянусь, это полезно!

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

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

Понимание переменных, циклов и условных операторов

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

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

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

Условные операторы - это термин, который по сути своей является логическими воротами. Это еще один причудливый термин для указания вашему коду взглянуть на что-то, посмотреть, подходит ли оно к тому, что вы ищете, а затем предпринять что-то, если это так. Вы также можете попросить его сделать что-нибудь, если оно не соответствует тому, что вы ищете. Если вы представляете себя идущим на концерт, или в кино, или в самолет, где-нибудь с определенным местом для сидения, вы идете по проходу в поисках своего ряда и номера места, верно? По сути, вы используете мысленное условное утверждение, чтобы определить, является ли сиденье, на которое вы смотрите, тем, которое вам назначено, и если да, то вы садитесь на него!

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

Почувствуйте себя комфортно с контролем версий

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

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

Такие сайты, как GitHub и Bitbucket, полезны для размещения ваших проектов, а также всех изменений, внесенных в вашу систему контроля версий.

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

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

Строить. Строить. Строить. Я упоминал о сборке?

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

В мире программирования термин «hello world app» означает, что мы берем язык и в качестве первого шага ищем способ запустить его и просто напечатать «Hello world!» Неважно, как вы это делаете, но это действительно усиливает смысл того, чтобы просто запустить что-то в качестве первого шага. Вы можете перейти от его распечатки к тому, чтобы попросить пользователя ввести что-то для печати, к манипулированию текстом, к запросу его имени, и действительно, есть миллион разных вещей, которые нужно сделать, пока вы хотите ковыряться с вещи.

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

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

Я часто говорю, что технически я не умнее всех вокруг меня, я просто могу гуглить лучше, чем вы.

Найдите сообщество

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

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

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

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

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

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