Когда ты только приступаешь к изучению чего-то нового, всегда немного страшно и зачастую непонятно, за что хвататься. Каждый из нас, становясь разработчиком (поваром, садоводом, водителем — в данном контексте специальность не важна) совершал множество ошибок. Постепенно, по мере накопления опыта, ошибок становится все меньше, а с возникающими проблемами начинаешь справляться все быстрее.
Этот самый опыт, упомянутый в предыдущем абзаце, накапливается путем проб и ошибок. Но есть вещи, которые вовсе необязательно познавать именно таким образом. Гораздо быстрее и эффективнее — перенять опыт других людей. Вам часто будут встречаться статьи с советами разработчиков по самым разным темам: обращайте на них внимание. В этой статье мы собрали советы общего характера для начинающих программистов.
1. Будьте скромны и терпеливы, а также не бойтесь показаться глупым
Вы только начинаете свой путь, так что нет ничего удивительного или постыдного в том, что вы чего-то не знаете. Более, того, от вас никто и не ожидает, что вы будете все знать. Напротив, все ваши коллеги морально готовы к шквалу вопросов с вашей стороны, да и к вашим ошибкам тоже.
Продолжайте учиться и терпеливо продвигайтесь вперед. Читайте новости и статьи в блогах о всяких новинках из сферы разработки, а не только по своей специализации. Таким образом вы будете расширять свой кругозор и в результате сможете лучше отбирать вещи для более детального изучения.
2. Не бойтесь провалов
Ошибки это часть процесса учебы, поэтому их не нужно бояться: на них нужно учиться. Даже великие разработчики, бывало, вылетали с работы, ошибались, огорчались из-за этого. Но то, что они все же сумели снова подняться и извлечь уроки из своих ошибок, в результате сделало их великими.
3. Соблюдайте «10 заповедей обезличенного программирования»
Можете даже распечатать и на стенку повесить.
(В оригинале — «The Ten Commandments of Egoless Programming». «Egoless Programming» переводится как «обезличенное программирование»: организация разработки, при которой программист, написавший часть программы, обычно не сопровождает ее в дальнейшем; предполагает унификацию средств разработки и стиля программирования. — Прим.ред.)
«Заповеди»:
- Осознайте и смиритесь с тем, что вы будете допускать ошибки. Главное — обнаружить их как можно раньше, до того как они попадут в продакшен. К счастью, за исключением разработки в сфере космических технологий, наши ошибки редко бывают фатальными. Поэтому мы можем (и должны) извлечь уроки, посмеяться и двигаться дальше.
- Вы — не ваш код. Помните, что цель ревью кода — найти в нем проблемы, поэтому проблемы точно будут найдены. Не нужно воспринимать это как личное оскорбление.
- Не важно, сколько «приемов карате» вы знаете: все равно найдется кто-то, кто будет знать больше. И такой человек сможет научить вас новым движениям, если вы попросите. Принимайте вклад других людей в вашу работу, особенно если считаете, что в этом нет необходимости.
- Не переписывайте код, не проконсультировавшись. Между «исправлением кода» и «переписыванием кода» довольно тонкая грань. Эту разницу нужно чувствовать, особенно, когда делаете ревью кода. Помните, что вы не одиночка, а командный игрок.
- Относитесь к людям, которые знают меньше вас, с уважением и терпением. Не-технари, которые постоянно имеют дело с разработчиками, считают нас «примадоннами», и это в лучшем случае. Не позволяйте своему гневу или нетерпению подпитывать эти стереотипы.
- В мире постоянны только перемены. Принимайте это с улыбкой. Рассматривайте каждое изменение в требованиях, платформе, инструментарии как новый вызов, а не как ужасное неудобство, с которым нужно бороться.
- Настоящий авторитет зиждется только на знаниях, а не на названии должности. Если хотите заслужить уважение в среде обезличенного программирования, — приобретайте новые знания.
- Боритесь за то, во что верите, но при этом достойно принимайте поражение. Поймите и примите, что порой ваши идеи будут отвергаться. И даже если потом окажется, что вы были правы, не нужно повторять «а я говорил!» (по крайней мере, не делайте это слишком часто).
- Не будьте «парнем из той комнаты». (Возможно, это отсылка к сериалу «Айтишники», где Ричмонд работал в кладовке. В любом случае, речь о стереотипном представлении о программистах, — прим. ред.). Не будьте человеком, который тихонько кодит в темном офисе, выходя из него только за колой. Парень, сидящий в кладовке, изолирован от всего, неподконтролен и ему нет места в открытой среде сотрудничества.
- Критикуйте код, а не людей. И добры будьте к авторам кода, а не к коду. Старайтесь сделать свои комментарии максимально позитивными и направленными на улучшение кода. Ссылайтесь на локальные стандарты, спецификации программы, повышение производительности и т. п.
4. Читайте чужой код
Github — ваш друг. Выберите какие-нибудь проекты и начните читать их код. Поначалу все в коде вам будет непонятно, но не стесняйтесь спрашивать (об этом — в следующем пункте) и продолжайте учиться читать код других людей.
5. Спрашивайте, спрашивайте, спрашивайте, спрашивайте и спрашивайте
Да, как уже упоминалось в первом пункте, следует оставаться скромным. Поэтому задавайте побольше вопросов товарищам и более опытным программистам, учитесь у них. Полученные ответы стоит обдумывать и анализировать. Ищите ответ на свой вопрос и в других источниках: не для того, чтобы оспорить мнение человека, давшего совет, а наоборот — чтобы найти дополнительные обоснования.
6. Нет никаких разработчиков-звезд, ниндзя, гуру и т. п.
Это лишь маркетинговые уловки. Некоторые компании в своей рекламе пишут, что у них в штате — сплошные гуру и ниндзя, но это наглая ложь. Все хорошие программисты допускают ошибки. Они не супергерои, а такие же люди, как и все. Программирование — это не дар небес, это ремесло, и решающее значение имеет опыт.
7. Помимо изучения инструментов, языков и фреймворков читайте книги о карьерном росте
Программирование это не только написание кода.
8. Ведите блог
Начните вести блог и пишите там о том, что вы изучили за день. Пишите так, чтобы ваш пост мог быть источником знаний для вас самого. Когда-нибудь, возможно, вы забудете изученные темы, и тогда вам пригодится ваш конспект. Ну и, кроме того, ваш блог может быть полезен другим людям.
9. Принимайте участие в разработке проектов с открытым исходным кодом
Участвуя в open source проекте, можно многому научиться, да еще и сообществу помочь. Начинайте с чего-то маленького. Узнайте побольше о проекте, в котором хотите что-то исправить/дополнить. При выборе обратите внимание на фреймворк или инструмент, которым сами пользуетесь. Принять участие можно по-разному:
- сообщить о баге;
- воспроизвести баг и написать в тикете, как его воспроизвести;
- написать документацию;
- перевести программу или документацию на свой язык;
- написать код для исправления бага или реализации новой функции.
10. Наслаждайтесь процессом
Ваш путь к мастерству в программировании не будет ни быстрым, ни легким. Старайтесь получать удовольствие от процесса. Не забывайте, что нужно проявлять терпение, и продолжайте двигаться вперед.