Сегодня мы разберемся в том, что такое программирование и каким оно бывает.
Для начала я думаю, что стоит дать определение понятию программирование.
Заглянут в интернет, мы можем найти примерно следующее определение.
Программирование -- это процесс написания программ, бесспорно. Что же такое программа?
Программа - это последовательность действий, направленные на достижение конкретного результата в совокупности с данными которые она обрабатывает.
Хотя это определение и правильное, оно мне не очень нравится из-за того, что существует понятие алгоритм.
Алгоритм - последовательность команд, направленных на достижение определенной цели.
Получается, что программа = алгоритм + данные. Такое определение мне нравится больше. Дело в том, что сейчас многие “программисты” забывают, что такое на самом деле программа. Они думают, что программа, это написанный код, реализованный на каком-либо языке. Но на самом деле в основе любой программы лежит не что иное, а именно алгоритм. И совсем не важно на каком языке он будет реализован, ведь важно лишь то, что он будет делать. Самым важным этапом при написании программ является составление алгоритма, то есть последовательности их действий, определение входных и выходных данных. То есть что мы сможем ввести, и что мы должны получить в итоге. А программирование — это лишь процесс реализации этого алгоритма.
Алгоритм может быть представлен в виде пунктов с текстом, описывающим конкретное действие, при том считается плохим тоном использование каких-либо частей программного кода при их написании. Это должен быть текст с математическими операциями.
Выходит, что программистом может быть любой, кто в состоянии четко и ясно, описать последовательность действий для достижения цели. Не важно, насколько сложна задача, взять колбасу из холодильника или посадить последнюю ступень Фалькон 9 на землю. Но алгоритм — это пол дела, хоть и не маловажная часть программы, но это лишь идея, если мы хотим получить готовый продукт, мы должны научиться писать программный код.
Но вернемся к теме, я думаю, что вы уже поставили перед собой задачу выучить какой либо язык программирования, давайте же я вам расскажу из чего можно выбрать.
Существует два вида языков программирования.
Императивные - это те, которые определяют как будут выполнятся вычисления.
Декларативные - те, которые определяют какие вычисления будут выполняться.
Сейчас вам стоит запомнить только то, что мы будем изучать императивные языки. Одним из которых является С++. Так же вам стоит понимать, что не все, что выглядит как непонятных хакерские тексты, на самом деле языки программирования (в дальнейшем ЯП).
Существует, например HTML - это не ЯП, это язык гипертекстовой разметки. И в IT сообществе считается крайне неуважительным, если кто-то назовет HTML языком программирования. Скажите так, и вас закидают тухлыми помидорами.
Как же выбрать язык для себя? Стоит понять, чем вы хотите заниматься. Если это программирование под ПК.
То вам подходят:
C++
C#
Java
Так же существуют некоторые другие языки, которые на данных момент устарели, например Pascal.
Если вы хотите программировать под смартфоны и гаджеты.
Java
C++
C#
Если вы обратите внимание, что я написал языки в разной последовательности, по мере уменьшения рентабельности. Никто не мешает писать вам на Java для пк, но Java обязательно потребует установку и обновление “Java машины”, это специальная машина исполняющая(выполняющая), код программы. C#, к моему сожалению, занял почти последнее место в рейтинговой таблице, и как бы мне не было обидно, но область его применения крайне узка. В основном это написание ПО для ОС Windows. Но несмотря на это, писать на нем одно удовольствие. В совокупности с потрясающим .NET framework, очень сильно упростит написание ПО, а время это деньги.
Именно поэтому, стоит правильно выбрать язык программирования под конкретную задачу, а если ко всему прочему вы будете знать несколько, то сможете выбрать более подходящий.
Но существуют “индивиды”, которые считают, что писать полноценное ПО под ПК на таких языках как JavaScripts - это не просто можно, но и вполне нормально.
JavaScripts (JS) -- это скриптовый язык разработанный на основе синтаксиса языков СИ и Java, исключительно для придания интерактивности WEB страницам, но со временем никудышные WEB разработчики, ошибочно называющие себя программистами перетащили его на ПК. Я же считаю это недопустимым из-за особенностей языка, об этом мы поговорим позже.
Существует так же весьма специфичный язык ассемблера (ASM), стоит заметить, что ASM-ов очень много, их ровно столько сколько существует различных архитектур, потому что для каждого нового процессора или контроллера существует свой язык ассемблера. Программировать на Ассемблере считается крайне сложным и от части это так, в дальнейшем мы немного заглянем в него в разделе программирования микроконтроллеров.
Думаю теперь, когда вы узнали о существовании нескольких языков и уже присмотрели себе что то, я предложу вам остаться с нами и продолжить изучать конкретно С++.
Почему именно С++? Дело в том, что на нем можно писать ПО как для ПК, так и для микроконтроллеров разного типа, писать как для Windows так и для любой Unix образной системы. И даже для андроид, но как я говорил, есть более приоритетная - Java.
Так же, C/С++ являются отцами множества других языков, огромного семейства СИ образных. В которое входит и Java и C#, и еще множество других, да некоторые из которых даже не являются языками программирования. Научившись писать программы на С++ вы сможете без особых проблем пересесть на почти любой другой язык.
Думаю на этом на сегодня хватит. В ближайшее время думаю появится статья рассказывающая, что такое архитектура и что от нее зависит. Во что превращается текст программы на языке программирования. Что такое компиляция и чем оно отличается от интерпретации.
Мы не просто так показали вам множество языков, а не дали конкретно информацию по С++, дело в том, что изучить несколько языков в приделах одного курса очень сложно, хоть мы и постараемся писать на разных языках, выполняя разные задачи, мы так же надеемся на то, что со временем вы самостоятельно, на основе наших “алгоритмов” изучите какой либо другой язык.