Які особисті якості потрібні розробнику?

Починаючий програміст Ewa Mitulska-Wójcik описала у недавній публікації на Медіумі свої думки про необхідні розробникам особистих якостях. Публікуємо переклад цієї замітки і невеликий коментар в самому кінці.
Багатьом з нас простіше вивчити нову мову програмування, замість того, щоб попрацювати над світоглядом і характером. Давайте подивимося, чому деякі розробники далеко просуваються в компаніях, а деякі залишаються загубленими в офісних приміщеннях.

Комунікабельність
Ефективне спілкування може сильно відрізняти середнього розробника від високопродуктивної "рок-зірки". Програмування — це спілкування не тільки з серверами, клієнтами і кавовими машинами, підключеними до мережі. Бути в добрих стосунках з партнерами по команді — важливо.
Ось деякі повсякденні комунікативні завдання, з якими вам доведеться зіткнутися, як розробнику.
  1. Ділитися проблемами з іншими хлопцями в команді.
  2. Звітувати про деталі прогресу у системі управління проектами, начебто Jira.
  3. Виражатися коротко і конкретно, наскільки можливо, коли цього вимагає ситуація.
  4. Вміти слухати і швидко реагувати
  5. Чітко пояснювати всі потреби, сумніви, ризики і прогрес проекту зрозумілою іншим членам команди, менеджеру або клієнта формі.
  6. Пояснювати технічні проблеми так, щоб вас розуміли клієнти і члени команди, не пов'язані з технічною частиною.
  7. Повне професійне володіння англійською. Знати більше однієї іноземної мови — завжди плюс. Я за іспанська ;)
  8. Відкрито висловлюватися про проблеми, займатися пошуком рішень до появи конфліктів.
  9. Приводити заможні аргументи на користь запропонованих вами технічних рішень
  10. Прискіпливо ставитися до коду, документації, звітів і тикетам.
  11. Бути готовим до спілкування з іншими програмістами на форумах, у блогах і на конференціях. Ділитися своїми знаннями і не боятися виступати з мікрофоном перед великою аудиторією.
Це лише кілька ситуацій, коли комунікативні навички мають вирішальне значення.

Цікавість
"Багато будеш знати — скоро постарієш" — це не про розробників. Бажання все знати — саме реактивне паливо для нових винаходів і саморозвитку. Експериментаторство допомагає бачити картину в цілому і знаходити нові рішення.
Ви можете отримати цінний досвід, перевіряючи свої гіпотези. Задавайте питання, створюйте щось нове, застосовуючи отримані знання, продовжуйте сьогодні розвивати те, що почали вчора. Не бійтеся пробувати. Навіть якщо нічого не вийде, ви нічого не втратите. Чому? Тому що ви набираєтеся досвіду.
Не приховуйте свою лабораторію коду. Не потрібно вилизувати проекти для демонстрації. Важливіше те, чи є у них шанс стати кодом готового програми, і те, що ви дізнаєтеся під час їх реалізації.
Діліться своїми способами мислення і спостереженнями на форумах, пишіть про них посади та діліться тим, що дізналися.
Користувачі приносять вашим додатком успіх. Якщо воно їм не подобається, ви програєте. Питайте їх, що їм потрібно, вирішуйте їх проблеми і випитуйте, чому попередні рішення не працювали. Знати, хто ваші користувачі і розуміти, коли і якими способами вони намагаються вирішувати різні проблеми — важливо.
Шукайте слабкості в своєму коді. Тестуйте його, намагайтеся зламати і знайти якомога більше вразливостей до того, як він стане публічним. Спостерігайте за тим, як користувачі реагують на будь-які зміни. Продовжуйте стежити за тим, що відбувається вже після запуску додатка і після того, як вам заплатять за роботу.
Знаходите сміливість звертатися за допомогою в будь-який момент, коли не вдається знайти рішення. Ви — частина дуже відкритого співтовариства, в якому чіткий, детальний питання, як правило, допоможе знайти правильну відповідь.

Вироблення стратегії
Без плану навіть самий маленький проект може перетворитися в некерованого монстра. Перед тим, як перейти до розробки в зомбі-режимі, вам потрібно подумати про можливих витратах, плануванні спринтів, питання архітектури та проектуванні таких елементів як переміщення користувача по елементам інтерфейсу.
Бути хорошим стратегом — значить помічати підводні камені до моменту зіткнення з ними.
Послідовне вдосконалення краще, ніж досконалість. Хороший стратег може швидко реагувати і робити швидкі латки, і при цьому розуміти, що вони тимчасові. Вони ефективні тільки в конкретний момент, а потім від них треба позбавлятися.
Безперервне навчання
Розробка — погана кар'єра для інтелектуальних ледарів. Якщо ви мрієте про стабільну, добре оплачуваній роботі без особливих зусиль, навіть не пробуйте! Спеціалізація в одній області буде приносити хороший дохід, тільки якщо ви залишаєтеся відкритими до нового і готові вчитися.
Постійно з'являються нові фреймворки, тренди і методології. Вам не потрібно вивчати абсолютно все, але ви повинні постійно бути на рівні, щоб підтримувати кар'єру. Не кожен клієнт погодиться використовувати якусь технологію тільки тому, що ви витратили багато часу на її вивчення.
З часом деякі фреймворки та мови стають більш популярними, а ви можете збільшити заробіток, знаючи які мови, фреймворки та бібліотеки більш затребувані.
Бути відкритим до нових ідей також означає бути терпимим і проявляти повагу та ініціативу. Не будьте хейтером React'а тільки тому, що не знаєте його і працювали на Angular останні кілька років. Відривайтеся іноді від монітора і ходіть на конференції, митапы. Спілкуйтеся з іншими розробниками в реальності і оффлайн. Залишайтеся голодними! Залишайтеся безрозсудними!

Підприємницьке мислення
Легко втратити мета, заради якої розробляється додаток, коли ви весь день дивились на шматки коду. Зробіть крок назад і подумайте про цілі, що лежать в основі бізнесу. Ви можете далеко піти, якщо не обмежите себе дедлайнами і будете думати не тільки про коді, але також будете пропонувати свої рішення.
Ви можете стати прекрасними виконавцями для клієнтів, якщо будете більш активними і будете давати більше, ніж вони очікують.
Ви також повинні знати, коли сказати "ні" проекту або пропозиції про роботу, щоб уникнути погано продуманих користувальницьких історій і програм з заплутаною структурою. Будьте обережні, тому що популярність поширюється швидко, але скандальна популярність швидше.
Подбайте про свій бренд. Створіть портфоліо, яким можете похвалитися, зберіть рекомендації, покажіть свій досвід, давайте тільки ті поради, які самі застосовуєте. Це допоможе вам виділитися з натовпу розробників, які претендують на конкретну роботу або проект.
Так, і не варто недооцінювати роль хобі та отриманого життєвого досвіду. Це може виявитися важливим для проекту, який ви хочете собі взяти. Якщо ви новачок, то в плані професійного росту вам варто шукати такі проекти, в яких ваш попередній досвід буде найбільш корисний.


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

А яким ви хочете стати? З яким типом розробника ідентифікуєте себе ви? Наскільки ви впевнені, що рухаєтеся в правильному напрямку як новачок? Якщо ви працюєте роками програмістом, чого ви досягли?
Вдалої розробки, офігенних проектів і моря мотивації. Удосконалюйтеся кожен день!
(Переклад Наталії Басс)


Коментар редактора: Хочу додати дещо від себе. Ця стаття в цілому буде корисна багатьом, вона піднімає важливі питання. Спілкування, вміння слухати і пояснювати, публічні виступи та близькість до бізнесу це насправді круті якості. Більшість компаній, особливо не дуже великих, і випускають власні продукти, шукають саме таких фахівців. Але і у перекладача, і в мене виникли не зовсім приємні відчуття від деяких особливостей і мотивів.
Дуже часто подібні статті можна укласти в рекомендацію "перестаньте бути собою, ви не такий, як треба, вам потрібно змінитися щоб домогтися успіху". І це може бути правдою, якщо вас цікавить конкретне, поширене визначення успіху. Але "успіх" визначають не суспільство, компанії та статті, а ви самі.
Багато програмісти стали програмістами саме тому, що не хочуть багато спілкуватися з людьми, які не хочуть публічно виступати, не хочуть вдаватися в бізнес-питання. Вони знайшли для себе таку професію, де ці якості і бажання не є настільки критичними, як у деяких інших професіях. І це успіх: людина знайшла свою справу. Це не погано, це не "невдахи-інтроверти", це просто їх природа та особливість. Деякі не люблять такі якості у себе і хочуть змінитися: супер, в статтях зразок цієї є хороші поради для них. Інші не хочуть змінюватися, і вони нічого нікому не винні. Це не робить їх поганими програмістами. Хороший менеджер вміє працювати з усіма і будувати таке середовище, де кожен зможе працювати без страждань. Або ж відкрито пояснить, що це неможливо, і людині, можливо, варто знайти більш відповідну для нього роботу. Не тому що "ти нам не підходиш", а тому, що "ми тобі не підходимо".
В-загальному, міняйте себе якщо хочете змінитися, якщо у вас є цілі, які стоять цих зусиль. Але не міняйте себе якщо це приносить страждання, або тільки з-за того, що "справжні програмісти вміють виступати і розуміти маркетинг".
Справжні програмісти отримують задоволення від програмування.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.