По каким направлениям программирования лучше изучать первым. Какой язык программирования нужно изучать первым? Хочу быстро делать прототипы

Меня часто спрашивают: “Какой язык программирования нужно знать?” Этот вопрос неверный. Профессиональному программисту одного языка программирования точно не хватит. Их надо знать несколько. Поэтому правильный вопрос: “С какого языка начать?” На этот вопрос ответить очень легко, потому что в качестве языка для начинающих сейчас остался только один.

Лет тридцать назад в качестве языка для начинающих фигурировало несколько языков:

  • Фортран (я сам с него начинал)
  • Бейсик (любимый язык Билла Гейтса)
  • Паскаль (любимый язык студентов, в нем мало правил и нет исключений)

Что же мы имеем сейчас? Несмотря на то, что были разработаны сотни языков программирования, есть устойчивая тенденция к сокращению числа используемых языков. Случился естественный отбор. Выжили те языки, которые максимально приближены к используемым технологиям. Более того, как только уходит технология, то вместе с ней и пропадает интерес к языку. Например, как только пропал интерес к экспертным системам, так тут же пропал интерес и к языку Пролог. И наоборот, сейчас в качестве основной технологии автоматизации бухучета является программный комплекс 1С. Поэтому программисты для 1С весьма востребованы.

Сейчас есть несколько популярных технологий и для каждой технологии есть всего два-три языка, которыми пользуется большинство. Чуть позже мы их рассмотрим, но сначала ответим на главный вопрос: с какого же языка нужно начать?

Это вопрос серьезный, потому что изучение языка – весьма трудоемкое дело. Обидно, если усилия будут потрачены впустую. Гораздо лучше так спланировать процесс обучения программированию, чтобы одновременно и стать востребованным специалистом, и быть уверенным в том, что знания не устареют через несколько лет.

С какого же начать? Выбор очевиден – это язык Си . Почему?

Аргументов несколько.

Язык Си создавался практиками. Их не очень интересовало, как красиво и правильно выстроить модель языка. Их интересовал только результат. Поэтому на языке Си можно написать все, что угодно. Как следствие, в языке Си много исключений и нестыковок. Именно поэтому университетский профессор Никлаус Вирт решил разработать язык Паскаль, в котором нет никаких исключений и все очень логично.

Паскаль – этот отличный язык. Но только в теории. А на практике программисту приходится сталкиваться с такими задачами, что предусмотреть все нельзя. Поэтому в язык Си добавлялись все новые и новые возможности. Сейчас на языке Си можно закодить все: от программ для встроенных систем до софта для суперкомпьютеров.

Таким, образом, если вы знаете язык Си, то ваши возможности как программиста ничем не ограничены. Практически для всех платформ существуют компиляторы языка Си. Садись и работай.

2. На языке Си написаны большинство операционных систем

Сам язык Си был разработан для операционной системы UNIX. Позднее на языке Си были написаны операционные системы Windows, Linux и Mac OS.

На ядре UNIX работает почти весь Интернет. Веб-серверы также написаны на языке C.

Все это говорит о том, что знание языка Си в ближайшем будущем точно не устареет. Если вы знаете Си, то всегда сможете найти работу системного программиста.

3. На языке Си написаны большинство популярных языков программирования

Это очень интересная история. Много раз язык Си объявляли “устаревшим”, а поэтому на базе него пытались создать что-то более грандиозное.

Другой университетский профессор – Бьёрн Страуструп написал язык C++. Но по факту получилось, что он только добавил в к языку Си так называемое объектно-ориентированное программирование (ООП). Заменить язык Си ему не удалось. Эти два языка стали развиваться параллельно.

Другую попытку сделал Брэд Кокс, который создал язык Objective-C. Этот язык используется в качестве основного языка программирования в корпорации Apple.

Следующей попыткой заменить Си стала компания Sun Microsystems. Она поставила задачу сделать язык программирования, похожий на C++, но при этом этот язык должен был стать универсальным. Так появился язык Java. Он предназначен для работы на виртуальной Java-машине. Главный недостаток этого языка в том, что он существенно медленнее языка Си.

В ответ на технологию Java компания Microsoft запустила свою собственную технологию.NET и разработала для нее язык C#.

Как видите, все эти языки и находятся сейчас в топе рейтингов языков программирования.

Но они все используют ядро чистого Си. Поэтому как только вы выучите Си, то вы уже наполовину выучили C++, C#, Objective-C и Java.

Также на языке Си написаны популярные языки PHP, Javascript и Python. То есть лучший старт для изучения всех популярных языков – это сначала выучить язык Си.

4. Для языка Си существует множество материалов

В силу популярности языка Си для него написаны горы документации: книги, статьи, обучающие курсы, исходные тексты.

Для языка Си написаны множество библиотек, редакторов, компиляторов, отладчиков, профайлеров.

Вы можете с легкостью найти исходные тексты с примерами.

Все это значит, что никаких проблем с изучением Си у вас не будет. Что нельзя сказать о новых и модных языках.

5. Какие еще языки нужно знать программисту?

Как я сказал вначале, современное программирование крутится вокруг определенных технологий. Рассмотрим наиболее популярные.

Если вы пишете прикладные программы, то с большой вероятностью вам нужно будет получать информации из базы данных. Поэтому вам нужно знать язык запросов SQL.

Если вы пишете для Интернета, то вам будут нужны знания языков разметки, а также серверных и клиентских языков.

Языки разметки: HTML, XML, CSS.

Серверные языки: PHP, Java, C#, Python.

Клиентские языки: Javascript, VBScript, ActionScript (хотя последние два уже устаревают).

Для разработки мобильных приложений используются: HTML5, Java, Swift.

Пользователи Recoursia часто задаются вопросом, какой язык программирования стоит изучать. Мы подготовили краткий гид для тех, кто определяется с первым языком программирования. Хотим отметить, что он не претендует на то, чтобы быть исчерпывающим – это только очень беглый взгляд на то, чем сегодня занимаются разработчики, и какой язык программирования может быть первым, а какой – нет.

Один из достаточно популярных языков Web-программирования, который, в прочем, на белорусском рынке труда не всегда способен обеспечить своего носителя топовым по заработной плате рабочим местом. Курсы Ruby вряд ли стоит изучать для освоения первого языка программирования, потому что с высокой долей вероятности поиски работодателя затянутся, ведь вакансии для junoir’ов на Ruby появляются довольно редко.

Еще пять-семь лет назад именно Delphi был стандартным первым языком программирования - еще бы, ведь язык Pascal, который является предшественником Delphi , и был придуман для обучения школьников и студентов программированию. Но для реальной жизни Delphi уже подходит из рук вон плохо, поскольку программирование на нём оплачивается заметно ниже среднего, а новых крупных проектов на этом языке вы не найдете. Поэтому рекомендовать

Любой человек, решивший овладеть основами процесса создания компьютерных программ, задается вопросом, какие на сегодняшний день самые востребованные языки программирования, и какие из них лучше всего изучать. И если на первый вопрос ответить весьма легко, то на второй искать ответ предстоит самому ученику, исходя из его планов и потребностей.

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

программирования?

Прежде чем разбирать основные языки программирования и описывать их, необходимо разобрать само понятие.

Язык программирования - это формальная знаковая система, которая применяется для написания компьютерных программ. Как и любой другой язык, он имеет свои лексические, семантические и синтаксические правила.

Выделяют языки низкого и высокого уровней программирования. На сегодняшний день пользуются в основном вторым.

Языки программирования высокого и низкого уровней

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

Работа с любым из языков требует высокой квалификации, понимания кроме того, написание программ занимает значительное время. При этом с помощью низких можно создавать небольшие, но в то же время эффективные программы. Начинающим программистам не рекомендуется начинать свое знакомство с них.

Высокоуровневые языки программирования характеризуются наличием смысловых конструкций для описания операций. Их изучение занимает немало времени, а применение на практике требует внимательности и понимания основных структур и правил синтаксиса и лексики. Но при этом владение языками высокого уровня позволяет создавать большие, красочные, многофункциональные проекты в рекордные сроки.

К высокому уровню относятся Pascal, Java, C, C++, C#, Delphi и многие другие. Используются они для написания программного обеспечения и прикладных программ.

Наиболее востребованные языки программирования

Какие же самые востребованные языки программирования на сегодняшний день?

В последние годы наиболее популярными и востребованными считаются Java, C, C++, Python, C#, которые входят в топы языков программирования. Именно они составляют основу современных программ и используются при написании любого крупного проекта. Более 70% программистов работают с этими языками. Прогнозируется, что в ближайшие 10 лет они будут все так же востребованы, как и сегодня.

Не менее популярными считаются и Ruby, PHP, JavaScript. Большинство специалистов делает упор и на них.

В целом, вне зависимости от популярности, любой более или менее уважающий себя специалист обязан знать хотя бы несколько языков разных уровней. Связано это с тем, что большинство крупных проектов разрабатывается на разных языках. К примеру, одни модули пишут, используя Си, другие разрабатываются на Java, третьи и вовсе на Delphi.

С, С++ и С#

Для начала рассмотрим семейство Си.

Язык Си является компилируемым и Он разработан в 70-х годах. На его основе в дальнейшем были созданы такие языки как С++ и С#, Java.

C++ - мощный язык, предназначенный для создания как низкоуровневых утилит и драйверов, так и весьма внушительных приложений и комплексов программ.

Си# - современный объектно-ориентированный язык, в основе которого лежит язык Си и Си++. Имеет безопасную систему типов. Одна из отличительных его черт состоит в том, что он также весьма схож и с другим популярным языком программирования - Java.

Один из недостатков языка заключается в том, что он позволяет создавать приложения только для операционной системы Windows, и кроме того, является весьма тяжеловесным, а значит, программы, написанные на нем, занимают немало места.

Можно отметить, что во многом С, С++ и С# - языки программирования для начинающих. Освоив их, можно быть уверенным в том, что изучение нового языка займет минимум времени.

Познакомиться с ними и написать свои первые приложения можно в специальной среде Borland или Visual Studio.

JavaScript

JavaScript - язык с объектно-ориентированными возможностями. Разработан в 1996 году и сегодня один из наиболее популярных. Язык используется в основном при создании сценариев в интернете и работает в основных браузерах, таких как Internet Explorer, Firefox, Opera. Он также тесно связан с HTML и CSS, поэтому прежде чем приступать к его изучению, необходимо освоить основы данных языков.

Стоит отметить, что, несмотря на схожесть в названии, JavaScript и Java - это два совершенно разных языка.

Данный язык подойдет тем, кто ориентирован на создание браузеров и скриптов, приложений и дополнений к ним. Если вы планируете создавать собственные сайты, вам также необходимо познакомиться с ним поближе.

Java

Рассматривая самые востребованные языки программирования, нельзя не отметить Java. Это объективно-ориентированный язык программирования, который вошел в обиход с 1995 года. Он весьма легок и работает на любой Java-машине любой архитектуры. Применяется для разработки приложений под Android и iOS.

Python

Python - основная задача которого - повысить производительность разработчика, сделать код более читаемым. Он имеет небольшой список синтаксических конструкций и весьма внушительную стандартную библиотеку функций. Разработка языка началась еще в 90-х годах и продолжается до сих пор. Он применяется для разработки различных проектов, расширений и интеграции ранее разработанных приложений.

Основы языка Python можно изучать как в качестве старта для программирования, так и второго дополнительного языка.

Ruby

Ruby - язык программирования высокого уровня, вмещающий в себя части Perl, Smalltalk, Eiffel, Ada и Lisp. Используется с 1995 года. Основное преимущества языка - его простота и гибкость. Подходит как для написания небольших приложений, так и для разработки серьезных программ.

Язык PHP

PHP - довольно популярный язык для написания сценариев, разработанный для создания web-приложений. Довольно часто его также вносят в список «Языки программирования для начинающих» и рекомендуют к изучению.

С его помощью можно создавать высококачественные web-приложения в весьма сжатые сроки. Язык имеет простую и понятную структуру, что позволяет изучить его в считанные дни.

Заключение

Мы с вами рассмотрели самые востребованные языки программирования, изучение которых поможет вам в дальнейшем успешно создавать свои проекты и зарабатывать в качестве программиста. Единого мнения о том, какой из языков изучать, нет, но в то же время специалисты отмечают, что желательно знать несколько языков программирования, так как это в дальнейшем позволит расширить поле деятельности и облегчит работу над различными командными проектами.

С программированием я впервые столкнулся в школе, на уроках информатики. Это были какие-то нудные объяснения принципов n-ричных систем счисления. Ну а в качестве зачёта нужно было написать свой сайт. Тогда мне казалось, что нет более скучного занятия на свете. Как же я ошибался! К сожалению, школьная программа информатики не дает полной картины о работе IT, и как выбрать язык программирования - непонятно. Прежде, чем задаваться вопросом «Какой язык программирования выбрать для изучения», новичку следует ознакомиться с тем, какие языки существуют и в чём их различия.

Порог вхождения: высокий, низкий, средний

Среди программистов часто можно услышать о «пороге вхождения» - понятии, отражающем количество усилий, необходимое для освоения языка программирования отдельно взятым «джуном» в достаточном уровне, чтобы написать свою первую серьезную программу и найти работу. «Порог вхождения» складывается из знания:
  • особенностей синтаксиса и нюансов языка;
  • библиотек;
  • алгоритмов и структур данных.
На самом деле даже работу в Excel можно назвать своего рода программированием. Кстати, эта знакомая всем офисная программа не так проста, как кажется. Для одного порогом вхождения будет умение построить таблицу, для другого - знание сложных формул и макросов. В любом случае, этот порог невелик. Дальше идут квази-языки: например, -программирование. Затем - наиболее простые в освоении языки: например, PHP . Далее - языки с нативным (обычно, образованным от английского языка) синтаксисом, не требующие ручного взаимодействия с памятью: например, Java , JS . Затем - языки, требующие крайне внимательного обращения с памятью, структурами данных и алгоритмами: например, C , C++ . Молодые мультипарадигменные языки имеют, пожалуй, самый высокий порог вхождения, потому что для их освоения нужно не одну собаку съесть в других языках программирования: например, Scala . Но в первую очередь при выборе языка стоит определиться, чем ты хочешь заниматься дальше: разрабатывать web, enterprise, desktop или мобильные приложения.

Web или не Web?

Web

Web-программистов можно разделить на Frontend- и Backend-разработчиков . Стоит разобраться, что означают эти термины. «Фронтенд» разработчики занимаются так называемой клиентской стороной - тем, что увидит пользователь. «Бэкенд» - это программно-аппаратная часть сервиса - то, что работает на сервере. Для Frontend -разработчика, решающего какой язык программирования выбрать, must-have это JavaScript и его фреймоврки: Angular JS, React и другие. Диалекты JS не так популярны, как их родитель, но тоже могут быть полезны: CoffeeScript, TypeScript. Есть ещё flash AS, раньше были JScript и VBScript, но это помнят только динозавры =) Кроме того, необходимо разобраться в HTML и CSS .

Многие новички думают, что JavaScript и Java - это почти одно и то же, не следует путать эти языки. JS раньше назывался «LiveScript» и получил свое сегодняшнее имя именно благодаря популярности слова «Java». Для web backend ’a подойдут PHP, Python, Ruby, Pearl, Java. Здесь хочу обратить внимание на PHP - о других языках мы поговорим далее - один из самых простых в освоении ЯП, имеющий низкий порог вхождения. Ruby, судя по опросу знакомых web разработчиков, медленно, но верно набирает популярность: его любят за лаконичность и красоту.

Не Web (Enterprise, Desktop, Mobile)

Я специально объединил эти языки программирования в категорию с таким странным названием. На большинстве из них можно писать и enterprise, и desktop, и даже мобильные приложения. Python - простой в понимании ООЯП, стал невероятно популярным в последнее время в связи с развитием Machine Learning : его адепты широко используют Python. ML - достаточно молодое направление в IT, и хотя первые плоды уже получены, я бы не стал спешить с погружением в эту отрасль при выборе языка программирования. Во-первых, нужно ОЧЕНЬ хорошо разбираться в математике. Во-вторых, волна популярности может пройти так же, как и с «блокчейном» или «нанотехнологиями». Кроме того, как ты помнишь, Python используется в web разработке. C++ : классика, на основе «плюсов» строится всё и вся. Этот язык был прародителем всех популярных ООЯП, и новичку безусловно стоит обратить на него внимание. На его основе написано множество популярных приложений. Но большая вероятность «выстрелить себе в ногу» и сложный для восприятия синтаксис сводят на нет вероятность освоения новичком этого мастодонта программирования. Kotlin - Java для хипстеров - безумный микс ООП и функционального программирования. В последнее время популярен благодаря тому, что опытный разработчик, перешедший с Java на Kotlin, серьезно повышает свою производительность. Опытный девелопер быстро освоится в этом ЯП. Кстати, то же относится к Scala, но Kotlin популярен именно в Android. Java - прост для освоения новичком. В том числе, благодаря JavaRush : именно здесь я понял как выбрать язык программирования =) Синтаксис Java понятен, вероятность «выстрелить себе в ногу» имеется, но не критична.

ООП или ПОП?

Процедурный подход

Процедурно-ориентированный подход предполагает написание программы, состоящей из последовательных операторов, которые можно собрать в единое целое для эффективного решения конкретного круга задач. К таким языкам можно отнести: C , PureBasic и Pascal . Те самые, что навевают уныние на старшеклассников и студентов младших курсов. Также существует относительно молодой GO . Тем не менее, знакомство с процедурными языками очень полезно для потенциального разработчика. Для меня погружение в процедурные языки связано с системой Mathematica (Wolfram) и университетской научной деятельностью. Благодаря правильным алгоритмическим подходам и простым процедурам, линейно двигаясь от начала программы до ее конца, мне удавалось вычислять значения, актуальные для современной теоретической физики. Именно благодаря этим «последовательным» ЯП, начинаешь понимать, что иногда проще написать код, чем считать самостоятельно. Изучение ПОП дает неплохую алгоритмическую подготовку, которую работодатель почти всегда хочет видеть у кандидата при приеме на работу. Основы всего и вся в ИТ строятся именно на процедурных языках, так что не стоит их недооценивать. Кстати, новички, решающие какой язык программирования выбрать для изучения, часто думают о том, что многопоточность - прерогатива исключительно ООП. Это не так. Процедурные ЯП тоже позволяют выполнять параллельные вычисления.

Объектно-ориентированный подход

Те, кто начал с процедурных языков, чаще всего неплохо подкованы в знании математики, алгоритмов и структур данных (это связано с акцентом на эти области знаний в технических вузах). Тем не менее, в современных реалиях успешными программистами чаще становятся те, кто хорошо усвоили другой подход к программированию - объектно-ориентированный. Идеология ООП позволяет строить по-настоящему глобальные системы. Особенность такого подхода - в схожести с реальным миром:
  • различные объекты взаимодействуют между собой и существуют независимо друг от друга.
  • объекты имеют иерархию и способны перенимать или изменять поведение своих предков.
  • можно оперировать абстрактными понятиями, но взаимодействовать могут только реально существующие объекты.

Пример

Процедурно-ориентированные языки - это инструменты для решения конкретных задач. И если ваша задача претерпела изменение, пускай даже незначительное, вам скорее всего придётся тратить время и силы на переписывание всех алгоритмов.

Представим программу, описывающую автосалон, который продает легковые и грузовые автомобили, как новые, так и подержанные. В процедурном языке для каждого объекта нужно описать функции, обрабатывающие ввод или вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При объектно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:

  • Марка
  • Объем двигателя
  • Мощность
  • Год выпуска
  • Новый или б/у

И методы для ввода-вывода информации. Затем создадим объекты, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода.

Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время как ООП-язык позволит просто создать новый объект МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения.

А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с объектами.

Итак, ООП - это стиль программирования, позволяющий объединять данные и методы одной сущности и работать с ними как с цельным объектом. Сущности могут выстраиваться в иерархии и взаимодействовать между собой, не вдаваясь в подробности внутренней реализации друг друга. Для себя я выделяю три причины, по которым ООП - более прогрессивный подход:
  1. ООП предполагает независимую разработку отдельных модулей, предоставляя программисту или команде выбирать способ и границы соприкосновений и обмена информацией.

  2. Разбиение на небольшие модули намного проще для восприятия, чем монолитные процедуры. Благодаря этому сторонний разработчик быстро разберется в твоем коде, а ты при необходимости войдешь в новый проект.

  3. Изменение одного объекта может никак не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних объектов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
Нужно помнить о том, что один подход не противоречит другому, но иерархически ООП всё же находится выше. Собственно, почему я рекомендую именно Java? Я бы выделил следующие причины:

Популярность языка программирования

При выборе языка программирования нужно думать о конечной цели обучения - получении первой работы. Чтобы оценить популярность разных ЯП, я зашел на популярный рекрутинговый портал и стал смотреть на количество вакансий по разным запросам для Москвы. Результаты вы можете увидеть ниже.
Java: 277
python: 227
php: 188
c#: 147
c++: 131
ruby: 40
scala: 24
kotlin: 20
Даже популярный в последнее время Python не смог опередить Java. Но это субъективные данные: конкретный город, конкретный день. Есть официальные источники, к ним и обратимся. На октябрь 2018 по данным TIOBE Java занимает первое место. В рейтинге PYPL Java занимает второе место, далеко оторвавшись от JS и соперничая с «модным» Python.

ИТОГИ

Вот на что стоит обратить внимание новичку при выборе языка программирования:
  • Популярность (Java стабильно занимает лидирующие позиции);
  • Порог вхождения (Для Java - средний: разброс компетенций, которые требует работодатель, достаточно широк);
  • Доступные материалы (на русском языке порталов, аналогичных JavaRush нет, следовательно, пальма первенства уходит угадайте кому =));
  • Области применения: чем больше отраслей, в которых можно применять язык программирования, тем больше специалистов требуется на рынке. Про кросс-платформенность я уже говорил, но не устану это повторять.
Конечно, везде есть подводные камни, но дорогу осилит идущий: только ты сам можешь решить, какой язык программирования выбрать . Успехов в обучении!
Что ещё почитать:

Сегодня каждый, кто стремится попасть в IT, задается вопросом - какой язык программирования изучить? Все ищут универсальный ответ, который предопределит головокружительную карьеру. Да, до изобретения интернета и появления мобильных платформ можно было освоить один язык, написать на нем программу и быть востребованным разработчиком. Сегодня реалии таковы, что даже джуниорам предъявляется огромный список требований, среди которых - знание нескольких языков.

Судите сами: для веб-разработки неплохо бы владеть PHP, JavaScript, Python, Ruby, а еще HTML и CSS; в мобильной сфере - Swift, Objective-C, Java, C#. Перечень языков для создания десктопных приложений можно даже не начинать - по сути, все будут полезны. Именно поэтому мы взяли на себя ответственность назвать 5 языков программирования, которые надо изучить хотя бы шапочно, чтобы сегодня называться программистом.

Python

Python - пожалуй, самый простой язык программирования из нашего списка. Здесь минимум служебных символов, динамическая типизация, максимально понятный синтаксис. И если вы мало что поняли из прошлого предложения - это повод начать обучение именно с Python.

Несмотря на визуальную простоту, этот язык - один из мощнейших. С его помощью с одинаковой легкостью можно и работать с текстом, и строить нейронные сети. Посмотрите:

Def fib_recursion(i) : if i > 1 : return fib_recursion(i- 1 ) + fib_recursion(i- 2 ) return i for i in range(10 ) : print i, fib_recursion(i)

В этом коде мы создали собственную функцию для вычисления последовательности Фибоначчи, а потом вывели ее на экран. Всего 6 строк потребовалось, чтобы описать достаточно сложное математическое действие.

Стоит упомянуть, что на данный момент актуальны две версии: Python 2 и Python 3. Вам за основу лучше брать последнюю, так как поддержка Python 2, а значит - и активная разработка на ней, прекратится совсем скоро.

JavaScript

Следующий must have среди языков - JavaScript, для работы с ним хватит браузера. Синтаксис здесь на порядок сложнее: появляются служебные символы и конструкции с разношерстными скобками, названия функций далеко не всегда раскрывают суть действия, и даже простейший код имеет структурированный вид. Взглянем на переписанный код с функцией Фибоначчи:

Function fib_recursion(n) { return n < 1 ? 0 : n < = 2 ? 1 : fib_recursion(n - 1 ) + fib_recursion(n - 2 ) ; } console. log(fib_recursion(10 ) ) ;

Объем кода практически не изменился, зато снизилась читаемость. После изучения Python вы без проблем разберетесь, как работает структура return, и оцените удобство именно такого способа записи.

Кроме того, экосистема JavaScript богаче, чем Python. Она предлагает обилие сред разработки, редакторов кода, фреймворков, библиотек. Это еще один шаг к пониманию, как работает «взрослое» программирование.

В целом, JavaScript незначительно уступает Python по спектру решаемых задач, но его возможности «глубже». Знание этого языка пригодится при разработке программ на любых платформах.

C#

Если вы не определились с языком, значит еще не решили, что вас привлекает: веб, мобильные или десктопные приложения. Тогда ваше решение - C#, универсальный инструмент для всех направлений разработки. Чтобы создавать десктопные приложения, понадобится Visual Studio (версия Community - бесплатная). Для мира мобильных устройств установите Xamarian, а для веба пригодится ASP.NET.

Взглянем на наш код на языке C#:

static void Main(string args) { int number = 10 ; fib_recursion(number) ; } static void fib_recursion(int n, int a = 0 , int b = 1 ) { if (n = = 0 ) return ; Console. WriteLine(a) ; fib_recursion(- - n, b, b+ a) ; }

Код вновь незначительно усложнился - это связано с использованием ключевого слова static. На этом этапе вы познакомитесь с грамотным использованием памяти, областями видимости данных и полностью погрузитесь в ООП. Ну, если не успели при знакомстве с JavaScript.

Swift

Подходим к самому интересному - языкам, безупречное владение которыми поможет вам попасть в сферу мобильной разработки. Swift не вполне универсален: он еще не полностью вытеснил Objective-C из приложений для Apple, но перспективы у него блестящие.

Четвертая версия Swift вышла в 2017 году: она содержит множество улучшений для работы со строками, коллекциями; возросла надежность и многое другое. Это уже не «сырой» язык, а классический представитель верхушки рейтинга TIOBE с планомерным развитием. С помощью Swift вы можете создавать приложения для всех продуктов Apple: macOS, watchOS, iOS и любой новой системы, если она появится.

Посмотрим на код последовательности Фибоначчи:

Func fib_recursion(num1: Int, num2: Int, steps: Int) { if steps > 0 { let newNum = num1 + num2 fib_recursion(num2, num2: newNum, steps: steps- 1 ) } else { print(" result = \(num2) " ) } } fib_recursion(0 , num2: 1 , steps: 10 )

Java

Более двух десятков лет этот язык находится в списке самых востребованных, а это уже что-то значит. Сегодня он в основном ассоциируется с разработкой приложений для Android - но это лишь малая часть его возможностей. При помощи Java вы можете создавать графические виджеты для веба или писать десктопные приложения - принцип независимости от платформы и устройства в Java живет и процветает.

Кроме того, Java - великолепный язык, чтобы полноценно понять программирование: здесь реализованы все принципы ООП, организована работа с памятью и периферией, можно поупражняться с функциональным программированием.

А вот так выглядит Java-код нашей последовательности в простейшем императивном случае:

Public class MainClass { public static long fib_recursion(long number) { if ((number = = 0 ) | | (number = = 1 ) ) return number; else return fib_recursion(number - 1 ) + fib_recursion(number - 2 ) ; } public static void main (String args) { for (int counter = 0 ; counter < = 10 ; counter+ + ) System. out. printf(" Fibonacci of %d is: %d \n " , counter, fib_recursion(counter) ) ; } }

Объем может показаться чрезмерным, но в действительности это не более чем базовые конструкции, обеспечивающие понятность кода и его надежность.

Заключение

К списку можно было бы добавить ряд полезных языков вроде PHP, C++ или Ruby. Или несколько функциональных для общего развития: Lisp, Haskell, Clojure. Впрочем, до этого вы обязательно дойдете. Но сперва выбирайте специализацию, записывайтесь на курсы GeekBrains и осваивайте пять описанных must know языков.

 
Статьи по теме:
Притяжательные местоимения в русском языке
Русский язык богат, выразителен и универсален. Одновременно с этим он является весьма сложным языком. Чего стоят одни склонения или спряжения! А разнообразие синтаксического строя? Как быть, например, англичанину, привыкшему к тому, что в его родном языке
Святая праведная анна, мать пресвятой богородицы
Все о религии и вере - "молитва св праведной анне" с подробным описанием и фотографиями.Память: 3 / 16 февраля, 28 августа / 10 сентября Праведная Анна Пророчица происходила из колена Асирова, была дочерью Фануила. Вступив в брак, она прожила с мужем 7 ле
Психология богатства: привлекаем деньги и успех силой мысли
Материальное благополучие - то, к чему стремится каждый человек. Для того, чтобы деньги всегда водились в кошельке, а дела завершались успешно, важно иметь не только хорошие профессиональные навыки, но и соответствующее мышление. Силой мысли можно воплоти
Полтавское высшее военное командное училище связи
ПВИС - Полтавский Военный Институт Связи - высшее военное учебное заведение, выпускавшее офицеров-связистов для вооружённых сил СССР и Украины. История института 11 января в 1968 году было подписано Постановление Совета Министров СССР за №27, а 31 янва