Ян Регеш, колега, друг і просто чудова людина, працює в діджитал-агенції SiteOne вже понад 15 років. Він був моїм першим тімлідом, коли я починав програмувати. Я дуже тепло згадую нашу співпрацю, адже йому завжди вдавалося передати багато корисних ноу-хау, які я занотовував і розумів лише через роки.
Мені вдалося взяти інтерв'ю у Янека деякий час тому, і запитати його ретроспективно, як він сприймає роботу з юніорами, і як це робити дійсно правильно. Я вже давно зрозумів різницю між тим, що я думав багато років тому, і тим, як я сприймаю речі сьогодні. Це все про співпрацю, смиренність (по відношенню до людей, до технологій, до компаній), ... словом, Янек гарно написав.
Ось його думки:
Ви молодий, розумний і дуже кваліфікований, але, імхо, занадто самовпевнений, як в програмуванні, так і в бізнесі - ви, безсумнівно, зробили великий крок вперед в знаннях, але вам потрібно досліджувати далі.
Прийміть зі смиренням свої нинішні знання, вміння і навіть можливі контакти і дайте собі ще кілька років на усвідомлене пізнання світу (технологій, бізнесу, особистостей...). Ви не пропустите жодного поїзда. Коли вам потрібно буде приймати більші та складніші рішення, у вас буде більше даних, досвіду та більш витончених інстинктів для їх прийняття.
З'ясуйте, якими навичками чи технологіями ви володієте найкраще, або які хочете розвивати найбільше, і відповідно до цього обирайте свого наступного роботодавця.
Не заради грошей, а заради гарного відчуття виконаної роботи, збагачення команди, створення цінності або задоволення потреб. Це банально, але гроші будуть йти пліч-о-пліч з цим, якщо ви зосередитеся на правильній речі вашого професіоналізму.
Якщо ви починаєте з чогось, складіть карту і зрозумійте, для кого ваше робоче середовище і яка ваша "якість" і "цінність" насправді сприймається тими, хто замовляє і платить за проект. Навчіться зосереджуватися та забезпечувати високу якість та цінність, а не просто "гарний код". Є компанії та проекти, де ваша поставка - це невеликий шматок коду, який повинен бути досконалим, ретельно протестованим і відомим, щоб працювати протягом наступних 10-15 років. Але є проекти, які триватимуть 2-3-4 роки, і де очікувана якість і цінність зовсім інша, ніж думає програміст. Навчіться це сприймати, диференціювати і, за необхідності, ставити подібні запитання своїм колегам або клієнту.
Зізнайтеся собі, що кожні кілька років, якщо ви подивитеся на свій код 2-3-річної давнини, він завжди буде нікудишнім, навіть якщо раніше вам здавалося, що він був найсучаснішим. Краще і перспективніше орієнтуватися на результуючу якість, як її сприймає "клієнт" - чи то внутрішній, чи то зовнішній. Це найпозитивніші речі, які залишаться і будуть заряджати вас і ваших колег чи клієнтів, з якими ви працювали в минулому, в майбутньому.
Віддайте своє серце новому оточенню - зрозумійте, в чому їхня "проблема", що допоможе їм найбільше з ваших особливих навичок, повідомте про це своєму керівнику, і робіть це, маючи на увазі якісний результат, а не кодекс якості. Можливо, навколишньому середовищу потрібні інші твої сильні сторони, окрім програмування.
Допомагати, але завжди зі смиренням - поважати і намагатися зрозуміти перспективи і думки інших, які несуть реальну відповідальність і готові нести успіхи і ризики своїх рішень протягом багатьох років. У контексті програміста це включає в себе технологічні рішення, вибір стеку або напрямок і довгострокову стратегію.
Як програміст, завжди подавайте ретельно протестовану роботу. Читайте кожен рядок свого коду в diff перед кожним коммітом. Протестуйте підготовлений UI інтерфейс на Х різних сценаріях і спробуйте зіграти в собі одночасно і простого, і досвідченого користувача. Не варто покладатися на тестувальників чи сторонніх CR - це лише хороший допоміжний бонус, коли в команді ці процеси працюють.
Пам'ятайте про правило KISS і остерігайтеся надмірної інженерії. Якщо робити все просто, але ефективно, бездоганно, безпечно і з чіткими межами - це краще, ніж вигадувати атомну супермодульну електростанцію і архітектуру. Це залежить від того, що ви робите, але, імхо, в більшості випадків краще вибрати більш просте рішення.
Чи правильні архітектурні рішення ви прийняли, завжди стане зрозуміло через роки експлуатації та впровадження майбутнього функціоналу. На жаль, реальність така, що більшість сучасних програмістів досить швидко змінюють роботу і не мають уявлення про позитивні чи негативні наслідки своїх попередніх рішень, а отже, про те, чи були вони хорошими чи поганими.
Навчитися розпізнавати і працювати з розумними і справедливими людьми, для яких важливий не тільки бізнес, а й реальна цінність того, що вони роблять і для кого вони це роблять.
Живіть і працюйте так, щоб коли хтось із ваших рідних запитає вас, над чим ви працюєте, ваша відповідь була чесною і більше стосувалася допомоги вашим клієнтам у задоволенні їхніх потреб чи мрій у світі Інтернету, а не того, щоб бути ідеальним програмістом і писати ідеальний код. Ідеального коду не існує, але єдиним свідченням того, що у вас був хороший код, є те, що через роки власник або співавтор одного з ваших проектів/продуктів робить вам комплімент, що з ним було приємно працювати весь цей час, або що він чудово розширювався.
Не дозволяйте собі падати духом і думайте про своє фізичне та психічне здоров'я. Працювати лише 8-10 годин на добу. Якщо Ви вирішили провести деякий час за комп'ютером у неробочий час або на вихідних, не варто називати це роботою, яку Ви "мусили" виконати. Переконайтеся, що озираючись назад, ви скажете собі, що це було правильне рішення. Я сам віддаю величезну кількість часу роботі, але тільки тому, що те, що я роблю в позаробочий час, не виснажує мене, робить мене щасливим, покращує професійний клімат для нашої команди або для мене самого, і навіть через багато років я не шкодую про час, який я вклав у це. Я роблю лише стільки, скільки хочу і скільки мені дозволяє моя сім'я. Я відчуваю себе вільно і знаю. Хоча я цим займаюся вже понад 16 років.
Я написав попередній пункт в основному тому, що мені зрозуміло, що ви приділяєте цьому приблизно стільки ж часу, скільки і я, але в ретроспективі часто оцінюєте, що це було не найкраще використання вашого часу (як правило, працюючи не на тих людей або проекти). Будьте обережні та обирайте співпрацю свідомо та з чітко узгодженими умовами.
Знати, усвідомлювати і виконувати свою життєву місію. Навіть якщо у виконанні її будуть складні часи, ви принаймні не будете сумніватися, чи на правильному ви шляху, а зосередитеся на подоланні перешкод на цьому шляху, замість того, щоб роздумувати над дурницями.
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.