Як вибрати мову програмування та врятувати підручник Чистилище

Кілька тижнів тому я писав про свій досвід, намагаючись вивчити JavaScript, C #, Python та багато іншого від Codecademy, Udemy та freeCodeCamp, разом із втечею з навчального чистилища та фактичним прогресом як розробник.

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

Ось відео-версія цього допису, якщо хочете (11-хвилинний перегляд):

Сценарій №1: Ви знаєте, що хочете побудувати

Часто в таких статтях (або в інфографіці «Яку мову кодування слід навчитися?», З якою ви, мабуть, добре знайомі), вас просять критично подумати, що ви хочете побудувати після того, як навчитеся код.

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

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

Розробка інтерфейсу: JavaScript (і HTML / CSS)

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

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

Розробка на задній панелі: Python, C # або JavaScript (і SQL)

Скажімо, вам більше цікаво дізнатись про нутрощі веб-сайтів, керувати "задньою панеллю" та спробувати свої сили в адмініструванні баз даних. Тут у вас є безліч варіантів, і найпростіший шлях - це Python, яка є мовою, зручною для початківців, і має зрілі фреймворки (наприклад, Django та Flask) для розробки на задньому кінці.

Ви також не можете помилитися з C #, який відкриє для вас екосистему Microsoft .NET та мову програмування, що, як тільки ви потрапите з нею в бур'яни, буде приємно працювати. І якщо ви думаєте піти на "повний стек" - тобто, ви хочете розробити фронт-енд і бек-енд розробку - ви можете подумати про вивчення JavaScript, який має більш молоді, але високо цінувані фреймворки, такі як Express і Koa. Це також полегшить ваш процес навчання, оскільки ви будете використовувати одну мову для кодування обох стеків.

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

Розробка 2D-ігор: JavaScript або C #

Я вже писав в іншому місці про те, який двигун вам слід використовувати для створення 2D ігор, але ось худий.

Існує багато двовимірних ігрових двигунів, багато з яких можуть підходити або не відповідати вашим уявленням розробника ігор, і кожен із них має свої переваги, особливості та криві навчання. Деякі з них, наприклад Game Maker Studio 2, наприклад, використовують власні власні мови для запуску сценаріїв, але насправді я б рекомендував спочатку вивчити JavaScript або C #, навіть якщо ви довго плануєте використовувати інший ігровий движок .

За допомогою JavaScript ви можете використовувати фреймворки, такі як Phaser, для створення 2D-ігор, або повнофункціональні двигуни, такі як Construct 3 (який насправді використовує розробку перетягування та падіння з простором для власних сценаріїв). Якщо ви вирішите вивчити C #, замість цього, ви будете працювати з Unity 2D, або, можливо, MonoGame - але я насправді рекомендую починати з немоторних підручників (наприклад, .NET), щоб спершу отримати гарну інформацію про мову.

Вивчення JavaScript або C # дасть вам основні знання кодування, які вам знадобляться для вирішення іншого механізму гри, наприклад Game Maker, а також надасть вам такі речі, як найкращі практики програмування та чиста організація коду.

Розробка 3D-ігор: C # або C ++

Є багато варіантів навчитися кодувати розробку 3D-ігор, і я б запропонував почати з C # або C ++. Насправді, якщо ви не супер підковані або не маєте досвіду програмування, я рекомендую вам почати з C # і пройти шлях до C ++. У вас буде легша крива навчання і ви вивчите основні концепції програмування, не маючи справу з такими речами, як управління пам'яттю та код нижчого рівня.

Можливо, ви в будь-якому випадку закінчите навчання обом, але якщо ви почнете з C #, ви зможете повозитися з Unity 3D, а потім пробитися до C ++ за допомогою Unreal Engine 4.

Наука про дані / машинне навчання: Python

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

Сценарій №2: Ви не знаєте, що хочете побудувати

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

Я був там. Це дратує.

Моя рекомендація вам, як би банально це не було, - просто вибрати одну. Буквально будь-який з них, навіть якщо їх тут немає в списку. Ідіть вивчати JavaScript. Або Python. Або Іржа. Або Хаскелл.

Добре, можливо, не Хаскелл. Але виберіть щось і дотримуйтесь цього достатньо довго, щоб вивчити основи та перевірити, чи існує ймовірність того, що вам може сподобатися використовувати цю мову для побудови з ним. І майте на увазі дві речі:

  1. Встановіть собі обмеження часу. Наприклад, "Я збираюся взяти наступні три місяці, щоб вивчити JavaScript за допомогою підручників freeCodeCamp". Якщо наприкінці цього періоду вам здається, що ви прогресуєте, і це вам цікаво, продовжуйте! Якщо ні, можливо, пора переглянути свій вибір мови та перевірити, чи є там щось, що може вам більше підходити.
  2. Створіть щось, чого немає у ваших підручниках. Це важливий крок у вашому зростанні як розробника. Я розгляну це в наступному розділі.

Сценарій №3: Ви застрягли в навчальному чистилище

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

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

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

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

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

Найкращий спосіб досягти успіху як розробник - це вибрати проект вибраною вами мовою та взятися за це. Наприклад, якщо ви вивчаєте JavaScript, ви можете створити простий веб-сайт з HTML / CSS та додати інтерактивність за допомогою jQuery. Ви, мабуть, почнете з налаштування інтегрованого середовища розробки, відразу забувши, як зробити те, про що ви дізналися у своїх підручниках, розчаруватися, зайти в Google, знайти відповідь і продовжувати. Тоді ви будете прогресувати, застрягати, шукати Stack Overflow, чухати голову в офіційній документації, можливо, поділитися з кимось своїм кодом і повторити весь процес.

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

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

Ти можеш це зробити!

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

М.С. Фарзан, к.е.н. писав і працював у гучних компаніях з відеоігор та редакційних веб-сайтах, таких як Electronic Arts, Perfect World Entertainment, Modus Games та MMORPG.com, а також працював менеджером спільноти для таких ігор, як Dungeons & Dragons Neverwinter та Mass Effect: Andromeda . Він є креативним директором та провідним дизайнером ігор Entromancy: A Cyberpunk Fantasy RPG та автором трилогії The Nightpath . Знайдіть MS Farzan у Twitter @sominator.