Як я вивчав би програмування, якби міг почати все з нуля?
Ця стаття — адаптивний переклад публікації, на яку ми випадково натрапили на платформі Medium.
Student_Rostik_Laba

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

Минуло п’ять років, з моменту як я навчився кодити та змінив кар’єру.
До цього я провів десять років на роботі, якій спочатку мав намір присвятити лише 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 важливий для будь-якого веб розробника. В основному він складається з DOM маніпуляцій. Популярний фронтенд фреймворк — React дасть ще більше можливостей! І, якби я хотів, то міг би припаркуватися там на все життя з величезним успіхом.

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

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

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

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

Отримуйте корисну інформацію першими!