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

Подивившись першу серію Футурами (де Фрай все-таки стає кур’єром) і оцінивши вищі статки декого зі своїх ровесників і колег (але програмістів), я вирішив наслідувати героя Футурами та зблизитись з програмуванням.

З чого почати, яку мову вивчити? Зі школи та інституту залишились початкові знання по Pascal та Delphi, та от біда – у вакансіях (job offers) їх так мало запитують. Пошуки через плутані, втім малоплідні нетрі уа- і рунету вивели на цю дуже корисну і чітку статтю англійською Пара Тріведі (творець веб-сторінок для Groupon, NY Magazine) «Which Programming Language Should You Learn To Make Money?». З нею я отримав ще одне розуміння – без знання англійської, в ІТ – нікуди. Хороша новина, вивчити англійську ІТ-спрямування доволі легко, тут написано як це зробити самостійно і безкоштовно.

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

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

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

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

Доброю новиною є те, що всі популярні мови оплачуються досить добре. Середня плата сьогодні для спеціаліста з 3-5 річним досвідом становить близько $ 60-80тис/рік (прим. перекладу це – для США, в Україні – це десь 20тис. у.о.), але ця сума може дуже коливатись, і може бути набагато вище, особливо для людей, з різних міст, або навіть більше – країн. Ще відчутніше це коливання в консалтингу.

Популярними мовами сьогодні є: Ruby, Python, PHP, Objective-C, HTML, CSS, JavaScript, Java, .Net, C/C ++. Погугліть про них.

Кожна мова має свої найпоширеніші сфери використання:

Мова Поширені сфери використання
Python/Ruby/PHP Серверний бік (англ. «Server-side») для веб-сайтів і мобільних додатків.
Objective-C IPhone-додатки
HTML Розробка користувацьких інтерфейсів (англ. «Client-side») для веб-сайтів. Мова розмітки для розробки веб-сайтів, «будівельний блок» веб-сайтів.
CSS Користувацькі інтерфейси для веб-сайтів. Мова подання для HTML.
JavaScript Користувацький бік веб-сайтів, використовується для управління HTML/CSS.JQuery Це в загальному.
Java/.Net Android-програмування. Серверний бік для веб-сайтів, найбільш популярна серед великого бізнесу.
C/C++ Високопродуктивні додатки (торгівля акціями) або графіка (відеоігри).

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

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

Якщо вас не хвилює, як ви будете заробляти гроші, то на мою думка це будуть такі мови: Python, Objective-C, JavaScript, HTML, CSS. Також потрібні будуть знання певної системи баз даних (MySQL чи MongoDB), і здобути навички як програмувати з цією  СУБД не є великою проблемою.

Якщо ви хочете програмувати відеоігри або високочастотні торгові додатки, то C++, ймовірно, ваш шлях. Якщо ви хочете робити веб-сайти, Python, Ruby або PHP чудово підходять, поряд з HTML/CSS/JS. Якщо ви хочете програмувати для IPhone, тоді Objective-C для вас.

JavaScript, HTML і CSS використовуються разом і використовується для того щоб різні речі виглядали добре у вашому веб-браузері. Вони завжди будуть використовуватися в поєднанні з серверними мовами, такими як Python, Ruby або PHP.

Скоріш за все, виконуючи роботу за наймом, ви будете в одній із цих виробничих ролей:

Виробнича роль Набір навичок
Back-end/Server-side програміст Зазвичай використовують один з таких варіантів: Python, Ruby, PHP, Java або .Net. Має знання баз даних. Можливо має деякі знання сисадміна.
Front-end/Client-side програміст HTML, CSS, JavaScript. Можливо має дизайнерські вміння.
Мобільний програміст Objective-C або Java (для Android). HTML/CSS для мобільних веб-сайтів. Потенційно має знання серверного боку.
3d програміст/Ігровий програміст C/C++, OpenGL, Анімація. Можливо має хороші художні навички.
Програміст високопродуктивних додатків C/C++, Java. Може мати глибокі знання в області математики чи кількісного аналізу.

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

При вивченні цих мов, почніть з малого. Не починати, бажаючи побудувати наступний Facebook, цього не станеться. Почніть з невеликих проектів і знайдіть підручники. Погугліть «Привіт світ!» («Hello world!») для Python або «Привіт світ!» («Hello world!») для JavaScript, щоб знайти прості підручники для початку роботу. Після того, як ви можете зпрограмувати прості проекти для потреб себе і своїх  друзів, то ви будете готові. Ви зможете зкласти своє порт фоліо докупи і спробувати влаштуватися на роботу, втім можете почати з позаштатної роботи для створення цього портфоліо. Ви можете точно зробити це.

Післяслово. Перед прочитанням цієї статті, вирішив обрати для себе курс на освоєння Java. Знайшов мегакрутий сайт javarush.ru… і все, не пішло. Заскладно. Проте, ця стаття якось прояснила для мене прості речі: починати з малого, освоюватись поступово. Я знайшов learnstreet.com і почав Python (там ще є Ruby та JS), результат: 4 пройдені уроки за півдня. Мова дійсно проста + навчання на цьому сайті побудовано дуже продумано і зрозуміло.

О, ледь не забув, трохи прикольного відео для стимулу в освоєнні програмування:


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

  • wFox

    Гарний текст. Колись теж намагався з наскоку освоїти Джаву. Але таки довелося почати з Пітона. А потім все пішло, і Джава і С++ і багато іншого. Пітон – ідеальний інтрудер в світ програмування.

  • Taras

    дякую.

  • Олег Дивов

    learnstreet.com

    наразі не працює (

    • Вітаю! Дякую за коментар, не мав можливості відповісти раніше!
      З тим сайтом – то не біда. В мережі є багато аналогічних ресурсів: codecademy (більш теоретичний напрямок), teamtreehouse (ідеальний замінник learnstreet, навчання не якійсь одній мові, а практичним навичкам. Як-от: розробка веб-сайту повного циклу тощо. Платний, але особиста думка – воно того варте).
      Ресурс codeguida має чудову візуалізацію на тему яку мову програмування вивчати першою – гугліть їхній пост. Успіху!