Достигайте более высокой производительности кодирования с меньшими усилиями по программированию

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

«Великий токарь получает зарплату в несколько раз больше среднего токаря, но великий программист стоит в 10 000 раз больше, чем средний программист».

Гейтс утверждает, что разница между средним и великим разработчиком заключается не просто в 10-кратной разнице, а в том, кто в 10 000 раз более продуктивен.

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

То, что говорит нам Гейтс, является классическим примером того, что мы называем распределением Парето.

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

Обычно это происходит по двум причинам:

  • Самые высокооплачиваемые исполняют больше концертов
  • Они дольше остаются в игре.

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

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

Вы должны сохранять простоту как в профессиональном, так и в личном плане.

Практические советы 80/20

«Простота работает, сложность терпит неудачу»

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

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

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

Советы, которые я даю здесь, ни в коем случае не являются полными.

Моя цель — дать вам основу (как бы далеко вы ни продвинулись в программировании) того, как вы можете думать о простоте — как в личной, так и в профессиональной жизни разработчика и стать великим программистом.

№1. Маленький это красиво

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

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

Вместо этого попробуйте разбить свой код на более мелкие функции, подобные этой.

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

#2.Ненужные функции

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

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

Клиенты ожидают качественного пользовательского опыта. Поэтому нам нужно четко расставить приоритеты.

№3. Тест

Даже если вы мастер-программист, вы будете делать ошибки.

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

Обычно это включает в себя такие тесты, как:

  • Модульные тесты
  • Приемочные тесты пользователей
  • Дымовые тесты
  • Тесты производительности
  • Тесты масштабируемости

Лучше узнать о наших ошибках раньше, чем позже.

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

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

№ 4. Делай одно дело хорошо

Философия Unix, вероятно, является лучшей основой для создания минимального, модульного, и простого в использовании программного обеспечения.

Существует множество интерпретаций философии Unix, но в основе ее лежит принцип KISS: Keep It Stupid Simple.

Как Эрик Рэймонд в своей книге 2003 года Ясность лучше, чем ум. Программы должны быть простыми и понятными для пользователей. Они должны сообщать обо всем, что происходит в фоновом режиме, и давать четкое подробное сообщение об ошибке в случае сбоя.

Если мы пишем код, используем четкие имена, делаем все четко и просто, не повторяем один и тот же код (СУХОЙ), разбиваем код на модули, при необходимости используем шаблоны SOLID, используем чистый код/страсть к чистой архитектуре…

Программирование на фундаментальном уровне заключается в поддержании сложности.

№ 6. Расхламите свой день:

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

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

Задайте себе следующие вопросы

«Если бы я мог работать только 2 часа на этой неделе, на чем бы мне сосредоточиться?

«Какой проект, если я сделаю это безупречно в течение следующих 3 месяцев, изменит для меня игру?»

Затем полностью посвятите себя проекту.

#7.Глубокая работа:

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

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

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

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

№8. Стратегический мыслитель

«Дизайн продолжается» — Рэй Далио

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

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

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

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

  • Вы определяете свои большие цели — вы можете подняться по распределению Парето, если вам нужно играть меньше игр. Определите один проект, который дает вам наибольшую отдачу. Как правило, это проекты, которые бросают вам вызов больше всего.
  • Определите метрику успеха — найдите, что делают самые выдающиеся разработчики в вашей отрасли, и установите минимальный порог того, чего нужно достигать каждый день. Спросите себя; Как бы это выглядело, если бы это было легко?
  • Победа в случае неудачи: если вы выбираете проекты/мероприятия, которые настраивают вас на приобретение ценных навыков, даже если вы потерпите неудачу на определенном уровне, вы все равно сможете выиграть в других проектах, поскольку эти навыки повышают вашу ценность в геометрической прогрессии.
  • Вы размышляете о своем успехе — Что вы сделали, чтобы добиться отличных результатов?
  • Универсальный специалист: вы сочетаете редкие уникальные навыки в блокчейне и облаке, чтобы получить конкурентное преимущество перед своими коллегами. Так вы сможете легче выделиться
  • Читайте больше книг по вашей отрасли. Хороший программист может решить проблему в 10-100 раз быстрее.
  • Подумайте о своих неудачах. Проводите ежемесячный анализ 20/80, в ходе которого вы ищете 20 % действий и людей, которые вызывают у вас 80 % лучших чувств. Запишите свои ошибки в журнал.
  • Улучшайте существующие продукты — не перескакивайте с одного на другое. Будьте осторожны с тем, что вы хотите сделать, основываясь на долгосрочном плане игры, который у вас есть.
  • Играйте в долгую игру — Go Стратегия голубого океана

Еда на вынос:

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

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

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

Будучи эффективным, вы опередите 95% своих конкурентов.

Надеюсь, вам понравилась эта статья, и вы узнали что-то ценное.

Не стесняйтесь подписываться всегда :)











Генеральный директор Netflix о заоблачных зарплатах: «Лучшие легко в 10 раз лучше среднего
Философия найма Рида Хастингса: полагайтесь на одного гения, который сделает работу 10 - было много споров. Но топ Силикон…www.cnbc.com»