Лучший совет по программированию от человека, стоящего за Microsoft.

Путь программиста увлекательный. Это долгий и трудный путь, полный испытаний и невзгод.

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

Однако если и есть человек, который кое-что знает о программировании, так это Билл Гейтс.

Билл Гейтс — основатель Microsoft и один из самых богатых людей в мире. Он знаковая фигура в технологическом секторе.

Когда ему есть что сказать, индустрия останавливается и слушает. Вот почему его совет начинающим программистам нельзя игнорировать.

Он вдохновил меня на многих уровнях, и я надеюсь, что вы тоже сможете извлечь пользу из его мудрых идей.

Вот несколько советов от одного из известных программистов — Билла Гейтса.

Не переусердствуйте, просто погрузитесь

Гейтс: Лучший способ подготовиться [стать программистом] — это писать программы и изучать отличные программы, написанные другими людьми. В моем случае я пошел к мусорным бакам в Центре компьютерных наук и выудил списки их операционных систем.

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

Идеального программиста не бывает. Все делают ошибки. У всех есть недостатки. Мы все пишем глючное ПО. Идеального кода не существует. Так что не пугайтесь. Ваш проект никогда не станет шедевром.

Через 2-3 года он все равно, скорее всего, устареет. Просто создавайте вещи, которые работают, даже если код не идеален.

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

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

Люди, которые что-то делают и отправляют код, всегда побеждают тех, кто ждет.

Хорошо знай свои инструменты — действительно хорошо

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

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

Вы начинаете изучать программирование и читаете, что вам нужно изучать React, GraphQL, Node.js, MongoDB, Storybook, React Hooks, AWS и т. д. Вы начинаете изучать библиотеки, не понимая, что они делают и почему они популярны.

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

Почему это хорошо? Если вы не можете объяснить это своим друзьям, то вы должны сначала выучить это, прежде чем просто прыгать на подножку.

Сом — TypeScript — это надмножество JavaScript со статическими типами, и теперь в нашем коде будет меньше ошибок — ура! Я буду использовать его везде.

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

Не используйте что-то вслепую только потому, что вам так сказали.

Никогда не бывает идеального решения.

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

Научитесь хорошо читать код.

Гейтс:Я думаю, что в период с 1975 по 1980 год я значительно улучшил свои навыки программиста. В 1975 году я бы сказал: «Эй, берегитесь, я могу все». Я действительно думал, что смогу, потому что я прочитал так много кода, и я никогда не находил фрагмент кода, который я не мог бы прочитать очень быстро. Я до сих пор считаю, что одним из лучших тестов на способности программиста является дать программисту около 30 страниц кода и посмотреть, как быстро он сможет его прочитать и понять.

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

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

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

Гейтс: Несомненно, это талант. Это что-то вроде чистого I.Q. Вы должны просто сконцентрироваться на коде и вернуться к написанным вами программам. Многие люди сказали бы: «Я хочу дни и дни, чтобы прочитать это». По-настоящему хороший программист сказал бы: «Позвольте мне взять это домой. Я просто потрачу час сегодня вечером и пройдусь по всему». Разница в способностях огромна.

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

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

Научитесь делать вещи максимально простыми

«Простота — это высочайшая сложность».

- Леонардо да Винчи

Упрощать — самая сложная часть создания программного обеспечения.

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

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

Измерение прогресса программирования по строкам кода похоже на измерение прогресса в самолетостроении по весу.

Лучшие части программного обеспечения — это те, в которых один человек имеет полное представление о том, как именно работает программа. Для этого вам нужно полюбить программу и сосредоточиться на том, чтобы сделать ее максимально простой.

Научитесь работать в группе

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

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

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

Моя работа заключается в том, чтобы умные люди могли работать вместе. Глупые люди могут легко работать вместе, умные — нет».

— Джек Ма

До того, как Пол и Билл основали компанию, они участвовали в нескольких крупномасштабных проектах по программному обеспечению, которые обернулись настоящими катастрофами.

Гейтс: Они просто продолжали подливать людей, и никто толком не знал, как они собираются стабилизировать проект. Мы поклялись себе, что будем лучше. Поэтому идея тратить много времени на структурирование групп всегда была очень важной. Лучшие идеи очевидны: пусть группа будет небольшой, убедитесь, что все в группе очень умны, дайте им отличные инструменты и используйте общую терминологию, чтобы все могли общаться очень эффективно. И кроме малых групп, есть очень опытные пожилые люди, которые могут дать совет по проблемам.

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

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

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

Сначала визуализируйте, а потом создавайте

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

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

Не стоит недооценивать. Все, что вы видите вокруг себя, когда-то визуализировалось человеческим разумом.

Познайте радость создания чего-либо

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

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

Гейтс: Хотя у меня нет рецепта того, что должны делать другие, я знаю, что мне очень повезло, и я чувствую ответственность за то, чтобы вернуть долг обществу в очень существенный способ. Это весело и очень полезно.

Как программист, вы можете создать что-то из ничего.

Есть что-то волшебное в создании чего-то из ничего. Я желаю, чтобы вы испытали это волшебство.

Заключение

Некоторые из лучших уроков программирования, которые мы извлекли из наших собственных ошибок. И некоторые из лучших уроков, которые мы извлекли из других, мы извлекли, наблюдая, как они совершают ошибки.

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

Он заработал свое состояние как предприниматель и бизнесмен, но он не заработал бы этого состояния, если бы не был программистом.

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





Примечание благодарности

Я хотел воспользоваться этой последней возможностью, чтобы сказать спасибо.

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

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

И я надеюсь, что буду помогать вам в вашей карьере еще много лет!

Увидимся в следующий раз. Пока!

Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку здесь.