Як бути чудовим програмістом

Є лише дві речі, які потрібно зробити, щоб стати великим програмістом світового класу. По-перше, ви повинні максимально вплинути на споживача, а по-друге, ви повинні максимізувати випуск команди. Ці дві речі однаково важливі, якщо ви хочете створити провідну масштабовану компанію. (У Lola ми враховуємо ці речі в тому, як ми наймаємо інженерів та отримуємо компенсації за них).

Максимізуйте вплив клієнта

Спочатку команда виробників повинна вирішити, що будувати. Ваша особливість приємна, чи її потрібно мати? Це покращує ситуацію чи трансформує речі (наприклад, в 10 разів швидше та / або в 10 разів дешевше)? Якщо ви вважаєте, що ваше завдання є німим або низьким пріоритетом, або ви думаєте, що є щось, що може мати більший вплив, відсуньте свого менеджера. Краще виконувати вузькомасштабне завдання максимального впливу, ніж ретельну роботу над тим, що просто приємно мати.

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

Якщо ви спробуєте бути ретельними з усіма завданнями, розглядаючи всі можливі способи використання вашого коду, це призведе до того, що ви зможете виконувати менше завдань, з яких певний відсоток не вдасться. (Як це знеохочує розробляти та будувати щось дуже ретельно, лише щоб з’ясувати, що в разі невдачі!)

Джаспер Крамвінкель заявив, що на Booking.com тривалість завдання не впливала на вплив клієнтів. Тобто, краще спробувати десять малих завдань, ніж три великі завдання. З практичної точки зору, найкращі інженери намагаються звузити коло завдань, щоб швидко їх досягти та протестувати із замовниками. Як тільки вузько визначена задача досягне успіху, ми можемо вирішити розширити сферу застосування для обробки більшої кількості випадків використання.

Максимізуйте продуктивність команди

Найкращі програмісти покращують ефективність роботи своєї команди.

По-перше, ви завжди повинні писати чистий, зрозумілий код. Це дає надзвичайні можливості інженерам, яким пізніше доведеться змінити ваш код. Коли ми намагаємось швидко виконати завдання, щоб ми могли перевірити багато речей із замовниками, спосіб заощадити час полягає не в написанні дерьмового коду, а в тому, щоб звузити початковий обсяг завдання.

По-друге, найкращі програмісти – тренери. Вони ніколи не кажуть, що “це не моє завдання”, але натомість завжди змушені вирішувати будь-яку проблему, яка стоїть перед ними, і допомагати тому, хто потребує допомоги. Коли я працював в Interleaf у 1990-х, мій улюблений програміст (Кімбо Манді) писав код для аналізу продуктивності програміста. Одним з його критеріїв було те, щоб його рейтингове програмне забезпечення читало повідомлення про випуск, і бачити, як часто кожен програміст отримував подяки інших.

Загалом, найкращі та найпотужніші інженери часто мають найкращі комунікативні навички. У Lola двоє наших найкращих інженерів раніше були викладачами, і вони завжди роблять дивовижну роботу, пояснюючи свої системи інженерам і навіть людям, що не займаються технікою в Lola.

Висновки

Найкращі програмісти – це не ті, хто пише найбільшу кількість коду, а натомість, хто пише швидше правильний код і робить чудові короткострокові компроміси.

Надмірне узагальнення означає повільність, яка призводить до смерті.

Значення інструменту багато в чому визначається тим, скільки інженерів використовує цей інструмент. Якщо ви витрачаєте три тижні на створення нового інструменту розробки, але потім з’ясуєте, що ви використовуєте його єдині, то в більшості випадків це означає, що ви просто витратили три тижні.

Більшість програмістів недооцінюють швидкість. Найкращі інженери завжди переконуються, що їх код швидкий, в результаті чого клієнт отримує запитання-питання-отримати-відповідь із якомога меншими затримками між цими двома речами. На конференції TED у 2010 році я сидів поруч із Сундаром Пічай. На той час він працював над розробкою Chrome. Я запитав, скільки у нього інженерів, і Сундар відповів 100. Я був здивований, що для створення браузера знадобилося стільки інженерів – над чим вони всі працювали? Сундар сказав, що всі вони працюють над продуктивністю. (Зазначається, що сьогодні Сундар є генеральним директором Google.)

Ваші ідеї

Які ваші думки щодо чудових програмістів?

Спочатку ця публікація була опублікована за адресою https://www.linkedin.com/pulse/how-great-programmer-paul-english/.

Paul English люб’язно дозволив нам перекласти і опублікувати цю статтю.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: