front-end
January 19, 2021

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

19.01.20 ⏰4 хв

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

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

До цього я провів десять років на роботі, якій на початку мав намір присвятити лише 6 місяців. Час летить!

А вже після того, як здобув нові скіли, то добряче позмінював напрямки. Спочатку я працював фрілансером, що спеціалізується на PHP і WordPress, потім перейшов в компанію Golf.com вже з новими (для мене) технологіями, такими як Ruby on Rails і Redis, а тепер я працюю DevOps інженером. І все одно я чергую керування Kubernetes з програмуванням на Java.

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

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

Те, що навчитися програмувати насправді досить просто.

Але ми самі це дуже ускладнюємо!

Для того, щоб дійти до поставленої цілі було просто, потрібно лише сформулювати план — план, який перенесе Вас від А до Я без будь-яких обходів. Але ми любимо шляхи до навколо. Ми любимо усе нове, включно з технологіями, які нам рекламують та підштовхують однолітки, колеги та соціальні медіа.

Важко передати, скільки разів я чув подібні фрази:

"Я почав вивчати JavaScript на курсі Udemy, але мені не зайшов цей стиль навчання. Тож я перемкнувся на Treehouse та прослухав там кілька уроків. Але я десь почув, що Go набирає все більшої популярності, тому думаю, що це більше підійде моєму смаку і почну це вивчати замість JS."

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

Мої особисті помилки

Я робив ті ж самі помилки. Вчив мало, але про все, захоплюючи велику кількість мов. Наприклад, я деякий час вивчав Python. І навіть створив курс Udemy на Python CMS під назвою Mezzanine.

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

Додайте до цього списку ще PHP, JavaScript, C #, Dart, Go, Java та безліч інших технологій DevOps, між якими я перескакував.

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

Але якби я міг повернути час назад і дати собі пораду, то вона б звучала як "зупинись і не міняй технології так швидко". Я б не намагався для себе визначити, які мови чи технології “актуальні” чи “відходять”. Натомість я б обрав мову, яка дає мені найбільшу гнучкість та глибину на ринку праці.

Ви запитаєте, що це за мова, а я Вам розкажу:)

Що б я зробив інакше?

Ну, знову ж таки, навчитися програмувати легко, якщо не сходити зі шляху.

Наприклад, якщо Ви склали графік курсу, який починається від HTML -> CSS -> JavaScript -> базовий PHP -> Розробка на WordPress, то зможете стати веб розробником-фрілансером за пів року.

Запитань немає. Але швидше всього Ви ним не станете. Чому?

Потрапивши на етап вивчення JavaScript, хтось точно спробує Вас переконати, що Вам просто життєво необхідно вивчити React, тоді Vue, і якщо Ви коли-небудь дійдете до PHP, вони скерують Вас до Laravel. А по суті Ви ж просто хочете розробляти програми на фрілансі.

Ми вивчаємо фронтенд, і всі кричать нам, що нам потрібно вивчити бекенд. Ми вивчаємо Python та Django, і хтось обов'язково каже нам, що потрібно зайнятися машинним навчанням та AI.

Існує так багато технологій, які прямо аж манять, щоб ми їх використовували. Це підкуповує. Але, повірте, мудрості в цьому небагато.

Тож повернемось до початкової теми.

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

І що це за шлях?

Це JavaScript.

Я вивчав би HTML, CSS, сів на поїзд, на ім'я JavaScript і їздив би на ньому до багатьох різноманітних напрямків. І JavaScript має для цього достатньо потужності й можливостей.

JavaScript важливий для будь-якого веб розробника. В основному він складається з DOM маніпуляцій. Тоді я міг проїхатись поїздом до дуже популярного фронтенд фреймворку — React. Якби я хотів, я міг би припаркуватися там на все життя з величезним успіхом.

Або ж я міг би перейти на бекенд-розробку за допомогою Node.js та Express. Це бібліотеки від того ж JavaScript. Або ж я міг би дослідити мобільну розробку за допомогою React Native і знайти успіх саме там. Або ж розробляти настільні програми за допомогою Electron, чи займатися машинним навчанням за допомогою TensorFlow.js, або навіть поринути у світ блокчейну.

Все це однією мовою.

Нічого дивного, що JavaScript вже восьмий рік поспіль зберігає свою силу як найпопулярніша мова програмування!

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

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