Ряд простых, но не всегда очевидных вещей, которые помогут вам, если вы только встали на тернистый путь разработчика.
Разработчик с пятнадцатилетним стажем, а ныне технический директор образовательной онлайн-платформы для программистов Firehose Кен Мазаика (Ken Mazaika) рассказал на Quora о тех вещах, которые он хотел бы знать до начала изучения программирования. Ниже небольшой список советов на основе его текста.
Обучение происходит через действие. Единственный путь совершенствоваться в программировании - постоянно программировать. Не позволяйте аналитическому параличу останавливать вас в самом начале.
Облегчать себе задачу - приветствуется. Регулярно гуглите ответы на возникающие у вас вопросы, так делает большинство программистов. Тут главное не заиметь привычку бездумно копипастить со Stackoverflow.
Самообучение - тяжелый труд. Особенно, если вы не общаетесь с другими программистами. Старайтесь находить пути для общения и обсуждения кода с более опытными специалистами, это поможет учиться быстрее.
Не нужно быть гениальным математиком. Если вы с математикой не на "ты" - это еще не значит что вам будет трудно в программировании.
Изучение программирования - это не подготовка к тесту. Заучивание разных штук вам не сильно поможет (т.к. п. 1)
Пробуждение начинается с мыслей о коде. Когда такое начинает случаться, это действительно крутые ощущения.
Возможно, вам пригодится пара мониторов. Чтобы начать и работать дальше, достаточно двух компьютеров.
Позволять проблемам накапливаться - плохая стратегия. Старайтесь исправлять проблемные места в коде сразу, не давая им накладываться одно на другое.
Старайтесь разделять написание кода больших программ. Если вы трудитесь над изучением программирования в одиночку и в одиночку пытаетесь сделать что-то большое - велик шанс забросить начатое, не дойдя и до полпути. Лучше попытайтесь найти себе компаньона-программиста или просто человека, с которым сможете обсуждать возникающие проблемы и идеи.
Алгоритмы - это как поиск номера в телефонной книге. Самое важное при знакомстве с алгоритмами - помнить, что в этом определении нет ничего сверхсложного. Любой алгоритм - это просто пошаговая инструкция правильно написанных шагов.
Правка плохого кода - часть развития. Даже если вы пытаетесь делать каждую часть кода безукоризненно с самого начала, вносить изменения в код - нормально и полезно.
Пытаться понять все - безнадежно (в начале) Не пытайтесь найти ответ на вопрос "почему?", когда возникает каждая новая проблема. В самом начале в этом нет необходимости, многие ответы придут позже сами, без дополнительного поиска.
Встречи программистов и другие подобные мероприятия чрезвычайно полезны. Не только в начале пути, но особенно - всегда. Любые интересные митапы в вашем городе - повод лишний раз выбраться из дома. Там вы сможете послушать более опытных специалистов, а также пообщаться с другими программистами, которые пришли на мероприятие в качестве слушателей.
Делать ошибки - нормально. Ошибка автора этого списка, Кена Мазаика, однажды стоила компании, где он работал 10 тысяч долларов. И это был самый важный урок в его программистской карьере.
Программисты никогда не перестают учиться. Новые технологии появляются почти непрерывно и большинство программистов, в зависимости от специфики их работы, конечно, постоянно изучает что-то новое, чтобы использовать это в работе.
Просите о помощи правильно. Если вы застряли и хотите спросить совета у любого сообщества в интернете, убедитесь, что вы выполнили следующие пункты:
-
Предоставьте все детали того, что вы видите (код, логи ошибок, скриншоты etc.)
-
Объясните, что точно по-вашему должно происходить
-
Объясните, что точно по-вашему происходит
-
Объясните почему так происходит по-вашему мнению
Часто, проходя по этому списку, вы можете найти решение проблемы самостоятельно. Такой подход учит смотреть на возникающие проблемы целостно.
Всегда отмечайте маленькие победы. Создавать новые вещи с помощью кода - воистину здорово. Но вы можете не достичь тех успехов в этом деле, каких могли бы, если не будете отступать время от времени и смотреть со стороны на то, что вы создали.
Вы никогда не будете чувствовать, что готовы к полноценной работе. Очевидно, что знать все очень сложно. Самое важное - это понимание, что, то, чего вы не знаете сейчас, вы выясните позже.
Вам может понадобиться 10000 часов чтобы стать достаточно хорошим специалистом для первой работы. В действительности, вы уже достаточно хороши для этого, если понимаете как действовать, чтобы справляться с неизвестными проблемами, когда они появляются.
Важно использовать правильные инструменты для работы. Сейчас существует так много различных библиотек, фреймворков и утилит для работы в любой сфере программирования, что важным для вас моментом - будет определение своего стека инструментов для работы. А если вы ищите работу в компании, хорошим способом определиться с кругом необходимых для изучения инструментов будет поиск подходящих вакансий и изучение требований к кандидату.
Не стесняйтесь, если вы чего-то не знаете. Когда вы ищете первую работу программистом, на собеседованиях не стоит делать вид, что вы знаете что-то, о чем на самом деле имеете неполное представление. Никто не ожидает от вас невероятных результатов на собеседовании на позицию джуна.
Сдаваться перед самым началом положительных изменений - обычное дело. Но так поступать не стоит. Это в особенности касается программирования. И в частности, если вы стоите на распутье перед сменой основной деятельности. Потребуется много времени и строгая самодисциплина, но это возможно. Слишком много людей допускают ошибку, сдавая назад, когда сделано почти достаточно, чтобы получить награду.