Какими качествами должен обладать программист: Какими качествами должен обладать программист?

Содержание

Какими качествами должен обладать программист?

Какими качествами должен обладать программист?

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

Какими же все-таки качествами должен обладать программист в современном мире?

1. Логическое мышление.

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

2. Внимательность и умение фокусироваться.

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

3. Усидчивость.

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

4. Любопытство.

Для кого-то это удивительно. Зачем любопытство программисту? Но нужно понимать, что в данном случае любопытство не значит совать свой нос куда не нужно или делать другие вещи, присущие любопытному человеку. Любопытство, которое вам нужно – это стремление знать больше, если вы понимаете, что ваши знания ограничены определенной технологией, языком и так далее.

5. Ответственность.

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

6. Стремление к самосовершенствованию.

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

7. Воображение.

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

8. Умение работать в команде.

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

9. Настойчивость.

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

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

 

Какими качествами должен обладать программист для успешной карьеры в IT?

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

Казалось бы, чтобы писать код, вам не понадобятся никакие качества личности – достаточно быть технически подготовленным специалистом. Но без определенных качеств вы не сможете как развиваться, так и существовать в команде, в коллективе компании.

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

  • Логическое мышление.

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

  • Внимательность и умение фокусироваться.

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

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

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

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

  • Ответственность.

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

  • Стремление к самосовершенствованию.

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

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

  • Коммуникабельность.

Сейчас большинство разработчиков так или иначе работают в команде. Поэтому, если вы научитесь эффективно общаться, не бояться просить помощи или спрашивать мнение коллеги, ваши дела пойдут в гору. Коммуникабельность относится к soft skills, обладание которыми поможет стать неотъемлемой частью команды.

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

  • Настойчивость.

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

Уверены, что вы можете дополнить этот список качеств личности программиста, особенно, если имеете опыт в IT. Конечно, некоторые личностные качества выдвигаются вперед, отодвигая остальные на задний план, в зависимости от специальности в IT-сфере. Так, бизнес-аналитику понадобиться умение коммуницировать с людьми гораздо больше, чем обычному разработчику. Как и разработчику нужна усидчивость больше, чем BA. Но мы точно знаем, если вы сможете выработать хотя бы 50% этих качеств у себя, вы будете проходить собеседования более успешно и качественнее выполнять свою работу, проще решать задачи и быстрее находить правильные решения.

Какими качествами должен обладать IT-специалист?


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

Программирование - это обычное ремесло, не требующее, в общем-то, особых талантов. Трудолюбие, добросовестность, усидчивость, скрупулезность, настойчивость куда важнее глубокого знания математики. Глубокие знания математики нужны, чтобы досконально разобраться в теории множеств и отношений. Чтобы разобраться в 3NF (и разрабатывать эффективные БД), которые на этой самой теории множеств основаны, достаточно вдумчиво прочитать три страницы текста с пояснениями. Математику для этого и вовсе знать необязательно.
Программисту не требуется изобретать эфективные методы сортировки. Достаточно просто прочитать, например, описание алгоритма QuickSort. На практике и этого не требуется - достаточно запомнить, как этод метод вызывается. Собственно на QuickSort клин светом не сошелся, я его просто для примера привёл - методов много и все сколь-либо стоящие уже давно включены в состав стандартных библиотек.

Если хотите программированием на хлеб насущный зарабатывать (и на икру с шампанским), упор надо делать на технологиях, инструментах, платформах. Плюс знание pattern (как наилучшим образом решать наиболее типичные проблемы).
Ну и со специализацией определитесь.
Язык берите и учите любой. Один, но глубоко. С чего начинать - зависит от того, чем именно Вы хотите заниматься. Веб-разработка или прикладное программирование, разработка баз данных или программирование системное...

C - язык системного программирования
Fortran - научного (также и С)
LISP - язык экспертных систем
SAS, R - в системах обработки стат.данных

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

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

Если цель быстро чему-то научиться и начать зарабатывать хоть какие-то деньги, то тупо долбите PHP - наиболее популярный язык серверных скриптов.
PHP+MySQL+HTML5+CSS3 = кусок хлеба (и отсутствие перспектив).
Если есть время, можете начать с того же Pascal
Сам по себе язык скорее мертв, но..
Pascal ->Turbo Pascal ->Object Pascal -> Delphi -> C#
Когда говорят, что Pascal бесполезен, люди или лукавят, или что-то важное не понимают. Но указанный выше путь, это если у Вас есть время и желание глубоко вникнуть в предмет, и...
Сейчас Вам важнее с целеполаганием разобраться.

Качества программиста | Рассуждения обо всем что вокруг

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

Если вы, когда у вас поломается стиральная машинка или выйдет из строя газовая колонка, лезете в интернет, а вдруг это очень часто встречающаяся проблема или кто-то уже сталкивался в таким — то вы станете прекрасным программистом. Хитрость в том, что программированию нельзя научить (как можно научить человека учиться?). Программирование можно изучить только своим трудом. И даже если вы пойдете на курсы или к какому нибудь знакомому программисту, то вы столкнетесь с проблемой, что вам расскажут какие нибудь основы, а дальше вы сами!

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

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

Поделиться ссылкой:

Похожее

Какими качествами должен обладать IT рекрутер. Плюсы и минусы работы

Уже небольшие компании в 15 человек начинают брать в штат HR-менеджера или Рекрутера. Если организации нужен только подбор, то эту задачу отдают на аутсорс кадровому агентству или удаленному менеджеру по подбору персонала. Давайте поговорим про то, какими качествами должен обладать HR.

Рекрутинг (в переводе с английского «recruiter» - агент по найму кадров) представляет собой в общих чертах деятельность по подбору кандидатов на имеющиеся вакансии. Рекрутер - это специалист, который отвечает за поиск и подбор персонала в компанию. Бывает внутренний специалист, который работает внутри организации (инхаус) и внешний рекрутер (КА, фрилансер), который работает с рядом компаний (клиентами).

Роль рекрутера:
● качественный и своевременный подбор персонала (оценка личностных компетенций, корпоративных ценностей, первичная оценка проф навыков)
● участвует в первичной адаптации сотрудников (welcome-тренинги, срезовые встречи на период испытательного срока)
● формирование первичного (если это так можно назвать) hr-бренда (рекрутер представляет в своем лице всю компанию, о нем судят об организации в целом, поэтому он должен пропагандировать корпоративные ценности внутри и и во вне, выступать амбассадор бренда)

Давайте немного углубимся в IT тематику. В чем особенности работы IT рекрутеров?
Почему многих так пугает эта сфера, а других поглощает с головой?
Я работаю в IT и digital сфере уже 7 лет, и поверьте, люди одинаковые что в ИТ, что в финансах или том же самом ритейл. Есть ряд причин, почему я выбрала именно эту отрасль своей профессии:
1. Ты всегда на гребне волны инноваций и технологий.
2. Твой мозг не заскучает, большие объемы информации и постоянное копание в деталях, развивают тебя как личность и как профессионала.
3. Это сложно и интересно! Ты работаешь с сегментом, где требуются аналитические и творческие навыки, быть максимально гибким и многозадачным, уметь находить такие кадры, которые один на миллион, умение вести беседу на равных с людьми, которые делают масштабные и известные на весь мир вещи! В общем это кайф и как наркотик.

Есть ряд базовых качеств, которыми должен обладать человек, который подбирает персонал:
● Не уставать от людей. Уметь общаться с разными категориями людей, уметь слушать и слышать
● Быть находчивым, уметь искать нужную информацию самостоятельно
● Быстрая реакция на возражения. Уметь убеждать, аргументировать
● Широта мышления и кругозор в разных сферах (быть интересным собеседником)
● Объективность! Если хочешь быть лучшим рекрутером, то будь объективен во всем
● Настойчивость! Умение преодолевать трудности и находиться долго в процессной работе, чтобы достичь результата
● Спокойно относится к отказам и не быть сверхэмоциональным (работа без выгорания)
● Высокий уровень обучаемости и желание постоянного развиваться и поглощать новую информацию
● Структурность, аналитическое мышление и умение просчитывать действия на несколько шагов вперед

Важно профессионально:
1. Понимание бизнеса и компании. Ее текущей и перспективной стратегии.
2. Умение держать баланс между бизнесом и коллективом
3. Быть всегда на стороне бизнеса, не в ущерб коллективу
4. Всегда предлагать альтернативу и компромисс непопулярным решениям
5. Делегировать задачи правильно, а не просто спихнуть
6. Не бойтесь сказать руководителю, что его решение неверное. Вместе обсуждайте все процессы и нововведения

А вот то, что нужно, чтобы работать в IT? Основной минимум, который поможет войти в профессию:
1. Любить IT! Да, именно фанатеть от всех этих технических штук, читать новости, сидеть в чатах телеграмма и беседовать с айтишниками))
2. Не бояться многого не знать, признавать это, говорить об этом и сразу стараться разобраться в теме. У новичком временами бывает оцепенение, когда они начинают вести интервью с разработчиком, уже заведомо вкладывают себе в голову, что они ничтожны и ни чего не знают! Как-то мне мой рекрутер в команде сказала, что не так было страшно рожать как первый раз собеседование с программистом проводить 🙂 а по факту не так страшен черт!
Нет ничего ужасного сказать кандидату, что вы не компетентны в этом вопросе и уточните у руководителя и сразу вернетесь к нему с ответом. Соискатель понимает, что вы не обязаны знать мельчайших деталей, но! Вы обязаны разбираться в азах, а потом погружаться в нюансы. Знаете, после третьего интервью, ты уже начинаешь плавать как рыба в воде и оперировать терминами (реально понимая их!) Поэтому тут только практика и еще раз практика!
3. Быстрая обучаемость, просто молниеносная! Хорошая память и аналитический склад ума будет плюсом в карму. По опыту знаю, что гуманитариям до мозга костей приходится сложно с техническими терминами и обучение идет тяжело, но все реально. Главное желание, упорство и настойчивость.
4. Коммуникация уровня "Бог!" Да, мы указывали на это качество в стандартном наборе, но хочу выделить ее и тут. Общение с программистами, тестировщиками, техническими директорами и другими профессионалами носит определенный характер. У людей технический склад ума, они мыслят по иному, по-особенному и интересно. А еще по статистике в большинстве своем чуточку интроверты, а бывает и не чуточку) Поэтому коммуникабельность важна, но еще важнее знать меру этой коммуникабельности, чтобы не создавать дискомфорта в общении и не лезть в личное пространство человека слишком нагло и грубо.

Плюсы и минусы работы в HR сфере
К чему быть готовым:
● Ненормированный день (даже в отпуск/выходной/ночью когда спишь или когда ешь) Готовность работать 24 на 7!
● К большому потоку разных людей (адекватных и неадекватных!)
● Работать с холодными (но не мертвыми) кандидатами, которые не в поисках! Большое количество "нет" не только при первом общении, но и даже в первый день выхода сотрудника!
● "Сегодня ищем срочно, завтра уже не нужно!" Смена стратегий развития внутри компании или приоритизация от клиента

Плюсы
● Постоянное развитие и изучение новой информации
● Широкий круг знакомств и нетворкинг! Вы всегда в тренде
● Лучше начинаете понимать людей и причины их поступков, развивается рефлексия и эмпатия
● Кайф от достижения результатов (особенно закрытие сложных вакансий) Благодарность от сотрудников, которых привели в компанию, видеть их достижения и рост

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

Помните, если работа вас не развивает, это не работа - это рабство!

В мире более 8 тысяч языков программирования. Зачем их так много и как в них разобраться?

Таких языков сотни. Например, язык Lua активно используется в разработке игр для написания игровых скриптов. Язык R в статистике. На языке Bash часто пишутся различные скрипты автоматизации в операционной системе Linux, а в Windows эту роль сейчас занимает PowerShell. Язык ABAP создан и используется исключительно для программирования в системах SAP, а в его российском аналоге, системе 1С, также есть свой язык программирования.

(Отвечают Йонн Мостовой и Арсений Серока, основатели компании Serokell)

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

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

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

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

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

Когда рынок наполнится высококвалифированными специалистами в немейнстримовых языках, адаптация этих технологий станет очевидно выгодной для бизнеса.

Какими качествами должен обладать инженер-разработчик?

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

  • Автоматизация. Развитие компьютерно-технологических систем производства. Фундамент процесса производства составляют высокие технологии, наукоемкие и ресурсосберегающие. Инновации стали неотъемлемым атрибутом нашего времени.
  • Информатизация. Огромные потоки информации проходят через Всемирную паутину. Интернет проникает в каждый дом. Аналитическая компания Netcraft в сентябре 2014 опубликовала отчет, согласно которому количество работающих сайтов в сети перевалило за миллиард.
  • Главенствующая роль интеллекта. В постиндустриальном обществе на сферу услуг приходится больше половины ВВП. Главным производственным ресурсом становятся знания и информация. Работники интеллектуального труда из «винтиков в системе» превращаются в независимых высокопрофессиональных специалистов.

Увеличение на рынке работников интеллектуальной сферы по сравнению с представителями сферы физического труда мы можем наблюдать в реалиях нашей жизни. Как отмечает Питер Ф. Друкер, один из ведущих теоретиков по проблемам управления, именно от производительности работников умственного труда «будет зависеть будущее процветание – более того, само существование, – развитых стран» [1].

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

При этом возникают следующие вопросы:

  • Способен ли будущий сотрудник решать задачи по разработке новых продуктов?

  • Может ли сотрудник справляться с монотонной однообразной работой без осязаемого результата своего труда, или он будет более эффективен при работе с «железом», которое более осязаемо и материально?

  • Готов ли получать инструкции от более опытных коллег и руководителей и следовать им?

  • Если кандидат – студент, только окончивший вуз, какова вероятность того, что профессию он выбрал исходя из своих психологических задатков?

  • Какими качествами или их задатками должен быть наделен кандидат, чтобы быть успешным и производительным работником?

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

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

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

  • Творческий подход к решению производственных задач. В контексте данного качества можно привести пример инженера-программиста. Ф. Брукс, ученый в области теории вычислительных систем и разработчик OS/360 в IBM, в своем бестселлере «Мифический человеко-месяц» писал [2]: «Программист, подобно поэту, работает почти непосредственно с чистой мыслью», т.е. создает из нулей и единиц невероятные по своей сложности и красоте архитектурные системы. Можно с уверенностью утверждать, что даже если задание будет четко пошагово определено, два разных человека выполнят его по-разному, не говоря уже о программистах, способных закодировать одну и ту же программу совершенно отличными способами. Без творческого подхода не представляется возможным быть эффективным, когда суровые будни разработчиков ПО представляют собой исправление ошибок в новой версии продукта, что может повлечь за собой появление новых ошибок в уже, казалось, работающих модулях. Сопровождение подобных продуктов превращается в процесс созидания над кодом и поиск ответа на вопрос, что такое бы сделать, чтобы все работало. В программировании есть место и для искусства. Смысл в том, что у кода также есть своя «красота и чистота», и для понимающих людей в программировании есть место эстетическому наслаждению. С. Архипенков, эксперт в управлении разработкой ПО, на мой взгляд, очень точно подметил в своей книге «Руководство командой разработчиков программного обеспечения» [3], что программирование не является искусством или наукой. Это ремесло, т.е. требующая специальных навыков работа по созданию чего-либо ручным способом. Безусловно, путь к мастерству лежит через опыт. Невозможно научиться программированию, читая книги. Так же, как невозможно стать психологом, не общаясь с людьми. Производительность программиста связана с творчеством, а, следовательно, и с вдохновением. И чем сложнее вы ставите задачу, тем сильнее программист должен аккумулировать свои творческие резервы и притягивать вдохновение. Успешные писатели выявили определенные закономерности в процессе привлечения неуловимого вдохновения.
  • Способность к постоянному обучению. Исследовательская работа, а также освоение новых принципов и подходов в работе становятся неотъемлемым атрибутом успешного разработчика.
  • Абстрактность мышления. Разработчики работают на более высоком уровне абстракций, чем поэт, художник и композитор. У программиста нет читателя или слушателя, который мог бы домыслить замысел создателя. Абстракции присутствуют на всех уровнях разработки, и этих уровней может быть множество.
  • Системное мышление. Невозможно удержать в голове многочисленные взаимосвязи абстракций на всех уровнях без высокоразвитого системного мышления.
  • Усидчивость. С упорством и сосредоточенностью разработчик может часами анализировать варианты абстракций и их динамическое взаимодействие.
Рис. 1. Отличительные качества инженера-разработчика

Творческий подход, абстрактность и системность мышления выявляются во время интервью с помощью так называемого «кейс-метода» (case-study) [4], который впервые был применен в Гарвардской бизнес-школе в 20-х годах XX века при подготовке менеджеров и с тех пор успешно применяется не только при обучении, но и при оценке знаний и умений.

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

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

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

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

Кейс-метод хотя и потребует от интервьюера значительной подготовки при создании «кейса», но даст в итоге понимание, насколько соответствует кандидат уровню необходимых качеств. В конце концов, кейс-метод – интересная игра, в том числе и для кандидата.

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

Усидчивость также можно проверить с помощью кейс-метода, в котором будет описана ситуация монотонной повторяющейся работы без видимых результатов на протяжении длительного времени. Помогут вопросы следующего типа: «Что вы обычно делаете, чтобы вернуть себе желание продолжать работу над проектом, от которого уже устали?». Даже у студентов без опыта работы была такая ситуация, например, при подготовке диплома. Ответы о способах, с помощью которых кандидат справляется с исследовательской монотонной работой, даст вам представление об уровне его усидчивости.

Вы можете задать вопрос: неужели достаточно поставить оценку по 10-ти бальной шкале напротив каждого из пяти качеств по степени выраженности и на основе этого принимать решение о приеме на работу?

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

  1. П. Друкер, “Задачи менеджмента в XXI веке”, М., “Вильямс”, 2002.
  2. Брукс Фредерик, “Мифический человеко-месяц, или Как создаются программные комплексы”, Пер. с англ., СПб., Символ-Плюс, 1999.
  3. С. Архипенков, “Руководство командой разработчиков программного обеспечения”, 2008.
  4. Л.В. Лежнина, “Кейс-метод в обучении педагогов-психологов: научно методический аспект”, Журнал «Наука и школа», №5 за 2008 год.

10 общих черт великих программистов

Если вы в курсе последних языков программирования и новейших фреймворков - отлично! Вы овладели техническими навыками, необходимыми для написания отличного кода. Но хорошие технические навыки - не единственное, что нужно для успешной карьеры программиста. Чтобы действительно выделиться, вам нужно обладать множеством качеств, необходимых для выполнения работы - и делать это хорошо. Вот несколько качеств, которые делают хороших программистов, ну, отличными: ( Мы понимаем, что этот список невелик, поэтому не стесняйтесь делиться, что еще нужно, чтобы стать отличным программистом, в разделе комментариев ниже!)

  1. Будьте хорошо округлены. Хорошо знать одну технологию досконально, но проблемы в реальном мире никогда не решаются с помощью одной технологии. Даже если вас наняли в качестве специалиста, вам все равно необходимо понимать, как ваша технология взаимодействует с другим программным обеспечением, оборудованием и сетью, составляющими экосистему приложения. Вы также сможете внести свой вклад в свой проект разными способами, помогая везде, где требуется дополнительная помощь.
  2. Наслаждайтесь решением головоломок. Создание приложений - непростой процесс.Чтобы понять, почему код не компилируется, что вызывает ошибки и как решать производственные проблемы, требуется умение решать головоломки, а также верить в то, что решение есть всегда, и не сдаваться, пока оно не будет найдено. Если вы можете решать головоломки под давлением, это даже лучше - когда система не работает, вы можете ожидать, что руководство будет дышать вам в затылок, пока вы решаете это.
  3. Люблю учиться. Технологии постоянно меняются. Инструменты и языки, с которыми вы работаете сегодня, - это не те инструменты, с которыми вы будете работать в следующем году, не говоря уже о следующем десятилетии.Вам нужно постоянно развивать новые навыки, чтобы иметь возможность вносить свой вклад в предстоящие проекты. Ваш работодатель может проводить постоянное обучение, но лучшим разработчикам нужно время, чтобы учиться самостоятельно.
  4. Хорошие коммуникативные навыки. Работа разработчика - это не только технология. Разработчикам необходимо поговорить с бизнес-пользователями, чтобы понять, что им нужно от приложения. Разработчикам также часто необходимо создавать технические документы, поэтому умение писать ясно также важно, даже если это просто отчет о состоянии.
  5. Уверенность. Нет единственного способа построить систему. Независимо от того, насколько хороши ваши идеи, они не будут иметь ценности, если вы оставите их при себе. Лучшие разработчики уверены в своих идеях и высказываются в обсуждениях дизайна, чтобы помочь сформировать архитектуру приложения. Чтобы повысить свою уверенность, начните с небольшого предложения, а не с редизайна всего приложения.
  6. Интересуйтесь бизнесом. Компании используют технологии для решения бизнес-задач.Чем больше вы понимаете бизнес своей компании, тем лучше вы подготовлены к пониманию их проблем и поиску решений, которые помогут им расти. Вам следует воспользоваться возможностью поговорить с бизнес-пользователями и задать им вопросы о проблемах, с которыми они сталкиваются в своей работе. Если вы действительно заинтересованы в понимании бизнеса, вы можете пройти курсы или даже поработать над сертификацией в области бизнеса.
  7. Будьте командным игроком. Фильмы часто прославляют программиста-одиночку, и студенты обычно работают над заданиями самостоятельно, но реальные проекты - это командные усилия.Разработчикам важно уметь ладить с коллегами. Вы должны уметь общаться с людьми с разными способностями и уважительно реагировать на различия во мнениях. По возможности узнавайте своих товарищей по команде как людей, а не только как технический персонал. Разговоры о других вещах, помимо проекта, помогают формировать отношения, которые облегчают совместную работу.
  8. Поймите важность сроков. Лучшие менеджеры проектов узнают мнение своих разработчиков при определении сроков проекта, хотя иногда график зависит от внешних факторов.В любом случае, согласившись выполнить задание, постарайтесь уложиться в срок, даже если это означает несколько поздних ночей. Вам не нужно отдавать всю свою личную жизнь ради организации, но демонстрация приверженности завершению проекта и понимание его ценности для бизнеса производят положительное впечатление на работе.
  9. Быть адаптируемым. Проекты и приоритеты меняются по многим причинам, и разработчики должны иметь возможность переключаться на контекст, чтобы сосредоточиться на том, что сейчас является наиболее важным.Изменения могут быть небольшими и временными или значительными и постоянными. Если они временные, убедитесь, что у вас есть хорошие записи, которые помогут вам вернуться к обычной работе, когда все уляжется. Если изменения носят постоянный характер, дайте время понять, что представляет собой новая ситуация и как вы вписываетесь в нее. Это может предоставить новые возможности, которые помогут вам в достижении ваших целей. В любом случае важно отвечать профессионально, а не расстраиваться.
  10. Станьте владельцем своего продукта. Технически ваша работа может быть выполнена после того, как вы напишете код, который компилируется чисто и проходит тесты.Выделитесь, проследив за ним на протяжении всего его жизненного цикла - будьте готовы помочь с тестированием, развертыванием, обучением пользователей и решением производственных проблем. Хотя это помогает вашему бизнесу, на самом деле это помогает вам больше, потому что вы видите и понимаете реальную эффективность написанного кода. Тогда воспользуйтесь этим пониманием и позвольте ему помочь вам сделать ваше следующее приложение еще лучше.

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

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

Есть ли какие-то черты личности, которые могут помочь одному человеку стать программистом лучше, чем другим?

Следующий гостевой пост Криса Кайта рассматривает именно это. Крис - программист / предприниматель-самоучка с опытом работы более 12 лет.

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

Начать кодирование сейчас

Прекратить ждать и начать обучение! Получите мои 10 советов, как научиться программировать.

Успех! Теперь проверьте свою электронную почту, чтобы подтвердить подписку.

—–

Я впервые попробовал программировать в 2000 году. Звучит как пророчество, но гораздо более невинно. Я закончил колледж на год, получил степень по маркетингу и только что получил отличную работу в списке Fortune 500 аналитиком по ИТ-поддержке.

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

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

Однако все изменилось, когда я увидел, что кто-то запустил сеанс терминала, отредактировал скрипт с помощью VI, запустил запрос в базе данных и сказал мне, что это было исправлено примерно за 30 секунд. Я был в восторге. Как только я освоился на новой работе, я стал раздражать всех вопросами о программировании вместо того, чтобы заниматься своей настоящей работой.

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

Более того, я всегда чувствовал, что если я смогу научиться программировать, то это сможет любой.

Почему? Конечно, не потому, что я умен: я никогда не был ученым.

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

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

1. Программисту нужно терпение

Для меня это самая важная черта.

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

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

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

2. Кроме того, они должны иметь мужество

По мере знакомства с языком

  ";
   $ cnt ++;
   }
?>
  

в конечном итоге будет выглядеть так:

  1
2
3
  

Мои наставники-программисты любили говорить мне одну старую поговорку: «Это легко, если ты знаешь как».Для них это было весело, но в то время меня расстраивало. Тем не менее, он научил меня, что все станет лучше, если я буду придерживаться этого.

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

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

3. Как и любая профессия, страсть является обязательной

Почему вы хотите научиться программированию? Быть крутым? Чтобы получить лучшую работу? Или потому, что вам нравится решать проблемы и строить вещи?

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

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

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

4. Творчество - тоже ключевой компонент программирования

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

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

Должен ли он быть эффективным? Нужно ли, чтобы его было легко обслуживать? Должен ли он быть абстрактным? Все это может повлиять на то, как вы пишете код, но, в конце концов, наиболее важной частью головоломки является «Выполняет ли он свою работу?»

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

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

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

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

5. И, конечно, программисту нужна логика

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

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

Мне постоянно напоминают об этом, когда я сталкиваюсь с проблемой, которую я потратил час или два, пытаясь решить.Примерно в то время, когда я готов бросить полотенце, я заставляю себя встать и сделать перерыв. 10 минут, 30 минут, что угодно - просто отойди. Это никогда не подводит.

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

Заключение

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

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

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

Что вы думаете о пяти чертах характера, о которых говорит Крис? Позвольте мне знать в комментариях ниже!

О Крисе Кайте

Крис Кайт - программист / предприниматель-самоучка с более чем 12-летним опытом работы с различными языками, включая PHP, MySQL, Java, Oracle, Javascript и т. Д. Он является владельцем CodeConquest.com, сайта, посвященного тому, чтобы помочь новичкам научиться программировать. через простые концепции и практическое применение.

* Изображение функции через VFS Digital Design, Flickr.

4 личностных качества великого программиста

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

Многим специалистам по информатике требуется довольно много времени, чтобы понять, подходят ли они для работы в программировании. Некоторые понимают это, когда наступит срок их первого крупного программного проекта. Другие с легкостью проходят вводные классы, но сталкиваются с препятствием, когда в центре внимания становятся более продвинутые концепции. При этом они могут потратить годы на получение степени, которую в конечном итоге решат бросить. Это происходит потому, что получение степени в области информатики требует определенной самоотдачи и любви к тому, что вы делаете, что многие люди не могут (или не хотят) проявлять.Совсем не редкость для тех, кто пытается форсировать проблему и быть чем-то, что в конце концов не поддается выгоранию.

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

1. Безмерное терпение

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



2. Умение обращать внимание на детали

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

x = float ( input ( 'Enter first number:' ))

y = float ( ввод ( 'Введите второе число:' ))

z x + x + x y / 2

print ( 'Среднее значение, которое вы запросили:' , z)

В приведенном выше примере вывод программы всегда будет неверно.Однако в данном случае это не из-за ошибки в синтаксисе Python. Это потому, что используемое уравнение (z = x + y / 2) неверно - вам нужно добавить скобки вокруг добавления, чтобы получить правильный результат. Вы заметили это крошечное несовершенство? Если бы вы это сделали, вы могли бы стать отличным программистом.

3. Высокая степень креативности

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

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

4. Врожденное желание учиться

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

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

По правде говоря, невозможно сказать наверняка, насколько хорошо вы могли бы стать программистом, пока не попробуете это.И все же не случайно, что все лучшие программисты разделяют перечисленные выше черты. С ними проще добиться успеха в такой сложной области, как программирование, а без них у вас, вероятно, будут проблемы.
Итак, всем потенциальным программистам, ищущим ответ на вопрос «Сложна ли информатика?» Ответ однозначен: категорическое «да». Просто если у вас есть правильный характер, способности и любовь к работе, вам не составит труда. Возможно, сложно, но так, как и должно быть в любой хорошей карьере.Однако, если вы не подходите для этого, вы можете сидеть в компьютерном классе в 3 часа ночи, задаваясь вопросом, во что вы втянулись, и в этом случае вы можете пойти в другом направлении.

8 должностей хорошего разработчика программного обеспечения

Когда я впервые основал DevSkiller семь лет назад, цель моей команды заключалась в том, чтобы помогать компаниям находить отличных разработчиков. С тех пор у меня была возможность работать с компаниями из списка Fortune 500, а также с более мелкими по всему миру.Я разговаривал с техническими специалистами, такими как технические директора, ИТ-менеджеры, руководители команд, члены команд и представители отдела кадров. Все эти люди отвечали за поиск и найм лучших технических талантов. Все они столкнулись с универсальной проблемой: как нанять хороших программистов . Они также преследовали те же сильные стороны разработчиков.

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

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

Качество разработчиков программного обеспечения

1. Любопытство

« Любопытство в великих и щедрых умах - первая страсть и последняя », - сказал Сэмюэл Джонсон.Это также верно при рассмотрении качеств хорошего программиста (и его великого и щедрого ума). Давайте поищем более современную ссылку, которая развивает точку зрения Джонсона. Дэн Пупиус говорит, что «любопытство важно на протяжении всей жизни инженера». Это подталкивает вас к изучению новых языков, экспериментам и поиску новых решений. Это именно то, что вам нужно от инженера. Это также побуждает вас к исследовать архитектурный выбор других , а также к предположениям вопросов.Pupius утверждает, что многие качества, которые обычно ассоциируются с великой инженерией, «проистекают из богатого любопытства».

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

  • «Что я мог упустить?»
  • «Как это не сработает?»
  • «Не могли бы вы пробить как можно больше дыр в моих мыслях по этому поводу?»
  • «Даже если это технически надежно, достаточно ли это понятно для остальной части организации, чтобы работать, устранять неполадки и расширять его?»

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

Источник: Краткое изложение кампании

2. Технические навыки

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

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

Скорость и производительность

Исследование Sackman, Erikson и Grant обнаружило 10-кратную разницу в производительности между программистами. Однако исследование не лишено недостатков. Он не «учитывает различия в индивидуальных способностях». Он также объединяет результаты пользователей, работающих с языками программирования низкого и высокого уровня.

Источник изображения: Construx.com

Стив МакКоннелл утверждает, что доступные исследования по теме по этой теме не лишены ограничений. Это не окончательное , но определенно наводит на размышления. И именно так на это следует смотреть.

Заработная плата не часто отражает эту разницу в размере по порядку величины между разработчиками . Есть ли способ измерить продуктивность разработчиков и стоит ли даже пытаться это сделать?

К сожалению, до сих пор нам не удавалось измерить продуктивность разработчиков.Мы знаем, что строки кода (SLOC или исходные строки кода) не являются мерой, которая является синонимом ценности разработчика. На самом деле, в мире кода меньше значит больше (при условии, что он самосогласован и полностью функционален). По словам Фила Хаака, предоставление краткого, удобного в обслуживании и понятного кода превосходит быструю перфорацию объемов кода. Почему? Подумайте, что происходит, когда вы хотите добавить новые функции или обновления. Обычно на то, чтобы расшифровать хрупкий код и исправить его, уходит часы.Обычно это также связано с высокой ценой. Позвольте мне сказать так: то, что вы сэкономите на быстром, но неосторожном разработчике, вы в конечном итоге потратите на команду QA .

Источник: Dilbert

Если вас интересует продуктивность в ИТ, прочитайте «Миф о производительности разработчиков» Дастина Барнса.

Осведомленность

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

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

3. Интуиция

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

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

4. Любовь к учебе

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

Это особенно верно в мире информационных технологий. Хотя полезно иметь свой способ делать что-то, важно, чтобы вы отваживались на то, что вы знаете. Найдите более быстрые способы выполнения задач. Один из способов сделать это - заметить паттерны и сделать выводы .

У хорошего разработчика есть множество способов развиваться (каламбур).

  • Посещение отраслевых мероприятий, таких как конференции и хакатоны. Томас Со из AppLovin называет их обучением готовности к работе.
  • В поисках наставника.
  • Работа над сайд-проектом.
  • Запрос обратной связи от коллег.

5. Адаптивность

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

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

Mazilu 7 простых правил , которые вы должны соблюдать, чтобы не отставал от технологий.

  1. Доверьтесь интуиции.
  2. Всегда возвращайтесь к основам.
  3. Остерегайтесь серебряных пуль. К ним относятся хорошо продаваемые технологии, которые широко используются, хотя и не подходят для проекта.
  4. Научитесь отлаживать.
  5. Научитесь писать скрипты.
  6. Не зацикливайтесь на том, как выглядит ваш код.
  7. Идите с толпой.

6. Позитивный настрой

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

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

  • «Считаете, что вам повезло? (дерзкий или скромный).
  • Как вы добирались до собеседования? (жалуется или не волнуется) ».

7. Обращение к наставничеству

Джон Кристинак говорит, что «великие программисты не становятся великими в одиночку». Я приветствую его за это. Одна из причин, по которой модель наставничества так хорошо работает в ИТ, заключается в том, что некоторые хорошие разработчики учатся наиболее эффективно через ученичество .Просто нужно меньше времени, чтобы разобраться во всем, если вы можете наблюдать за работой более опытного коллеги. Еще одна причина, по которой ведущие технические специалисты выступают за наставничество, заключается в том, что оно требует от вас раскрытия своих сильных и слабых сторон. Это учит вас томам о сдерживании своего эго .

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

8. Коммуникативные навыки

Дэмиен Филиатро утверждает, что « хорошие коммуникативные навыки напрямую связаны с хорошими навыками развития ». Вот почему.:

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

Сильные стороны разработчика: заключение

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

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

Каковы основные сильные стороны разработчика? Жду ваших мыслей!

Примечание редактора. Этот пост был первоначально опубликован в апреле 2017 года и был обновлен для обеспечения точности и полноты.

8 личных качеств, которые делают успешного программиста

Наличие твердых навыков, таких как JAVA, Python и C ++, является обязательным условием для программистов-фрилансеров, но это еще не все.Некоторые люди благодаря своему образу жизни, предыдущей работе, талантам или окружению с большей вероятностью станут хорошими программистами, чем другие. Почему так?

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

Вот наш список восьми отличительных черт великих программистов:

1.Головоломка-решатель

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

2. Непрерывное обучение

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

3. Любопытный

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

4.Самодисциплинированный

Как разработчик, вы собираетесь проводить много времени за клавиатурой в одиночестве - независимо от того, есть ли в комнате другие люди или нет, вы будете «в зоне». Важно уметь поддерживать этот режим глубокой работы в течение длительного времени. Это сводится к самодисциплине. Сможете ли вы использовать внутреннюю мотивацию к власти в течение этих долгих дней? Можете ли вы дать себе метафорический «пряник», который подталкивает вас к цели? Если да, значит, вы дисциплинированный человек.А это очень необходимое качество для программистов.

5. Коммуникативные навыки

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

6. Адаптируемый

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

7. Логическое мышление

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

8. Любовь к технике

И последнее, но не менее важное: великие программисты, очень увлеченные технологиями . Опять же, это не тот навык, который им только что пришел. Может, они любили мастерить в детстве. Или они были детьми, которые любили находить способы обойти школьную систему компьютерной безопасности. Какими бы ни были корни этой черты, любовь к технологиям часто приводит к их глубокому пониманию. «Делай то, что любишь» - это больше, чем просто поговорка для успешных программистов.

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

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

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

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

Примечание. Эта информация также доступна для загрузки в формате PDF.

# 1: Любопытство

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

# 2: Навыки ясного мышления

Это может показаться очевидным, но программирование - это логическое упражнение. Люди, которые могут сложить 2 и 2, чтобы получить 4, обычны, но люди, которые могут взять «2 + x = 4» и вычислить, что «x» равно 2, встречаются гораздо реже. Вот почему я всегда отдавал предпочтение программистам с сильным математическим или естественным образованием. Это делает их немного лучше в программировании, но, что более важно, обычно указывает на хорошие логические навыки. Когда я обсуждаю вакансию, я иногда оставляю пробелы в том, что говорю, чтобы посмотреть, сможет ли кандидат их заполнить.Кроме того, если ваш процесс приема на работу включает формальное тестирование, это хорошее время для проверки логических навыков.

# 3: Максимальная скорость чтения и понимания

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

# 4: Внимание к детали

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

Например, однажды один из собеседников сделал мне комплимент по поводу моей рубашки и упомянул, что он фанат этого дизайнера; это красноречиво говорило о его внимании к деталям (а также о его чувстве моды). И, конечно же, иногда может быть очевидным серьезное отсутствие внимания к деталям; кандидат, который входит с расстегнутыми штанами или с прилепленной к обуви туалетной бумагой, явно не обращает внимания на детали!

# 5: Быстрый ученик вне программирования

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

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

# 6: Навыки самообучения

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

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

# 7: Страсть

Некоторые программисты являются «дайкодерами» - людьми, которые пишут код с 9 по 5 с понедельника по пятницу и не думают об этом ни в малейшей степени за пределами этого времени. Это прекрасно; не каждый может быть супер-компьютерщиком, живущим и дышащим кодом. Раньше я нанимал таких людей, чтобы заполнить пробелы или поработать над рутинными разделами проекта. Но когда мне нужно нанять лучшего кандидата в программирование (независимо от уровня квалификации или опыта), мне нужно нанять кого-то, кто увлечен своей работой.

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

# 8: Адаптивность

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

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

# 9: Хорошие коммуникативные навыки

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

# 10: Кто здесь главный?

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

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

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

7 качеств, которые отличают хорошего программиста от хорошего программиста | by Scalable Path

«Лучшие программисты до 28 раз лучше худших программистов»

- Роберт. L. Glass

Великие разработчики - редкость. Их производительность в 3 раза выше, чем у среднего разработчика, и в 10 раз выше, чем у плохого разработчика ( Ссылка : Мифический человек месяц ). 1% лучших разработчиков в мире не просто пишут надежный код, но обладают важными нематериальными качествами.Поработав с более чем 1000 разработчиков, мы смогли выделить 7 качеств, которые отличают великих программистов.

1. ПОЛОЖИТЕЛЬНОЕ ОТНОШЕНИЕ

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

КАК ПРОВЕРИТЬ ЭТО НАВЫК

Примеры вопросов на собеседовании: 6 типовых вопросов, 4 важных вопроса для интервью, ответы на Quora.

Другие вопросы:

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

2. ВЫСОКИЕ НАВЫКИ КОММУНИКАЦИИ

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

КАК ПРОВЕРИТЬ ЭТО НАВЫК

  • Смоделируйте схватку и посмотрите, как они взаимодействуют.
  • Предложите им проблему / сценарий и посмотрите, как они эффективно общаются.
  • 10 вопросов

3. ОТЛИЧНОЕ ВРЕМЯ И УПРАВЛЕНИЕ ЗАДАЧАМИ

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

КАК ПРОВЕРИТЬ ЭТО НАВЫК

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

4. СПОСОБНОСТЬ БЫСТРОГО ОБУЧЕНИЯ

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

КАК ПРОВЕРИТЬ ЭТО НАВЫК

5. ГЛУБОКИЙ И ШИРОКИЙ ТЕХНИЧЕСКИЙ ОПЫТ

Великие разработчики достаточно долго работали с несколькими технологиями, чтобы стать экспертами, и компетентны во многих.Конечно, важно найти программиста, который работал над продуктом, похожим на ваш, или использующим те же технологии. Правильный программист для вашего проекта сможет взяться за дело, потому что он уже знает правильные технологии. Они будут следовать стандартам кодирования и писать код, который будет понятен и при необходимости прокомментирован и может быть легко передан кому-то другому. Объединив свои познавательные способности и разнообразный отраслевой опыт, они могут быстро находить оптимальные решения.Опытный разработчик хорошо разбирается в передовых методах разработки, таких как гибкая разработка, программное обеспечение для управления задачами (Jira, Trello и т. Д.), Контроль версий (если они знают Git, это признак того, что они перешли на более старые системы, такие как SVN) и работа в разных средах (локальная среда разработки и практические знания по развертыванию приложений), поэтому спросите их об этих вещах.

КАК ПРОВЕРИТЬ ЭТО НАВЫК

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

6. ХОРОШИЙ КОМАНДНЫЙ ИГРОК

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

КАК ПРОВЕРИТЬ ЭТО НАВЫК Вопросы для проверки навыков совместной работы

7. ВЫСОКАЯ ЦЕННОСТЬ ПОЛЬЗОВАТЕЛЯ

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

КАК ПРОВЕРИТЬ ЭТО НАВЫК Лидерство, 50 основных вопросов

ДРУГИЕ ЧТО СЛЕДУЕТ УЧИТАТЬ:

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

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

КАК КТО-ТО МОЖЕТ СТАТЬ ВЕЛИКОМ РАЗРАБОТЧИКОМ?

Sharpen The Mind: Благодаря доступу к онлайн-курсам вам не нужно ходить в школу, чтобы стать отличным разработчиком.Однако многие великие программисты учились в хороших школах и специализировались на информатике. Получение степени в области компьютерных наук помогает лучше понять архитектуру и дает вам целостный взгляд на мир компьютерного программирования. Быть в курсе последних достижений технологий помогает оставаться в курсе последних событий. Читайте множество статей и блогов о последних тенденциях в области технологий, пробуйте новые игрушки в свободное время, следите за сообществами, посещайте конференции и повышайте ценность сообщества, написав письмо.

Follow Your Heart: Делая то, что вам нравится, автоматически поможет вам стать лучше. Лучшие программисты любопытны, любят создавать вещи и просто обожают влияние технологий на мир. Это поможет вам проявить больше творчества и приобрести разные навыки.

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

Form Your Toolbox: Технологии меняются очень быстро. Строятся новые платформы, разрабатываются новые языки и создаются продукты с невероятной скоростью. Важно адаптироваться и принять изменения. Подберите новейшие инструменты и сформируйте свой набор инструментов. Хороший разработчик рано изучает инструменты, а затем создает вещи.

ВЫВОД:

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

Есть комментарий? Хотелось бы услышать ваши мнения в разделе комментариев.

Ссылка: The Mythical Man Month

Первоначально он был опубликован на Scalable Path .

Добавить комментарий

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