Яку мову програмування слід вивчити першим у 2020 році? ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

Подорож більшості людей до навчання програмуванню починається з одного пізнього вечірнього пошуку в Google.

Зазвичай це щось на зразок "Дізнайся ______"

Але як вони вирішують, яку мову шукати?

“Вони завжди жартують про Яву в Силіконовій долині. Думаю, мені слід це навчитися ".

Або:

“Хаскелл. Зараз так гаряче. Хаскелл ".

Або:

"Цей суслик Go просто такий чудо-симпатичний".

І тоді ми решта. Ми, мабуть, шукатимемо щось на зразок:

"Яку мову програмування мені слід вивчити в першу чергу?"

Мало запитань настільки часто задають, що вони отримують повну інфографічну обробку. Але це одна з них:

Вибір вашої першої мови програмування може бути цікавим процесом - на зразок одного з тих, "Який ти персонаж Квентіна Тарантіно?" вікторини особистості.

Але перед тим, як втекти вчитися Рубі, бо вам подобалося грати з Play-Doh в дитинстві, нагадаю: тут ставки досить високі.

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

Тому слід врахувати наступні фактори:

  • ринок праці для мови
  • довгострокові перспективи мови
  • як легко вивчити мову
  • які проекти ви можете будувати під час навчання (і ділитися з друзями, щоб залишатися мотивованими)

Кожен рік приносить нові мови програмування, а разом з ними і нові навчальні роботи. І нові веб-комікси.

Серйозно. Перегляньте цю перлину минулого місяця:

Коли мова заходить про вибір першої мови програмування, варіантів не бракує. Щоб трохи звузити, ось найпоширеніші пошукові запити Google, пов’язані з навчанням програмуванню, за останні 12 років:

Java мала свої злети і падіння.

Python поступово виріс і став найпопулярнішим вибором.

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

Перш ніж розповісти про ці мови програмування, дозвольте пояснити:

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

Давайте розпочнемо справи, дослідивши, як програмування зараз викладається в школі.

Інформатика 101

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

Звичайно, як ви вже чули дотепер:

"Освіта в галузі інформатики не може зробити нікого досвідченим програмістом так само, як вивчення пензлів і пігментів може зробити когось досвідченим художником". - Ерік С. Раймонд

Станом на 2016 рік, багато університетів досі ставляться до програмування як до інформатики, а до інформатики - як до математики.

Як результат, багато вступних курсів програмування зосереджуються на мовах з низьким рівнем абстракції, таких як C, або на математично орієнтованих мовах, таких як MATLAB.

А кафедри, як правило, залишаються на курсі, вказуючи на щорічні таблиці лідерів мови програмування, такі як Індекс TIOBE або цей з IEEE:

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

Але зміни все ж трапляються. Навіть в академічних колах.

У 2014 році Python випередив Java як найпопулярнішу мову навчання у провідних програмах комп'ютерних наук США.

І все ж чергові зміни обов’язково… зрештою… відбудуться.

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

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

У оголошеннях про роботу також згадується JavaScript більше, ніж будь-яка інша мова програмування, крім Java:

Не випадково ми створили програму спільноти з відкритим кодом навколо JavaScript. За останні два роки понад 5000 людей використали Free Code Camp, щоб отримати свою першу роботу розробника.

Я не захищаю JavaScript, бо викладаю його. Я викладаю JavaScript, бо це найвірніший шлях до першої роботи розробника.

Але чи підходить вам JavaScript? Чи гідно бути вашою першою мовою програмування? Давайте вивчимо ті фактори, про які я згадав раніше.

Фактор №1: Ринок праці

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

Як я вже згадував раніше, Java згадується в більшій кількості оголошень про роботу, ніж будь-яка інша мова програмування. JavaScript - це секунда.

Але ось що стосується JavaScript: хоча він існує вже 20 років, він лише нещодавно став серйозним інструментом, завдяки якому такі компанії, як Netflix, Walmart та PayPal, можуть створювати цілі додатки.

Як результат, багато компаній наймають розробників JavaScript, але на ринку праці їх просто не так багато.

Існує 2,7 розробника Java, які змагаються за кожну відкриту позицію Java. Конкуренція за робочі місця на PHP та iOS така ж жорстка.

Але для кожної відкритої позиції JavaScript існує лише 0,6 розробника JavaScript. Це дуже ринок продавців для розробників, що володіють навичками JavaScript.

Фактор №2: довгострокові перспективи

Середній проект JavaScript отримує вдвічі більше запитів на витягування, ніж середній проект Java, Python або Ruby. І крім цього, JavaScript зростає швидше, ніж будь-яка інша популярна мова.

Екосистема JavaScript також виграє від значних вкладень грошей та інженерних талантів від таких компаній, як Google, Microsoft, Facebook та Netflix.

Наприклад, TypeScript (статичний тип набору JavaScript) має понад 100 співавторів із відкритим кодом, багато з яких - співробітники Microsoft та Google, яким платять за роботу над ним.

Цей тип співпраці між компаніями важче знайти з Java. Oracle - який фактично володіє Java завдяки придбанню Sun Microsystems - часто подає до суду на компанії, які намагаються розширити її.

Фактор №3: Складність у навчанні

Більшість програмістів погоджуються з тим, що мови сценаріїв високого рівня порівняно легко вивчати. JavaScript підпадає під цю категорію разом із Python та Ruby.

Незважаючи на те, що університети все ще викладають такі мови, як Java та C ++, як перші мови, вивчати їх значно важче.

Фактор №4: Проекти, які ви можете будувати за його допомогою

Тут справді сяє JavaScript. JavaScript працює на будь-якому пристрої, який має браузер, безпосередньо там, у браузері. Ви можете побудувати в основному що завгодно за допомогою JavaScript і ділитися ним де завгодно.

Через всюдисущість JavaScript співзасновник Stack Overflow Джефф Етвуд створив свій відомий нині закон:

«Будь-який додаток , яке може бути записано в JavaScript, буде в кінцевому підсумку буде написано в JavaScript.»

І з кожним місяцем Закон Етвуда міцний.

Колись Java теж обіцяла працювати скрізь. Можливо, ви пам’ятаєте аплети Java. Oracle офіційно вбив їх на початку цього року.

Python страждає приблизно такими ж проблемами:

“Як я можу подарувати цю гру, яку створив своєму другові? Ще краще, чи є спосіб, як я можу покласти це на свій телефон, щоб я міг показати його дітям у школі, не маючи необхідності встановлювати його? Гм. " - Джеймс Хейг у звільненні Пітона як мови викладання

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

Добре вивчіть одну мову. Потім вивчіть другу.

Якщо ви будете продовжувати стрибати з мови на мову, ви далеко не дійдете.

Для того, щоб вийти за межі основ, вам потрібно добре вивчити свою першу мову. Тоді ваша друга мова стане набагато, набагато простішою.

Звідти ви можете розгалужитися і стати більш розвиненим розробником, вивчивши безліч мов:

  • C - чудовий спосіб дізнатись, як насправді працюють комп’ютери з точки зору управління пам’яттю, і корисний у високопродуктивних обчисленнях
  • C ++ чудово підходить для розробки ігор.
  • Python чудовий для науки та статистики.
  • Java важлива, якщо ви хочете працювати у великих технологічних компаніях.

Але спочатку вивчіть JavaScript.

Добре, зараз я спробую зробити неможливе - я спробую передбачити заперечення із розділу коментарів.

Заперечення №1: Але хіба JavaScript не є повільним?

Для більшості практичних цілей JavaScript є таким же швидким, як і високопродуктивні мови.

JavaScript (Node.js) на порядок швидший, ніж Python, Ruby та PHP.

Він також майже такий же швидкий, як високопродуктивні мови, такі як C ++, Java та Go.

Ось результати найповнішого нещодавнього міжмовного тесту:

Заперечення №2: Але JavaScript не набирається статично

Як і Python та Ruby, JavaScript динамічно набирається, що зручно. Але ви можете потрапити в халепу. Тут я маю намір exampleArrayбути масивом. Я встановлюю його значення, а потім перевіряю довжину, тобто кількість елементів, які він містить.

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

Але тоді я випадково присвоюю це як рядок.

exampleArray = “text” -> “text” exampleArray.length -> 4

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

Якщо вам обов’язково потрібно вводити статичний текст на першій мові програмування, то я все-таки рекомендую спочатку вивчити JavaScript. Тоді ви можете швидко підібрати TypeScript.

"Машинопис має криву навчання, але якщо ви вже знаєте JavaScript, він буде плавним". - Алекс Еверлеф на TypeScript

Заперечення №3: Але я дуже хочу створити мобільний додаток

Я все-таки рекомендую спочатку вивчити JavaScript.

  1. JavaScript містить кілька інструментів для створення власних мобільних додатків, таких як Angular Cordova та React Native.
  2. Для того, щоб ваш мобільний додаток насправді робив щось цікаве, йому, ймовірно, знадобиться відповідний задній кінець, який ви захочете створити за допомогою відповідної системи веб-розробки, наприклад Node.js + Express.js.

Також варто зазначити, що найкращі дні розробки мобільних додатків цілком можуть бути позаду.

Для початку, наскільки люди використовують мобільні додатки, майже половина всіх робочих місць розробників - це веб-розробка. Порівняйте це із лише 8% робочих місць, які передбачають розробку мобільних додатків.

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

Звичайно - вони все ще використовують додатки. Переважно Facebook, Google Maps та ще кілька інших. Таким чином, велика частина попиту на розробників мобільних додатків зосереджена у кількох великих роботодавців.

Перспективи цих робочих місць для розвитку мобільних послуг важко передбачити. Багато аспектів розробки, обслуговування та розповсюдження мобільних додатків простіші за допомогою JavaScript. Тож такі компанії, як Facebook та Google, інвестують значні кошти в кращі інструменти для їх створення за допомогою JavaScript.

Станом на 2016 рік, майже вся розробка - це веб-розробка. Все торкається тієї великої платформи, яка є "Інтернетом". І наступна хвиля пристроїв, з якими ви будете розмовляти по дому, та машин, які збиратимуть ваших дітей зі школи - вони також будуть з’єднані за допомогою Інтернету.

А це означає JavaScript.

Заперечення №4: Чи не є JavaScript іграшковою мовою, яка була написана за 10 днів?

JavaScript має химерну історію.

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

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

Тож якщо хтось коли-небудь заважає вам вивчати JavaScript замість елітної мови тижня, просто згадайте відомі слова хлопця, який створив С ++:

"Існує лише два типи мов програмування: ці люди завжди суки і ті, якими ніхто не користується". - Бьярн Строуструп

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