- фронтенд
- JavaScript - щоб навчити сайт розуміти вас
- Веб-розробка: бекенд
- Python - прогресивний і популярний
- PHP - популярний і відносно нескладний
- Мобільна розробка
- iOS: Swift і Objective-C - тільки для Apple
- Розробка ігор
Вибір мови багато в чому залежить від того, що передбачається зробити з його допомогою. Найпопулярніші зараз застосування мов - веб-розробка, мобільна і ігрова розробка. Веб-розробка, в свою чергу, ділиться на фронтенд (те, з чим безпосередньо взаємодіє користувач) і бекенд (непомітна користувачеві, але необхідна «технічна» частина).
фронтенд
HTML і CSS - обличчя сайту
Використовувані в зв'язці, HTML і CSS по суті не є мовами програмування. Вони визначають не те, як буде діяти сайт, а лише те, як він буде виглядати. Якщо написати сайт, застосовуючи тільки HTML і CSS, він виявиться набором статичних сторінок, де єдиними інтерактивними елементами будуть посилання.
Однак сайти не обходяться без HTML, тому його базове знання необхідно кожному, хто планує займатися веб-розробкою. І володіння CSS може бути цілком цінних навиком: завдання «правильно розташувати елементи» не завжди виявляється тривіальної.
JavaScript - щоб навчити сайт розуміти вас
Мова JavaScript відповідає за інтерактивність і динамічно мінливу інформацію на сторінках сайту. Наприклад, коли ви вводите в форму сайту номер телефону в невірному форматі або забуваєте про значок @ при введенні електронної адреси, JavaScript дозволяє сайту моментально про це дізнатися і підсвітити поле червоним. А ось лічильник переглядів цієї сторінки, який змінюється в реальному часі: на HTML-сайті можна було б показати тільки статичну число.
...
JavaScript стала головною мовою фронтенда і зараз переживає справжній пік популярності: інтерес до нього зростає, а в JavaScript-світі постійно з'являються нові інструменти. Нюанс в тому, що для розробника постійна поява чогось нового - не завжди плюс: доводиться часто переучуватися, і нове не завжди працює стабільно, викликаючи неприємні сюрпризи. Однак ніхто не забороняє використовувати стабільні і популярні інструменти.
Крім цього, існує платформа Node.js, яка дозволила використовувати JavaScript і в бекенд. На відміну від фронтенда, там він не є лідером і конкурує з цілим рядом інших мов.
Веб-розробка: бекенд
Java - надійний, як дідусів сюртук
Хоча назва часом плутають з JavaScript, Java - не просто іншу мову, а майже протилежність JavaScript: це більш консервативний вибір, перевірений роками. Його вважають за краще використовувати в бекенд тих проектів, для яких надійність куди важливіше віянь моди, - наприклад, банківських систем. У рейтингу популярності мов TIOBE Java займає першу строчку, а це значить, що в світі є мільйони робочих місць Java-розробників.
Молоді розробники часто вважають Java нудною і застарілою, а її прихильники відповідають, наприклад, такий GIF про те, що ніякої Node.js не зрівняється з нею по мощі:
Python - прогресивний і популярний
Якщо порівнювати Python з Java, то він буде вигравати в обсязі коду, але програвати в швидкості виконання. Для великого високонавантаженого проекту, де важлива продуктивність, Python буде не кращим вибором. Мова відмінно підійде для стартапу: наприклад, щоб показати інвесторові прототип до того, як закінчаться всі інвестиційні гроші.
У 2016 році мова несподівано отримав ще одну перевагу: на ньому зручно писати ботів для месенджерів.
PHP - популярний і відносно нескладний
Популярність PHP безперечна: його використовують Facebook, «ВКонтакте», «Вікіпедія» та, до речі, vc.ru. На ньому також заснована система WordPress, під управлінням якої працює близько чверті всіх сайтів.
PHP легкий в освоєнні, проте у нього спірна репутація, і дві ці речі пов'язані. Через простоту мови в індустрії з'явилося багато новачків з непереборним бажанням професійно займатися PHP-розробкою, не вникаючи в деталі. Так з'явилося багато поганого PHP-коду. Саме через це одні люди критикують PHP, а інші заперечують, що в умілих руках він показує себе тільки з кращого боку.
У списку варіантів є і дещо менш популярні альтернативи - від Ruby до набирає обертів Go.
У програмі GeekBrains « Веб розробник »Зібрані разом і фронтенд у вигляді HTML з CSS і JavaScript, і бекенд, представлений PHP. А по Java і Python є окремі курси.
Мобільна розробка
Android: Java - для додатків і ботів
Якщо в веб-розробці можна вибрати будь-який вподобаний мову, то у випадку з Android-додатками все набагато однозначне: їх пишуть на Java. Теоретично альтернативою можуть виступати Java-сумісні мови або зв'язка JavaScript і HTML - але ні те, ні інше поки не стало масово популярним, тому у вакансіях Android-розробників зазвичай вказується вимога знати один конкретний мову.
Android-розробка на Java помітно відрізняється від розробки бекенд на тій же мові, і при спробі перейти від одного до іншого доведеться багато чому вчитися. Однак можливість змінити сферу діяльності без того, щоб починати все з нуля, виявляється ще одним аргументом на користь Java.
iOS: Swift і Objective-C - тільки для Apple
Довгі роки єдиною мовою розробки iOS-додатків був Objective-C. У 2014 році Apple представила Swift як «вдосконалений Objective-C», і зараз писати для iOS можна на обох мовах. Поки що Swift ще досить молодий, але його перспективи виглядають райдужними: ймовірно, в найближчі роки він стане основною мовою iOS-розробки. Втім, багато хто вважає, що спершу варто вивчити Objective-C.
Недолік Swift в тому, що він обмежується розробкою для iOS і macOS: в інших областях він зараз не застосовується. Гідність мови в тому, що він був створений з розрахунком на новачків, так що в якості першої мови може виявитися простіше багатьох інших. Нещодавно Apple випустила для iPad дитяче додаток Swift Playgrounds, покликане навчати мови буквально з пелюшок.
програма « Mobile-розробник »На GeekBrains включає в себе відразу і Java для Android, і Objective-C зі Swift для iOS. Якщо є бажання вивчати Android або iOS окремо, то курси забезпечать і це.
Розробка ігор
Розробка ігор з їх вимогами до продуктивності і необхідністю взаємодіяти з «залізом» - досить непроста сфера. Ігри писали навіть на C і C ++.
Згодом з'явилися популярні движки, наприклад Unity: при створенні гри він візьме на себе найважчі завдання. Розробнику в цей час можна буде зосередитися на вирішенні більш доступних проблем. Відпала необхідність писати на мові C, який з'явився ще в 1970-ті роки - замість цього підійде більш високорівнева C #, який деякі називають «відповіддю Microsoft на Java», або вже згадуваний JavaScript.
C # використовують і для багатьох інших завдань: від додатків для Windows до того ж бекенд і розробки мобільних додатків. Тому якщо спочатку мова необхідна для створення ігор, то при зміні напрямку отримані знання точно не пропадуть.
На GeekBrains є курси по розробці ігор на Unity і C # і навіть цілий комплекс курсів за професією « Розробник C # ».
Зрозуміло, список мов не обмежується згаданими: хтось віддає перевагу молодий Kotlin, створений в Петербурзі, а хтось з 1980-х звик до Smalltalk. І коло завдань теж не обмежується перерахованими: є і «низькорівневі», такі як написання драйверів.
Однак все те, що не увійшло в список, зазвичай або вузьке і нішеве (Smalltalk-вакансії в дефіциті), або погано підходить початківцям (низький рівень вимагає серйозної підготовки). Тому в першу чергу варто звернути увагу на перераховані мови, а потім неважко буде розібратися і з іншим.