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


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

Бути програмістом зараз модно. Про них знімають серіали, пишуть книги, їх ставлять в приклад дітям в школах. Але не варто думати, що закінчивши швидкі курси програмування, можна відразу опинитися серед кращих, з зарплатою як в Google і зі штатним масажистом в офісі. Стаття iOS-розробника Бейзіла Фарага на TechCrunch – якраз про те, як не піддатися галасу навколо IT і тверезо оцінити свої шанси, перш ніж кардинально міняти кар’єру. Пропонуємо вам її переклад.

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

Якщо ви звертаєте увагу на регулярні гучні витівки Кремнієвої Долини, ви, безумовно, чули про рух Learn to Code. Політики, громадські організації на кшталт Code.org і навіть колишній мер Нью-Йорка Майкл Блумберг несли в маси ідею того, що вони вважають обов’язковим навиком працівників майбутнього.

Частка правди в цьому, можливо, є, особливо з огляду на те, що попит на інженерів в США не проявляє жодних ознак падіння.

Але картинка все одно складніша.

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

Візьмемо навчальні програми з програмування. З тих пір, як всі дізналися про успіх інженерів з Кремнієвої долини, кожен мріє стати програмістом або заснувати свій стартап. Серіал “Кремнієва долина” виробництва HBO малює нам картину, де 20-з-чимось-річні програмісти ночами пишуть код, курять травку, в процесі заробляючи мільйони доларів. Американська публіка зачарована фігурами на кшталт Елона Маска і Марка Цукерберга, які щоночі заробляють, здавалося б, мільйони. Лихоманка програмування досягла навіть сходинок Білого дому, оскільки президент Обама підтримує закон про включення комп’ютерних наук в програми громадських шкіл.

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

Людей на це штовхають з усіх боків, починаючи від голлівудських фільмів і закінчуючи світилами хайтек-бізнесу. Незважаючи на зростаюче пожвавлення, я не можу сприймати бум навчальних програм без нотки скепсису. У той час, як в масовій культурі Кремнієва долина – це щось круте, а глянцеві брошури усіляких шкіл обіцяють добре оплачувані роботи, правда в тому, що багато хто з них неакредитовані, не дають ніякої статистики щодо подальшого працевлаштування, і, загалом, мало роблять для того, щоб допомогти своїм випускникам досягти успіху.

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

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

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

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

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

Треба питати себе “А чи є проблема?” І “Чи можна застосувати принцип Фейнмана і пояснити її так, щоб всі вас зрозуміли?”.

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

І став чемпіоном.

Надмірний фокус на самому коді ігнорує і труднощі, які виникають у сучасних розробників.

Технології в цій галузі змінюються неймовірно швидко.

Кілька років тому я використав Objective-C, тепер майже весь час пишу на Swift. Зараз зустрічаю безліч iOS-девелоперів, які подаються на відкриті вакансії, і які в житті ні рядка не написали на Objective-C. Swift простіше вивчити, він безпечніше, використовує сучасні парадигми розробки і елегантний так, як ніколи і не снилося Objective-C. Факт того, що нові розробники ніколи не матимуть справи з недоліками Objective-C, прекрасний, але він ігнорує реальність професії.

Не втрачайте почуття реальності, зачаровано вбираючи романтичну культуру Кремнієвої долини. Від розробників чекають, що вони вміють вчитися швидко, майже без наставництва, з рівнем мотивації як від трохи чутного брязкоту гільйотини. Можна заперечити про те, що це – одна з жертв, на яку доводиться йти в цій професії. Але якщо сучасні девелопери нещасні або не встигають з роботою (а свідоцтва того існують), навіщо надихати людей приєднуватися до їх сонму?

Що трапиться з людиною, яка вдень і вночі вивчала Objective-C, і яка в жаху почує про анонс Swift на WWDC 2014? Чи залишиться вона в рядах програмістів, що використовують все менш популярну мову, або змушена буде перенавчатися з нуля? Якщо вам 20 з чимось років, це не складе проблеми, але якщо ви повинні нагодувати сім’ю і оплатити гори рахунків, це перетвориться на геркулесову працю.

Межу між навчанням програмування і отриманням справжніх грошей за свою працю програміста-професіонала не так-то легко перейти.

Повірте.

Мені довелося навчатися самому більше року, перш ніж я одержав таку собі роботу фрілансером. І навіть тоді платили мені мало. Незліченну кількість разів мені відмовляли навіть у співбесіді, оскільки у мене не було IT-освіти.

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

Наполегливість – ось те, що мені допомагало – і допомагає – залишатися в професії.

Правда в тому, що дуже непросто прослизнути в професійні розробники, навіть якщо мова йде все ще про учнівство. Вам потрібні зв’язки, GitHub-аккаунт, люди, які за вас дадуть поруку, і ще багато чого.

Хранителі врат – всюди. Це будуть випускники Ліги плюща, які вірять в те, що кращий спосіб виміряти чиїсь технічні обдарування – це питання в стилі “Як би ви винайшли бінарне дерево?”. У вас попереду зустрічі з проджект-менеджерами, одержимими тестами, і безпорадними HR-ами з вимогами в стилі “5 років досвіду програмування на Swift”. Ці люди, на добро чи лихо, стоятимуть між вами і гідною роботою.

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

Заключні думки

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

Але не втрачайте відчуття реальності, зачаровано вбираючи романтику Кремнієвої долини. Ця галузь – зовсім не золотий пропуск в країну швидкого збагачення. Вам знадобиться час, щоб навчитися її розуміти. Вам доведеться звикнути до того, що ви вирішуєте проблеми, а не “заповнюєте фреймворки”. Вам доведеться жити з тим, що в будь-який момент знадобиться вивчити новий фреймворк або мову, що доведеться боротися за кожну роботу, якщо у вас ще немає регалій.

Розробка софта – вигідна справа, але пам’ятайте, що перехід від кодера до інженера складний. Але якщо ви витримаєте, ви не тільки зміните своє життя, ви навчитеся думати по-іншому.

  • i

    Якшо Ви помітили помилку, виділіть необхідну частину тексту й натисніть Ctrl+Enter, щоб повідомити про це нам.

Дивись також
Сервіс підбору кредитів
  • Надішліть заявку
  • Дізнайтесь про рішення банку
  • Підтвердіть заявку та отримайте гроші
грн
Замовити кредит онлайн
Топ новини
Обговорюють

Читають

В Контексті Finance.ua