Рубрики
Без рубрики

Мнение: Что делает отличный разработчик?

Этот вопрос снова и снова. От объединения основной команды для запуска … Теги с карьерой, CodeNewie, JavaScript, Python.

Этот вопрос снова и снова. От объединения основной команды для стартовой компании для набора стажеров кандидатов на многомиллионную фирму на многомиллионных долларовых моделей появляются и повторяющиеся точки данных, очевидны, когда вы смотрите достаточно внимательно.

Давайте посмотрим на 10 лучших характеристик отличного инженера программного обеспечения. Конечно, Top Notch Technical Chops являются обязательным условием, но остерегайтесь, некоторые из этих предметов могут вас удивить.

Страсть к технологии. Хорошо, так что нет соревнований здесь. Большой программный инженер всегда учится, расследуя новые тенденции, инструменты и лучшие способы решения проблем. Инженер «Отличное программное обеспечение», с которым я работал с незаконным образом шутить, что он был в значительной степени выбрасывает то, что он узнал каждые 6 месяцев или около того. Рисуется ужасно, в течение одного месяца растягивайтесь, что он использовал C, SmallTalk, PowerBuilder, SQL Server и базу данных объекта в разработке внутренних программных решений для инвестиций в недвижимость и управляющей фирмы в Чикаго.

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

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

Прагматично. Я думаю, что эта характеристика является одним из более противоречивых в этом списке. Или, может быть, «спор» – это неправильное слово. Возможно, «упускать из виду» – лучший дескриптор. Отличные инженеры программного обеспечения поражают тонкий баланс между их приводом для совершенства и практичности. Они знают, когда на компромисс и реализовать что-то менее элегантное, что их внутренний голос говорит им реализовать. Нигде эта черта важнее, чем в стартовой компании. Время на рынок имеет решающее значение, и существует ряд метафоров по плоскости (например, взлетно-посадочной полосы (например, не хватает взлетно-посадочной полосы), что подчеркивает тот факт, что вы не можете потратить 2 недели в алгоритме сортировки Kick-Ass.

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

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

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

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

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

Хорошие коммуникаторы. Какой? Мне нужен кто-то, кто может вытащить 2000 строк кода в день! Не так. Прошло – это стереотипная горная роса, топлива, заправленная запятой от других членов команды. Возможность писать и говорить ясно, имеет первостепенное значение для отличных программных инженеров. Они должны быть в состоянии синтезировать и объяснить сложную информацию не техническим людям, а также сформулировать дизайн для членов технической команды. На оборотной стороне они должны быть великими слушателями, поднимая нюансы или неопределенности в том, что им говорят, и сверлят вопросы, чтобы уточнить проблему, которая должна быть решена.

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

Оригинал: “https://dev.to/krowser/what-makes-a-great-developer-opinion-418d”