<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
	<channel>
		<title>Основы програмирования</title>
		<link>https://www.easyitway.com</link>
		<description>Видео и статьи категории "Основы программирования"</description>
		<language>ru</language>
		<item turbo="true">
			<title>Полное прохождение курса «Час кода с Minecraft»</title>
			<link>https://www.easyitway.com/programming/tpost/1mt2gb0tc1-polnoe-prohozhdenie-kursa-chas-koda-s-mi</link>
			<amplink>https://www.easyitway.com/programming/tpost/1mt2gb0tc1-polnoe-prohozhdenie-kursa-chas-koda-s-mi?amp=true</amplink>
			<pubDate>Tue, 14 Nov 2023 15:54:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования для детей</category>
			<description>В этом видео мы начинаем изучать основы программирования с помощью курсов от сайта code.org. В этом уроке мы будем проходить курс «Час кода с Minecraft».</description>
			<turbo:content>
<![CDATA[<header><h1>Полное прохождение курса «Час кода с Minecraft»</h1></header><div class="t-redactor__text">В этом видео мы начинаем изучать основы программирования с помощью курсов от сайта code.org. В этом уроке мы будем проходить курс «Час кода с Minecraft».</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/3KNphNGvk9Y" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Полное прохождение курса «Дизайнер миров Minecraft»</title>
			<link>https://www.easyitway.com/programming/tpost/h8r59usk51-polnoe-prohozhdenie-kursa-dizainer-mirov</link>
			<amplink>https://www.easyitway.com/programming/tpost/h8r59usk51-polnoe-prohozhdenie-kursa-dizainer-mirov?amp=true</amplink>
			<pubDate>Tue, 14 Nov 2023 15:54:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования для детей</category>
			<description>В этом уроке мы будем проходить курс «Дизайнер миров Minecraft».</description>
			<turbo:content>
<![CDATA[<header><h1>Полное прохождение курса «Дизайнер миров Minecraft»</h1></header><div class="t-redactor__text">В этом уроке мы будем проходить курс «Дизайнер миров Minecraft».</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/idsAMh0Kmis" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Полное прохождение курса «Путешествие Героя»</title>
			<link>https://www.easyitway.com/programming/tpost/7ykbnrcor1-polnoe-prohozhdenie-kursa-puteshestvie-g</link>
			<amplink>https://www.easyitway.com/programming/tpost/7ykbnrcor1-polnoe-prohozhdenie-kursa-puteshestvie-g?amp=true</amplink>
			<pubDate>Tue, 14 Nov 2023 15:55:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования для детей</category>
			<description>В этом уроке мы будем проходить курс «Путешествие Героя».
</description>
			<turbo:content>
<![CDATA[<header><h1>Полное прохождение курса «Путешествие Героя»</h1></header><div class="t-redactor__text">В этом уроке мы будем проходить курс «Путешествие Героя».</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/Z7NW--iDcRw" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Полное прохождение курса «Minecraft: Водное путешествие»</title>
			<link>https://www.easyitway.com/programming/tpost/tgvtjy21e1-polnoe-prohozhdenie-kursa-minecraft-vodn</link>
			<amplink>https://www.easyitway.com/programming/tpost/tgvtjy21e1-polnoe-prohozhdenie-kursa-minecraft-vodn?amp=true</amplink>
			<pubDate>Tue, 14 Nov 2023 15:55:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования для детей</category>
			<description>В этом уроке мы будем проходить курс «Minecraft: Водное путешествие».
</description>
			<turbo:content>
<![CDATA[<header><h1>Полное прохождение курса «Minecraft: Водное путешествие»</h1></header><div class="t-redactor__text">В этом уроке мы будем проходить курс «Minecraft: Водное путешествие».</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/ZPsjWUV8m1s" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Краткий обзор известных языков программирования</title>
			<link>https://www.easyitway.com/programming/tpost/maoyyxtuj1-kratkii-obzor-izvestnih-yazikov-programm</link>
			<amplink>https://www.easyitway.com/programming/tpost/maoyyxtuj1-kratkii-obzor-izvestnih-yazikov-programm?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 15:39:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Прежде чем вы захотите изучать какой-нибудь язык программирования надо знать немного об их истории и где они применяются.</description>
			<turbo:content>
<![CDATA[<header><h1>Краткий обзор известных языков программирования</h1></header><div class="t-redactor__text">Прежде чем вы захотите изучать какой-нибудь язык программирования надо знать немного об их истории и где они применяются.<br /><br />Я представляю вам краткий обзор 25 известных языков программирования. Начиная с самого известного до менее популярного. Статья сделана для новичков в сфере программирования. Вы можете почитать о каждом языке и выбрать тот который вам больше понравиться для изучения.<br /><br />Прежде чем приступить к изучению языков программирования рекомендую вам изучить курс по <a href="https://www.it-black.ru/programming#!/tfeeds/957556069161/c/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" target="_blank" rel="noreferrer noopener">основам программирования</a>.</div><h3  class="t-redactor__h3">1. JavaScript</h3><img src="https://static.tildacdn.com/tild3339-3365-4666-b964-393462623265/javascript-1.png"><div class="t-redactor__text">Прототипно-ориентированный сценарный язык программирования. JavaScript изначально создавался для того, чтобы сделать web-странички «живыми». В браузере они подключаются напрямую к HTML и, как только загружается страничка – тут же выполняются.<br /><br />Когда создавался язык JavaScript, у него изначально было другое название: «LiveScript». Но тогда был очень популярен язык Java, и маркетологи решили, что схожее название сделает новый язык более популярным.<br /><br />Планировалось, что JavaScript будет эдаким «младшим братом» Java. Однако, история распорядилась по-своему, JavaScript сильно вырос, и сейчас это совершенно независимый язык, со своей спецификацией и к Java не имеет никакого отношения.</div><h3  class="t-redactor__h3">2. Java</h3><img src="https://static.tildacdn.com/tild3034-3731-4631-b036-636638363033/java.jpg"><div class="t-redactor__text">Строго типизированный объектно-ориентированный язык программирования. Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре, с помощью виртуальной Java-машины.<br /><br />Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности, в рамках которой исполнение программы полностью контролируется виртуальной машиной.<br /><br />Изначально язык назывался Oak («Дуб») разрабатывался Джеймсом Гослингом для программирования бытовых электронных устройств. Впоследствии он был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения.</div><h3  class="t-redactor__h3">3. PHP</h3><img src="https://static.tildacdn.com/tild6133-6361-4539-b330-343933323934/php_2.png"><div class="t-redactor__text">Является распространенным интерпретируемым языком общего назначения с открытым исходным кодом (скриптовый язык). PHP создавался специально для ведения web-разработок и код на нем может внедряться непосредственно в HTML-код. Синтаксис языка берет начало из C, Java и Perl, и является легким для изучения.<br /><br />Основной целью PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц, однако область применения PHP не ограничивается только этим.</div><h3  class="t-redactor__h3">4. Python</h3><img src="https://static.tildacdn.com/tild3338-3434-4237-b533-656436613836/piton.png"><div class="t-redactor__text">Высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика, читаемости кода и на разработку веб приложений. Синтаксис ядра Python минималистичен. Код в Python организовывается в функции и классы, которые могут объединяться в модули.</div><h3  class="t-redactor__h3">5. C#</h3><img src="https://static.tildacdn.com/tild3666-3636-4161-a432-376439356434/382002_5d4a.jpg"><div class="t-redactor__text">Объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java.<br /><br />Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов, делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.</div><h3  class="t-redactor__h3">6. С++</h3><img src="https://static.tildacdn.com/tild6234-3531-4036-b832-396634616666/sshot4e491a8aa5e55.jpg"><div class="t-redactor__text">Компилируемый, статически типизированный язык программирования общего назначения. Является одним из самых распространенных языков в мире. Google Chrome, Mozilla Firefox, Winamp и линейка продуктов Adobe были разработаны с помощью С++. Кроме того, некоторые современные игры и операционные системы были разработаны на С++ из-за быстрого процессинга и компиляции.</div><h3  class="t-redactor__h3">7. Ruby</h3><img src="https://static.tildacdn.com/tild6664-3637-4561-a364-323362303732/ruby.png"><div class="t-redactor__text">Простой и читаемый язык программирования, ориентированный на разработку веб приложений. Разработанный Юкихиро Мацумто в 1995 году. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора.<br /><br />Основное назначение Ruby — создание простых и в то же время понятных программ, где важна не скорость работы программы, а малое время разработки, понятность и простота синтаксиса. Язык следует принципу «наименьшей неожиданности»: программа должна вести себя так, как ожидает программист.</div><h3  class="t-redactor__h3">8. CSS</h3><img src="https://static.tildacdn.com/tild3961-3462-4439-b731-323535353837/2015_07_17_LearnCSS.jpg"><div class="t-redactor__text">Cascading Style Sheets (каскадные таблицы стилей) формальный язык описания внешнего вида документа, написанного с использованием языка разметки.<br /><br />Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам.</div><h3  class="t-redactor__h3">9. C</h3><img src="https://static.tildacdn.com/tild6465-3333-4562-b239-616165386361/maxresdefault-1.jpg"><div class="t-redactor__text">Компилируемый статически типизированный язык программирования общего назначения. Язык Си был разработан Деннисом Ритчи в 1972 году в Bell Labs. Он является предшественником таких языков программирования как С++, Java, C#, JavaScript и Perl. По этой причине изучение этого языка ведет к понимаю и других языков. Язык С используется для разработки низкоуровневых приложений, так как считается ближе всего к аппаратному.</div><h3  class="t-redactor__h3">10. Objective-C</h3><img src="https://static.tildacdn.com/tild3738-6633-4539-b830-663565666534/ObjectiveC-logo.jpg"><div class="t-redactor__text">Компилируемый объектно-ориентированный язык программирования, используемый корпорацией Apple, построенный на основе языка Си и парадигм Smalltalk. Язык Objective-C является надмножеством языка Си, поэтому Си-код полностью понятен компилятору Objective-C. Язык используется в первую очередь для Mac OS X (Cocoa) и GNUstep — реализаций объектно-ориентированного интерфейса OpenStep. Также язык используется для iOS (Cocoa Touch).</div><h3  class="t-redactor__h3">11. Shell</h3><img src="https://static.tildacdn.com/tild6635-3331-4736-a138-653262376237/shell_1-768x432.png"><div class="t-redactor__text">Он не столько язык, сколько интерпретатор команд (командный язык). Его скрипты используются для автоматизации обновления программного обеспечения. Содержит стандартные конструкции для циклов, ветвления, объявления функций. В семействе операционных систем, совместимых с ОС UNIX, язык SHELL используется в качестве стандартного языка управления заданиями.</div><h3  class="t-redactor__h3">12. R</h3><img src="https://static.tildacdn.com/tild6636-6536-4131-b464-383036616664/image14.png"><div class="t-redactor__text">Язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU. R широко используется как статистическое программное обеспечение для анализа данных и фактически стал стандартом для статистических программ. В R используется интерфейс командной строки.</div><h3  class="t-redactor__h3">13. Perl</h3><img src="https://static.tildacdn.com/tild3436-6662-4331-a263-636636646131/perl-1.png"><div class="t-redactor__text">Высокоуровневый интерпретируемый динамический язык программирования общего назначения. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language — «практический язык для извлечения данных и составления отчётов». Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе работа с регулярными выражениями, встроенная в синтаксис. На данный момент он используется для выполнения широкого спектра задач, включая системное администрирование, веб-разработку, сетевое программирование, игры, биоинформатику, разработку графических пользовательских интерфейсов.</div><h3  class="t-redactor__h3">14. Scala</h3><img src="https://static.tildacdn.com/tild6235-6464-4132-b433-393564353331/scala-logo.png"><div class="t-redactor__text">Мультипарадигмальный язык программирования, спроектированный кратким и типобезопасным для простого и быстрого создания компонентного программного обеспечения, сочетающий возможности функционального и объектно-ориентированного программирования. Scala — программы во многом похожи на Java-программы, и могут свободно взаимодействовать с Java-кодом.</div><h3  class="t-redactor__h3">15. Go</h3><img src="https://static.tildacdn.com/tild3934-3031-4464-a435-393637383536/go.jpg"><div class="t-redactor__text">Компилируемый многопоточный язык программирования, разработанный компанией Google. Язык Go разрабатывался как язык системного программирования для создания высокоэффективных программ, работающих на современных распределённых системах и многоядерных процессорах. Он может рассматриваться как попытка создать замену языку Си. При разработке уделялось особое внимание обеспечению высокоэффективной компиляции. Программы на Go компилируются в объектный код и не требуют для исполнения виртуальной машины.</div><h3  class="t-redactor__h3">16. SQL</h3><img src="https://static.tildacdn.com/tild3233-6337-4532-b637-616230623931/sql.png"><div class="t-redactor__text">Язык структурированных запросов. формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных. SQL является прежде всего информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. Каждое предложение SQL — это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе.</div><h3  class="t-redactor__h3">17. Haskell</h3><img src="https://static.tildacdn.com/tild3635-6664-4534-a234-303832326431/Haskell_logo_falconn.png"><div class="t-redactor__text">Cтандартизированный чистый функциональный язык программирования общего назначения. Является одним из самых распространённых языков программирования с поддержкой отложенных вычислений. Отличительная черта языка — серьёзное отношение к типизации. Haskell превосходный язык для обучения и для экспериментов с сложными функциональными типами данных.</div><h3  class="t-redactor__h3">18. Swift</h3><img src="https://static.tildacdn.com/tild3963-3566-4166-a435-323038333530/appleswift.jpg"><div class="t-redactor__text">Открытый мультипарадигмальный компилируемый язык программирования общего назначения. Создан компанией Apple в первую очередь для разработчиков iOS и OS X. Swift работает с фреймворками Cocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на Objective-C. Swift задумывался как более легкий для чтения и устойчивый к ошибкам программиста язык, нежели предшествовавший ему Objective-C. Swift заимствовал довольно многое из Objective-C, однако он определяется не указателями, а типами переменных, которые обрабатывает компилятор. По аналогичному принципу работают многие скриптовые языки.</div><h3  class="t-redactor__h3">19. Matlab</h3><img src="https://static.tildacdn.com/tild6466-3436-4365-a364-316333373434/mat.jpg"><div class="t-redactor__text">Высокоуровневый интерпретируемый язык программирования, включающий основанные на матрицах структуры данных, широкий спектр функций, интегрированную среду разработки, объектно-ориентированные возможности и интерфейсы к программам, написанным на других языках программирования. Программы, написанные на MATLAB, бывают двух типов — функции и скрипты. Функции имеют входные и выходные аргументы, а также собственное рабочее пространство для хранения промежуточных результатов вычислений и переменных. Скрипты же используют общее рабочее пространство. Как скрипты, так и функции сохраняются в виде текстовых файлов и компилируются в машинный код динамически.</div><h3  class="t-redactor__h3">20. Visual Basic</h3><img src="https://static.tildacdn.com/tild3937-3965-4665-b461-653232623265/vb-1.jpg"><div class="t-redactor__text">Язык программирования, а также интегрированная среда разработки программного обеспечения, разрабатываемое корпорацией Microsoft. Язык Visual Basic унаследовал дух, стиль и синтаксис своего предка — языка BASIC, у которого есть немало диалектов. В то же время Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования.<br /><br />Visual Basic также является хорошим средством быстрой разработки RAD приложений баз данных для операционных систем семейства Microsoft Windows. Множество готовых компонентов, поставляемых вместе со средой, призваны помочь программисту сразу же начать разрабатывать бизнес-логику приложения, не отвлекая его внимание на написание кода запуска программы.</div><h3  class="t-redactor__h3">21. Delphi</h3><img src="https://static.tildacdn.com/tild6134-3632-4335-a163-653030393866/Delphi_Logo.jpg"><div class="t-redactor__text">Императивный, структурированный, объектно ориентированный язык программирования со строгой статической типизацией переменных. Основная область использования — написание прикладного программного обеспечения.<br /><br />На сегодняшний день, наряду с поддержкой разработки 32 и 64-разрядных программ для Windows, реализована возможность создавать приложения для Apple Mac OS X , а также для Google Android (непосредственно исполняемые на ARM-процессоре).</div><h3  class="t-redactor__h3">22. Groovy</h3><img src="https://static.tildacdn.com/tild6131-3636-4230-a463-313062653366/content_groovy.png"><div class="t-redactor__text">Объектно-ориентированный язык программирования, разработанный для платформы Java как дополнение к языку Java с возможностями Python, Ruby и Smalltalk. Groovy использует Java-подобный синтаксис с динамической компиляцией в JVM байт-код и напрямую работает с другим Java кодом и библиотеками. Язык может использоваться в любом Java-проекте или как скриптовый язык.</div><h3  class="t-redactor__h3">23. Visual Basic .NET</h3><img src="https://static.tildacdn.com/tild6634-6230-4663-b966-336161316631/VB-NET.png"><div class="t-redactor__text">Объектно-ориентированный язык программирования, который можно рассматривать как очередной виток эволюции Visual Basic, реализованный на платформе Microsoft .NET. VB.NET не имеет обратной совместимости с более ранней версией (Visual Basic 6.0). Развитие проектов старых версий (*.vbp) возможно только после предварительной конвертации их в формат VB.NET специальным мастером (Migration Wizard); однако, после конвертации требуется существенная ручная доработка текстов.</div><h3  class="t-redactor__h3">24. D</h3><img src="https://static.tildacdn.com/tild6430-3166-4431-b061-323065663034/photo.png"><div class="t-redactor__text">Мультипарадигмальный компилируемый язык программирования, созданный Уолтером Брайтом из компании Digital Mars. Изначально D был задуман как реинжиниринг языка C++, однако, несмотря на значительное влияние С++, не является его вариантом. Также язык испытал влияние концепций из языков программирования Python, Ruby, C#, Java, Eiffel.</div><h3  class="t-redactor__h3">25. Assembler</h3><img src="https://static.tildacdn.com/tild3830-3436-4664-b962-316630326263/assembler.jpg"><div class="t-redactor__text">Машинно-ориентированный язык низкого уровня с командами, не всегда соответствующими командам машины, который может обеспечить дополнительные возможности вроде макрокоманд; автокод, расширенный конструкциями языков программирования высокого уровня, такими как выражения, макрокоманды, средства обеспечения модульности программ.<br /><br />Язык ассемблера — система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет программисту пользоваться алфавитными мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и памяти, а также задавать удобные для себя схемы адресации. Кроме того, он позволяет использовать различные системы счисления для представления числовых констант и даёт возможность помечать строки программы метками с символическими именами с тем, чтобы к ним можно было обращаться.</div><div class="t-redactor__text">Я не стал брать все языки т.к. они не так сильно востребованы у профессиональных программистов. Моя задача выполнена, теперь Вам осталось выбрать подходящий язык и покорять его. Удачи Вам в ваших начинаниях.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Кто такой программист?</title>
			<link>https://www.easyitway.com/programming/tpost/lm5j9ei7b1-kto-takoi-programmist</link>
			<amplink>https://www.easyitway.com/programming/tpost/lm5j9ei7b1-kto-takoi-programmist?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 15:52:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Программист — это специалист, занимающийся разработкой алгоритмов и программ на основе математических моделей. Условно программистов можно разделить на три категории:</description>
			<turbo:content>
<![CDATA[<header><h1>Кто такой программист?</h1></header><div class="t-redactor__text">Приветствую тебя, путник! Если ты не знаешь, кто такой программист и программирование, тогда ты на правильном сайте.<br /><br />Для кого этот курс? Для тех, кто хочет войти в мир программирования и совсем ничего в этом не понимает. В этом курсе мы не будем рассматривать конкретный язык программирования, а только общие понятия и основы разработки программ.</div><h4  class="t-redactor__h4">Профессия программист</h4><div class="t-redactor__text">Программист — это специалист, занимающийся разработкой алгоритмов и программ на основе математических моделей. Условно программистов можно разделить на три категории:</div><div class="t-redactor__text"><strong>Прикладные программисты</strong> занимаются разработкой программного обеспечения, необходимого для работы организации. Например, сюда можно отнести программистов 1С.</div><div class="t-redactor__text"><strong>Системные программисты</strong> разрабатывают операционные системы, интерфейсы к распределенным базам данных, работают с сетями. Специалисты этой категории являются самыми редкими и высокооплачиваемыми.</div><div class="t-redactor__text"><strong>Web-программисты</strong> имеют дело с сетями, но, как правило, с глобальными, такими как Internet. Они пишут web-интерфейсы к базам данных, создают динамические web-страницы. В отечественной кадровой практике часто применяется термин инженер-программист (ведущий).</div><div class="t-redactor__text">Стать квалифицированным программистом непросто. Эта профессия требует логического мышления, математического склада ума, терпения, внимательности и вдумчивости.</div><div class="t-redactor__text">Кроме того, программисту не преуспеть без постоянного, чаще всего самостоятельного, повышения своей квалификации и пополнения профессиональных знаний, а также буквально ежедневной тренировки в написании кода.</div><div class="t-redactor__text">Работа в области программирования считается преимущественно мужской, но первым программистом является женщина. Это дочь знаменитого английского поэта Байрона – Ада Лавлейс. Именно благодаря ей появились первые приёмы управления вычислениями, которые до сих пор используются в современном программировании.</div><h4  class="t-redactor__h4">День программиста</h4><div class="t-redactor__text">11 сентября 2009 года Дмитрий Медведев подписал Указ № 1034, подготовленный Министерством связи и массовых коммуникаций Российской Федерации, который установил в России новый официальный профессиональный праздник — <strong>День программиста</strong>.</div><div class="t-redactor__text">Согласно этому документу, День программиста празднуется в России на 256-й день года — 13 сентября, а если год високосный — 12 сентября. Число 256 выбрано потому, что это количество целых чисел, которое можно выразить с помощью одного восьмиразрядного байта, а также это максимальная степень числа 2, которая меньше количества дней в году.</div><h4  class="t-redactor__h4">Что такое программирование?</h4><div class="t-redactor__text">В узком смысле слова, программирование рассматривается как кодирование — реализация одного или нескольких взаимосвязанных алгоритмов на некотором языке программирования. В более широком смысле, программирование — процесс создания программ, то есть разработка программного обеспечения.</div><div class="t-redactor__text">Компьютер понимает только машинный язык и именно на нем нужно писать инструкции, чтобы заставить компьютер выполнять нужные действия. Но машинный язык непонятно выглядит, и с ним тяжело работать — это ряды битов и байтов, последовательность которых зависит от архитектуры компьютера.</div><div class="t-redactor__text"><strong><em>Бит</em></strong><em> — единица измерения количества информации. 1 бит информации — это символ или сигнал, который может принимать два значения: включено или выключено, да или нет, высокий или низкий, заряженный или незаряженный; в двоичной системе исчисления это 1 (единица) или 0 (ноль).</em></div><div class="t-redactor__text"><strong><em>Байт</em></strong><em> — единица измерения количества информации, равная 8 битам.</em></div><div class="t-redactor__text"><strong><em>Архитектура компьютера</em></strong><em> — концептуальная структура вычислительной машины, определяющая проведение обработки информации и включающая методы преобразования информации в данные и принципы взаимодействия технических средств и программного обеспечения.</em></div><div class="t-redactor__text">Преодолеть трудности понимания машинного кода позволяет транслятор. Ассемблер — один из вариантов транслятора, преобразующий код на более понятном для человека языке в машинный. Программу, написанную на языке ассемблера для одного процессора, нельзя просто так запустить на машине с другой архитектурой.</div><div class="t-redactor__text">И проблему разных архитектур решает еще один транслятор: Компилятор — это программа, которая преобразует исходные тексты программ, написанные на языке программирования высокого уровня, в программу на машинном языке, «понятную» компьютеру. Полученный код, называемый исполняемой программой, можно устанавливать и запускать на нужном компьютере без дополнительных преобразований.</div><h4  class="t-redactor__h4">Псевдокод</h4><div class="t-redactor__text">У программистов есть еще один вариант языка, который называется псевдокодом. Это естественный язык, по структуре напоминающий язык программирования высокого уровня. Компиляторам, ассемблерам и компьютерам он непонятен, но помогает программисту определить порядок следования инструкций.</div><div class="t-redactor__text">Четких правил для псевдокода не существует. Это своего рода переходное звено между естественным языком и высокоуровневым языком программирования. Пример программы «Здравствуй, Мир!» с помощью псевдокода:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">алг ЗДРАВСТВУЙМИР
нач
вывод (&#039;Здравствуй, Мир!&#039;)
кон алг ЗДРАВСТВУЙМИР</code></pre>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Как программировали раньше</title>
			<link>https://www.easyitway.com/programming/tpost/klc1hdil61-kak-programmirovali-ranshe</link>
			<amplink>https://www.easyitway.com/programming/tpost/klc1hdil61-kak-programmirovali-ranshe?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 15:54:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Данный подход можно считать традиционным: программы писались на языке С с использованием интерфейса Windows API (Aplication Programming Interface — интерфейс прикладного программирования). Это проверенный временем подход программирования.</description>
			<turbo:content>
<![CDATA[<header><h1>Как программировали раньше</h1></header><div class="t-redactor__text">В этой статье вас ждет небольшой экскурс в историю программирования т.к. прежде чем приступать изучать программирование надо хорошо знать как наши «отцы» программировали на первых персональных компьютерах.</div><h4  class="t-redactor__h4">Язык С и Windows API</h4><div class="t-redactor__text">Данный подход можно считать традиционным: программы писались на языке С с использованием интерфейса Windows API (Aplication Programming Interface — интерфейс прикладного программирования). Это проверенный временем подход программирования.</div><div class="t-redactor__text">Основная проблема данного подхода в том, что С лаконичный язык. Любой С-программист вынужден мириться с необходимостью «вручную» управлять памятью, иметь дело с указателями и синтаксическими конструкциями. В современном мире все эти вещи упрощены, а язык (среда) сам управляет памятью, выделением и освобождением ресурсов.</div><div class="t-redactor__text">И еще С — это структурный язык программирования и ему не хватает преимуществ, которые обеспечиваются объектно-ориентированным подходом.</div><div class="t-redactor__text"><strong><em>Структурный язык программирования</em></strong><em> — это методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков.</em></div><div class="t-redactor__text"><em>В соответствии с данной методологией любая программа строится без использования оператора goto из трёх базовых управляющих структур: последовательность, ветвление, цикл; кроме того, используются подпрограммы. При этом разработка программы ведётся пошагово, методом «сверху вниз».</em></div><div class="t-redactor__text"><strong><em>Объектно-ориентированное программирование</em></strong><em> — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования.</em></div><h4  class="t-redactor__h4">Язык С++ и библиотека базовых классов</h4><div class="t-redactor__text">Многие не считают С++ полноценным языком программирования, а лишь объектно-ориентированной надстройкой над С. Сколько людей, столько и мнений. С появлением С++ программистам стало доступно объектно-ориентированное программирование и его основные принципы — инкапсуляция, наследование и полиморфизм.</div><div class="t-redactor__text">Но не смотря на поддержку ООП, программисты вынуждены мириться с деталями языка С (выделение памяти вручную, указатели и т.д.). Поэтому было решено упростить работу — так появились платформы для программирования С++. Одна из самых популярных называется MFC (Microsoft Foundation Classes — библиотека базовых классов Microsoft).</div><div class="t-redactor__text">Платформа MFS представляет исходный API-интерфейс Windows в виде набора классов, макросов и множества средств для автоматической генерации программного кода.</div><h4  class="t-redactor__h4">Visual Basic 6.0</h4><div class="t-redactor__text">Первым языком программирования, с которого многие начинают это язык Basic. Данный язык специально был предназначен для новичков т.к. очень прост. Язык был разработан в 1964 году, а вторую жизнь Basic получил с появлением Visual Basic от Microsoft.</div><div class="t-redactor__text">На Visual Basic возможно создавать сложные пользовательские интерфейсы, библиотеки программного кода и логику доступа к базам данных. Основной недостаток данного языка заключается в том, что он не является полностью объектно-ориентированным. Можно сказать, что он просто «объектный».</div><div class="t-redactor__text">Но с появлением .NET все недостатки языка устранены, но теперь он называется VB.NET. В этом современном языке поддерживается переопределение операций (перезагрузка), классическое наследование, конструкторы типов, обобщения и многое другое.</div><h4  class="t-redactor__h4">Язык Java</h4><div class="t-redactor__text">Java — это объектно-ориентированный язык программирования, который по своему синтаксису похож на С++, но при этом Java не имеет многих неприятных синтаксических аспектов, которые присутствуют в C++. И самое главное что Java — это возможность написания кросс-платформенного кода.</div><div class="t-redactor__text"><strong><em>Кроссплатформенность</em></strong><em> — способность программного обеспечения работать более чем на одной аппаратной платформе и (или) операционной системе.</em></div><div class="t-redactor__text">У Java есть одна очень важная проблема: Его очень сложно интегрировать с другими языками, поскольку он задумывался изначально как единственный язык программирования и единственная платформа для удовлетворения любой потребности.</div><h4  class="t-redactor__h4">Модель компонентных объектов</h4><div class="t-redactor__text">Модель COM (Component Object Model — модель компонентных объектов) была предшествующей платформой для разработки приложения, которая предлагалась Microsoft перед .NET. Впервые COM появилась в 1993 году.</div><div class="t-redactor__text">Модель COM позволяет строить типы в соответствии с правилами COM и получать блок многократно используемого кода. Такие двоичные блоки кода называют «серверами COM». Одно из преимуществ сервера COM в том, что к нему можно получить доступ, используя другой язык программирования.</div><div class="t-redactor__text">Модель COM можно считать успешной объектной моделью, однако её внутреннее устройство является очень сложной для восприятия, именно поэтому программистам требуется много времени на изучение этой модели.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Управляющие структуры</title>
			<link>https://www.easyitway.com/programming/tpost/5h4036y3z1-upravlyayuschie-strukturi</link>
			<amplink>https://www.easyitway.com/programming/tpost/5h4036y3z1-upravlyayuschie-strukturi?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 15:56:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Без управляющих структур программа представляла бы собой всего лишь набор последовательно выполняемых команд. Рассмотрим пример инструкции:</description>
			<turbo:content>
<![CDATA[<header><h1>Управляющие структуры</h1></header><div class="t-redactor__text">Без управляющих структур программа представляла бы собой всего лишь набор последовательно выполняемых команд. Рассмотрим пример инструкции:</div><div class="t-redactor__text">«Двигайтесь по Главной улице на север, пока слева не увидите школу. Если улица перекрыта из-за ремонта, поверните направо на 17-ю улицу». Данная инструкция сложна и её можно написать с помощью управляющих структур.</div><h4  class="t-redactor__h4">Конструкция if-then-else</h4><div class="t-redactor__text">В приведенном примере Главная улица может оказаться перекрытой из-за ремонта. Для такой ситуации требуется наиболее понятные управляющие структуры <strong>if-then-else</strong>(«если-тогда-иначе»). Общий синтаксис выглядит так (в соответствии с синтаксисом языка C):</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">if (условие) then
{
  Набор команд, выполняемый при соблюдении условия;
}
else
{
  Набор команд, выполняемый, когда условия не соблюдаются;
}</code></pre><div class="t-redactor__text">Если представить описание движения по маршруту в виде конструкции if-then-else, получится следующий псевдокод:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">Ехать по Главной улице;
if (улица перекрыта) then
{
  Повернуть направо на 17-ю улицу;
  Повернуть налево на Советскую улицу;
  Повернуть направо на 18-ю улицу;
}
else
{
 Повернуть направо на 18-ю улицу;
}</code></pre><div class="t-redactor__text">Каждая команда занимает отдельную строку, наборы команд, выполняющихся при соблюдении условия, заключены в фигурные скобки и, чтобы структура кода была понятнее, расположены отступом. Также есть языки (например BASIC, Pascal), синтаксис которых требует всегда использовать ключевое слово then.<br /><br />Поясним, как используется условный оператор if-then-else в Pascal на простом примере:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">var
  t: real; { Температура воздуха }

begin
  writeln(&#039;Введите температуру воздуха:&#039;);
  readln(t); 
  if t &gt; 0 then writeln(&#039;вода не замерзла&#039;)
  else writeln(&#039;вода замерзла&#039;);
  readln
end.</code></pre><div class="t-redactor__text">Здесь идет проверка температуры t воздуха – если она больше 0 (условие t &gt; 0 после if), то выполняется оператор после then и мы увидим ответ: «вода не замерзла»; в противном случае (то есть при температуре от 0 и ниже: t ≤ 0 — это условие противоположное по отношению к предыдущему t &gt; 0) выполнится оператор после else и ответ будет другим: «вода замерзла» (без кавычек).</div><h4  class="t-redactor__h4">Циклы while/until</h4><div class="t-redactor__text">Базовая концепция программирования — управляющая структура <strong>while</strong>, представляющая собой разновидность цикла. Цикл нужен для того чтобы выполнять набор команд более одного раза. Ключевое слово while означает «пока». Соответственно, набор команд выполняется, пока соблюдается заданное условие. Программа действий для голодной мыши будет выглядеть так:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">while (ты голодна)
{
  Найти еду;
  Съешь еду;
}</code></pre><div class="t-redactor__text">Две следующие за оператором while команды будут выполняться, пока мышь чувствует голод. Существует и другая версия цикла, с ключевым словом <strong>until</strong>(«пока не»). Она применятся, например, в языке Perl(в C такой синтаксис не используется). Программа с until примет такой вид:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">until (ты сыта)
{
  Найди еду;
  Съешь еду;
}</code></pre><h4  class="t-redactor__h4">Цикл for</h4><div class="t-redactor__text">Цикл <strong>for</strong> обычно служит для выполнения команд заданного количества раз. Инструкцию «поверните направо на Конечную улицу и двигайтесь еще 10 миль» можно превратить в такой цикл for:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">for (10 итераций)
  Проехать 1 милю прямо;</code></pre><div class="t-redactor__text">По своей сути, цикл for — это цикл while со счетчиком. Указанную инструкцию можно записать так:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">while (значение счетчика меньше 10)
{
  Проехать 1 милю прямо;
..Увеличить значение счетчика на 1;
}</code></pre><div class="t-redactor__text">Нагляднее это выглядит в псевдокоде, напоминающем язык C:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">for (i=0; i&lt;10; i++)
  Проехать 1 милю прямо;</code></pre><div class="t-redactor__text">i - это имя счетчика, а оператор for разбит на три части, отделенные друг от друга точкой с запятой. В первой объявляется счетчик и ему присваивается начальное значение. Вторая часть напоминает цикл while: пока выполняется условие для значения счетчика, цикл работает.<br /><br />Последняя часть указывает, что должно происходить со счетчиком на каждой итерации цикла. i++ - это короткий способ сказать: "добавить 1 к счетчику с именем i".<br /><br />Теперь можно взять все изученные управляющие конструкции и записать приведенный в начале статьи пример в виде следующего псевдокода:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">Начать движение на север по Главной улице;
while (слева нет школы)
   Двигаться по Главной улице;
if (улица перекрыта) then
{
  Повернуть направо на 17-ю улицу;
  Повернуть налево на Советскую улицу;
  Повернуть направо на 18-ю улицу;
}
else 
{
  Повернуть направо на 18-ю улицу;
  Повернуть налево на Конечную улицу;
}
for (i=0; i &lt; 10; i++)
  Проехать 1 милю прямо;
Остановиться у дома 666 по Конечной улице;</code></pre>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Переменные</title>
			<link>https://www.easyitway.com/programming/tpost/9suim1ots1-peremennie</link>
			<amplink>https://www.easyitway.com/programming/tpost/9suim1ots1-peremennie?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 16:00:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Переменная — это объект содержащий изменяемые данные. Но ещё существуют и переменные, значение которых не меняется.</description>
			<turbo:content>
<![CDATA[<header><h1>Переменные</h1></header><div class="t-redactor__text">С этой статьи я начинаю цикл «основных концепций программирования». Это универсальные концепции, которые присутствуют во многих языках и отличаются только синтаксисом. Начнем с первой универсальной концепции под названием переменная.<br /><br /><strong>Переменная</strong> — это объект содержащий изменяемые данные. Но ещё существуют и переменные, значение которых не меняется. Их называют константами. Например скорость автомобиля можно описывать переменной т.к. она изменяется, а его цвет — константой.<br /><br />Перед использованием переменной во многих языках её сначала объявляют и указывают тип. Объявление переменных похоже на перечисление ингредиентов в кулинарных рецептах, то есть это подготовительные действия перед началом выполнения программы. Все переменные хранятся в памяти, а их объявление даёт компилятору возможность более эффективно её использовать т.к. любая переменная — это участок памяти.<br /><br />Тип, к которому мы причисляем переменную в языке С, описывает, какую именно информацию мы можем в ней хранить. Чаще всего используются типы: int (целые числа), float (числа с десятичной точкой) и char (один символ). Примеры объявления переменных:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">int a, b;
float g;
char x;</code></pre><div class="t-redactor__text">Теперь переменные a и b определены как целочисленные, переменная g принимает значения в формате десятичной дроби (например 3,14), а в переменную x можно записать символ, например «А» или «w». Значение присваивается с помощью оператора равно (=) во время объявления переменной или в любой последующий момент. Например:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">int a = 20, b;
float g;
char x = &#039;A&#039;;

g = 3,14;
x = &#039;w&#039;;
b = a + 10;</code></pre><div class="t-redactor__text">После выполнения этих команд в переменной a присвоется значение 20, g будет содержать число 3,14, в x можно будет найти символ ‘w’, а b получит значение 30, так как оно является результатом сложения чисел 20 и 10.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Арифметические операторы</title>
			<link>https://www.easyitway.com/programming/tpost/p3osi75431-arifmeticheskie-operatori</link>
			<amplink>https://www.easyitway.com/programming/tpost/p3osi75431-arifmeticheskie-operatori?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 16:02:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Арифметические операторы используются для вычислений так же, как и в алгебре. Допустимые операнды должны иметь числовые типы. Пример простого арифметического оператора — выражение a = c + 5. </description>
			<turbo:content>
<![CDATA[<header><h1>Арифметические операторы</h1></header><div class="t-redactor__text"><strong>Арифметические операторы</strong> используются для вычислений так же, как и в алгебре. Допустимые операнды должны иметь числовые типы. Пример простого арифметического оператора — выражение a = c + 5. В языках программирования арифметические действия выполняются при помощи следующих операторов:</div><img src="https://static.tildacdn.com/tild6532-3839-4965-b432-386666353863/2023-11-17_16-03.png"><div class="t-redactor__text">Все эти операции Вам известны. Поэтому сразу перейдем к тому, как заставить программу выполнить эти действия. В языках программирования существует ряд сокращений для обозначения арифметических операций. С одним из них, используемым преимущественно в циклах for, вы уже должны быть знакомы, если читали предыдущие статьи.</div><img src="https://static.tildacdn.com/tild3938-6363-4466-b236-633265373832/2023-11-17_16-03_1.png"><div class="t-redactor__text">В комбинации с другими арифметическими операциями эти сокращения позволяют получать более сложные выражения.<br /><br />Есть некоторые различия между i++ и ++i. Первая запись означает, что значение переменной i нужно увеличить на 1 после выполнения арифметической операции, в то время как второе выражение увеличивает значение i на 1 перед выполнением арифметической операции. Рассмотрим пример:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">int a, b;
a = 7;
b = a++ * 5;</code></pre><div class="t-redactor__text">После выполнения этих команд переменная b получит значение 35, а переменная a — значение 8, потому что сокращенная запись b = a++ * 5; эквивалентна следующим операциям:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">b = a * 5;
a = a + 1;</code></pre><div class="t-redactor__text">Соответственно, в случае записи b = ++a * 5; сложение будет выполняться перед умножением, что эквивалентно следующим операциям:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">a = a + 1;
b = a * 5;</code></pre><div class="t-redactor__text">В результате изменения порядка переменная b получит значение 40, а переменная a по-прежнему будет содержать 8.<br /><br />Очень часто в программах требуется изменять значения переменных. Например нам нужно прибавить к значению существующей переменной 10, сохранив результат в неё же (i = i + 10). Для этого существует специальная форма записи:</div><img src="https://static.tildacdn.com/tild6662-6634-4364-a337-313936343035/2023-11-17_16-05.png">]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Операторы сравнения</title>
			<link>https://www.easyitway.com/programming/tpost/g7ktjxsgd1-operatori-sravneniya</link>
			<amplink>https://www.easyitway.com/programming/tpost/g7ktjxsgd1-operatori-sravneniya?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 16:07:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Операторы сравнения, как это видно из их названия, позволяют сравнивать между собой два значения.</description>
			<turbo:content>
<![CDATA[<header><h1>Операторы сравнения</h1></header><div class="t-redactor__text">Операторы сравнения, как это видно из их названия, позволяют сравнивать между собой два значения. В большинстве языков программирования для операторов сравнения существует сокращенный синтаксис:</div><img src="https://static.tildacdn.com/tild3537-6238-4738-a135-646466636136/2023-11-17_16-07.png"><div class="t-redactor__text">Всё содержимое таблицы вам должно быть известно из школьного курса, внимание следует обратить разве что на сокращённое обозначение эквивалентности в виде знака равенства. Двойной знак равенства используется для сравнения, в то время как одинарный играет роль оператора присваивания.<br /><br />Например, запись a = 10 означает «Поместите в переменную a значение 10», а запись a == 10 читается как «Проверьте, равна ли переменная a числу 10». Некоторые языки, например Pascal, используют для сравнения оператор :=, чтобы не создавать визуальную путаницу.<br /><br />Также следует помнить, что восклицательный знак (!) обычно означает отрицание. Он меняет значение любого выражения на противоположное:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">!(a &lt; b) означает (a &gt;= b)</code></pre><div class="t-redactor__text">Операторы сравнения соединяются в цепочки с помощью логических операторов ИЛИ и И.</div><img src="https://static.tildacdn.com/tild3062-3933-4738-b336-333033333731/2023-11-17_16-08.png"><div class="t-redactor__text">В первом примере два условных выражения, соединённые оператором ИЛИ, будут иметь значение true (истина), если a меньше b ИЛИ если a меньше c. Во втором примере два условных выражения соединяются оператором И.<br /><br />Поэтому результат будет иметь значение true, если a меньше, чем b И a не меньше, чем c. Выражения такого типа группируются с помощью скобок и состоят подчас из множества элементов.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Основы алгоритмизации</title>
			<link>https://www.easyitway.com/programming/tpost/juik421fb1-osnovi-algoritmizatsii</link>
			<amplink>https://www.easyitway.com/programming/tpost/juik421fb1-osnovi-algoritmizatsii?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 16:09:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Понятие алгоритма, являющееся фундаментальным понятием математики и информатики, возникло задолго до появления вычислительных машин.</description>
			<turbo:content>
<![CDATA[<header><h1>Основы алгоритмизации</h1></header><div class="t-redactor__text">Понятие алгоритма, являющееся фундаментальным понятием математики и информатики, возникло задолго до появления вычислительных машин.</div><div class="t-redactor__text">Первоначально под словом «алгоритм» понимали способ выполнения арифметических действий над десятичными числами. В дальнейшем это понятие стали использовать для обозначения любой последовательности действий, приводящей к решению поставленной задачи.</div><div class="t-redactor__text">Само же слово алгоритм появилось в Средние века, когда европейцы познакомились со способами выполнения арифметических действий, описанными узбекским математиком Мухаммедом бен Муса аль-Хорезми. Слово алгоритм — европеизированное произношение слов аль-Хорезми.</div><div class="t-redactor__text"><strong>Алгоритм</strong> — понятное и точное предписание исполнителю на выполнение конечной последовательности действий, приводящей от исходных данных к искомому результату.</div><h4  class="t-redactor__h4">Свойства алгоритма</h4><div class="t-redactor__text">Значение слова алгоритм очень схоже со значением слов рецепт, инструкция. Однако любой алгоритм, в отличие от рецепта или способа, обязательно обладает следующими свойствами:</div><div class="t-redactor__text"><ul><li>Выполнение алгоритма разбивается на последовательность законченных действий-шагов. Только выполнив одно действие (команду), можно приступать к исполнению следующего. Это свойство алгоритма называется <strong>дискретностью</strong>. Произвести каждое отдельное действие исполнителю предписывает специальное указание в записи алгоритма (команда);</li><li><strong>Понятность</strong> — алгоритм не должен содержать предписаний, смысл которых может восприниматься исполнителем неоднозначно, т.е. запись алгоритма должна быть настолько четкой и полной, чтобы у исполнителя не возникало потребности в принятии каких-либо самостоятельных решений. Алгоритм всегда рассчитан на выполнение “не размышляющего” исполнителя;</li><li><strong>Детерминированность</strong> (определенность и однозначность). Каждая команда алгоритма определяет однозначное действие исполнителя, и должно быть однозначно определено, какая команда выполняется следующей. То есть если алгоритм многократно применяется к одному и тому же набору исходных данных, то на выходе он получает каждый раз один и тот же результат;</li><li><strong>Результативность</strong> — исполнение алгоритма должно закончиться за конечное число шагов, и при этом должен быть получен результат решения задачи. В качестве одного из возможных результатов может быть и установление того факта, что задача решений не имеет;</li><li><strong>Массовость</strong> — алгоритм пригоден для решения любой задачи из некоторого класса задач, т.е. алгоритм правильно работает на некотором множестве исходных данных, которое называется областью применимости алгоритма.</li></ul></div><h4  class="t-redactor__h4">Виды алгоритмических конструкций</h4><div class="t-redactor__text">Для записи алгоритмов существуют разные способы: текстово-формульная запись, блок-схема, машина Тьюринга, машина Поста, программа на алгоритмическом языке и др.</div><div class="t-redactor__text">Каждый алгоритм записывается в системе команд исполнителя. Вне зависимости от выбранной формы записи элементарные шаги алгоритма объединяются в алгоритмические конструкции (структуры): последовательные, ветвящиеся, циклические, вспомогательные алгоритмы и рекурсивные.</div><div class="t-redactor__text">В 1966 году Бом и Джакопини доказали, что для записи любого сколь угодно сложного алгоритма достаточно трех основных алгоритмических конструкций: последовательных, ветвящихся, циклических.</div><div class="t-redactor__text">Для записи алгоритма существует общая методика:</div><div class="t-redactor__text"><ol><li>Каждый алгоритм должен иметь имя, которое раскрывает его смысл.</li><li>Необходимо обозначить начало и конец алгоритма.</li><li>Описать входные и выходные данные.</li><li>Указать команды, которые позволяют выполнять определенные действия над выделенными данными.</li></ol></div><div class="t-redactor__text">Общий вид алгоритма:</div><div class="t-redactor__text"><ul><li>название алгоритма;</li><li>описание данных;</li><li>начало;</li><li>команды;</li><li>конец.</li></ul></div><h4  class="t-redactor__h4">Этапы решения задачи на ЭВМ</h4><div class="t-redactor__text">Работа по решению любой задачи с использованием компьютера делится на следующие этапы:</div><div class="t-redactor__text"><ol><li>Постановка задачи.</li><li>Формализация задачи.</li><li>Построение алгоритма.</li><li>Составление программы на языке программирования.</li><li>Отладка и тестирование программы.</li><li>Проведение расчетов и анализ полученных результатов.</li></ol></div><div class="t-redactor__text">Часто эту последовательность называют технологической цепочкой решения задачи на ЭВМ. К программированию в этом списке относятся пункты 3, 4, 5.</div><div class="t-redactor__text">На этапе постановки задачи должно быть четко сформулировано, что дано и что требуется найти. Здесь очень важно определить полный набор исходных данных, необходимых для получения решения.</div><div class="t-redactor__text">Второй этап — формализация задачи. Здесь чаще всего задача переводится на язык математических формул, уравнений, отношений. Если решение требует математического описания какого-то реального объекта, явления или процесса, то формализация равносильна получению соответствующей математической модели.</div><div class="t-redactor__text">Третий этап — построение алгоритма. Опытные программисты часто сразу пишут программы на языках, не прибегая к каким-либо специальным способам описания алгоритмов (блок-схемам, псевдокодам). Однако, в учебных целях полезно использовать эти средства, а затем переводить полученный алгоритм на язык программирования.</div><div class="t-redactor__text">Первые три этапа предусматривают работу без компьютера. Дальше следует собственно программирование на определенном языке, в определенной системе программирования. Последний (шестой) этап — это использование уже разработанной программы в практических целях.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Функции в программировании</title>
			<link>https://www.easyitway.com/programming/tpost/mxrms1hk41-funktsii-v-programmirovanii</link>
			<amplink>https://www.easyitway.com/programming/tpost/mxrms1hk41-funktsii-v-programmirovanii?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 16:11:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Функция в программировании представляет собой обособленный участок кода, который можно вызывать, обратившись к нему по имени, которым он был назван. При вызове происходит выполнение команд тела функции.</description>
			<turbo:content>
<![CDATA[<header><h1>Функции в программировании</h1></header><div class="t-redactor__text">Функция в программировании представляет собой обособленный участок кода, который можно вызывать, обратившись к нему по имени, которым он был назван. При вызове происходит выполнение команд тела функции.<br /><br />Функции можно сравнить с небольшими программками, которые сами по себе, т.е. автономно, не исполняются, а встраиваются в обычную программу. Нередко их так и называют – подпрограммы.<br /><br />Функции также при необходимости могут получать и возвращать данные. Только обычно они их получают не с ввода (клавиатуры, файла и др.), а из вызывающей программы. Сюда же они возвращают результат своей работы.</div><h4  class="t-redactor__h4">Примеры функций в разных языках программирования</h4><div class="t-redactor__text">JavaScript</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">function max(a, b) {
  return a &gt; b ? a : b;
}</code></pre><div class="t-redactor__text">С++</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">void name(string text)
{
    cout &lt;&lt; text;
}</code></pre><div class="t-redactor__text">Язык C</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">int factorial(int x)
{
 int i;
 for(I = 1; i &lt; x; i++)
  x *= i;
 return x;
}</code></pre><div class="t-redactor__text">C#</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">public void Name(string text)
{
    System.Console.WriteLine(text);
}</code></pre><div class="t-redactor__text">Java</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">public void name(String text) {
    System.out.println(text)
}</code></pre><div class="t-redactor__text">Pascal</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">procedure name(var text: string)
begin
  write(text);
end;</code></pre><div class="t-redactor__text">PHP</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">function name($text)
{
    echo $text;
}</code></pre><div class="t-redactor__text">Python</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">def func(text):
    print(text)</code></pre>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Жизненный цикл программного продукта</title>
			<link>https://www.easyitway.com/programming/tpost/9yt73nupx1-zhiznennii-tsikl-programmnogo-produkta</link>
			<amplink>https://www.easyitway.com/programming/tpost/9yt73nupx1-zhiznennii-tsikl-programmnogo-produkta?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 16:14:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Жизненный цикл программного продукта представляет собой непрерывный процесс, начинающийся с момента принятия решения о создании программного обеспечения и заканчивающийся в момент полного изъятия его из эксплуатации.</description>
			<turbo:content>
<![CDATA[<header><h1>Жизненный цикл программного продукта</h1></header><div class="t-redactor__text">Любой разработчик программного продукта должен хорошо понимать и разбираться в этапах жизненного цикла программного обеспечения. В этой статье Вы познакомитесь с этой темой подробнее.</div><div class="t-redactor__text">Жизненный цикл программного продукта представляет собой непрерывный процесс, начинающийся с момента принятия решения о создании программного обеспечения и заканчивающийся в момент полного изъятия его из эксплуатации.</div><h4  class="t-redactor__h4">Этапы жизненного цикла программного продукта</h4><h4  class="t-redactor__h4">1. Анализ требований</h4><div class="t-redactor__text">Данная стадия является одной из важнейших, поскольку определяет успех всего проекта. На данном этапе формируются цели и задачи проекта, устанавливается область применения программного обеспечения (ПО) и определяются граничные условия, выделяются базовые сущности и взаимосвязи между ними.</div><div class="t-redactor__text">Определяются сроки и стоимость разработки ПО, формируется и подписывается техническое задание на разработку ПО.</div><h4  class="t-redactor__h4">2. Стадия проектирования</h4><div class="t-redactor__text">Проектирование включает в себя определение архитектуры программной системы, её функций, внешних условий функционирования, интерфейсы и распределение функций между пользователями и системой, требования к программным и информационным компонентам. Проектирование системы проводится на основе результатов формирования требований.</div><div class="t-redactor__text">Разрабатывается функциональная спецификация ПО, выбирается архитектура системы, определяется наиболее подходящая СУБД, проектируются структуры хранения данных, оговариваются требования к аппаратному обеспечению, определяется набор организационных мероприятий, которые необходимы для внедрения ПО, а также перечень документов регламентирующих его использование.</div><h4  class="t-redactor__h4">3. Кодирование (программирование)</h4><div class="t-redactor__text">На данной стадии строятся прототипы как целой программной системы, так и её частей, осуществляется физическая реализация структур данных, разрабатывается программные коды, выполняется отладочное тестирование, создается техническая документация. В результате этапа кодирования появляется рабочая версия продукта.</div><h4  class="t-redactor__h4">4. Тестирование и отладка</h4><div class="t-redactor__text">Тестирование ПО тесно связано с этапами проектирования и реализации. В систему встраиваются специальные механизмы, которые дают возможность производить тестирование программного обеспечения на соответствие требований к нему, проверку оформления и наличие необходимого пакета документации.</div><div class="t-redactor__text">Результатом тестирования является устранение всех недостатков программного продукта и заключение о её качестве.</div><h4  class="t-redactor__h4">5. Эксплуатация и сопровождение</h4><div class="t-redactor__text">Ввод в эксплуатацию ПО предусматривают установку программной системы, обучение пользователей, документирование. Поддержка функционирования ПО должна осуществляться группой технической поддержки разработчика.</div><div class="t-redactor__text">Сопровождение – это процесс адаптации поставляемого ПО к новым условиям, внесения изменений в ПО и соответствующую документацию, вызванных возникшими проблемами или потребностями в модификации при сохранении неизменными его основных функций.</div><div class="t-redactor__text">Вывод из эксплуатации программного обеспечения осуществляется в результате его морального, прихода на смену более совершенных продуктов или по иным объективным или субъективным причинам.</div><h4  class="t-redactor__h4">Стандарты процессов жизненного цикла программного продукта</h4><div class="t-redactor__text"><a href="https://drive.google.com/open?id=1UmBAoZMr54aDkOHkq2gx9cfAmPVp0SED" target="_blank" rel="noreferrer noopener">1. Международный стандарт ISO/IEC 1227: 1995-08-01, первая редакция которого подготовлена в 1995 г. Объединённым комитетом ISO/IEC JTC1 »Информационные технологии, … проектирование программного обеспечения».</a></div><div class="t-redactor__text"><a href="https://drive.google.com/open?id=1k7zgLcT3L71FJV4t4xuGifO1kK0sBuq9" target="_blank" rel="noreferrer noopener">2. ГОСТ Р ИСО/МЭК 12207-2010 Информационная технология (ИТ). Системная и программная инженерия. Процессы жизненного цикла программных средств.</a></div><div class="t-redactor__text"><a href="https://drive.google.com/open?id=1o84lfEJSLjUJbl4zx1wHiAL00fUPfYZP" target="_blank" rel="noreferrer noopener">3. Отечественный комплекс стандарта ГОСТ 34 (ГОСТ 34.601-90, ГОСТ 34.602-89, …).</a></div><div class="t-redactor__text"><a href="https://drive.google.com/open?id=1Uc1BoPwHLC_9p4P9yZUzxVJPZ5LF8zw4" target="_blank" rel="noreferrer noopener">4. Методические указания РД 50-34.698-90.</a></div><div class="t-redactor__text"><a href="https://drive.google.com/open?id=1m8fa5opU9UAdrMChJTmPRQdTY5URLdXh" target="_blank" rel="noreferrer noopener">5. Методика Oracle CDM (Custom Development Method) по разработке прикладных информационных систем под заказ.</a></div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Первые языки программирования</title>
			<link>https://www.easyitway.com/programming/tpost/ytmksfis61-pervie-yaziki-programmirovaniya</link>
			<amplink>https://www.easyitway.com/programming/tpost/ytmksfis61-pervie-yaziki-programmirovaniya?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 16:15:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Языком программирования называется система обозначений и правил, позволяющая записать программу решения задачи в виде последовательного текста в удобном для человека виде.</description>
			<turbo:content>
<![CDATA[<header><h1>Первые языки программирования</h1></header><div class="t-redactor__text">Изучая основы программирования очень важно знать общую историю языков программирования и историю развития известных и неизвестных языков. В этой статье вы с этим и познакомитесь, но для начала давайте вспомним «Что такое язык программирования?».</div><div class="t-redactor__text"><strong>Языком программирования</strong> называется система обозначений и правил, позволяющая записать программу решения задачи в виде последовательного текста в удобном для человека виде.</div><h4  class="t-redactor__h4">50-е годы</h4><div class="t-redactor__text">В пятидесятые годы двадцатого века с появлением компьютеров на электронных лампах началось бурное развитие языков программирования. Программирование начиналось с записи программ непосредственно в виде машинных команд (в кодах, как говорят программисты). Компьютеры, стоившие в то время значительно дороже, чем разработка любой программы, требовали высокоэффективного кода.</div><div class="t-redactor__text">Для облегчения кодирования был разработан машинно-ориентированный язык Ассемблера, который позволял записывать машинные команды в символическом виде. Язык Ассемблера зависел от системы команд конкретного компьютера. Он был достаточно удобен для программирования небольших задач, требующих максимальной скорости выполнения.</div><div class="t-redactor__text">Однако крупные проекты разрабатывать на языке Ассемблера было трудно. Главная проблема состояла в том, что программа, написанная на Ассемблере, привязана к архитектуре конкретного компьютера и не могла быть перенесена на другие машины. При усовершенствовании компьютера все программы на Ассемблере приходилось переписывать заново.</div><div class="t-redactor__text">Почти сразу с возникновением компьютеров были разработаны языки высокого уровня, т.е. языки, не зависящие от конкретной архитектуры. Для выполнения программы на языке высокого уровня её нужно сначала перевести на язык машинных команд. Специальная программа, выполняющая такой перевод, называется транслятором или компилятором.</div><div class="t-redactor__text">Оттранслированная программа затем выполняется непосредственно компьютером. Существует также возможность перевода программы на промежуточный язык, не зависящий от архитектуры конкретного компьютера, но, тем не менее, максимально приближенный к языку машинных команд.</div><div class="t-redactor__text">Затем программа на промежуточном языке выполняется специальной программой, которая называется интерпретатором. Возможен также вариант компиляции «на лету», когда выполняемый фрагмент программы переводится с промежуточного языка на язык машинных команд непосредственно перед выполнением.</div><div class="t-redactor__text">В середине 50-х годов под руководством Джона Бэкуса для фирмы IBM был разработан алгоритмический язык программирования высокого уровня FORTRAN. Несмотря на то, что уже существовали разработки языков, выполняющие преобразование арифметических выражений в машинный код, создание языка FORTRAN (FORmula TRANslator), предоставляющего возможность записи алгоритма вычислений с использованием условных операторов и операторов ввода/вывода, стало точкой отсчета эры языков программирования высокого уровня.</div><div class="t-redactor__text">Как альтернатива языку FORTRAN, первоначально ориентированному на архитектуру IBM, под руководством Питера Наура в конце 50-х годов был разработан язык ALGOL (ALGOrithmic Language). Основной целью, преследуемой разработчиками этого языка, была независимость от конкретной архитектуры вычислительной системы.</div><div class="t-redactor__text">Кроме того, создатели языка ALGOL стремились разработать язык, удобный для описания алгоритмов и применяющий систему обозначений, близкую к той, что принята в математике. Языки FORTRAN и ALGOL были первыми языками, ориентированными на программирование вычислений.</div><h4  class="t-redactor__h4">60-е годы</h4><div class="t-redactor__text">В конце 60-х годов под руководством Найарда и Дала был разработан язык Simula-67, использующий концепцию пользовательских типов данных. Фактически это первый язык, применяющий понятие классов.</div><h4  class="t-redactor__h4">70-е годы</h4><div class="t-redactor__text">В середине 70-х годов Вирт предложил язык Pascal, который сразу стал широко использоваться. В это же время по инициативе Министерства обороны США началась работа по созданию языка высокого уровня, получившего название Ada – в честь Ады Лавлейс, программистки и дочери лорда Байрона.</div><div class="t-redactor__text">Создание языка началось с определения требований и выработки спецификаций. Над проектом работали четыре независимые группы, но все они использовали как основу язык Pascal. В начале 80-х годов был разработан первый промышленный компилятор языка Ada.</div><h4  class="t-redactor__h4">Разработка Си</h4><div class="t-redactor__text">Универсальный язык программирования <a href="https://it-black.ru/category/rubriki/samouchitel-po-yazyku-si/" target="_blank" rel="noreferrer noopener">С</a> был разработан в середине 70-х годов Денисом Ритчи и Кеном Томпсоном. Этот язык стал популярным языком системного программирования и в свое время использовался для написания ядра операционной системы UNIX.</div><div class="t-redactor__text">Стандарт языка С начал разрабатываться рабочей группой института стандартов ANSI в 1982 году. Международный стандарт языка С принят в 1990 году. Язык С лег в основу разработки языков программирования C++ и Java.</div><div class="t-redactor__text">Язык С позволил реально избавиться от Ассемблера при создании операционных систем. Например, практически весь текст операционной системы Unix написан на языке Си и, таким образом, не зависит от конкретного компьютера.</div><div class="t-redactor__text">Главным достоинством Си является его простота и отсутствие псевдонаучных решений. Просто и ясно описан механизм передачи параметров в функцию (только по значению). Программист, создающий программу на Си, всегда четко понимает, как эта программа будет выполняться.</div><div class="t-redactor__text">Понятие указателя, статические и автоматические (стековые) переменные языка Си максимально близко отражают устройство любого современного компьютера, поэтому программы на Си эффективны и удобны для отладки.</div><div class="t-redactor__text">В настоящее время подавляющая часть программ пишется на языках Си и C++. Интерфейс любой операционной системы (так называемый API — Application Program Interface), т.е. набор системных вызовов, предназначенных для разработчиков прикладных программ, как правило, представляет собой набор функций на языке Си.</div><div class="t-redactor__text">Наряду с алгоритмическими языками параллельно развивались и языки, предназначаемые для обработки деловой информации, а также языки искусственного интеллекта. К первым относится язык COBOL (COmmon Business Oriented Language), а ко вторым – языки LISP (LISt Processing) и Prolog.</div><div class="t-redactor__text">Язык LISP, разработанный в 60-х годах под руководством Дж. Маккарти, был первым функциональным языком обработки списков, который нашел широкое применение в теории игр.</div><h4  class="t-redactor__h4">90-е годы</h4><div class="t-redactor__text">В 90-х годах с распространением сети Интернет расширились возможности распределенной обработки данных, что отразилось и на развитие языков программирования. Появились языки, ориентированные на создание серверных приложений, такие как JavaScript, Perl и PHP, языки описания документов – HTML и XML.</div><div class="t-redactor__text">Традиционные языки программирования С++ и Pascal также претерпели изменения: под языком программирования начиналось пониматься не только функциональность самого языка, а также библиотеки классов, предоставляемые средой программирования.</div><div class="t-redactor__text">Акцент со спецификации самих языков программирования переносились на стандартизацию механизмов взаимодействия распределенных приложений. Появились новые технологии – COM и CORBA, специфицирующие взаимодействие распределенных объектов.</div><h4  class="t-redactor__h4">Области применения языков программирования</h4><div class="t-redactor__text">В настоящее время языки программирования применяются в самых различных областях человеческой деятельности, таких как:</div><div class="t-redactor__text"><ul><li>научные вычисления (языки C++, FORTRAN, Java);</li><li>системное программирование (языки C++, Java);</li><li>обработка информации (языки C++, COBOL, Java);</li><li>искусственный интеллект (LISP, Prolog);</li><li>издательская деятельность (Postscript, TeX);</li><li>удаленная обработка информации (Perl, PHP, Java, C++);</li><li>описание документов (HTML, XML).</li></ul></div><div class="t-redactor__text">Исходя из истории языков программирования можно сказать, что с течением времени одни языки развивались, приобретали новые черты и остались востребованы, другие утратили свою актуальность и сегодня представляют в лучшем случае чисто теоретический интерес.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Основы ООП</title>
			<link>https://www.easyitway.com/programming/tpost/2xdv5h43v1-osnovi-oop</link>
			<amplink>https://www.easyitway.com/programming/tpost/2xdv5h43v1-osnovi-oop?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 20:40:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Объектно-ориентированное программирование (ООП) — это методология программирования, основанная на представлении программы в виде совокупности объектов</description>
			<turbo:content>
<![CDATA[<header><h1>Основы ООП</h1></header><div class="t-redactor__text">Объектно-ориентированное программирование (ООП) — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования.</div><div class="t-redactor__text"><strong>Класс</strong> — это шаблон, описание ещё не созданного объекта. Класс содержит данные, которые описывают строение объекта и его возможности, методы работы с ним.</div><div class="t-redactor__text"><strong>Объект</strong> — экземпляр класса. То, что «рождено» по «чертежу», то есть по описанию из класса.</div><div class="t-redactor__text">В качестве примера объекта и класса можно привести технический чертёж для изготовления детали — это класс. Выточенная же на станке по размерам и указаниям из чертежа деталь — объект.</div><div class="t-redactor__text">Появление объектно-ориентированного программирования стало результатом возросших требований к функционалу программ, когда описывать объект приходилось раз за разом в разных участках кода. Тогда и было введено понятие класса, параметры которого задавались единожды, а после в коде оставлялись только ссылки на класс, чтобы код самостоятельно «собрал» объект.</div><h4  class="t-redactor__h4">Понятие абстракции в ООП</h4><div class="t-redactor__text">Абстракция — это придание объекту характеристик, которые отличают его от всех других объектов, четко определяя его концептуальные границы. Основная идея состоит в том, чтобы отделить способ использования составных объектов данных от деталей их реализации в виде более простых объектов.</div><div class="t-redactor__text">Такой подход позволяет работать непосредственно с объектом, не вдаваясь в подробности, из чего же он состоит и как работает.</div><h4  class="t-redactor__h4">Три основных принципа ООП</h4><div class="t-redactor__text">Объектно-ориентированное программирование базируется на трёх основных принципах — инкапсуляция, полиморфизм, наследование. Рассмотрим их подробнее:</div><h4  class="t-redactor__h4">Инкапсуляция</h4><div class="t-redactor__text">Инкапсуляция — свойство языка программирования, позволяющее пользователю не задумываться о сложности реализации используемого программного компонента (что у него внутри?), а взаимодействовать с ним посредством предоставляемого интерфейса (публичных методов и членов), а также объединить и защитить жизненно важные для компонента данные. При этом пользователю предоставляется только спецификация (интерфейс) объекта.</div><div class="t-redactor__text">Пользователь может взаимодействовать с объектом только через этот интерфейс. Реализуется с помощью ключевого слова: <strong>public</strong>. Пользователь не может использовать закрытые данные и методы. Реализуется с помощью ключевых слов: <strong>private</strong>, <strong>protected</strong>, <strong>internal</strong>.</div><div class="t-redactor__text">Пример использования инкапсуляции в языке С++:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">class A
{
 public:
   int a, b; //данные открытого интерфейса
   int ReturnSomething(); //метод открытого интерфейса
 private:
   int Aa, Ab; //скрытые данные
   void Do_Something(); //скрытый метод
};</code></pre><div class="t-redactor__text">Класс А инкапсулирует свойства Aa, Ab и метод Do_Something(), представляя внешний интерфейс ReturnSomething, a, b.<br /><br />Инкапсуляцию применяют:<br /><br /><ul><li>когда нужно сохранить некоторый участок кода без изменений со стороны пользователя;</li><li>когда нужно ограничить доступ к коду — в связи с уникальностью используемых техник, которые автор хочет оставить «при себе»;</li><li>когда изменение кода повлечёт за собой неработоспособность программы или её взлом.</li></ul></div><h4  class="t-redactor__h4">Наследование</h4><div class="t-redactor__text">Наследование — способность в объектно-ориентированном программировании построить новый класс на основе уже заданного. При этом функционал может как полностью совпадать, так и отличаться. Класс-донор называется в таком случае родительским или базовым, а его «потомок» — наследником, дочерним классом. Наследование требует определения ещё одного понятия:</div><div class="t-redactor__text">Прототип — объект-образец, на основе которого «рождаются» другие объекты, полностью копируя его или изменяясь в процессе. При изменении в прототипе в копиях также происходят соответствующие изменения.</div><div class="t-redactor__text">Наследование можно сравнить с рождением ребенка, когда новый человек наследует «свойства» своих родителей, но в то же время не является точной копией одного из родителей.</div><h4  class="t-redactor__h4">Полиморфизм</h4><div class="t-redactor__text">Полиморфизм — способность объектов самим определять, какие методы они должны применить в зависимости от того, где именно в коде они находятся. То есть, объект может изменяться в зависимости от своего местоположения и действовать по-разному, что позволяет не заводить лишних структур. Иначе говоря: один интерфейс — множество решений.</div><div class="t-redactor__text">Полиморфизм позволяет понизить процент повторного использования кода и сократить тем самым размер программы и временные затраты на её написание.</div><div class="t-redactor__text">Подробнее об объектно-ориентированном программировании вы можете узнать на сайте в рубриках по языкам программирования.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Выражения из IT-сленга</title>
			<link>https://www.easyitway.com/programming/tpost/44kfnsahk1-virazheniya-iz-it-slenga</link>
			<amplink>https://www.easyitway.com/programming/tpost/44kfnsahk1-virazheniya-iz-it-slenga?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 20:42:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Чтобы уследить быстрый полет мысли программистов, рекомендуется знать сленговые выражения (неформальные выражения), которыми пользуются IT-специалисты.</description>
			<turbo:content>
<![CDATA[<header><h1>Выражения из IT-сленга</h1></header><div class="t-redactor__text">Чтобы уследить быстрый полет мысли программистов, рекомендуется знать сленговые выражения (неформальные выражения), которыми пользуются IT-специалисты. Возможно, знать следующие слова из IT-сленга всем сотрудникам компании и не обязательно, но очень желательно.<br /><br /><strong>Breadcrumbs</strong> — «хлебные крошки» — специально встраиваемые в программу отладочные операторы, служащие путеводной нитью для поиска причин аномального поведения программы при отладке, как хлебные крошки для героев сказки братьев Гримм, блуждавших по лесу.<br /><br /><strong>Сорцы/сырцы</strong> — от английского слова source («исходный код»).<br /><br /><strong>Сырцов сосни</strong> — олдскульное выражение из 2000-х годов, призывающее изучить исходники.<br /><br /><strong>Иксы</strong> — графический интерфейс в Unix, реже — обозначение операционной системы Linux.<br /><br /><strong>Демон</strong> — «фоновая» программа в иксах.<br /><br /><strong>404</strong> — кроме простой «ошибки» (404 Not Found), так еще можно назвать кого-нибудь «не в теме» или того, кто без понятия в чем соль.<br /><br /><strong>OSS</strong> — Open Source Software — программное обеспечение/софт с открытым исходным кодом, которое может использовать / дополнять / изменять любой желающий.<br /><br /><strong>Root</strong> — суперпользователь. А точнее, специальная учетная запись в операционной системе, владелец которой имеет полномочия на выполнение всех без исключения операций.<br /><br /><strong>Сплойт</strong> — небольшая программа, использующая уязвимости. Пригодна для атак на компьютеры.<br /><br /><strong>Батник</strong> — файл с расширением .bat, используется для работы в командной строке Windows.<br /><br /><strong>Гит</strong> — распределенная система контроля версий Github.<br /><br /><strong>Wired (in)</strong> — «окруженный проволокой» — в процессе программирования. Это когда все в полном разгаре, и человека нельзя отвлекать. Обычно такая работа происходит в наушниках, указывая на то, что субъект настроен крайне серьезно, и любое беспокойство может повлечь за собой серьезные последствия.<br /><br /><strong>Moodle</strong> — бездельничать; болтаться без дела; делать дела по мере поступления. Вообще так называют бесплатную онлайн платформу для помощи студентам в обучении.<br /><br /><strong>Плюсы</strong> — язык программирования C++.<br /><br /><strong>Пых, пыха</strong> — язык программирования PHP.<br /><br /><strong>Змея</strong> — язык программирования Python.<br /><br /><strong>Мускул</strong> — база данных MySQL.<br /><br /><strong>Flaming</strong> — процесс оскорбления кого-то онлайн. Принимать участие в онлайн споре негативного характера, обычно включающем в себя необоснованные личные оскорбительные комментарии от одной или нескольких сторон.<br /><br /><strong>Crack</strong> — взлом части программного обеспечения, веб-сайта или удаленной системы со злым умыслом.<br /><br /><strong>Crash</strong> — отказ; вылет; вылетать (о компьютерных программах); падение сервера, операционной системы или прекращение работы программы.<br /><br /><strong>Дебажить</strong> — пошагово отлаживать код с целью найти ошибку или понять логику работы программы.<br /><br /><strong>Туториал</strong> — от английского слова tutorial («руководство»), сборник уроков для начинающих программистов.<br /><br /><strong>Мержить</strong> — соединять версии сорцов на гите.<br /><br /><strong>Дамп</strong> — слепок информации о состоянии системы/процесса/базы данных.<br /><br /><strong>Костыль</strong> — быстрое исправление в коде, на скорую руку, обычно некачественное.<br /><br /><strong>Нативность</strong> — создание программы под специальную платформу.<br /><br /><strong>Хэш</strong> — результат работы односторонней функции, принимающей на вход любое количество байт и на выходе выдающей уникальную последовательность фиксированного количества байт.<br /><br /><strong>Buffer</strong> — временное хранилище информации. Краткосрочное хранение данных в банке памяти (головы, например) при передаче большого количества данных.<br /><br /><strong>Hack</strong> — улучшать; реконструировать; адаптировать для других целей; взламывать часть программного обеспечения, веб-сайта или удаленной системы с целью изучения большего или расширения возможностей.<br /><br /><strong>Ослик</strong> — браузер Internet Explorer.<br /><br /><strong>Песочница</strong> — специальная среда для безопасного выполнения программ либо раздел под таким названием на профильных форумах для новичков.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Оптимизация программного кода</title>
			<link>https://www.easyitway.com/programming/tpost/ntb64rvfs1-optimizatsiya-programmnogo-koda</link>
			<amplink>https://www.easyitway.com/programming/tpost/ntb64rvfs1-optimizatsiya-programmnogo-koda?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 20:44:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<turbo:content>
<![CDATA[<header><h1>Оптимизация программного кода</h1></header><div class="t-redactor__text">В этой статье мы поговорим о старой традиции оптимизации кода. Но, сначала вспомним, что такое программный код:</div><div class="t-redactor__text"><strong>Программный код</strong> — это написанный человеком текст компьютерной программы на каком-либо <a href="https://it-black.ru/kratkij-obzor-izvestnykh-yazykov-programmirovaniya/" target="_blank" rel="noreferrer noopener">языке программирования</a>.</div><div class="t-redactor__text">Исходя из вышесказанного можно понять, что программный код может написать каждый программист или новичок, но правильно оптимизировать свой код намного сложнее. Давайте разберемся что же такое оптимизация.</div><div class="t-redactor__text"><strong>Оптимизация кода</strong> — различные методы преобразования кода ради улучшения его характеристик и повышения эффективности. Среди целей оптимизации можно указать уменьшения объема кода, объема используемой программой оперативной памяти, ускорение работы программы, уменьшение количества операций ввода вывода.</div><h4  class="t-redactor__h4">Основные принципы оптимизации</h4><div class="t-redactor__text">Оптимизация стоит на трех <strong>«китах»</strong> — естественность, производительность, затраченное время. Давайте разберемся подробнее, что они означают.</div><div class="t-redactor__text"><ol><li><strong>Естественность.</strong> Код должен быть аккуратным, модульным и легко читабельным. Каждый модуль должен естественно встраиваться в программу. Код должен легко поддаваться редактированию, интегрированию или удалению отдельных функций или возможности без необходимости вносить серьезные изменения в другие части программы.</li><li><strong>Производительность.</strong> В результате оптимизации вы должны получить прирост производительности программного продукта. Как правило, удачно оптимизированная программа увеличивает быстродействие минимум на 20-30% в сравнение с исходным вариантом.</li><li><strong>Время.</strong> Оптимизация и последующая отладка должны занимать небольшой период времени. Оптимальными считаются сроки, не превышающие 10 – 15 % времени, затраченного на написание самого программного продукта. Иначе это будет нерентабельно.</li></ol></div><h4  class="t-redactor__h4">Начало оптимизации</h4><div class="t-redactor__text">Для начала необходимо выявить <strong>«узкие места»</strong> программы. В первую очередь, стоит обратить внимание на блоки кода, которые регулярно или часто повторяются в процессе работы – циклы и подпрограммы.</div><h4  class="t-redactor__h4">Участки кода, которые не оптимизируются</h4><div class="t-redactor__text">Не стоит трогать единичные операнды, поскольку работают они крайне редко и толку в их модификации нет никакого. Они отработают один раз, и больше к этому коду обращений не будет. Но при условии, что при внесении изменений вы добьетесь увеличения производительности более чем на 10%, это не лишено смысла.</div><h4  class="t-redactor__h4">Методы оптимизации программ</h4><div class="t-redactor__text">Оптимизация кода не слишком отличается от обычного исправления багов. Первым делом нужно проверить код на наличие устаревших или вообще ненужных фрагментов.</div><div class="t-redactor__text">Пишите аккуратный код. Не забывайте о комментариях. Так вы поможете и себе, и другим разработчикам, понять, что в программе нужно, а что – уже не актуально. Эти общие советы помогают и при отладке, и при поиске багов.</div><div class="t-redactor__text">Во вторых разберитесь, когда приложение работает медленнее всего, в какие моменты оно заметно подвисает. Изучите код на предмет ошибок или излишне сложных запутанных решений.</div><h4  class="t-redactor__h4">Вред и польза оптимизаций</h4><div class="t-redactor__text">Практически ко всему в программировании надо относиться рационально, и оптимизации — не исключение. Считается, что неопытный программист на ассемблере обычно пишет код, который в 3-5 раз медленнее, чем код, сгенерированный компилятором.</div><div class="t-redactor__text">К оптимизациям, проводимым оптимизатором, у большинства нет претензий, причем иногда некоторые оптимизации являются практически стандартными и обязательными.</div><div class="t-redactor__text">Следует понимать, что многочисленные сложные оптимизации на уровне машинного кода могут сильно замедлить процесс компиляции.</div><h4  class="t-redactor__h4"><a href="https://pvs-studio.ru/ru/pvs-studio/" target="_blank" rel="noreferrer noopener">PVS-Studio</a></h4><div class="t-redactor__text"><strong>PVS-Studio</strong> — это инструмент для выявления ошибок и потенциальных уязвимостей в исходном коде программ, написанных на языках С, C++, C# и Java. Работает в среде Windows, Linux и macOS.</div><div class="t-redactor__text">В статическом анализаторе PVS-Studio реализован набор диагностик, позволяющих обнаруживать некоторые ситуации, когда код может быть оптимизирован.</div><div class="t-redactor__text">Анализатор <strong>PVS-Studio</strong> может выступать хорошим дополнением к инструментам профилирования. Более того, при работе с предупреждениями PVS-Studio, касающимися оптимизации, код часто становится проще и короче.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Обзор странных языков программирования</title>
			<link>https://www.easyitway.com/programming/tpost/tpanjv1gi1-obzor-strannih-yazikov-programmirovaniya</link>
			<amplink>https://www.easyitway.com/programming/tpost/tpanjv1gi1-obzor-strannih-yazikov-programmirovaniya?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 20:48:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Языки программирования чаще всего структурированы и позволяют решать реальные проблемы, синтаксис ясен и понятен, а реализация программ работает быстро и без ошибок.</description>
			<turbo:content>
<![CDATA[<header><h1>Обзор странных языков программирования</h1></header><div class="t-redactor__text">Существует множество языков программирования и каждый язык специально создан для разработки на конкретной платформе.</div><div class="t-redactor__text">Языки программирования чаще всего структурированы и позволяют решать реальные проблемы, синтаксис ясен и понятен, а реализация программ работает быстро и без ошибок.</div><div class="t-redactor__text">Существуют языки программирования, которые не соответствуют этим принципам. Они создаются для научных исследований или просто для удовольствия и их называют эзотерическими.</div><div class="t-redactor__text">Эзотерические языки часто пародируют «серьезные», а тексты программ на них понятны лишь посвященным. В то время как разработчики реально используемых языков стараются сделать синтаксис максимально понятным, а сам процесс написания кода – удобным, создатели эзотерических языков обычно ставят перед собой противоположные задачи.</div><h4  class="t-redactor__h4">1. Glass</h4><div class="t-redactor__text">Является эзотерическим языком программирования, разработанным компанией <a href="https://the.gregor.institute/" target="_blank" rel="noreferrer noopener">Gregor Richards</a> в 2005 году. Он сочетает в себе не интуитивные постфиксные обозначения и сложную реализацию объектно-ориентированной модели программирования.</div><div class="t-redactor__text">По мнению автора ни один другой язык не реализован так, как этот, потому что это идиотизм.</div><div class="t-redactor__text">Пример кода программы «Hello, World!»:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">{M[m(_o)O!«Hello World!»(_o)o.?]}</code></pre><h4  class="t-redactor__h4">2. Brainfuck</h4><div class="t-redactor__text">Язык программирования для любителей крайне радикального минимализма. Был создан в 1993 году Урбаном Мюллером. Отличительной чертой данного языка является наличие лишь 8 команд, которые записываются как один символ. Мюллер хотел создать язык с самым малым компилятором.</div><div class="t-redactor__text">Компилятор для Brainfuck весит меньше 200 байт. Данный язык является тьюринг-полным, потому может использоваться наравне с Java или Pascal. Пример кода «Hello, World!»:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">++++++++++[&gt;+++++++&gt;++++++++++&gt;+++&gt;+&lt;&lt;&lt;&lt;-]&gt;++
.&gt;+.+++++++..+++.&gt;++.&lt;&lt;+++++++++++++++.&gt;.+++.
------.--------.&gt;+.&gt;.</code></pre><div class="t-redactor__text">Команды и их значения<br /><ol><li><strong>&gt;</strong> — перейти к следующей ячейке;</li><li><strong>&lt;</strong> — перейти к предыдущей ячейке;</li><li><strong>+</strong> — увеличить значение в текущей ячейке на 1;</li><li><strong>—</strong> — уменьшить значение в текущей ячейке на 1;</li><li><strong>.</strong> — напечатать значение из текущей ячейки;</li><li><strong>,</strong> — ввести извне значение и сохранить в текущей ячейке;</li><li><strong>[</strong> — если значение текущей ячейки 0, перейти вперёд по тексту программы на ячейку, следующую за соответствующей ] (с учётом вложенности);</li><li><strong>]</strong> — если значение текущей ячейки не ноль, перейти назад по тексту программы на символ [ (с учётом вложенности).</li></ol></div><h4  class="t-redactor__h4">3. LOLCODE</h4><div class="t-redactor__text">Язык был создан в 2007 году Адамом Линдсей, научным сотрудником Ланкастерского университета. Язык использует сокращенный словарь интернет-мема ЛОЛКОТ и будет прост в освоении для тех, кто знаком с английским интернет сленгом.</div><div class="t-redactor__text">Разберем пример кода для вывода сообщения «Hello World!»:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">HAI — начало программы
CAN HAS STDIO? — включает в текст программы содержимое указанного файла
VISIBLE «HAI WORLD!» — вывод на экран
KTHXBYE — конец программы</code></pre><div class="t-redactor__text">Данный язык можно использовать только как чтение файла или запись текста на консоль. Еще можно использовать LOLPython, который, использует синтаксис LOLCODE и дает доступ ко всем библиотекам языка Python.</div><h4  class="t-redactor__h4">4. Chicken</h4><div class="t-redactor__text">Chicken не только название языка, но и единственное ключевое слово, которое используется в нем. Количество повторений и новых линий определяет код операции, которая выполняется. Автором языка программирования Chicken стал Торбьёрн Сёдерштедт. Пример кода «Hello, world!» на языке Chicken:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken
chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken</code></pre><h4  class="t-redactor__h4">5. Whitespace</h4><div class="t-redactor__text">Необычный язык, выпущеный в 2003 году в честь Дня Смеха (1 апреля) Эдвином Брэди и Крисом Моррисом. Основной чертой этого языка является его «скрытность». Дело в том, что команды и строки кода формируются путем использования исключительно пробелов, табуляции и переходом на новую строку.</div><div class="t-redactor__text">Вот как выглядит «Hello, World!» (синий — табуляция, красный — пробелы):</div><img src="https://static.tildacdn.com/tild3435-3436-4633-a132-396330353963/starn_yaz_2.png"><h4  class="t-redactor__h4">6. Befunge</h4><div class="t-redactor__text">Befunge это двумерный язык программирования. Ваш код находится на игровой области с фиксированным размером. Каждая клетка игрового поля может удерживать код или данные, ваша программа может заменить любую ячейку с ними. Вызов программы начинается в верхней левой ячейке и продолжает вправо. Пример кода “Hello, world!”:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">0&quot;!dlroW ,olleH&quot;&gt;:#,_@</code></pre><h4  class="t-redactor__h4">7. Piet</h4><div class="t-redactor__text">Пит это язык программирования, в котором программы — это растровые изображения, которые выглядят как абстрактные картины. Основным строительным блоком для программ является цвет блока. Он поддерживает 20 различных цветов, в некоторых реализациях языка используется большее количество цветов.</div><div class="t-redactor__text">Компилятор руководствуется указателем, который движется вокруг изображения, с одного цветного региона к другому. Вот “Hello, world!”:</div><img src="https://static.tildacdn.com/tild6364-3163-4838-b632-343531386439/helloy_word_pyet.jpeg"><h4  class="t-redactor__h4">8. ~English</h4><div class="t-redactor__text">Это язык программирования, который пытается подражать естественно звучащему языку. Ни одна функция не может быть определена программистом — есть возможность использовать только встроенные в язык функции. Пример программы:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">Display &quot;Hello world!&quot; and a newline.
Stop the program.</code></pre><h4  class="t-redactor__h4">9. ArnoldC</h4><div class="t-redactor__text">Любителей кино порадует язык программирования ArnoldC, составленный из цитат героев Арнольда Шварцнеггера.</div><div class="t-redactor__text">«Hello World!» на языке ArnoldC:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">IT&#039;S SHOWTIME
TALK TO THE HAND «Hello World!»
YOU HAVE BEEN TERMINATED</code></pre><h4  class="t-redactor__h4">10. Malbolge (язык-«черный ящик»)</h4><div class="t-redactor__text">Malbolge – эзотерический язык программирования, придуманный Беном Олмстедом в 1998 году. Язык разработан с целью быть максимально сложным для написания программ. Получил свое название от Malebolge, восьмого круга ада Данте.</div><div class="t-redactor__text">Чтобы написать небольшую программу на этом языке необходимо обладать навыками криптографии. Вот так “Hello, world!” выглядит в Malbolge:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">(&#039;&amp;%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@&gt;}=&lt;M:9wv6WsU2T|nm-,jcL(I&amp;%$#&quot;
`CB]V?Tx&lt;uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj&quot;Fhg${z@&gt;</code></pre><h4  class="t-redactor__h4">11. Omgrofl</h4><div class="t-redactor__text">Юморной язык, созданный Юрай Борза. Основой этого языка стали интернет акронимы (первые буквы каждого из слов в определенной фразе), такие как lol, wtf, brb, stfu и т.д. Даже название языка программирования это акроним — Omgrofl — oh my god rolling on the floor.</div><div class="t-redactor__text">Исходный код программы «Hello, World!»:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">w00t a Hello, World! program by poiuy_qwert
lol iz 72
rofl lol
lol iz 101
rofl lol
lol iz 108
rofl lol
rofl lol
lool iz 111
rofl lool
loool iz 44
rofl loool
loool iz 32
rofl loool
loool iz 87
rofl loool
rofl lool
lool iz 114
rofl lool
rofl lol
lol iz 100
rofl lol
lol iz 33
rofl lol
stfu</code></pre><h4  class="t-redactor__h4">12. ZOMBIE</h4><div class="t-redactor__text">Создатель языка Давид Морган-Мар. По его словам этот язык Zombie-Oriented Machine-Being Interface Engine был создан специально для некромантов, особенно для злых. Основой кода являются различные существа (зомби, вампиры, духи, демоны или джины), которые выполняют соответствующие им заданные команды. «Hello, World!» по-некромантски:</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">HelloWorld is a zombie
summon
task SayHello
say «Hello World!»
animate
animate</code></pre><div class="t-redactor__text">Это далеко не все языки программирования, который могут вызвать у Вас улыбку, удивление или даже озадаченность своей необыкновенной сложностью или простотой.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Классификация разработчиков по рангам</title>
			<link>https://www.easyitway.com/programming/tpost/z7pedjr051-klassifikatsiya-razrabotchikov-po-rangam</link>
			<amplink>https://www.easyitway.com/programming/tpost/z7pedjr051-klassifikatsiya-razrabotchikov-po-rangam?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 20:55:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Если вы выучились на программиста, тогда в начале карьеры вы получаете гордое звание джуниор (Junior). Дальше вам предстоит миновать звание мидла (Middle) и прийти к сеньору (Senior).</description>
			<turbo:content>
<![CDATA[<header><h1>Классификация разработчиков по рангам</h1></header><div class="t-redactor__text">Если вы выучились на программиста, тогда в начале карьеры вы получаете гордое звание джуниор (Junior). Дальше вам предстоит миновать звание мидла (Middle) и прийти к сеньору (Senior). Деление это весьма условное, но давайте разберемся, что примерно понимается под каждым из этих уровней.</div><h4  class="t-redactor__h4">1. Junior</h4><div class="t-redactor__text">Junior – это программист, который только вошёл в профессию. Он обладает небольшим практическим опытом, либо не обладает им вообще. У джуниора есть знания и начальный набор навыков, с помощью которых он справляется с простыми стандартными задачами самостоятельно.</div><div class="t-redactor__text">Если вы умеете писать простые программы, понимаете их принцип работы и можете разобраться в чужом коде с комментариями — значит, вы можете быть джуниором.</div><div class="t-redactor__text">Испытывая постоянную необходимость в выполнении задач, поставленных по работе над проектом, идеальная схема обучения для Junior разработчика — это видео обучение программированию в рамках избранной технологии, а также статьи на обучающих сайтах.</div><div class="t-redactor__text">Если хотите быстро прокачаться в языке программирования, быть джуном — идеальный вариант. Есть компании, которые не готовы платить много новичкам, но готовы вкладываться в их развитие, чтобы вырастить себе сильного программиста.</div><h4  class="t-redactor__h4">2. Middle</h4><div class="t-redactor__text">Middle (мидл) — золотая середина, человек, который уже знает свои возможности. Если джуниоры имею репутацию оптимистов, то мидлы реально оценивают время и сложность поставленных перед ними задач.</div><div class="t-redactor__text">Он может решать нестандартные задачи с минимальной помощью – ему необходима поддержка ментора, чтобы направить его и помочь определить более эффективные инструменты работы.</div><h4  class="t-redactor__h4">3. Senior</h4><div class="t-redactor__text">Senior – эксперт, который не только сам может справляться со сложными нестандартными задачами, но и руководит другими специалистами в работе над общим проектом, направляет их.</div><div class="t-redactor__text">Зачастую, именно сеньоры занимаются подготовкой джуниоров, поскольку у мидлов на это не хватает времени. Срок, проведенный на этой ступени карьеры зависит только от желания программиста.</div><h4  class="t-redactor__h4">Разделение web-разработчиков</h4><div class="t-redactor__text">Web-разработка — создание сайтов и web-сервисов. Включает программирование на стороне клиента и сервера. Эту часть работы выполняют программисты. Они работают совместно с дизайнерами и верстальщиками, которые разрабатывают web-дизайн и создают макеты страниц.</div><h4  class="t-redactor__h4">1. backend</h4><div class="t-redactor__text">Бэкенд, как правило, обозначает ту часть приложения, которая живет на сервере. Бэкенд больше сосредоточен на том, чтобы все необходимые данные корректно отправлялись в браузер. Backend — разработчик изучает и пишет на серверных языках (Например: PHP, Python).</div><h4  class="t-redactor__h4">2. Frontend</h4><div class="t-redactor__text">Фронтенд-разработчики часто фокусируются на понимании HTML, CSS и JavaScript, поскольку эти языки работают в браузере.</div><div class="t-redactor__text">Они не обязательно фокусируются на том, чтобы делать вещи «красивыми», но скорее на том, чтобы информация была представлена эффективно и пользовательское взаимодействие с web-страницей было настолько комфортным, насколько это возможно.</div><h4  class="t-redactor__h4">3. fullstack</h4><div class="t-redactor__text">Фуллстак-разработчики работают одновременно с обеими сторонами. Фуллстак разработчики могут с комфортом «общаться» одновременно с базой данных и с браузером.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Что такое фреймворки и библиотеки?</title>
			<link>https://www.easyitway.com/programming/tpost/10k360t541-chto-takoe-freimvorki-i-biblioteki</link>
			<amplink>https://www.easyitway.com/programming/tpost/10k360t541-chto-takoe-freimvorki-i-biblioteki?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 20:56:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Фреймворк — заготовки, шаблоны для программной платформы, определяющие архитектуру программной системы; программное обеспечение, облегчающее разработку и объединение разных модулей программного проекта.</description>
			<turbo:content>
<![CDATA[<header><h1>Что такое фреймворки и библиотеки?</h1></header><div class="t-redactor__text">В этой статье мы рассмотрим понятия библиотеки и фреймворка в программировании, а также рассмотрим их примеры.</div><h4  class="t-redactor__h4">1. Framework</h4><div class="t-redactor__text"><strong>Фреймворк</strong> — заготовки, шаблоны для программной платформы, определяющие архитектуру программной системы; программное обеспечение, облегчающее разработку и объединение разных модулей программного проекта.</div><div class="t-redactor__text">Это такая структура, включающая в себя библиотеки кода, различное программное обеспечение, которые облегчают жизнь разработчика и способствуют объединению разных составляющих большого программного проекта. Фреймворк содержит базовые программные модули. Все специфичные компоненты реализуются разработчиком на их основе.</div><div class="t-redactor__text">Фреймворк, будучи «каркасом» для создания и сопровождения программного проекта, облегчает задачу разработчика.</div><div class="t-redactor__text">Используя фреймворки не нужно писать с нуля десятки, а то и сотни тысяч строк, тем самым достигается большая производительность.</div><h4  class="t-redactor__h4">Плюсы фреймворков</h4><div class="t-redactor__text"><ul><li>Разработка на фреймворке позволяет добиться простоты сопровождаемости проекта.</li><li>Проекты легко масштабируются и модернизируются.</li><li>Решения на фреймворках работают гораздо быстрее.</li><li>Решения на фреймворках превосходят самописные системы по безопасности.</li></ul></div><h4  class="t-redactor__h4">Минусы фреймворков</h4><div class="t-redactor__text"><ul><li>Многие функции реализовываются индивидуально, т.к. фреймворки содержат только базовые компоненты бизнес-логики.</li><li>Требуется понимание бизнес-процессов.</li></ul></div><h4  class="t-redactor__h4">Примеры фреймворков:</h4><div class="t-redactor__text">Bootstrap — создание сайтов с адаптивной вёрсткой. Можно рисовать красивые кнопки, верстать текст во много колонок, включать-выключать блоки в зависимости от ширины экрана, делать выпадающие меню и многое другое.</div><div class="t-redactor__text"><a href="https://ru.vuejs.org/" target="_blank" rel="noreferrer noopener">Vue.js</a> — обеспечивает единообразие компонентов и модульный подход к разработке. Можно создавать собственные строительные блоки для страницы, делать шаблоны.</div><div class="t-redactor__text"><a href="https://angularjs.org/" target="_blank" rel="noreferrer noopener">Angular.JS</a> — JavaScript фреймворк от Google для динамических веб-приложений, похож на Vue.</div><div class="t-redactor__text"><a href="https://djbook.ru/" target="_blank" rel="noreferrer noopener">django</a> — фреймворк для Python, нацеленный на скорость: готовые компоненты для баз данных, рисования страниц, админок, окон входа на сайт, шаблонов и множества других вещей.</div><h4  class="t-redactor__h4">2. Библиотеки</h4><div class="t-redactor__text">Библиотека в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО). Можно сказать и так: это набор классов, компонентов или модулей для разных задач.</div><div class="t-redactor__text">Библиотеки представляют собой уже написанные кем-то переносимые наборы проверенного кода. Это готовые решения, которые программисты могут присоединять к своим программам, вставлять их в свой код по специальным алгоритмам, причем в разных проектах.</div><div class="t-redactor__text">Библиотеки для программирования бывают встроенными и дополнительными. У каждого языка есть свои библиотеки.</div><h4  class="t-redactor__h4">Примеры библиотек:</h4><div class="t-redactor__text"><a href="https://www.tensorflow.org/" target="_blank" rel="noreferrer noopener">TensorFlow</a> для Python, которая погружает вас в мир искусственно го интеллекта.</div><div class="t-redactor__text"><a href="https://webkit.org/" target="_blank" rel="noreferrer noopener">WebKit</a> — популярнейшая библиотека для работы с веб-страницами.</div><div class="t-redactor__text"><a href="https://www.baeldung.com/scribejava" target="_blank" rel="noreferrer noopener">Scribe Java</a> — про стая библиотека для авторизации пользователей.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Среды разработки в программировании</title>
			<link>https://www.easyitway.com/programming/tpost/xv5jvs82i1-sredi-razrabotki-v-programmirovanii</link>
			<amplink>https://www.easyitway.com/programming/tpost/xv5jvs82i1-sredi-razrabotki-v-programmirovanii?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 21:04:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Среды разработки (IDE) бывают универсальные и заточенные под конкретные языки программирования. IDE часто похожи по своим возможностям и позволяют увеличивать функциональность за счёт внешних дополнений.</description>
			<turbo:content>
<![CDATA[<header><h1>Среды разработки в программировании</h1></header><div class="t-redactor__text">Чтобы разработчик сразу видел результат своего труда при написание программы, были созданы среды разработки.</div><div class="t-redactor__text">IDE — integrated development environment, по-русски — среда разработки. Это программа, в которой программист пишет код, ловит ошибки и наблюдает результат.</div><div class="t-redactor__text">Среды разработки (IDE) бывают универсальные и заточенные под конкретные языки программирования. IDE часто похожи по своим возможностям и позволяют увеличивать функциональность за счёт внешних дополнений.</div><div class="t-redactor__text">В этой статье вы можете изучить самые распространенные среды разработки для написания ваших будущих приложений. Похожая статья, но для ОС Android была уже написана на нашем сайте. Заходите на статью «Обзор сред разработки приложений/игр на Android» и изучайте.</div><h4  class="t-redactor__h4">1. Visual Studio</h4><div class="t-redactor__text">Microsoft Visual Studio — линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств.</div><div class="t-redactor__text">Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также web-сайты, web-приложения, web-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows.</div><div class="t-redactor__text">Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня.</div><h4  class="t-redactor__h4">2. Visual Studio Code</h4><div class="t-redactor__text">Visual Studio Code — это бесплатный продукт с открытым исходным кодом, доступный на всех платформах. Благодаря этому и своим возможностям VS Code стал одной из самых популярных сред для разработки в мире.</div><div class="t-redactor__text">VS Code распознаёт почти все существующие языки программирования, самостоятельно или с помощью плагинов, и форматирует их соответствующим образом.</div><div class="t-redactor__text">Кроме этого, у него глубокая поддержка HTML, CSS, JavaScript и PHP — он проследит за парными тегами, закрытыми скобками и ошибками в командах.</div><h4  class="t-redactor__h4">3. WebStorm</h4><div class="t-redactor__text">Среда разработки для JavaScript от компании jetBrains стоит денег, но есть пробный период в 30 дней. Вполне хватит, чтобы попробовать и понять, нужна эта программа или нет.</div><div class="t-redactor__text">Чтобы сразу видеть, что получается на странице, понадобится плагин <a href="https://plugins.jetbrains.com/plugin/7007-liveedit" target="_blank" rel="noreferrer noopener">LiveEdit</a>. По умолчанию он выключен, но его можно включить или поставить отдельно в любое время. После активации нужно будет в настройках плагина поставить галочку <strong>«Update application in Chrome on changes in»</strong> — она как раз отвечает за обновление информации в браузере Chrome.</div><h4  class="t-redactor__h4">4. Sublime Text 3</h4><div class="t-redactor__text">Sublime Text — мощный текстовый редактор. Его сила — в скорости работы, он одинаково быстро обработает простую web-страничку или программу на сто тысяч строк кода. Подсветка синтаксиса всех возможных языков программирования, автоподстановка, умное закрытие тегов — всё это доступно сразу после установки.</div><div class="t-redactor__text">В Sublime Text есть суперспособность, которая превращает его из простого текстового редактора в универсальное решение, — <strong>плагины</strong>.</div><div class="t-redactor__text">Когда начинаешь плотно работать с Sublime Text, может показаться, что у него есть плагины для всего.</div><div class="t-redactor__text">Например, плагин <strong>Emmet</strong> сокращает время на написание кода, подставляя вместо стандартных команд целые куски готового кода.</div><h4  class="t-redactor__h4">5. Xcode</h4><div class="t-redactor__text">Xcode – это не просто интегрированная среда разработки, а полный набор инструментов для разработки программного обеспечения, созданных Apple для разработки программного обеспечения для MacOS, iOS, WatchOS и tvOS.</div><div class="t-redactor__text">Xcode – лучшая IDE для Mac хотя бы потому, что она создана разработчиками операционной системы. Поэтому, если вы являетесь разработчиками под платформы Apple, эта среда для вас.</div><h4  class="t-redactor__h4">6. NetBeans</h4><div class="t-redactor__text">NetBeans славится разработкой на Java, но это также одна из лучших сред разработки на C++ как для Windows, так и для Mac с Linux.</div><div class="t-redactor__text">У NetBeans также есть много готовых шаблонных проектов для C и C++, которые можно использовать в качестве основы для ваших приложений. NetBeans был написан с использованием Java, он также может быть использован для проектов PHP и HTML5.</div><h4  class="t-redactor__h4">7. Eclipse</h4><div class="t-redactor__text">Eclipse – простая в использовании и при этом мощная IDE для C и C++. Между Eclipse и NetBeans мало различий, но все же Eclipse является более быстрой средой разработки.</div><div class="t-redactor__text">Существует множества сред разработки для разных языков программирования. В этой статье мы рассмотрели самые лучшие редакторы по мнению сайта it-black.ru. В комментариях можете написать свое мнение по повожу сред разработки или же предложить свои.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Низкоуровневые и высокоуровневые языки программирования</title>
			<link>https://www.easyitway.com/programming/tpost/9aef6y5va1-nizkourovnevie-i-visokourovnevie-yaziki</link>
			<amplink>https://www.easyitway.com/programming/tpost/9aef6y5va1-nizkourovnevie-i-visokourovnevie-yaziki?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 22:49:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Первым компьютерам приходилось программировать двоичными машинными кодами. Однако программировать таким образом — достаточно трудоемкая и сложная задача.</description>
			<turbo:content>
<![CDATA[<header><h1>Низкоуровневые и высокоуровневые языки программирования</h1></header><h4  class="t-redactor__h4">Языки низкого уровня</h4><div class="t-redactor__text">Первым компьютерам приходилось программировать двоичными машинными кодами. Однако программировать таким образом — достаточно трудоемкая и сложная задача.</div><div class="t-redactor__text">Для упрощения этой задачи стали появляться языки программирования низкого уровня, которые позволяли задавать машинные команды в более понятном для человека виде.</div><div class="t-redactor__text">Для преобразования их в двоичный код были созданы специальные программы — трансляторы.</div><div class="t-redactor__text"><strong>Трансляторы делятся на:</strong></div><div class="t-redactor__text"><ul><li><strong>компиляторы</strong> — превращают текст программы в машинный код, который можно сохранить и затем использовать уже без компилятора (примером являются исполняемые файлы с расширением *. exe).</li><li><strong>интерпретаторы</strong> — превращают часть программы в машинный код, выполняют и после этого переходят к следующей части. При этом каждый раз при выполнении программы используется интерпретатор.</li></ul></div><div class="t-redactor__text">Примером языка низкого уровня является ассемблер. Языки низкого уровня ориентированы на конкретный тип процессора и учитывают его особенности, поэтому для переноса программы на ассемблере на другую аппаратную платформу ее нужно почти полностью переписать.</div><div class="t-redactor__text"><strong>Преимущества</strong></div><div class="t-redactor__text"><ul><li>С помощью языков низкого уровня создаются эффективные и компактные программы, поскольку разработчик получает доступ ко всем возможностям процессора.</li></ul></div><div class="t-redactor__text"><strong>Недостатки</strong></div><div class="t-redactor__text"><ul><li>Программист, работающий с языками низкого уровня, должен быть высокой квалификации, хорошо понимать устройство микропроцессорной системы, для которой создается программа.</li><li>результирующая программа не может быть перенесена на компьютер или устройство с другим типом процессора.</li><li>значительное время разработки больших и сложных программ.</li></ul></div><div class="t-redactor__text">Языки низкого уровня, как правило, используют для написания небольших системных программ, драйверов устройств, модулей стыков с нестандартным оборудованием, программирование специализированных микропроцессоров, когда важнейшими требованиями являются компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам.</div><h4  class="t-redactor__h4">Языки высокого уровня</h4><div class="t-redactor__text">Данный вид языков более понятен человеку, чем компьютеру. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому созданные программы легко переносятся с компьютера на компьютер.</div><div class="t-redactor__text">В основном достаточно просто перекомпилировать программу под определенную компьютерную архитектурную и операционную систему.</div><div class="t-redactor__text">Разрабатывать программы на таких языках гораздо проще и ошибок допускается меньше. Значительно сокращается время разработки программы, что особенно важно при работе над большими программными проектами.</div><div class="t-redactor__text">К языкам программирования высокого уровня относятся:</div><div class="t-redactor__text"><ul><li>Фортран;</li><li>Кобол;</li><li>Алгол;</li><li>Pascal;</li><li>Java;</li><li>C;</li><li>C++;</li><li>C#;</li><li>Objective C;</li><li>Smalltalk;</li><li>Delphi;</li><li>PHP;</li><li>JavaScript;</li><li>Лисп;</li><li>Python;</li><li>Ruby.</li></ul></div><div class="t-redactor__text">Достоинства языков программирования высокого уровня:</div><div class="t-redactor__text"><ul><li>алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;</li><li>набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;</li><li>конструкции операторов задаются в удобном для человека виде;</li><li>поддерживается широкий набор типов данных.</li></ul></div><div class="t-redactor__text">Недостатком языков высокого уровня является больший размер программ по сравнению с программами на языке низкого уровня. Поэтому в основном языки высокого уровня используются для разработок программного обеспечения компьютеров и устройств, которые имеют большой объем памяти.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Структурное и модульное программирование</title>
			<link>https://www.easyitway.com/programming/tpost/99sncmn6a1-strukturnoe-i-modulnoe-programmirovanie</link>
			<amplink>https://www.easyitway.com/programming/tpost/99sncmn6a1-strukturnoe-i-modulnoe-programmirovanie?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 22:51:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>Структурное программирование — парадигма программирования, в основе которой лежит представление программы в виде иерархической структуры блоков.</description>
			<turbo:content>
<![CDATA[<header><h1>Структурное и модульное программирование</h1></header><h4  class="t-redactor__h4">Структурное программирование</h4><div class="t-redactor__text"><strong>Структурное программирование</strong> — парадигма программирования, в основе которой лежит представление программы в виде иерархической структуры блоков.</div><div class="t-redactor__text">По своей сути оно воплощает принципы системного подхода в процессе создания и эксплуатации программного обеспечения ЭВМ.</div><div class="t-redactor__text">Структурное программирование воплощает принципы системного подхода в процессе создания и эксплуатации программного обеспечения ЭВМ. В основу структурного программирования положены следующие достаточно простые положения:</div><div class="t-redactor__text"><ul><li>алгоритм и программа должны составляться поэтапно (по шагам).</li><li>сложная задача должна разбиваться на достаточно простые части, каждая из которых имеет один вход и один выход.</li><li>логика алгоритма и программы должна опираться на минимальное число достаточно простых базовых управляющих структур.</li></ul></div><div class="t-redactor__text">Структурное программирование иногда называют еще <strong>«программированием без go to»</strong>. Рекомендуется избегать употребления оператора перехода всюду, где это возможно, но чтобы это не приводило к слишком громоздким структурированным программам.</div><div class="t-redactor__text"><strong><em>goto (перейти на)</em></strong><em> — оператор безусловного перехода (перехода к определённой точке программы, обозначенной номером строки либо меткой) в некоторых языках программирования. В некоторых языках оператор безусловного перехода может иметь другое имя (например, jmp в языках ассемблера).</em></div><div class="t-redactor__text">Фундаментом структурного программирования является теорема о структурировании. Эта теорема устанавливает, что, как бы сложна ни была задача, схема соответствующей программы всегда может быть представлена с использованием ограниченного числа элементарных управляющих структур.</div><div class="t-redactor__text">Базовыми элементарными структурами являются структуры: следование, ветвление и повторение (цикл), любой алгоритм может быть реализован в виде композиции этих трех конструкций.</div><img src="https://static.tildacdn.com/tild6263-3035-4335-a461-313539306439/struct_prog_1.jpg"><h4  class="t-redactor__h4">Достоинства структурного программирования:</h4><div class="t-redactor__text"><ul><li>повышается надежность программ (благодаря хорошему структурированию при проектировании, программа легко поддается тестированию и не создает проблем при отладке);</li><li>повышается эффективность программ (структурирование программы позволяет легко находить и корректировать ошибки, а отдельные подпрограммы можно переделывать (модифицировать) независимо от других);</li><li>уменьшается время и стоимость программной разработки;</li><li>улучшается читабельность программ.</li></ul></div><h4  class="t-redactor__h4">Модульное программирование</h4><div class="t-redactor__text">Модульное программирование является естественным следствием проектирования сверху вниз и заключается в том, что программа разбивается на части – модули, разрабатываемые по отдельности.</div><div class="t-redactor__text">В программировании под <strong>модулем</strong> понимается отдельная подпрограмма, а подпрограммы часто называются процедурами или процедурами-функциями. Поэтому модульное программирование еще называется процедурным.</div><img src="https://static.tildacdn.com/tild3932-3532-4562-b632-393236353066/modul_prog_1.jpg"><h4  class="t-redactor__h4">Модуль должен обладать следующими свойствами:</h4><div class="t-redactor__text"><ul><li><strong>один вход и один выход</strong> – на входе программный модуль получает определенный набор исходных данных, выполняет содержательную обработку и возвращает один набор результатных данных, т.е. реализуется стандартный принцип IPO (Input — Process — Output — вход-процесс-выход);</li><li><strong>функциональная завершенность</strong> – модуль выполняет перечень регламентированных операций для реализации каждой отдельной функции в полном составе, достаточных для завершения начатой обработки;</li><li><strong>логическая независимость</strong> – результат работы программного модуля зависит только от исходных данных, но не зависит от работы других модулей;</li><li><strong>слабые информационные связи с другими программными модулями</strong> – обмен информацией между модулями должен быть по возможности минимизирован;</li><li><strong>обозримый по размеру и сложности программный код.</strong></li></ul></div><div class="t-redactor__text">Модули содержат определение доступных для обработки данных, операции обработки данных, схемы взаимосвязи с другими модулями.</div><div class="t-redactor__text">Каждый модуль состоит из спецификации и тела. Спецификации определяют правила использования модуля, а тело – способ реализации процесса обработки.</div><div class="t-redactor__text">Принципы модульного программирования программных продуктов во многом сходны с принципами нисходящего проектирования: сначала определяются состав и подчиненность функций, а затем — набор программных модулей, реализующих эти функции.</div><h4  class="t-redactor__h4">Функционально-модульная структура приложения</h4><img src="https://static.tildacdn.com/tild3538-6561-4234-a464-613738306264/modul_prog_2.png">]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Установка Visual Studio 2019 на Windows 10</title>
			<link>https://www.easyitway.com/programming/tpost/3u70czgs31-ustanovka-visual-studio-2019-na-windows</link>
			<amplink>https://www.easyitway.com/programming/tpost/3u70czgs31-ustanovka-visual-studio-2019-na-windows?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 22:53:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>В этом видео я подробно расскажу и покажу установку программы Visual Studio 2019 на операционную систему Windows 10.</description>
			<turbo:content>
<![CDATA[<header><h1>Установка Visual Studio 2019 на Windows 10</h1></header><div class="t-redactor__text">В этом видео я подробно расскажу и покажу установку программы Visual Studio 2019 на операционную систему Windows 10.</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/_KYUpwaDq94" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Настройка программы Unity 2019</title>
			<link>https://www.easyitway.com/programming/tpost/4tc87pjin1-nastroika-programmi-unity-2019</link>
			<amplink>https://www.easyitway.com/programming/tpost/4tc87pjin1-nastroika-programmi-unity-2019?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 22:54:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>В этом видео мы настроим программу Unity 2019 для полноценной работы и созданий различных проектов.</description>
			<turbo:content>
<![CDATA[<header><h1>Настройка программы Unity 2019</h1></header><div class="t-redactor__text">В этом видео мы настроим программу Unity 2019 для полноценной работы и созданий различных проектов.</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/tuce6TNheaw" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Установка Sublime Text 3 и плагина Emmet</title>
			<link>https://www.easyitway.com/programming/tpost/8t9seu8a61-ustanovka-sublime-text-3-i-plagina-emmet</link>
			<amplink>https://www.easyitway.com/programming/tpost/8t9seu8a61-ustanovka-sublime-text-3-i-plagina-emmet?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 22:55:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>В этом видео мы установим программу Sublime Text 3 на операционную систему Windows 10 и поставим плагин Emmet.</description>
			<turbo:content>
<![CDATA[<header><h1>Установка Sublime Text 3 и плагина Emmet</h1></header><div class="t-redactor__text">В этом видео мы установим программу Sublime Text 3 на операционную систему Windows 10 и поставим плагин Emmet.</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/bLWyLccA7uw" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Что такое API?</title>
			<link>https://www.easyitway.com/programming/tpost/82isab3n91-chto-takoe-api</link>
			<amplink>https://www.easyitway.com/programming/tpost/82isab3n91-chto-takoe-api?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 22:56:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>API — это аббревиатура от английского Application Programming Interface, интерфейс программирования приложения.</description>
			<turbo:content>
<![CDATA[<header><h1>Что такое API?</h1></header><div class="t-redactor__text"><strong>API</strong> — это аббревиатура от английского Application Programming Interface, интерфейс программирования приложения.</div><div class="t-redactor__text">Говоря по-простому, API действует как виртуальный посредник и передает информацию из одного интерфейса, например мобильного приложения, в другой. API связывает различные части программной платформы, чтобы передаваемая информация дошла до места назначения.</div><div class="t-redactor__text">Само по себе приложение, сервис или программа не умеют работать с другими программами — они работают сами по себе, делают то, что им нужно, и не обращают внимания на внешний мир.</div><div class="t-redactor__text">Но если программист добавит поддержку API в свою программу, то она научится обрабатывать не только свои данные, но и данные из других приложений.</div><div class="t-redactor__text">Слово <strong>«application»</strong> (прикладной, приложение) может применяться в разных значениях. В контексте API оно подразумевает:</div><div class="t-redactor__text"><ul><li>фрагмент программного обеспечения с определённой функцией;</li><li>сервер целиком, приложение целиком или же просто отдельную часть приложения.</li></ul></div><div class="t-redactor__text">В объектно-ориентированном проектировании код представлен в виде совокупности объектов. В приложении таких объектов, взаимодействующих между собой, могут быть сотни.</div><div class="t-redactor__text">У каждого из них есть свой API — набор публичных свойств и методов для взаимодействия с другими объектами в приложении. Объекты могут также иметь частную, внутреннюю логику, которая скрыта от окружения и не является API.</div><div class="t-redactor__text">Во всемирной паутине API позволяют вам легко получить доступ одновременно к нескольким ресурсам, которые доступны только на стороне другого программного приложения, на другом сервере.</div><div class="t-redactor__text">API-интерфейсы могут относиться к одной из двух категорий:</div><h4  class="t-redactor__h4">Внутренние/частные API</h4><div class="t-redactor__text">Частные API доступны только разработчикам и пользователям из числа сотрудников организации. Такие API обычно связывают внутренние процессы для уменьшения разрозненности рабочих данных и оптимизации совместной работы.</div><h4  class="t-redactor__h4">Внешние/открытые API</h4><div class="t-redactor__text">Открытые API, в свою очередь, позволяют внешним разработчикам получать доступ к информации и интегрировать информацию, которая передается из одного программного инструмента в другой.</div><div class="t-redactor__text">Открытые или частные API экономят время разработчиков, позволяя им объединять платформы с имеющимися инструментами и устраняя необходимость в создании нового функционала с нуля.</div><h4  class="t-redactor__h4">Использование API в наше время</h4><div class="t-redactor__text"><ol><li>Хорошим примером использования API может служить процесс быстрой регистрации в различных приложениях используя аккаунт любой из предложенной социальной сети, когда посредством специального API социальной сети (например, Вконтакте, Facebook) сторонние компании получают возможность использовать специальный код и API для предоставления Вам оперативного и упрощенного доступа к их продукту;</li><li>Компания Google за счёт использования API дает потенциальную возможность разработчикам различных приложений использовать интеграцию информации из своих сервисов на своих платформах. Благодаря этому вы сможете просмотреть видео, взятое из видео хостинга YouTube.com прямо внутри приложения.</li><li>Большое количество коммерческих компании предлагают API в качестве уже готового к использованию продукта. Так, американская компания Weather Underground зарабатывает за счёт продажи доступа к своему API для оперативного получения метеорологических данных в любой точке нашей планеты.</li></ol></div><h4  class="t-redactor__h4">Как программисты делают API</h4><div class="t-redactor__text">Когда разработчики решают добавить поддержку API, они делают так:</div><div class="t-redactor__text">1. Собирают список функций, которыми они хотят поделиться с миром.</div><div class="t-redactor__text">2. Для каждой функции продумывают параметры, которые она должна получить и которые отправляет в ответ.</div><div class="t-redactor__text">3. Выбирают формат, в котором им удобно принимать и отправлять данные.</div><div class="t-redactor__text">4. Встраивают в свой код, затем тестируют, чтобы всё работало без ошибок.</div><div class="t-redactor__text">5. Публикуют свой API — как с ним работать, в каком формате и на каких условиях.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Зачем программисту изучать алгоритмы?</title>
			<link>https://www.easyitway.com/programming/tpost/ltezl6kyf1-zachem-programmistu-izuchat-algoritmi</link>
			<amplink>https://www.easyitway.com/programming/tpost/ltezl6kyf1-zachem-programmistu-izuchat-algoritmi?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 22:58:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>За всю историю компьютерных наук сложилось понимание, какие алгоритмы и структуры данных (способы их хранения) нужны для решения практических задач — так называемый джентльменский набор, который должен знать каждый разработчик.</description>
			<turbo:content>
<![CDATA[<header><h1>Зачем программисту изучать алгоритмы?</h1></header><div class="t-redactor__text">За всю историю компьютерных наук сложилось понимание, какие алгоритмы и структуры данных (способы их хранения) нужны для решения практических задач — так называемый джентльменский набор, который должен знать каждый разработчик.</div><div class="t-redactor__text">Например, сортировка: товары в магазине сортируют по стоимости или сроку годности, а рестораны — по удалённости или рейтингу.</div><div class="t-redactor__text">Хэш-таблицы помогают проверить корректность пароля и не хранить его на сайте в открытом виде, графы — находить кратчайший путь и хранить связи между пользователями в социальных сетях.</div><div class="t-redactor__text">Вклад алгоритмов в жизнь человека очень обширен. От интернета до биологии, коммерческих вычислительных систем, компьютерной графики, безопасности, мультимедиа, социальных сетей и научных применений, алгоритмы везде вокруг нас.</div><div class="t-redactor__text">Они используются для фильмов и видео игр, для симуляции столкновения частиц, они используются для изучения генома и других задач.</div><div class="t-redactor__text">Первый изучаемый алгоритм уходит корнями к 300 году до нашей эры. Концепция алгоритма была формализована в Принстоне, Чёрчем и Тьюрингом в 1930-е. Но немало алгоритмов были открыты в последние десятилетия.</div><div class="t-redactor__text">Алгоритмы и структуры данных уже давно реализованы в библиотеках популярных языков программирования. Никто больше не пишет вручную алгоритм сортировки чисел, а чтобы пользоваться хэш-таблицами, даже не нужно знать, как они устроены.</div><h4  class="t-redactor__h4">1. Алгоритмы помогают эффективно решать задачи</h4><div class="t-redactor__text">Вы научились писать код, но ничего не слышали об алгоритмах. Сделали на заказ видеосервис, дали на разработку год гарантии. Проект стал успешным, но уже при первых десяти тысячах пользователей всё начало ломаться: сервера быстро выходят из строя, а видео, по ощущениям пользователей, грузится миллион лет.</div><div class="t-redactor__text">Заказчик приходит к вам и просит решить проблему. Вы догадываетесь, что нужно использовать более эффективный алгоритм сжатия. Здесь и пригодится знание алгоритмов: понимая, как работает каждый из них, вы сможете подобрать наилучший вариант для решения задачи или даже написать собственный.</div><div class="t-redactor__text">Наличие множества готовых библиотек не означает, что не нужно понимать, как они устроены. Фундаментальные знания помогают узнать, что внутри, как оно работает и почему решение А лучше Б в конкретной ситуации. Если вы разберётесь, как устроены классические алгоритмы, то сможете создавать собственные решения, комбинировать методы друг с другом, чтобы решать более сложные задачи.</div><h4  class="t-redactor__h4">2. Собеседование в компаниях</h4><div class="t-redactor__text">В крупных ИТ-компаниях, таких как Яндекс, Google или Facebook, алгоритмическое собеседование — обязательный этап отбора разработчиков. На нём проверяют умение быстро отразить идею в коде. Но знание алгоритмов требуют не только ИТ-гиганты — для многих компаний это базовый навык хорошего инженера.</div><div class="t-redactor__text">Основная задача программиста — анализировать и решать проблемы, где код — это всего лишь инструмент достижения цели. Поиск Google или Яндекса не был бы таким умным и быстрым, если бы не алгоритмы. Они не просто ищут максимальное сходство по поисковой фразе, но пытаются вычленить контекст и подобрать самый подходящий по всем параметрам ответ.</div><h4  class="t-redactor__h4">3. Тренировка мозга</h4><div class="t-redactor__text">Алгоритмы не обязательно использовать только в работе. Это один из вариантов «тренажёра для программистов». Алгоритмы, как математика, приводят в порядок ум, учат выражать свои мысли и решать даже самые непростые задачи.</div><div class="t-redactor__text">Некоторые алгоритмы программирования эффективней других и требуют меньшего времени или ресурсов. Для простых задач, вроде сортировки чисел, тоже можно использовать разные алгоритмы. И в этом красота и креативность программирования — разные задачи, как и в реальной жизни, можно решать разными способами.</div><div class="t-redactor__text">Что-то можно сделать более изящно и минималистично, но сложнее поддерживать в развитии программы. А что-то может быть более длинным решением, зато при необходимости добавить какой-то новый функционал к программе будет сделать значительно легче.</div><h4  class="t-redactor__h4">4. Выводы</h4><div class="t-redactor__text">Построение и анализ алгоритмов это основа профессиональной деятельности любого программиста и основа профессионального образования программиста. Общая производительность системы настолько же зависит от эффективности алгоритма, как и от мощности аппаратных средств.</div><div class="t-redactor__text">Все программы — это порядок логичных команд и инструкций, которые можно назвать одним словом — алгоритм.</div>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Установка и обзор оффлайн браузера документации по программированию</title>
			<link>https://www.easyitway.com/programming/tpost/1oeb356nx1-ustanovka-i-obzor-offlain-brauzera-dokum</link>
			<amplink>https://www.easyitway.com/programming/tpost/1oeb356nx1-ustanovka-i-obzor-offlain-brauzera-dokum?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 22:59:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>В этом видео вы научитесь устанавливать оффлайн браузер Zeal для работы с документацией по программированию.</description>
			<turbo:content>
<![CDATA[<header><h1>Установка и обзор оффлайн браузера документации по программированию</h1></header><div class="t-redactor__text">В этом видео вы научитесь устанавливать оффлайн браузер Zeal для работы с документацией по программированию.</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/pxr_i_nG9ws" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Решение проблемы в оффлайн браузере Zeal — Content rendering error</title>
			<link>https://www.easyitway.com/programming/tpost/1hue1tc551-reshenie-problemi-v-offlain-brauzere-zea</link>
			<amplink>https://www.easyitway.com/programming/tpost/1hue1tc551-reshenie-problemi-v-offlain-brauzere-zea?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 22:59:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>В этом видео мы решаем проблему загрузки контента в оффлайн браузере Zeal.</description>
			<turbo:content>
<![CDATA[<header><h1>Решение проблемы в оффлайн браузере Zeal — Content rendering error</h1></header><div class="t-redactor__text">В этом видео мы решаем проблему загрузки контента в оффлайн браузере Zeal.</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/VUgYTGww5XI" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>]]>
			</turbo:content>
		</item>
		<item turbo="true">
			<title>Работа в Sublime Text 4</title>
			<link>https://www.easyitway.com/programming/tpost/t5865d10f1-rabota-v-sublime-text-4</link>
			<amplink>https://www.easyitway.com/programming/tpost/t5865d10f1-rabota-v-sublime-text-4?amp=true</amplink>
			<pubDate>Fri, 17 Nov 2023 23:36:00 +0300</pubDate>
			<author>Компьютер - это просто!</author>
			<category>Основы программирования</category>
			<description>В этом видео мы научимся работать в текстовом редакторе Sublime Text 4 на Windows 11.</description>
			<turbo:content>
<![CDATA[<header><h1>Работа в Sublime Text 4</h1></header><div class="t-redactor__text">В этом видео мы научимся работать в текстовом редакторе Sublime Text 4 на Windows 11.</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/7pokZZBgBZ8" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>]]>
			</turbo:content>
		</item>
		</channel>
</rss>