Станьте лучшим разработчиком

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

Чему научиться, чтобы стать хорошим разработчиком

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

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

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

Мои экзамены были сидячими, многочасовыми долгими экзаменами по написанию Java карандашом и бумагой, пытаясь написать код без помощи внешних ресурсов. Это вряд ли произойдет в какой-либо другой среде за пределами университета. Вы будете использовать IDE и проводить бесчисленные часы за чтением и перевариванием документации в Интернете. Вы будете просматривать проблемы на GitHub, находить ответы на вопросы на Stack Overflow и задавать вопросы постоянному эксперту в вашей команде. Программирование в реальном мире часто тратится на чтение, а не на написание кода.

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

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

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

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