Что такое языки программирования и какие они бывают

Представьте, что вы делаете ремонт в квартире: вешаете полки, собираете мебель. Без инструментов в этом деле вам не обойтись: многофункциональный шуруповерт поможет быстро собрать шкаф, просверлить отверстие в стене, вкрутить крепежные элементы, а отвертка подойдет для закрутки шурупов или реставрации мебели.
В написании программ разработчики тоже используют инструменты — языки. С их помощью можно «общаться» с компьютером: давать ему команды, управлять им, изменять данные, проводить вычисления и многое другое.
Языки программирования — это формальные языки для создания компьютерных программ.
По данным разных источников, всего существует от 250 до 9000 языков программирования, и с каждым годом их число увеличивается. Их много, потому что все они используются для разных задач. Прямо как тяжелый шуруповерт для сборки мебельного гарнитура или простая отвертка для аккуратной закрутки пары шурупов.
Для начала давайте разберем виды языков программирования, инструменты разработчика, а потом то, для каких задач они подходят.
Познакомьтесь с Фронтенд разработкой бесплатно
Виды языков программирования
Компилируемые и интерпретируемые языки
На международные деловые встречи делегаты ездят с переводчиками, так как сами они могут не понимать иностранную речь.
Процессор, «мозг» компьютера, тоже не понимает код, который пишет разработчик на языке программирования. Процессор воспринимает лишь последовательность из нулей и единиц. Понять друг друга разработчику и компьютеру тоже помогают специальные переводчики: компиляторы и интерпретаторы.

Компилятор переводит весь код в машинный (состоящий из нулей и единиц) сразу же при запуске программы. Работу компилятора можно описать так:
Программист пишет программу на языке программирования → Запускает компилятор → Компилятор переводит всю программу в машинный код и кладет его в исполняемый файл (.exe в Windows)
К компилируемым языкам программирования относят C, С++, Java, Swift, Go.
Интерпретатор переводит код в машинный построчно каждый раз, когда запускается программа.
Программы, написанные на интерпретируемых языках, чаще всего запускаются медленнее компилируемых программ — как раз из-за построчного перевода кода. Однако процесс разработки на интерпретируемом языке быстрее, чем на компилируемом, так как программисту не нужно снова и снова компилировать программу в машинный язык.
К интерпретируемым языкам программирования относят Python, PHP, JavaScript.
Читайте также:
Низкоуровневые и высокоуровневые языки
До изобретения компилятора и интерпретатора программисты вручную писали код на машинном языке. Код, созданный на таком языке, разный для каждого компьютера, так как у каждого производителя процессоров свой собственный набор инструкций к написанию кода.
Разработчики тратили много времени и усилий, чтобы писать код на машинном языке. Со временем они научили компьютер понимать языки программирования, близкие по написанию к нашим естественным языкам. Так появилось условное деление языков программирования на высокоуровневые и низкоуровневые (куда и отнесли машинный язык).
К низкоуровневым языкам также отнесли язык ассемблера — надстройку над машинным языком. На нем программистам писать код чуть проще, чем на машинном. Однако все так же не слишком удобно — язык ассемблера, как и машинный язык, не содержит функций, структур данных, списков, объектов.
Код на высокоуровневых языках легко читаем и понятен программисту. Такие языки позволяют создавать программы, не переживая о совместимости кода с разными процессорами. Высокоуровневые языки требуют компиляции или интерпретации. К таким языкам относят Java, JavaScript, Python, Ruby, PHP и другие.
Языки со статической типизацией и динамической типизацией
Представьте, что вы переезжаете и собираете коробки с вещами. Чтобы понять, в какой из коробок лежат вещи для кухни, гостиной и спальни, вы их подписываете. Это и есть типизация.
Типизация — это набор правил, по которым язык программирования классифицирует информацию. Благодаря типизации компьютер понимает, какие данные ему нужно обработать, что с ними делать и какой объем памяти займет предстоящая операция.
Если у языка нет типизации, программист может присваивать переменной любой тип данных (строку, число), а потом отнести к этой же переменной другой тип данных. Это позволяет быстрее писать код, но в таком коде проще запутаться. Так же, как можно запутаться в неподписанных коробках.
Коробки можно подписывать по-разному — и у языков программирования типизация бывает разной. Статическая типизация определяет типы данных в программе до ее запуска (во время компиляции).
Языки со статической типизацией — Java, C++, Swift.
В динамически-типизированных языках тип переменной определяется во время запуска программы. Объявлять тип переменной в явном виде не нужно: интерпретатор определяет его в процессе работы программы. Программу, созданную на языке с динамической типизацией, сложнее отлаживать и расширять ее функциональность.
Языки с динамической типизацией — Python, JavaScript, Ruby.

Универсальные и специальные языки
Существуют языки, которые могут использоваться для различных целей и областей применения. Их называют универсальными. Например, C++ подходит как для разработки несложных вычислительных программ, так и для создания высоконагруженных приложений, игр.
Специальные языки программирования (или доменно-специфические) подходят для решения определенного круга задач. Это, например, SQL, на котором можно писать запросы к базам данных, HTML или CSS, предназначенные для проектирования и верстки веб-страниц.
Читайте также:
Эзотерические языки
Существует группа языков, которая не подходит для решения практических задач, а применяется для проведения экспериментов или развлечения. Эзотерические языки дают возможность разработчикам воплощать необычные идеи, исследовать возможности языков, а также помогают развивать гибкость ума и воображение.
Так программа на языке программирования Piet выглядит как абстрактная картина , Chef записывает программы в качестве кулинарных рецептов, а команды ArnoldC представляют собой цитаты из фильмов с Арнольдом Шварценеггером.

Визуальные языки
Иногда большие объемы данных сложно описать текстовым кодом. Зато их удобно разбить по блокам и представить в виде схемы. В таких ситуациях удобно использовать визуальные языки программирования. Так код будет написан при помощи графических элементов (блоков и изображений).
Работа с визуальными языками подходит для начинающих специалистов, так как написание кода выполняется более просто и интуитивно. К визуальным языкам относят Scratch, Blockly, Substance Designer.

Какие бывают языки программирования и где они используются
Как мы уже сказали, каждый язык программирования предназначен для решения определенных задач. Давайте рассмотрим самые популярные языки и разберемся, где их применяют и в чем их особенности.
Python
Где используется. Python применяют в области машинного обучения и искусственного интеллекта, в разработке веб-приложений, аналитике данных, программировании игр. Python используют такие известные приложения, как Dropbox, Spotify, Netflix, Uber.
Насколько язык популярен. Python — один из самых простых и доступных языков программирования. Он занимает первое место в рейтинге самых популярных языков согласно индексу TIOBE за сентябрь 2023 года.
Особенности языка. У Python понятный синтаксис, большое количество библиотек и фреймворков (инструментов и правил, которые упрощают и ускоряют процесс разработки). Но у программ, написанных на Python, медленная скорость работы.
JavaScript
Где используется. JavaScript подходит для разработки интерфейса сайтов, веб-приложений, расширений для браузера, мобильных приложений, серверной части приложений (бэкенда). JS используют в разработке фронтенда и бэкенда Slack, Discord, Microsoft Teams, Uber, Amazon, Apple.
Насколько язык популярен. В индексе TIOBE за сентябрь 2023 года JavaScript занимает шестое место. А по данным рейтинга GitHub Octoverse за 2022 год, JavaScript — самый популярный язык, занимает первое место.
Особенности языка. У JS высокая скорость и производительность, большое число библиотек, баз данных, средств автоматизации тестирования и мониторинга.
Познакомьтесь с Фронтенд разработкой бесплатно
Java
Где используется. Язык программирования, который подходит для разработки бэкенда приложений и кроссплатформенных сайтов. Java используется для разработки серверной части Amazon, Netflix и Spotify.
Насколько язык популярен. По данным журнала IEEE Spectrum (Института инженеров электротехники и электроники), Java занимает второе место в рейтинге самых популярных языков программирования за 2023 год. По версии индекса TIOBE Java на четвертой строчке.
Особенности языка. У Java простой синтаксис, читаемый и компактный код, встроенные библиотеки и фреймворки.
Читайте также:
PHP
Где используется. Изначально PHP использовался для создания персональных веб-страниц. Сегодня он применяется в бэкенде, часто используется в сочетании с HTML и JavaScript. PHP применялся для разработки проекта Ted.com, видеохостинга Dailymotion, платформы BlaBlaCar.
Насколько язык популярен. Популярность PHP постепенно возрастает. В сентябре 2023 года, по данным индекса TIOBE , он расположился на восьмой строчке, опередив Go, Swift, Ruby и другие языки. А по данным рейтинга GitHub Octoverse за 2022 год, PHP занимает седьмое место.
Особенности языка. Исходный код на PHP обладает высокой читаемостью, у языка большое сообщество разработчиков. Но также у кода на этом языке низкий уровень безопасности и низкая производительность.
C/C++
Где используются. С и C++ подходят для разработки высоконагруженного программного обеспечения, игр, программ для роботов. Эти языки программирования используются для разработки Microsoft Office, Adobe Illustrator, игры World of Warcraft.
Насколько языки популярны. Согласно индексу TIOBE , в сентябре 2023 года C и C++ занимают второе и третье место в списке самых популярных языков программирования. В рейтинге IEEE за 2023 год C и C++ занимают третье и четвертое место, уступив Python и Java.
Особенности языков. С и С++ используются, когда нужно точно управлять памятью и экономить пространство. Высокая производительность и большое сообщество делают C и C++ привлекательными для IT-специалистов. Но чтобы писать хороший код на этих языках, нужно хорошо разбираться, как работает «железо» компьютера. И также у С и С++ не так много библиотек для веб-разработки, как, например, у JavaScript или Python.
Go
Где используется. Используется для создания высоконагруженного бэкенда. Go применяют для разработки таких платформ как Uber, Netflix, Facebook.
Насколько язык популярен. По версии IEEE , в 2023 году Go занимает восьмое по популярности место. Опережает Swift, Ruby, Kotlin и другие языки.
Особенности языка. У Go простой и понятный синтаксис, широкий выбор инструментов, большое количество библиотек. Go хорошо подходит для высоконагруженных веб-приложений.
Читайте также:
C Sharp
Где используется. C# создан компанией Microsoft для разработки приложений под платформу .NET. Используется для разработки корпоративных веб-сервисов и программ Tesla, складских и логических систем Ozon, 3D-графики Сбербанка.
Насколько язык популярен. Согласно индексу TIOBE за сентябрь 2023 года, C# занимает пятое место. По данным рейтинга GitHub Octoverse, C# также занимает пятую строчку.
Особенности языка. У C# большое сообщество разработчиков, компактный и легко читаемый код.
Swift
Где используется. Язык программирования, который подходит для разработки iOS и macOS-приложений. Например, мобильные приложения для iOS FireFox и WordPress были разработаны с помощью языка программирования Swift.
Насколько язык популярен. В 2023 году Swift занимает шестнадцатую строчку по данным сразу двух рейтингов: TIOBE и IEEE .
Особенности языка. У Swift простой синтаксис, высокая скорость работы программ, поддержка управления памятью. Осложнить работу на этом языке может небольшое число встроенных инструментов и библиотек.
Kotlin
Где используется. Kotlin — язык программирования, который имеет небольшой объем кода. Чаще всего используется в серверной и мобильной разработке на Android, а также при создании мобильных приложений. С помощью Kotlin были написаны Pinterest, Coursera, Evernote.
Насколько язык популярен. Входит в топ-20 самых популярных языков программирования по данным рейтинга TIOBE .
Плюсы и минусы языка. Если говорить о преимуществах Kotlin, то он полностью совместим с Java. Его исходный код отличается простотой и читаемостью. Минусом выступает низкая скорость компиляции, небольшое количество встроенных библиотек.
Можно ли быть программистом, не зная языков программирования?
Нет. Если вы не знаете ни одного языка программирования, вы не сможете передать свои идеи и инструкции компьютеру. Вспомним нашу аналогию с ремонтом: без инструментов сделать ремонт в квартире не получится. Так же и без языков программирования разработчики не смогут создавать программы.
Высококлассные специалисты не просто хорошо знают разные языки: они постоянно повышают свою квалификацию и улучшают навыки разработки. Ведь программистам важно не только писать код. Главное для них — быстро и эффективно решать проблемы пользователей с помощью программирования.
Зарплаты разработчиков на разных языках программирования
Ниже — статистика зарплат разработчиков, согласно данным «Хабр Карьеры» и вакансиям, размещенных на hh.ru:

На уровень заработной платы разработчиков влияют:
- Уровень квалификации и опыт работы. Все просто: чем выше уровень знаний, софт скиллов — тем выше зарплата.
- Тип и масштаб задачи. Чем сложнее и ответственнее задачи, тем выше оплата.
- Знание иностранных языков — это хорошее конкурентное преимущество, которое выделяет разработчиков на рынке труда и позволяет им работать в международных компаниях.
- Регион проживания. Заработная плата в Москве и Санкт-Петербурге несколько выше, чем в регионах. Но без нужды о переезде задумываться не стоит: многие компании предоставляют возможность работать удаленно.
Какой язык выбрать для старта в программировании
Начинающему специалисту необходимо решить, что и в какой области он хочет программировать. Важно понимать, какие задачи интересно решать — программировать роботов, исследовать данные или создавать приложения и игры. Так будет проще выяснить, какие инструменты потребуются для разработки.
Например, для создания веб-приложений лучше всего подойдет JavaScript. Если вы хотите попробовать себя в Data Science — выбирайте Python. Для бэкенда подойдет тот же JavaScript с Node.js, Java, PHP.
Как быть с языками, которые решают одну и ту же проблему? Тут выбор за программистом. Каждый выбирает язык по своим предпочтениям, доступности изучения, удобству и качеству комьюнити вокруг языка.
Какой стек технологий учить
Чтобы выбрать наиболее подходящий для вас стек, переходите на сайты по поиску работы, ищите наиболее востребованные направления разработки, изучайте рейтинги языков программирования и выбирайте стек, исходя из ваших знаний и зарплатных ожиданий.
Существует много бесплатных материалов, которые помогут вам сделать первый шаг в программировании. Вот несколько ресурсов, которые будут полезны новичку:
- GitHub — это место, где программисты размещают код своих проектов. Вы можете исследовать исходный код проектов и учиться на их примерах.
- Stack Overflow — это сообщество разработчиков, где вы можете задавать вопросы и получать на них ответы.
- Code Basics — бесплатные курсы по основам языков программирования.
Самый простой способ научиться программировать — много практиковаться и кодить. Попробуйте сделать простой сайт, Telegram-бота или написать программу для командной строки. А еще проходите курсы в Хекслете — они помогут понять, какая сфера в программировании подходит вам больше всего и какой стек технологий лучше изучить.
Познакомьтесь с Фронтенд разработкой бесплатно
Не только Python: 3 алгоритма выбора первого языка программирования

Инструменты и языки программирования обычно подбираются под задачу. Когда человек хочет построить дом, он первым делом не бежит на рынок за инструментами. Начинает с планирования проекта: описывает детали будущего дома и прикидывает, сколько это стоит. Без проекта сложно представить, какие инструменты, спецтехника и материалы понадобятся для строительства. Такой же подход полезно применять всем, кто хочет построить карьеру в ИТ: не зацикливаться на том, какой язык программирования учить, а попробовать разобраться, в какой сфере вы хотите работать. В программировании есть пять основных направлений. Посмотрите, что это за направления и отметьте для себя те, которые бы вам хотелось протестировать.
Embedded Development
Разработка встроенного программного обеспечения для физических устройств: холодильников, сигнализаций, бортовых компьютеров автомобилей и прочего оборудования с процессорами для обработки информации. Embedded-разработчик должен хорошо разбираться в электронике, физике, сетевых технологиях и писать код на C или C++ — быстрых и наименее трудоемких языках программирования. Это направление для всех, кто любит создавать осязаемые вещи.
Отдельно стоит выделить фулстек-разработчиков. Это программисты, которые знают фронтенд и бэкенд и могут привлекаться на всех этапах создания веб-приложения.
Если не хотите сравнивать JavaScript и Python — выбирайте JavaScript. Чтобы понять почему, посмотрите дорожные карты фронтенд и бэкенд-разработчика. JavaScript — это обязательный язык программирования для фронтендера и полезные знания для бэкендера. Кроме того, JavaScript применяется для многих задач бэкенда наравне с Python, Java, PHP и другими языками. Если вы начнете изучать фронтенд и внезапно переключитесь на бэкенд-разработку, знания JavaScript не пропадут зря.
Другие преимущества JavaScript перечислили эксперты: бывший техлид в Google с канала TechLead и основательница DappCamp Притти Касиредди с freeCodeCamp.org:
- Можно за короткое время запустить проект и поделиться результатами. Эти стимулирует больше практиковаться и нарабатывать портфолио.
- Быстрая обратная связь. Вы пишите код в IDE, обновляете браузер и сразу видите результат. Языки программирования вроде Java или Haskell так не могут — они требуют компиляции и усложняют обучение.
- Универсальность. Код на JavaScript работает в любом современном браузере, устройстве и операционной системе. Его можно использовать для разных целей: как язык сценариев, для создания веб-приложений или серверных API, для ботов и приложений под IOT-устройства, для настольных и мобильных программ, проектов виртуальной реальности.
- Доступность инструментов. Вы можете установить любую IDE и сразу писать код — больше не нужно никаких дополнительных программ. Если бы вы решили программировать под iOS или Android, то пришлось бы настраивать Xcode или Android Studio — это усложняет начало работы.
- Много вакансий для начинающих и опытных разработчиков.


Инструкция 3. Для тех, кто не выбрал специализацию и не хочет сравнивать языки программирования
- Изучайте язык C.
- Если есть время, желание и энтузиазм — C, C++ и Java.
C — это первый язык программирования, с которым студенты знакомятся во многих колледжах. Знания языка C позволяют человеку не переживать за специализацию, пройти обучение и работать в любой ИТ-отрасли. Такое мнение сложилось у индийского разработчика, преподавателя и создателя ютуб-канала Telusko.

При этом автор считает, что если новичку сложно выбрать специализацию и у него есть время на обучения, то после языка C он может выучить C++ и Java. Получится следующее: язык C даст общее представление о программировании, C++ позволит разобраться с работой объектов, а знания Java откроет дорогу к любому работодателю.
Язык C высоко оценил и другой разработчик — американец, владелец Discord-сервера и автор ютуб-канала Engineer Man. По его мнению у каждого языка есть разные уровни ценности: S — лучший язык; F — худший; A-D — промежуточные варианты. Язык C вместе с Java Script находится на высшем уровне и считаются лучшими для работы.
Engineer Man составлял рейтинг на основе опыта и оценивал языки по доступным фичам, производительности, сценариям применения, простоте изучения и удобству использования. Ниже — краткая характеристика и комментарии блогера по языкам.
Уровень S
Языки: C, Java Script. Это мощные многофункциональные языки, которые по возможности стоит изучать и использовать в первую очередь.
- C — важнейший язык, которые лежит в основе всех вычислений: на нем написано большинство операционных систем, а также интерпретаторов и компиляторов для других языков программирования. За 50 лет C почти не изменился и сейчас на н ем можно написать операционку по стандартам 1989 года. Блогер считает C единственным языков, который вышло правильно разработать с первого раза.
- Java Script — вездесущий совершенный язык, на котором легко и удобно писать код. С ним легко начать работу для тех, кого интересует фронтенд-разработка.
Уровень A
Языки: Rust, Python. Это популярные, полезные и быстрорастущие языки, которые из-за своих архитектурных особенностей не могут подняться выше.
- Rust — это язык, которые решает уникальную проблему: работает быстро как C++, не подвергает программу опасности ручного выделения памяти и за счет своего сборщика мусора работает без ущерба для производительности. Однако у Rust непростой синтаксис, поэтому новички не могут с л егкостью им пользоваться.
- Python — язык общего назначения, который из-за сверхпопулярности используется для всего. Даже для тех ситуаций, в которых он неуместен.
Уровень B
Языки: C#, C++, Ruby. Хорошие и полезные середнячки для технарей.
- C# — альтернатива Java, если нужно писать программы под Windows.
- C++ — не решает новых проблем, но включает в себя множество дополнительных функций, которых нет в C. Полезен для разработки операционных систем, высокопроизводительных вычислений, а также в разработке видеоигр.
- Ruby — язык общего назначения и веб-разработки. Стал популярным из-за фреймворка Ruby on Rails. У Ruby лаконичный синтаксис, который трудно читать.
Уровень C
Языки: Swift, Type Script, Perl, Kotlin, Go. Это удобные и функциональные языки, которые по разным причинам не смогли полностью раскрыть свой потенциал.
- Swift отлично заменил Objective-C, хорошо продуман и быстро работает. Однако его проблема — его нельзя использовать нигде за пределы экосистемы Apple.
- Type Script становится постепенно ненужным. Причина в Java Script, который ежегодно обрастает множеством дополнительных функций в синтаксисе.
- Perl — старый и сильно видоизменившийся язык, который не предлагает разработчикам уникальных функций и нужен только для обслуживания старых продуктов. Здесь непонятно, почему Engineer Man не присвоил Perl уровень D.
- Kotlin — мощный современный язык, приемник Java. Однако пока конкуренции между языками нет и Kotlin в основном используется для разработки под Android.
- Go — еще один проект от Google. Язык с отличной моделью параллелизма, который создавался для разработки веб-сервисов. Минусы: сложный синтаксис.
Уровень D
Языки: Dart, Lua, Java, PHP. Это устаревающие тяжеловесные языки, которые удерживают позиции из-за огромного количество кода, которые пока не переписать. Если можно — разработчики используются более современные языки.
- Dart — язык от Google, который не решает новых проблем. Если бы не активное продвижение и фреймворк Flutter, то про него все бы уже давно забыли.
- Java — существует около 12 альтернативных решений, которые позволяют создавать байт-код совместимый с виртуальной машиной. Новые решения не уступают Java по производительности, но более удобны для работы. Преимущество Java только в количество кода, который нужно обслуживать.
- Lua — старый язык с ограниченным количеством вариантов использования.
- PHP — простой и удобный язык для старта и использования. Создатели приложили много усилий, чтобы наладить совместимость старой и новой версий. Но ранние версии были сырыми и поэтому в версии PHP 2021 года сохраняются проблемы 1998 года. Кроме того, PHP предназначен только для веб-разработки.
Уровень F
Языки: Objective-C. Это сложный и плохо собранный язык с неудобным синтаксисом, от которого компания Apple отказалась в 2014 году. Его заменил Swift.

А вдруг я неверно выберу язык. Как быть, чтобы не прогадать?
Языки программирования появились восемьдесят лет назад и развивались вместе с эволюцией электронно-вычислительных машин. Ощутите разницу: первые языки обрабатывали команды из нулей и единиц, а сейчас — управляют нейросетями и ИИ.

В мире насчитывается около 500 языков программирования, а если технологии продолжат развитие, их количество будет увеличиваться. Причина в том, что многие языки устаревают и становятся невыгодными для коммерческой разработки. Для примера посмотрите, сколько проблем накопилось в Java и почему многие переходят на Kotlin.

Если планируете долгую карьеру в ИТ — высока вероятность, что через время вам придется выучить новый язык или сменить специализацию. Иначе вы можете стать заложником технологии — человеком, которые пишет старый код и не нужен рынку.
Хорошая новость: многие языки программирования похожи по структуре. Поэтому когда выучите первый язык, второй и последующие даются проще — у вас есть основа, на которую останется наложить синтаксис и особенности нового языка. Чтобы в этом убедиться, почитайте пост на Reddit пользователя с ником davidccoin — он начинал работать в НАСА и за карьеру сменил сотню языков, от BASIC до Python.
Выбирать первый язык программирования и сомневаться — это нормально. Главное, не переоценивать важность процедуры и не думать, что от этого зависит вся карьера.
Если технологии изменятся — вам все равно придется переучиваться, чтобы быть коммерчески востребованным специалистом. В противном случае, какой бы язык вы сейчас не выбрали, скорее всего, не прогадаете — всегда найдете работу и перспективу для роста.

«Главная ошибка собеса — подгонять ответы». Рекрутеры рассказали о найме в IT
Откуда берутся IT-рекрутеры, с какими трудностями они сталкиваются в попытках закрыть позиции и какие ошибки сами совершают на интервью — полезно знать перед тем, как искать работу.
Изображения: Артем Марков
Нашли ошибку в тексте — выделите её и нажмите Ctrl+Enter. Нашли ошибку в тексте — выделите её и нажмите кнопку «Сообщить об ошибке».
В какой последовательности изучать языки программирования?
Здравствуйте, подскажите пожалуйся с какого языка программирования лучше начинать изучение.
Сейчас меня интересуют: PHP, C#, C++, Java. Какой вариант из перечисленных легок в обучении?
Или лучше начинать с чего-то другого?
P. S. Я знаю какой ЯП предназначен для чего.
- Вопрос задан более трёх лет назад
- 6598 просмотров
Комментировать
Решения вопроса 3
Гентушник, разработчик на PHP и Symfony.
Имеет смысл начать с C/C++, чтобы понять некий базис и строгую типизацию. Потом попробовать Python/PHP и посмотреть, что такое динамическая типизация. Осознать для себя плюсы этих двух подходов. И если душа ещё не легла к какому-то из языков — можно попробовать энтерпрайзную Java или C#.
Ответ написан более трёх лет назад
Комментировать
Нравится 7 Комментировать
Архитектор распределённых систем управления
Изучайте тот, который используется в интересующей Вас сфере работы.
Поставьте перед собой задачу и попытайтесь решить её на разных языках — так Вы поймёте, что главное не язык, а алгоритм. Попробуйте порешать задачи на каком-нибудь онлайн ресурсе для программистов — например на codingame или codeforces.
Ответ написан более трёх лет назад
Комментировать
Нравится 6 Комментировать

Я бы изучал так: Python — C — C#/Java/C++.
PHP — изучать на любом этапе, кроме начального.
После изучения одного из языков последнего этапа и основ ООП другие будут
учиться очень быстро.
Ответ написан более трёх лет назад
Нравится 4 3 комментария
abbrakadabbra @abbrakadabbra
Почему лучше начать с питона, а потом только PHP? (если рассматривать только этих два языка). Вопрос начинающего в ЯП.

Лучше начать с Python.Красивый, удобный и простой язык.PHP может привить немного неправильное представление о программировании на начальном этапе.
Как учить языки программирования самостоятельно
Если вы ищете своё призвание и вам интересно программирование, вы наверняка задавались вопросом, с чего начать погружение в эту сферу. Один из возможных путей в IT — изучение языков программирования. Так вы освоите первый инструмент будущей профессии: HTML и CSS для вёрстки страниц, Java и Swift для мобильной разработки, SQL для работы с базами данных, а JavaScript и Python — для веб-разработки и не только.
Языки программирования можно освоить самостоятельно — нужно лишь большое желание, целеустремлённость и наличие времени. В этой статье мы расскажем, как учить языки программирования без высшего образования и очных курсов.
Содержание статьи скрыть
Подводные камни самостоятельного обучения
Перед тем, как разобрать методы изучения программирования, обратите внимание на трудности, с которыми можно столкнуться. Чтобы они вас не отвлекали и не съедали запас мотивации, давайте рассмотрим подводные камни заранее:
- медленный прогресс — обучение может занять больше времени, чем вы предполагали, и проходить с переменным успехом, но это не значит, что всё зря — просто наберитесь терпения и труды принесут результат;
- перфекционизм — идеала не существует ни в жизни, ни в коде. Невозможно создать одновременно компактный, легко расширяемый, производительный и быстрый код. Каким-то критерием придётся пожертвовать — не делайте идеально, делайте хорошо, чтобы код соответствовал поставленной задаче;
- неуверенность — страх может подстерегать на любом этапе обучения: не слишком ли поздно менять профессию, тот ли язык вы выбрали и получится ли дорасти хотя бы до специалиста среднего звена. Пусть уверенность вам придаёт тот факт, что вы уже решились изучить что-то новое и сделали первые шаги — а каждый новый приближает вас к заветной цели.
Зная, с какими трудностями вы сможете столкнуться и как с ними бороться, вы легко перейдёте к следующему этапу — выбору способа изучения языков.
Пошаговый план
«Как эксперту выйти на стабильные 100 000 ₽/мес»
На продаже своих услуг без всякого «наставничества»
Получить план
Способы изучения языков программирования
Чтобы изучать программирование самостоятельно с нуля, вам потребуется система, которая не даст запутаться и свернуть с маршрута. Мы подробно рассмотрим способа освоения языков программирования: книги, тренажёры, метод Франклина и онлайн-курсы.
Если начали с основ, изучайте всю полезную информацию
Для начала, рекомендуем разобраться в языках и их освоении. Для этого предлагаем подборку наших статей по теме:
Это далеко не закрытый список статей, которые помогут учить программирование с нуля. В нашем блоге вы найдёте информацию обо всех популярных языках программирования и о том, как их осваивать. Читайте, выбирайте, осваивайте.
Учебники и книги
Классический старый метод, знакомый каждому со школы — берём учебник и глава за главой изучаем новую тему. Разве что в программировании вам не обойтись без компьютера, в котором будете выполнять домашние задания и оттачивать навыки.
Мы выбрали несколько самых востребованных языков программирования и вот какие книги по ним можем посоветовать:
| Название | О чём книга |
| С++. Базовый курс , Герберт Шилдт | Вы с нуля изучите основные средства языка С++ от простых элементов и функций до расширений. Язык постоянно развивается и совершенствуется, поэтому новые издания регулярно дополняются актуальной информацией |
| C# 7 и .NET Core. Кросс-платформенная разработка для профессионалов , Марка Дж. Прайс | Пусть вас не смущает формулировка «для профессионалов», эта книга включают всю необходимую базу C# для новичков |
| Изучаем программирование на JavaScript , Эрик Фримен и Элизабет Робсон | Авторы доступным языком и с множеством примеров рассказывают, как написать универсальный код на JavaScript для любого браузера |
| Простой Python. Современный стиль программирования , Билл Любанович | Вы изучите основы Python, освоите современные библиотеки и научитесь отлаживать и тестировать код. Автор приводит много примеров, чтобы наглядно продемонстрировать теорию начинающим программистам |
| Java. Полное руководство , Герберт Шилдт | Вы поймёте, как разрабатывать и отлаживать код на Java и оптимизировать написание кода через универсальные шаблоны и научитесь создавать графические элементы для интерфейсов в библиотеках Swing и JavaFX |
При выборе книг отталкивайтесь от своего уровня знаний — нет ничего зазорного, чтобы начать изучать программирование с книг для детей. Взрослым тоже будут полезны книги вроде «Python для детей» Д. Бриггса или «Minecraft. Программируй свой мир на Python» Д. Вэйла и М. О`Хэнлона, поэтому не сбрасывайте их со счетов.
Тренажёры
Продолжая тему детства: учебный процесс не обязательно скучный и серьёзный. Учить программирование можно в игровой форме — для этого разработаны специальные тренажёры.
- Code Combat — изначально Code Combat позиционировали себя как платформа для детей и подростков, но со временем она привлекала всё больше взрослых учеников. Вы сможете с нуля освоить Python, JavaScript и C++, а играть можно индивидуально и в командах. Вы сами выбираете, какой язык изучать, и проходите игру уровень за уровнем с нарастающей сложностью;
- CodingGame — это игровая платформа для программистов, где вы научитесь писать код во время игры и можете добавить его себе в портфолио. Сайт поддерживает 25 языков программирования, можно играть самостоятельно или в команде, участвовать в международных соревнованиях и конкурсах и оттачивать навыки на практике;
- CheckIO — ресурс для обучения и практики программирования на Python и TypeScript, где можно прокачать навыки кодирования — для перехода на каждый следующий уровень игры необходимо написать новый код. В скором времени CheckIO обещают запустить тренажёр для JavaScript и других языков программирования.
Не все тренажёры доступны на русском языке, но в CheckIO есть отдельные игры на русском. Так или иначе в будущей IT-карьере вам придётся часто сталкиваться с английским языком — базовые команды и термины вы сможете различать и без продвинутого владения иностранными языками. Программистам полезно владеть не только языками программирования, но и английским — это даст возможность участвовать в международных проектах и работать на иностранные компании. Если вам нравятся такие перспективы, начинайте прокачивать язык уже сейчас.
Метод Франклина
В основе метода Франклина — память и практика. Чтобы научиться программировать, нужно выполнить 4 действия:
- Прочитать пример — предположим, вы хотите запомнить код.
- Прочитать его ещё несколько раз — при этом делайте пометки в самых интересных на ваш взгляд местах, это поможет лучше запомнить.
- Попробовать повторить — закройте книгу и делайте всё по памяти, это важно. Даже если не получается, не открывайте книгу сразу — боритесь с проблемой и решайте самостоятельно. Постарайтесь сделать дубликат кода, который вы прочитали.
- Сравнить и повторить снова — сравните свой код с представленным в примере, исправьте ошибки и допишите то, что не смогли вспомнить. Прочитайте полученный код несколько раз, удалите его, и повторите всё сначала.
Как только вы сможете воспроизвести код не глядя в заметки, можете считать, что метод сработал. Таким образом можно запоминать практически любую информацию:
Онлайн-курсы
С одной стороны, онлайн-курсы — это не совсем самостоятельный способ изучения языков программирования. И вот почему:
- готовая программа обучения — онлайн-школы подготовили для вас комплексные программы обучения, которые постоянно обновляются и актуализируются;
- наличие преподавателей — занятия ведут преподаватели-практики, которые достигли успехов в своей сфере и теперь делятся опытом с начинающими программистами;
- проверка домашних заданий — после каждого урока вы выполняете практические домашние задания и сдаёте их на проверку кураторам и преподавателям, а они в свою очередь дают обратную связь и рекомендации по улучшению результатов;
- общение с однокурсниками и кураторами — вы можете поддерживать связь с другими студентами, задавать вопросы преподавателям и кураторам или попросить совета у более опытных коллег;
- помощь со стажировками и трудоустройством — онлайн-школы заинтересованы в успешной карьере своих выпускников, поэтому они следят за успеваемостью студентов и рекомендуют их в компании-партнёры.
С другой стороны, онлайн-курсы — это много самостоятельной работы, требующей дисциплины и грамотного тайм-менеджмента. Вы сами решаете, когда и в каком количестве просматривать лекции, когда выполнять домашние задания и общаться ли в чате с однокурсниками. Вы можете проходить параллельно сразу 2 курса, совмещать онлайн-курсы с основной работой или учёбой в вузе или подрабатывать во время обучения. Поэтому онлайн-курсы — это эффективный способ самостоятельного освоить языки программирования.
Как изучать языки программирования на онлайн-курсах
Есть как минимум два возможных варианта изучения языков программирования в онлайн-школах: курсы по отдельным языкам программирования или по направлениям. Рассмотрим каждый вариант подробнее.
Онлайн-курсы по языкам программирования
Мы заглянули на github.com и узнали, какие языки программирования сегодня наиболее востребованы:
Рейтинг языков программирования github.com
Так как TypeScript — это не столько язык программирования, сколько расширение для JavaScript, остановимся на следующих языках: JavaScript, Python, Java, C# и PHP.
JavaScript — подходит для мобильных платформ iOS и Android и операционных систем Windows, macOS и Linux. На нём разрабатывают пользовательские интерфейсы сайтов и приложений.
Освоить JavaScript можно на курсах из подборки ТОП курсов по обучению JavaScript
Python — язык широко применяют в игровой и веб-разработке, аналитике данных и машинном обучении. У него много библиотек и фреймворков, которые надо осваивать параллельно с самим языком.
Становитесь python-разработчиками на онлайн-курсах по Python
Java — чаще используют для разработки мобильных приложений, но он также подходит для создания приложений для браузеров и десктопа.
C# — на нём создают мобильные и веб-приложения, игры и ПО для компьютеров и мобильных устройств. Так, большинство продуктов Microsoft Office были разработаны именно на этом языке.
Пройдите онлайн-курсы из нашей подборки курсов по С#
PHP — язык с простым синтаксисом, при это с большим количеством фреймворков и библиотек. Его применяют в веб-разработке для автоматизации повторяющихся команд и хранения данных о пользователях.
Онлайн-курсы по IT-направлениям
Языки можно изучать не только по отдельности, но и в рамках конкретных направлений, в которых вы хотите развиваться.
Фронтенд-разработка — создание внешней стороны сайтов и пользовательского интерфейса: кнопок, плашек, баннеров и др. Помимо адаптивной вёрстки, тестирования веб-приложений, графических редакторов и конструкторов сайтов фронтенд-разработчик должен освоить языки HTML, CSS, JavaScript и TypeScript.
Если вам интересно это направление, пройдите курсы по фронтенд-разработке
Бэкенд-разработка — создание «начинки» сайта и приложений и контроль за их корректной работой. Бэкенд-разработчик знаком с принципами объектно-ориентированного программирования и владеет минимум одним из языков программирования — PHP, C#, Java, Python или JavaScript.
Мобильная разработка — создание приложений и игр для мобильных устройств на iOS и Android. Специалистам необходимо освоить минимум один из языков программирования: Swift и Objective-C для iOS или Kotlin и Java для Android.
Становитесь мобильным разработчиком на курсах мобильной разработки
Data Science — это комплексная работа с данными: сбор, обработка, анализ и автоматизация анализа данных. В работе дата-сайентиста не обойтись без навыков статистики и анализа и языков SQL, R и Python.
Машинное обучение включает создание искусственного интеллекта и обучение компьютерных программ обработке данных. Яндекс и Google.Карты, стриминговые сервисы и сайты прогноза погоды работают на базе искусственного интеллекта. В машинном обучении не обойтись без Python и его библиотек.
Осваивайте это направление на курсах по машинному обучению
Научиться программировать можно самостоятельно — важно подобрать подходящий способ: книги, тренажёры, метод Франклина или онлайн-курсы. Но наиболее эффективным ваше обучение станет, если совместить несколько способов и создать индивидуальную методику, как учить программирование, отвечающую вашим талантам, темпераменту и возможностям. Учитесь на онлайн-курсах, а в метро штудируйте книгу по программированию. Тренируйте память по методу Франклина, а в награду за успех пройдите пару уровней в CodinGame. Выбирайте удобную комбинацию и осваивайте языки программирования самостоятельно и в своём стиле.