Я бачу, як деякі нові розробники приходять на роботу і одразу відчувають себе неадекватними. Я робив те саме на початку своєї кар’єри. Я думаю, що принаймні два найважливіші проблеми, які мусить подолати більшість розумних хлопців: сприйняття часу та власні природні можливості.
Сприйняття часу
Розумні хлопці звикли вирішувати проблеми відносно швидко. Я пам’ятаю, як був пристрасний, коли мені довелося витратити годину на одну проблему з численням. Витратити 60 хвилин на проблему - це вже нічого. Ті дні закінчилися ... поховають їх і попрощаються. Складність та розмір більшості програмного забезпечення сьогодні надзвичайні. Люди не розуміють усіх інструментів, якими вони мають скористатися, щоб зробити справи довше. Дуглас Крокфорд, один із ключових людей мови JavaScript, сказав:
"Misapplication of standard tools...is the new standard."
У світі просто не вистачає часу, щоб вивчити всі інструменти розробки.
Природні здібності
Ваш інтелект, вміння вирішувати проблеми та природні навички в першу чергу змусили вас взяти участь у всьому концерті розробників. В цій галузі просто немає місця для нічого меншого. Отже, що ви робите зі 100 000 рядків коду, мов та фреймворків, яких ви ледве знаєте, шаблони дизайну та парадигми тиснуть на вас, хлопці, які знають більшість із них, як задня рука, клієнти, які хочуть цього вчора, і бос хто очікує від вас світу? Відроджуйся, коли твої природні здібності не вдається.
Так, це нормально. Я все ще вигадую з деякими речами, які мені кидають дорогу.
Що можна зробити?
Настав час покращити природні здібності за допомогою старої доброї важкої праці. Робота над розбиттям проблем на менші частини. І розумійте, що на відміну від багатьох речей, які ви, можливо, робили в минулому, для вирішення цих проблем потрібно багато часу. Тому не здавайся після лише 15 хвилин вивчення складної проблеми. Натомість, усуньте проблеми та перестаньте дивитися на годинник. Через деякий час 30 хвилин роботи з проблемою насправді не те, що було раніше.
Впевненість у собі відіграє велику роль у здатності до самоврядування. Так робить команда, особливо досвідченіші старші. Добре бути обережним, щоб не порушувати речі, але це не означає, що вам потрібно задавати постійний потік питань.
Замість цього скористайтеся контролем джерела. Поки ви не перевірите зміни, ви не зможете зламати основний продукт і розлютити інших чортів. Також внесіть зміни, які ви можете зрозуміти та протестувати, і обов'язково перевіряйте їх добре перед тим, як перевірити.
У мене навіть є невеликий тестовий проект, який я використовую для написання одноразових, простих програм, тому мені не доведеться турбуватися про всі дії в основному додатку.
Нарешті, пам’ятайте, що кожне рішення має певний рівень надання та прийому. Немає просування вперед, не роблячи якусь жертву на якомусь рівні. Не прагніть до досконалості, прагніть до дивовижності і пам’ятайте про свої вчинки. Тому що завжди потрібно бути готовим ставитись до критики та пояснювати свої ідеї та чому ти їх зробив. Пишайтеся рішеннями, які ви приймаєте. Навіть коли вони помиляються, можна багато чому навчитися.