Самовпевненим розробникам: чи достатньо ти хороший?

Чи звучить щось із наведеного нижче знайомо?

Ви постійно переживаєте, що вам недостатньо добре.

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

Але ти, ти переживаєш. Ви переживаєте, що недостатньо знаєте структуру та мову, якою ви користуєтесь. Ви турбуєтесь про введення помилок. Ви турбуєтесь про те, щоб наздогнати найгарячіші технології. Ви переживаєте, що недостатньо талановиті. Речі не приходять вам природно. Ви думаєте про себе: "Можливо, я не призначений бути розробником".

Якщо якась із цих сумнівних думок здається вам знайомою, ви не самотні. Google “розробники сумнівів у собі”, і ви знайдете понад 2 мільйони результатів менш ніж за секунду.

Я був тобою.

Протягом певного періоду часу я також відчував сильну невпевненість у собі, думаючи, чи зможу я коли-небудь «встигнути». Це сталося в коледжі, коли я займався і готувався до співбесід. Щодня ці проблеми з алгоритмами змушували мене відчувати себе повною невдачею. Я був у стресі та хвилюванні, як і ви зараз.

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

Урок №1: Навчання програмуванню - це те саме, що і нарощування м’язів

Щоб навчитися грати у футбол, потрібно вийти на поле і пограти. Щоб побудувати сильніші м’язи, потрібно піти в спортзал і підняти ці тягарі. Щоб навчитися програмуванню, потрібно сісти і кодувати.

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

Ви не відмовитесь від тренувань просто через почуття болю. Ви знаєте, що це частина процесу. Але коли ти застряєш під час програмування, ти можеш почати сумніватися в собі, задаючись питанням, чи достатньо ти талановитий. Тому що: (1) ти вважаєш, що застрягнення - це твоя провина, (2) інші роблять це, здавалося, невимушеним.

1. Застрявання - це частина процесу.

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

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

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

PS - Налаштування середовища розробника може бути найскладнішою частиною програмування.

Дуже часто можна застрягти і витратити дні на створення середовища для розвитку. Це моменти, які можуть розчавити вашу душу. Ви намагаєтесь дотримуватися інструкцій поетапно. Але випадкові помилки постійно з’являються на кожному кроці. Інструкції роблять це простим, але це не так. Ви не завинили в тому, що застрягли. 99,99% людей, які читають цей підручник, застряють. Решта 0,01% - це щасливчики, котрі мають випадково ту саму настройку операційної системи, що і інструктор.

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

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

2. Ми плутаємо " генетично розумних" з "видалися розумними, тому що людина витратила купу часу на відповідні теми"

Протягом мого останнього семестру в коледжі мої друзі були вражені тим, наскільки добре я пройшов у класі Advanced Data Structures & Algorithms. Я змусив це здаватися невимушеним, поки вони боролися.

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

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

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

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

Наступного разу, коли ви будете боротися, поки люди навколо вас перевершують, не думайте, що це тому, що ви недостатньо талановиті. Швидше за все, вони просто більше піддаються предмету чи подібним предметам, ніж ви. Їх мозок створив “м’язи”, щоб обробляти цей тип суб’єкта. Після того, як ви пройдете теперішню боротьбу, ви також будете здаватися розумним і невимушеним.

Вся справа в повтореннях і сетах.

Ви формуєте м’язи, здійснюючи їх. Чим більше зусиль ви докладаєте, тим довше ви тренуєтесь, тим сильнішими стаєте. Навчання програмуванню має точно такий же процес. Чим більше часу ви витратите на кодування, тим досвідченішим ви будете. Що посієш, те й пожнеш.

Урок No2: Зосередьтеся на своєму ремеслі, а не на вас

Перестань думати про те, наскільки ти хороший чи поганий програміст. Якщо ви знаходитесь у нижчих 5% вашої команди, ви хочете стати кращими. Якщо ви знаходитесь у топ-5%, ви все одно хочете покращитися. Незалежно від того, наскільки ти хороший чи поганий, перед тобою завжди є люди, а позаду - люди. То навіщо витрачати час на роздуми про це?

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

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

Елемент дії: Почніть відстежувати невеликі перемоги

Коли ви востаннє застрягли і не були впевнені, чи зможете ви вирішити проблему? Як ти врешті вирішив?

Відкрийте новий Google Doc і запишіть його.

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

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

Залиште коментар та поділіться останнім часом, коли ви застрягли, щоб нагадати тим, хто зараз бореться, що вони не самі. ?

Хочете прочитати про мою кар'єру в галузі техніки? Перегляньте інші мої статті.

Є інші запитання, пов’язані з програмуванням?

Будь ласка, напишіть мені електронне повідомлення: [email protected]