Введение

Есть много вещей, которые я хотел бы знать как начинающий программист-выпускник. Чтобы рассказать обо всех из них, мне, вероятно, потребуется написать книгу (или две). Итак, я просто выберу пять наиболее важных из них - в надежде, что это поможет начинающему программисту управлять своими ожиданиями относительно [реального] мира.

Будьте открыты и оставьте свое эго за дверью

Привыкайте ошибаться или застать врасплох.

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

Один из самых умных программистов, которых я знаю (который также был моим наставником в компании, в которой я работал), однажды сказал мне, что «разработчик Spark будет рассматривать каждый проект как проект Spark». Спасибо, Димка Малеев! Так что не думайте, что вы знаете все, и да, вы будете ограничены тем, что знаете.

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

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

Держите уши открытыми, но всегда относитесь к этому скептически

Всегда, всегда, всегда относитесь к чьим-либо советам с недоверием.

Не существует идеального программиста - включая человека, на которого вы могли бы равняться и надеяться стать таким же хорошим, как в будущем. Этот человек может быть прав в 99% случаев, но он может ошибаться в 1% случаев и может вести вас по ложному пути. Так что да, пожалуйста, учитесь у своих старших, но не верьте им на слово вслепую. Бросьте им вызов, если считаете, что что-то не так.

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

Нет волшебной формулы

Работа по программированию - это совсем не школа.

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

Критически проанализируйте все и примите соответствующие меры в зависимости от ситуации. Если вы не можете сделать выводы самостоятельно, обратитесь за помощью (совет № 5)!

Выберите язык и овладейте им

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

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

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

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

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

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

Инженер и тест на худший случай не лучший случай

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

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

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

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

  • На сервере не хватает памяти
  • База данных отключена / не работает
  • DDoS-атаки
  • Повреждение базы данных / сервера
  • Неверные / допускающие значение NULL входные данные для методов

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

Лучше иметь мертвую программу, чем неточную и непредсказуемую.

Заключение

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

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

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