Недавно кто-то спросил меня, есть ли у меня советы для начинающих программистов. Сначала я подумал, что это глупый вопрос. Я начал работать всего десять лет назад; многие из подписчиков моей рассылки занимаются программированием дольше, чем я!
Потом я прочитал несколько статей «Советы начинающему программисту» и подумал, что некоторые вещи в них упущены. Итак, вот тринадцать советов для начинающих программистов. Некоторые из них противоречат друг другу.
1. Люди слушают меня не потому, что я хороший программист, а потому, что я хороший писатель. То же самое можно сказать практически обо всех, кого вы будете читать. Это не значит, что вы должны автоматически отвергать все, но это значит, что вы должны тщательно обдумать и оценить, насколько это применимо к вашей ситуации. И воспринимайте любые аргументы об «объективной истине» с долей скептицизма. В программном обеспечении очень мало научного, а большинство исследований неубедительны.
2. Но также не стоит слишком беспокоиться о том, что вас «обманут» или вы узнаете что-то «не то». Если вам нравятся чьи-то идеи, попробуйте их! Если вы не будете активно доставать своих коллег, то в конце концов все получится, даже если вы оглянетесь назад и подумаете: «Надо было сделать по-другому». В этом и заключается смысл обучения!
3. Прочитайте книгу «Отладка: 9 правил». Возьмите ее в библиотеке или попросите свою компанию купить копию — все равно. Она читается очень легко и учит важному навыку, о котором почти не рассказывают другие книги для «начинающих программистов».
4. В какой-то момент вы откроете для себя Правильный Путь программирования — то, что придает всему этому смысл, и вы убедитесь, что вся область была бы намного лучше, если бы все остальные тоже программировали «правильным образом». Для меня правильным способом была разработка через тестирование — для вас это может быть функциональное программирование, LISP, формальные методы или одна из миллиона других вещей.
Я не буду говорить вам, чтобы вы не увлекались «правильным путем», потому что это практически невозможно. И, честно говоря, это очень здорово — открыть для себя Правильный Путь. Жизнь слишком коротка, чтобы не чувствовать себя хорошо. Просто помните о том, что вас затягивает, и старайтесь не превращаться в того Парня с Правильным Путем. В конце концов, медовый месяц закончится, и вы узнаете, что программирование — это разочарование и беспорядок, независимо от того, какой Правильный Путь используют люди, и что вы можете создавать отличные программы, не делая этого правильным способом. Со временем вы узнаете пятьдесят других Правильных Путей и научитесь сочетать их в зависимости от поставленной задачи.
5. Когда вы впервые познакомитесь с Правильным Путем, скорее всего, вам расскажет о нем тот, кто уже стал Парнем с Правильным путем. Постарайтесь не обижаться на него в дальнейшем. И постарайтесь не смешивать реальную технику с тем, как ее преподносит ППП. Большинство идей нуждаются в некоторой модификации по сравнению с их чистой формой, чтобы хорошо сочетаться с другими идеями.
6. Джулия Эванс однажды сказала, что «за каждой лучшей практикой стоит ужасная история». Если вам непонятна лучшая практика, поищите ужасную историю, которая вдохновила ее. Возможно, благодаря ей лучшая практика приобретет смысл. А может, это окажется что-то совершенно неважное для вас, и тогда вы сможете спокойно заниматься другой практикой.
7. В развитие последнего совета: многие лучшие практики и конвенции «зависят от пути», возникая под влиянием исторических и культурных факторов. Есть вещи, которые мы делаем, потому что так делали наши наставники, которые делали это, потому что так делали их наставники, которые делали это, чтобы решить проблемы, которые уже не так актуальны. Если что-то звучит как просто история, это вполне может так и быть. Часто можно проследить весь путь, если вы готовы искать.
8. Совершайте прогулки.
9. Почти каждый инструмент, который вы используете, имеет некую скрытую глубину — от языка программирования до git и JIRA. Не думайте, что вы должны стать экспертом в каждом из них, но потратьте 5-10 минут на то, чтобы узнать немного больше о том, что он может делать.
10, Поговорите с сотрудниками других подразделений компании: службы поддержки, бизнес-сферы, отдела продаж и т. д. Если у вас есть время (и вы чувствуете себя комфортно, когда спрашиваете), подумайте о том, чтобы стать их тенью. Вы будете удивлены тем, что узнаете!
11. Если возможно, постарайтесь заняться несколькими разными видами программирования на ранних этапах своей карьеры. Это не обязательно означает смену работы: большинство компаний занимаются несколькими видами программирования одновременно. Например, если вы начинаете работать в веб-деве, попробуйте поработать с фронтендом, бэкендом, операционками, базами данных и так далее. Это поможет вам научиться, но, что гораздо важнее, увеличит ваши шансы найти тот вид работы, который вам действительно понравится. Моя первая работа была в качестве фронтенд-разработчика, и я был несчастен. Позже я перешел на бэкенд и стал гораздо счастливее, как и люди, которые хотели проводить больше времени, занимаясь фронтендом!
12. Вы наверняка слышали совет о том, что программное обеспечение как область постоянно меняется, и что не стоит двигаться по беговой дорожке фреймворков, а лучше сосредоточиться на изучении фундаментальных навыков. Это верно, но не объясняет «почему». По структурным причинам информация в программном обеспечении распространяется очень быстро. Это связано со многими факторами (интернет, открытый исходный код, конференции), но в целом барьер для обмена идеями в программном обеспечении ниже. Поэтому очень легко заставить многих людей узнать о чьем-то любимом проекте, даже если его использует только один человек.
В результате многие технологии, о которых вы слышите, имеют очень маленькую пользовательскую базу и никогда не получат широкого распространения, но по тому, как вы о них слышите, этого не скажешь. Вот почему имеет смысл быть консервативным. Если вы услышали о чем-то, что привело вас в восторг, идите вперед и станьте ранним последователем, в противном случае можно подождать пару лет, чтобы понять, будет ли это работать.
13. В конечном итоге никто из нас не может предсказать будущее, так же как никто из нас не мог предсказать настоящее. Просто старайтесь делать все, что в ваших силах, жить в соответствии с вашими ценностями и наслаждаться приключением.
На этом у меня все на этот год; новые даты семинаров — по возвращении. Увидимся в 2024 году!