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

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

Почему я начал программировать

Я интересовался компьютерами еще до того, как мне исполнилось 10 лет, но я могу приписать один из своих первых опытов программирования с помощью Visual Basic .NET (также известного как VB.NET).

Где-то в возрасте 13 лет Visual Basic .NET стал моим первым знакомством с объектно-ориентированным программированием. Не нужно вдаваться в мою предысторию, все, что меня волновало, это возможность создавать приложения для Windows, которые могли делать определенные вещи при нажатии на кнопки.

Впервые у меня появилась сила создать практически все, что я хотел. Это, в сочетании с моим постоянно развивающимся любопытством и желанием стать лучше, я всегда спрашивал себя: «Как это может быть лучше»? Что еще я мог бы создать, если бы использовал знания, полученные с момента создания последней вещи?

Почему я люблю программировать сегодня

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

Возвращаясь к истории VB.NET, ниже приведен пример того, как выглядит синтаксис:

Private Sub Button1_Click(sender As object, e As EventArgs) Handles Button1.Click
	Dim message as String = "Hello World!"
    System.Console.WriteLine(message)
End Sub

Вот как выглядел мой код VB.NET примерно 7 лет назад:

Вероятно, мне не нужно говорить вам, что конечно, есть лучший способ. Для контекста, это всего лишь один фрагмент из примерно 1500-строчного файла для приложения диспетчера безопасности. Когда в приложении нажимается определенная кнопка, изменяется видимость более 30 различных меток, кнопок и других «элементов» на экране приложения, поскольку все было в одном представлении.

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

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

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

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

Почему программирование правильно щекочет мой мозг

Острые ощущения от тяжелой работы окупаются

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

Воплощение искусства в жизнь

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

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

Когда все эти вещи объединяются и делаются хорошо…

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

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

Полная свобода творчества

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

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

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

Почему существуют эти проекты? Почему бы и нет? 🤠

Делать людей счастливыми

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

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

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

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

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

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

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

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

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