JavaRush /Java блог /Random UA /Чому багато розробників здаються, навіть до ладу не почав...

Чому багато розробників здаються, навіть до ладу не почавши

Стаття з групи Random UA
Переклад фрагменту статті Александера Пєткова, засновника спільноти допомоги Junior-розробникам. «Прототипи, об'єкти, алгоритми… і всі ці маленькі кроки між кроками, і ви гадки не маєте, як їх реалізувати… Брр, думай як програміст». Чому багато розробників здаються, навіть до ладу не почавши - 1Розробники-початківці часто відчувають дуже сильний тиск під час своєї першої роботи. Тому якщо їм дати нескладну вправу завершити фразу «Останній раз, коли я писав код...» Серед двох варіантів відповіді:
  • Все йшло, як по маслу . Я сів зручніше, запустив свій редактор і пірнув у чудовий світ нулів та одиниць. Три години пролетіли, як одну мить!

  • Це було тааак нудно . Я ледве змусив себе сісти та кодити. Постійно випливали помилки, щось йшло не так. Та я й досі не з усім розібрався. Ці 30 хвабон здалися мені трьома годинами!
Вони найчастіше обирають другий. А все тому, що в ситуацію, описану в другому варіанті, часом потрапляють усі. Навіть ті, хто працює програмістом 5, 8, 10 років. Та й взагалі перший варіант звучить, як якась дивна ідилічна казка. Так от, якщо ми вже вирішабо поговорити про пересичення програмуванням, важливо відзначити, що таке відбувається з усіма розробниками, причому дуже часто. І, звичайно, ми цього терпіти не можемо.
Чому багато розробників здаються, навіть до ладу не почавши - 2
Спробуємо копнути глибше, щоби розібратися, чому так відбувається. Протягом кількох останніх років мені зустрічалися безліч розробників-початківців, які:
  1. Нещодавно зайнялися програмуванням та почуваються абсолютно втраченими.
  2. Застрягли на вступному етапі та відчувають дискомфорт щоразу, коли доводиться кодити самостійно, без будь-якого контролю з боку.
  3. Були явно талановиті, але провалювали співбесіди чи взагалі не отримували запрошень на них.

Що ж є переломним моментом?

Мені довелося витратити чимало часу на вивчення потреб та програмістів-новачків, оскільки це коротко висловлює суть моєї діяльності. Щоб краще у всьому розібратися, знадобилося поговорити з колегами у своїй компанії, провести дослідження груп у Facebook, форумах, Q&A-сайтах, вивчити величезні потоки Reddit і навіть опитати кілька невеликих спільнот. І ось що вдалося з'ясувати: "Я відчував, ніби просто скопіював те, що було у відео, і все"; «Я гуглив у пошуках існуючих прикладів, які вже були кимось написані. При цьому почувався, як 3-річна дитина, яка вирішує математичну головоломку. Це так дратує»; "Я просто не здатний думати, як програміст"; А ось моє улюблене: «Ось що я зрозумів, навчаючись програмування: 99% часу ти почуваєшся абсолютно розгубленим та неефективним. Але тільки-но вам вдається змусити щось працювати, як треба — ось воно, це почуття — МАГІЯ відбулася!».
Чому багато розробників здаються, навіть до ладу не почавши - 3
Придивившись до цих цитат, можна помітити щось важливе: внутрішня боротьба цих людей відбувається не від того, що вони не діють або докладають недостатньо зусиль. І не тому, що у них погана програма навчання, чи їм не вистачає дисциплінованості. Насправді їм не вистачає практичного досвіду. Здавалося б, подолана складність. Тим не менш, багато хто з них був готовий здатися і відмовитися від програмування.

Два міфи про проблеми програмістів-початківців

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

Міф #1. Треба любити програмувати, якщо кохання немає — це не ваше.

Як часто я чую щось подібне від молодих розробників! І так, я категорично не згоден із цим твердженням. Щоб стати розробником, вам не обов'язково любити програмувати. Насправді приблизно 50% професійних розробників часом буквально ненавидять цю справу. Я стверджую це, виходячи із особистих спостережень. Зрозуміло, це чудово, якщо проблему вдається вирішити легко і просто, витончено, так би мовити. Це чудово, коли у вас чудовий, чистий, тестований код, здатний вирішувати проблеми людей. Але на жаль, подібні здобутки — це не те, що займатиме 100% вашого часу… і близько не те. Будні програміста зазвичай не проходять у думках на кшталт: «Як здорово мені вдалося застосувати патерн впровадження залежностей, витончено розчепити класи, тим самим збільшити підтримуваність свого коду. Ось це я молодець!
Чому багато розробників здаються, навіть до ладу не почавши - 4
На жаль, так відбувається рідко. Навіть ті, хто стверджують, що люблять писати код, значну частину часу проводять за нудною монотонною роботою, яка далеко не завжди йде гладко. В офісі програмістів нецензурна лайка звучить не рідше, ніж в автосервісі. Чесне слово! Немає нічого поганого в тому, що іноді ви просто ненавидите програмувати. Звичайно, питання «Може це взагалі не для мене?» дуже часто виникає в голові програміста-початківця, коли той відчуваєте на собі тиск, отримує великі навантаження і все йде зовсім не так, як хотілося б. Це нормально, повірте. І так, програмування для вас, не сумнівайтеся. Якщо ви це читаєте, то вам небайдуже. А якщо вам небайдуже, то все неодмінно вийде.

Міф #2. Я стільки всього не знаю, мені ніколи цього не вивчити!

Це ще одна поширена думка (можливо навіть популярніша, ніж перший міф). Багато хто скаржиться на це. І я абсолютно чітко розумію, що за цим стоїть. Наше поле діяльності настільки широке, що чим глибше ти вникаєш, тим виразніше розумієш, скільки ще не знаєш. Я теж почуваюся погано навіть при думці про це. Це дуже гнітить! Хороші новини про те, що вам і не треба знати все. Достатньо знати, як з'ясувати те, чого ви не знаєте. На даний момент, переконайтеся в тому, що володієте основними принципами того, з чим ви працюєте.
Чому багато розробників здаються, навіть до ладу не почавши - 5
Давайте розглянемо такий приклад. Якщо ви експериментуєте з CSS, маєте розуміти, що він призначений для застосування стилів до елементів HTML. Ви можете зробити кнопку, що має межі, колір, тінь чи анімацію. Ви не можете сказати, що станеться, якщо натиснути кнопку (для цього вам потрібен JavaScript). Тому, якщо потрібно "оживити" картинку при натисканні кнопки:
  1. У вас має бути зображення та елементи кнопки (HTML);
  2. Потім можна налаштувати анімацію для певного класу (CSS);
  3. І можете додати клас до зображення, натиснувши кнопку (JavaScript).
Адже ви читали це в інструкції одного разу. Через тиждень вам потрібно додати тінь до зображення під час відправлення форми. Ви вже знаєте, що шукати. У вас є загальне уявлення про CSS, HTML, JavaScript, та розуміння за яку частину у функціональності вони відповідають. Все, що залишається – загуглити потрібні слова. В даному випадку "css додати тінь" і "javascript додати форму". Ось бачите, що ми зробабо? Тож не здавайтеся надто рано, і виробляйте правильні звички для ефективного навчання. Але про них поговоримо вже наступного разу.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ