Немного контекста обо мне. Я работал инженером-программистом, занимал руководящие должности в компаниях с доходом в миллиарды долларов в США и основал компанию по разработке программного обеспечения в 24 года, поэтому я кое-что знаю о создании программного обеспечения.

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

Установите одну цель для своей карьеры и сосредоточьтесь исключительно на ней

Вы действительно увлечены программным обеспечением? Для вас невероятно важно быть успешным инженером-программистом? Если да, сделайте это своим главным приоритетом. Сотрите со стола все, что отвлекает. На листе бумаги запишите, чего вы хотите достичь за пять лет, и, чтобы достичь этого, чего вам нужно достичь за 2 года, 1 год, 6 месяцев, 3 месяца, 1 месяц, 1 неделю и наконец завтра. Это поможет вам не заниматься тем, что не имеет ничего общего с вашей карьерой.

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

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

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

Начните с фундаментальных принципов, SOLID

Хотите писать структурированный код с минимумом ошибок? Используйте SOLID. Люди потратили десятилетия на то, чтобы усовершенствовать 5 основных принципов создания отличного программного обеспечения, чтобы вам не приходилось делать это самостоятельно. Эти принципы составляют аббревиатуру SOLID. Подробнее здесь: http://www.oodesign.com/design-principles.html

Овладейте «бандой четырех шаблонов дизайна»

Хотите быстрее решать проблемы разработки программного обеспечения? Не изобретайте велосипед. Скорее всего, они уже решены с помощью сотен существующих шаблонов проектирования. При этом есть несколько основных шаблонов, которые вам следует знать, и они задокументированы как шаблоны "Банда четырех". Подробнее здесь: https://sourcemaking.com/design_patterns

Зайдите на YouTube и посмотрите серию Google "The Clean Code Talks"

Обсуждаемые здесь методы кодирования поразят вас тем, насколько они эффективны и помогают писать код быстрее, но с гораздо меньшим количеством ошибок. Начните с этого https://youtu.be/RlfLCWKxHJ0

Поговорите с пользователями вашего продукта

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

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

Понять быстрое прототипирование

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

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

Встань со стола. Работайте над своим эмоциональным интеллектом. Серьезно!

Правда в том, что программное обеспечение изобретено людьми, создано людьми для того, чтобы люди могли использовать его на благо нашего народного общества. Люди лежат в основе программного обеспечения, и инженеры-программисты обычно проводят 60% времени с машиной, а все 40% времени - на совместную работу и общение с людьми.

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

Выберите компанию с любимой миссией

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

Прочитать больше книг

Наконец, я призываю вас читать больше книг. Существует множество систематизированных и структурированных знаний, которые помогут вам организовать и структурировать свои собственные мысли. Лучший способ узнать больше - прочитать книги, которые предлагают решения ваших текущих жизненных проблем. Книг существует множество, так что не пугайтесь их. Постарайтесь выбрать только те, у которых больше всего рекомендаций от друзей, на Quora, Reddit или Amazon.

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