<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Roy Top Boy</title><author><name>Roy Top Boy</name></author><id>https://teletype.in/atom/learnscript</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/learnscript?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/learnscript?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-09T05:10:53.862Z</updated><entry><id>learnscript:iiY73lnkR</id><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript/iiY73lnkR?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><title>КУРСЫ ПО JAVASCRIPT. Урок 3</title><published>2020-04-13T11:48:15.158Z</published><updated>2020-04-13T11:48:15.158Z</updated><summary type="html">Сегодня мы поговорим про циклы for и while, они используются, когда надо повторять один и тот же скрипт много раз, допустим, 1000 раз.
</summary><content type="html">
  &lt;p&gt;Сегодня мы поговорим про циклы for и while, они используются, когда надо повторять один и тот же скрипт много раз, допустим, 1000 раз.&lt;br /&gt;&lt;/p&gt;
  &lt;h2&gt;Цикл «while» :&lt;/h2&gt;
  &lt;pre&gt;Синтаксис : while (condition) {
                // код
                // также называемый &amp;quot;телом цикла&amp;quot;
            }
&lt;/pre&gt;
  &lt;p&gt;&lt;strong&gt;Смысл&lt;/strong&gt; :  Пока выполняется условие будет работать код.&lt;br /&gt;&lt;/p&gt;
  &lt;p&gt;Условие -  &lt;code&gt;condition.&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;Пример цикла : &lt;/p&gt;
  &lt;p&gt;&lt;code&gt;let i = 0;&lt;br /&gt;while (i &amp;lt; 3) { // выводит 0, затем 1, затем 2&lt;br /&gt;  alert( i );&lt;br /&gt;  i++;&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Одно выполнение тела цикла по-научному называется &lt;em&gt;итерация&lt;/em&gt;.&lt;/p&gt;
  &lt;h2&gt;Цикл «do…while» :&lt;/h2&gt;
  &lt;pre&gt;do {
  // тело цикла
} while (condition);&lt;/pre&gt;
  &lt;p&gt;Цикл сначала выполнит тело, а затем проверит условие &lt;code&gt;condition&lt;/code&gt;, и пока его значение равно &lt;code&gt;true&lt;/code&gt;, он будет выполняться снова и снова.&lt;/p&gt;
  &lt;p&gt;Пример цикла:&lt;br /&gt;&lt;code&gt;let i = 0;&lt;br /&gt;do {&lt;br /&gt;  alert( i );&lt;br /&gt;  i++;&lt;br /&gt;} while (i &amp;lt; 3);&lt;/code&gt;&lt;/p&gt;
  &lt;h2&gt;Цикл «for» : &lt;/h2&gt;
  &lt;p&gt;Синтаксис : &lt;br /&gt;&lt;code&gt;for (начало; условие; шаг) {&lt;br /&gt;  // ... тело цикла ...&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Пример цикла :&lt;br /&gt;&lt;code&gt;for (let i = 0; i &amp;lt; 3; i++) { // выведет 0, затем 1, затем 2&lt;br /&gt;  alert(i);&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;То есть, &lt;em&gt;начало &lt;/em&gt;выполняется один раз, а затем каждая итерация заключается в проверке &lt;em&gt;условия&lt;/em&gt;, после которой выполняется &lt;em&gt;тело &lt;/em&gt;и &lt;em&gt;шаг.&lt;/em&gt;&lt;/p&gt;
  &lt;h2&gt;Прерывание цикла: «break»&lt;/h2&gt;
  &lt;p&gt;Но мы можем выйти из цикла в любой момент с помощью специальной директивы &lt;code&gt;break&lt;/code&gt;. &lt;/p&gt;
  &lt;p&gt;Вообще, сочетание «бесконечный цикл + &lt;code&gt;break&lt;/code&gt;» – отличная штука для тех ситуаций, когда условие, по которому нужно прерваться, находится не в начале или конце цикла, а посередине.&lt;/p&gt;
  &lt;h2&gt;Переход к следующей итерации: continue&lt;/h2&gt;
  &lt;p&gt;&lt;br /&gt;Директива &lt;code&gt;continue&lt;/code&gt; – «облегчённая версия» &lt;code&gt;break&lt;/code&gt;. При её выполнении цикл не прерывается, а переходит к следующей итерации (если условие все ещё равно &lt;code&gt;true&lt;/code&gt;).&lt;/p&gt;
  &lt;p&gt;Её используют, если понятно, что на текущем повторе цикла делать больше нечего.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Важно усвоить этот материал, циклы будут вам встречаться каждый день, поэтому в этот раз я дал вам мало теории, но побольше практики.&lt;br /&gt;&lt;/p&gt;
  &lt;h2&gt;Домашнее задание :&lt;/h2&gt;
  &lt;ol&gt;
    &lt;li&gt;Проверить,  что будет, если в цикле&lt;strong&gt; for&lt;/strong&gt; убрать условия частично или же полностью.&lt;/li&gt;
    &lt;li&gt;Решить задачку: &lt;br /&gt;Написать скрипт, который получает число N через prompt(), потом последовательность из N чисел, надо найти и вывести в консоль 3 числа, дающих максимальное  произведение(тройки не обязательно рядом)&lt;/li&gt;
  &lt;/ol&gt;

</content></entry><entry><id>learnscript:qC2stDGFt</id><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript/qC2stDGFt?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><title>Универсальный солдат или узкий специалист? Что должен знать и уметь DevOps-инженер</title><published>2020-04-11T09:31:28.137Z</published><updated>2020-04-11T09:31:28.137Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/c7/c0/c7c01e72-e578-4669-891e-f443917f3cf4.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/39/f6/39f68d3c-19db-4102-8405-64fdb70943b4.jpeg&quot;&gt;DevOps — восходящий тренд в IT, популярность и востребованность специальности постепенно растет. У GeekBrains не так давно открылся факультет DevOps, на котором готовят специалистов соответствующего профиля. К слову, профессию девопса часто путают со смежными — программированием, системным администрированием и т. п.</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/39/f6/39f68d3c-19db-4102-8405-64fdb70943b4.jpeg&quot; width=&quot;1271&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;DevOps — восходящий тренд в IT, популярность и востребованность специальности постепенно растет. У GeekBrains не так давно открылся &lt;a href=&quot;https://geekbrains.ru/geek_university/devops&quot; target=&quot;_blank&quot;&gt;факультет DevOps&lt;/a&gt;, на котором готовят специалистов соответствующего профиля. К слову, профессию девопса часто путают со смежными — программированием, системным администрированием и т. п.&lt;/p&gt;
  &lt;p&gt;Для того чтобы прояснить, что вообще такое DevOps и для чего нужны представители этой профессии, мы поговорили с Николаем Бутенко, архитектором &lt;a href=&quot;https://mcs.mail.ru/&quot; target=&quot;_blank&quot;&gt;Mail.ru Cloud Solutions&lt;/a&gt;. Он принимал участие в разработке программы курса факультета DevOps и одновременно преподает студентам третьей четверти.&lt;/p&gt;
  &lt;h2&gt;Что вообще должен знать и уметь хороший DevOps?&lt;/h2&gt;
  &lt;p&gt;Здесь лучше сразу сказать, чего он не должен уметь. Существует миф, что представитель этой профессии — человек-оркестр, который может написать отличный код, затем протестировать его, а в свободное время идет и чинит принтеры коллегам. Возможно, еще помогает на складе и подменяет бариста.&lt;/p&gt;
  &lt;p&gt;Для того чтобы знать, что должен уметь DevOps-специалист, вернемся к определению самого понятия. DevOps — это оптимизация времени от разработки продукта до выпуска продукта на рынок. Соответственно, специалист оптимизирует процесс между разработкой и эксплуатацией, говорит на их языке и строит грамотный пайплайн.&lt;/p&gt;
  &lt;p&gt;Что нужно знать и уметь? Вот то, что является важным:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Нужны хорошие soft skills, поскольку требуется одновременно взаимодействовать с несколькими отделами внутри одной компании.&lt;/li&gt;
    &lt;li&gt;Аналитическое структурное мышление, чтобы смотреть на процессы сверху и понимать, как их оптимизировать.&lt;/li&gt;
    &lt;li&gt;Надо самому разбираться во всех процессах разработки и эксплуатации. Только тогда их можно оптимизировать.&lt;/li&gt;
    &lt;li&gt;Нужны еще и отличные навыки планирования, анализа и проектирования для создания унифицированного производственного процесса.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2&gt;Все представители DevOps одинаковы или есть различия внутри специальности?&lt;/h2&gt;
  &lt;p&gt;В последнее время возникло несколько ответвлений внутри одной специальности. Но в целом, в понятие DevOps включены в основном три направления: SRE (администратор), Developer (разработчик), Manager (отвечает за взаимодействие с бизнесом). DevOps-специалист понимает потребности бизнеса и организовывает эффективную работу между всеми путем создания унифицированного процесса.&lt;/p&gt;
  &lt;p&gt;Он также хорошо представляет себе все процессы цикла разработки продукта, архитектуру, разбирается в информационной безопасности на том уровне, чтобы оценивать риски. Кроме того, DevOps знают и понимают подходы и средства автоматизации, а также пред и пост-релизную поддержку программ и сервисов. В целом, задача DevOps — как раз видеть всю систему, как единое целое, направлять и управлять процессами, которые способствуют развитию этой системы.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/6b/8a/6b8a661a-e05a-43a1-8eaf-d8354a00a517.gif&quot; width=&quot;540&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;К сожалению, что в России, что за границей работодатели далеко не всегда понимают суть DevOps. Просматривая публикуемые вакансии можно заметить, что называя вакансию DevOps, компании ищут то сисадминов, то Kubernetes-администраторов, то вообще тестеров. Особенно сильно бросается в глаза весьма разнородный фарш знаний и умений в вакансиях по DevOps с HH.ru, LinkedIn.&lt;/p&gt;
  &lt;p&gt;Важно отметить, что DevOps — не просто специальность, это, в первую очередь, методология отношения к инфраструктуре как к коду. В результате внедрения методологии все участники команды разработки видят и понимают не только свой участок работ, у них возникает видение работы всей системы.&lt;/p&gt;
  &lt;h2&gt;Чем может помочь DevOps компании, в которой работает?&lt;/h2&gt;
  &lt;p&gt;Одна из важнейших метрик для бизнеса — Time-to-Market (TTM). Это время выхода на рынок, то есть отрезок времени, в течение которого выполняется переход от идеи создания продукта к выводу продукта в продажу. TTM особенно важен для тех отраслей, где продукты быстро устаревают.&lt;/p&gt;
  &lt;p&gt;При помощи DevOps целый ряд известных ритейлеров в РФ и зарубежье стали развивать новые направления. Эти компании массово переходят в онлайн, полностью или частично отказываясь от офлайн-площадок. В этих условиях нужна быстрая разработка приложений и сервисов, которая невозможна без использования DevOps-инструментов.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/c6/69/c6698666-deec-4423-b872-162729e40c1f.gif&quot; width=&quot;695&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;В итоге некоторым ритейлерам удалось ускорить процесс вывода необходимых для приложений и сервисов буквально за день. А это — важнейший фактор конкуренции в условиях современного рынка.&lt;/p&gt;
  &lt;h2&gt;Кто может стать DevOps?&lt;/h2&gt;
  &lt;p&gt;Конечно, здесь будет проще представителям технических специальностей: программистам, тестировщикам, сисадминам. Тому, кто собирается в эту сферу без соответствующего образования, нужно быть готовым к изучению основ программирования, тестирования, управления процессами и системного администрирования. И только потом, когда все это освоено, можно будет приступать к изучению DevOps-концепции как единого целого.&lt;/p&gt;
  &lt;p&gt;Лучше всего DevOps дается тем людям, кто обладает аналитическим складом мышления и способен использовать системный подход. Сложно сказать, сколько времени понадобится новичку для того, чтобы стать классным DevOps’ом. Здесь все зависит от начальной базы, а также от окружения и задач, которые нужно решать, плюс от масштаба компании. В числе компаний, которым нужны девопсы много технологических гигантов: Amazon, Netflix, Adobe, Etsy, Facebook и Walmart.&lt;/p&gt;
  &lt;p&gt;В качестве вывода можно сказать, что более половины размещенных вакансий по поиску DevOps на самом деле предназначены для опытных системных администраторов. Тем не менее, потребность в DevOps постепенно растет, и сейчас очень не хватает грамотных специалистов этого профиля.&lt;/p&gt;
  &lt;p&gt;Для того чтобы стать таким специалистом, нужно изучать новые технологии, инструменты, использовать системный подход в ходе работы и грамотно применять автоматизацию. Без нее очень сложно, если вообще возможно, грамотно организовать DevOps.&lt;/p&gt;

</content></entry><entry><id>learnscript:aS0z960za</id><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript/aS0z960za?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><title>КУРС ПО JAVASCRIPT. Урок 2</title><published>2020-04-08T06:29:38.123Z</published><updated>2020-04-08T18:51:13.168Z</updated><summary type="html">В данном уроке мы рассмотрим две темы : введение в объекты и логические операторы.</summary><content type="html">
  &lt;p&gt;В данном уроке мы рассмотрим две темы : введение в объекты и логические операторы.&lt;/p&gt;
  &lt;h2&gt;Введение в объекты :&lt;/h2&gt;
  &lt;p&gt;Еще раз повторим, как записывается объект :&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;let value = {&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;     firstName : &amp;#x27;Andrey&amp;#x27;,&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;     age : 27,&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;     &amp;#x27;city&amp;#x27; : &amp;#x27;Moscow&amp;#x27;     &lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;При записи ключа &amp;#x27;&amp;#x27; или же &amp;quot;&amp;quot; используются для записи, когда ключ состоит из нескольких слов &lt;code&gt;&amp;#x27;our key&amp;#x27;: &amp;#x27;front-end&amp;#x27;;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Значение может быть любого типа. Давайте добавим свойство с логическим значением:&lt;/p&gt;
  &lt;pre&gt;value.isAdmin = true;&lt;/pre&gt;
  &lt;p&gt; Выводим  значение: &lt;/p&gt;
  &lt;p&gt;&lt;code&gt;alert(value.age);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Для удаления свойства : &lt;/p&gt;
  &lt;p&gt;&lt;code&gt;delete value.isAdmin;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;На начальном этапе это все, что вам потребуется знать об объектах, позже мы подробнее разберем данную тему. &lt;/p&gt;
  &lt;h2&gt;Логические операторы :&lt;/h2&gt;
  &lt;p&gt;Некоторые логические операторы мы знаем из жизни : +, -, *, / . Но в программирование есть также != (не равно), ==(нестрогое равенство), ===(строгое),&amp;gt;=(больше или равно),&amp;gt;(больше),&amp;lt;(меньше),&amp;lt;=(меньше или равно).&lt;/p&gt;
  &lt;p&gt;Но в языках программирования есть также условные операторы : &lt;br /&gt;Синтаксис: &lt;/p&gt;
  &lt;p&gt;&lt;code&gt;if(условие) {&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;      //actions&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;}else{&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;      //else actions&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Примет использования : &lt;br /&gt;let value = 10;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;if(value == 10){&lt;br /&gt;       console.log(Yes, value);&lt;br /&gt;}else {&lt;br /&gt;        console.log(No, value);&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;p&gt;Также с помощью оператора if можно проверить существует ли переменная, не равно ли она undefined или же объект на пустое множество, в этом случае мы просто пишем переменную в условие : &lt;/p&gt;
  &lt;p&gt;let value = {};&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;if(value) {&lt;br /&gt;    console.log(true);&lt;br /&gt;}else{&lt;br /&gt;    console.log(false);&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;h2&gt;Домашнее задание : &lt;/h2&gt;
  &lt;ol&gt;
    &lt;li&gt;Написать программу, которая получает на вход значение из модульного окна (используем prompt, если не знакомы &lt;a href=&quot;https://learn.javascript.ru/alert-prompt-confirm&quot; target=&quot;_blank&quot;&gt;https://learn.javascript.ru/alert-prompt-confirm&lt;/a&gt;), если это число, то переводит в строку, если булевый тип, то в number, выводим переменную и её тип.&lt;/li&gt;
    &lt;li&gt;Изучить материал&lt;/li&gt;
    &lt;li&gt;Повторить предыдущий&lt;/li&gt;
  &lt;/ol&gt;

</content></entry><entry><id>learnscript:SUlFAc65F</id><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript/SUlFAc65F?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><title>КУРС ПО JAVASCRIPT. Урок 1.</title><published>2020-04-07T02:09:20.368Z</published><updated>2020-04-07T02:38:54.604Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/f7/50/f750c632-5854-4b8f-bc6d-69b1227ab679.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/7e/65/7e657801-4273-4d8f-a5c1-846f3e8fa05a.png&quot;&gt;Привет! Если ты попал на этот курс, значит тебе охото изучить или же вспомнить JavaScript, в этом я смогу помочь тебе! Наш курс будет разбит на 4 блока: 
</summary><content type="html">
  &lt;p&gt;Привет! Если ты попал на этот курс, значит тебе охото изучить или же вспомнить JavaScript, в этом я смогу помочь тебе! Наш курс будет разбит на 4 блока: &lt;br /&gt;&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Основы языка&lt;/li&gt;
    &lt;li&gt;Асихронный JavaScript&lt;/li&gt;
    &lt;li&gt;ООП&lt;/li&gt;
    &lt;li&gt;Модули&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;После окончания курсов я постараюсь дать напутствие каждому для дальнейшего развития вас, как Front-end developer. В каждом блоке мы будем стараться делать по 1 проекту, без практики никуда. Будет выдаваться домашнее задание, которое вам надо будет сделать и отправить в личные сообщения боту. Я использую редактор VSCode, его можно скачать с &lt;a href=&quot;https://code.visualstudio.com/&quot; target=&quot;_blank&quot;&gt;официального сайта,&lt;/a&gt; установленные плагины : &lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/7e/65/7e657801-4273-4d8f-a5c1-846f3e8fa05a.png&quot; width=&quot;1366&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2&gt;Теория:&lt;/h2&gt;
  &lt;p&gt;Итак, сегодня мы разберем базовые составляющие языка : &lt;strong&gt;типы данных, переменные, преобразование типов данных, числа и строки.&lt;/strong&gt;&lt;/p&gt;
  &lt;h2&gt;Типы данных:&lt;/h2&gt;
  &lt;p&gt;  1. Примитивные&lt;/p&gt;
  &lt;p&gt; - Number: 2019, 1.5, NaN(особый тип, который получаем при ошибке в вычислении)  , Infinity(при делении на 0)&lt;/p&gt;
  &lt;p&gt; - String: &amp;#x27;Hello&amp;#x27;, &amp;quot;Hello&amp;quot;, &amp;#x60;Hello&amp;#x60;( &amp;#x60; &amp;#x60; , косые верхние запятые используется, чтобы ввести переменную)&lt;/p&gt;
  &lt;p&gt; - Boolean: true, false&lt;/p&gt;
  &lt;p&gt; - Null: null(указывает на то, что значение не известно, не получено)&lt;/p&gt;
  &lt;p&gt; - Undefined: undefined(переменная ничему не равна,не задана),&lt;/p&gt;
  &lt;p&gt; - Symbol()(уникальный индификатор)&lt;/p&gt;
  &lt;p&gt;Попробуем выведем пару штук в консоль :&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;console.log(2019, 1.5);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;console.log(&amp;#x27;Hello&amp;#x27;, &amp;quot;Hello&amp;quot;, &amp;#x60;Hello&amp;#x60;);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;console.log(null);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Типы данных:&lt;/p&gt;
  &lt;p&gt;  2. Объекты. (Reference type) Передаются по ссылке.&lt;/p&gt;
  &lt;p&gt; - Object: { name: &amp;#x27;Denis&amp;#x27;, age: 30 }&lt;/p&gt;
  &lt;p&gt; - Array: [1, 2, 3]&lt;/p&gt;
  &lt;p&gt; - Function: function foo() {}&lt;/p&gt;
  &lt;p&gt; - Date: new Date()&lt;/p&gt;
  &lt;p&gt;   ....&lt;/p&gt;
  &lt;p&gt;Попробуем вывести в виде таблицы в консоль :&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;console.table({ name: &amp;#x27;Denis&amp;#x27;, age: 30 });  //Чистой воды объект      {ключ1 : значение1, ключ2: значение2}&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;console.log([1, 2, 3, 4]);  //Массив также относится к объектам, через запятую указываем элементы массива, индекс счета начинается с 0&lt;/code&gt;&lt;/p&gt;
  &lt;h2&gt;Переменные:&lt;/h2&gt;
  &lt;p&gt;Объявление переменных раньше раньше писалось через var, например, &lt;code&gt;var city = &amp;#x27;Moscow&amp;#x27;;&lt;/code&gt;. С недавних пор var ушел, и стали использоваться let и const, у var было слишком много минусов. Можно было несколько раз объявлять переменную с одним и тем же именем или же происходило наслаивание кода. Теперь же мы используем такие записи : &lt;/p&gt;
  &lt;p&gt;&lt;code&gt;let city = &amp;#x27;Moscow&amp;#x27;;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;const city = &amp;#x27;Moscow&amp;#x27;; // не изменяемая переменная &lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Есть четыре вида записи переменной userAge, user_age,  UserAge,  userage, следует выбрать один стиль написания и использовать его везде, не изменяя традициям.&lt;/p&gt;
  &lt;p&gt;Переменные можно переназначать, например : &lt;/p&gt;
  &lt;p&gt;&lt;code&gt;let city = &amp;#x27;Moscow&amp;#x27;;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;city = &amp;#x27;Ufa&amp;#x27;;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;city = &amp;#x27;Kazan&amp;#x27;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Это не будет являться ошибкой, просто каждый раз переменная принимает другое значение.&lt;/p&gt;
  &lt;p&gt;Чтобы объявить объект следует использовать следующий синтаксис :&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;let имя_объекта = {&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;      ключ1 : значение1;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;      ключ2 : значение2;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Для записи одного из ключей : &lt;/p&gt;
  &lt;p&gt;&lt;code&gt;имя_объекта.ключ1 = значение1;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Для записи ключа, если имя ключа не однострочное : &lt;/p&gt;
  &lt;p&gt;имя_объекта[&amp;#x27;ключ1&amp;#x27;] = значение1;&lt;/p&gt;
  &lt;h2&gt;Преобразование типов данных:&lt;/h2&gt;
  &lt;ol&gt;
    &lt;li&gt;Преобразование в строку(Type to string) : используется метод toString()   &lt;/li&gt;
  &lt;/ol&gt;
  &lt;p&gt;&lt;code&gt;value = (10).toString(); value = String(10);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;     2. Преобразование в число (Type to number) : используется Number()&lt;/p&gt;
  &lt;p&gt;     &lt;code&gt;value = Number(&amp;#x27;23&amp;#x27;);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;     3 Преобразование в булевое значение (Type to boolean) : используется  Boolean()&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;value = Boolean(&amp;#x27;0&amp;#x27;);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Для вывода типа данных используется &lt;code&gt;typeof&lt;/code&gt; :&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;console.log(typeof value);&lt;/code&gt;&lt;/p&gt;
  &lt;h2&gt;Числа : &lt;/h2&gt;
  &lt;p&gt;С числами в Javascript используется те же операции, что и в жизни, но так же есть так называемый Math, который имеет множество функций, полезных для работы.&lt;/p&gt;
  &lt;p&gt;Например:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;value = Math.PI;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;value = Math.random();&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;value = Math.ceil(2.1);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;value = Math.floor(2.9);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;value = Math.min(2, 12, 15, 0, 12);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;value = Math.max(2, 12, 15, 0, 12);&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;/p&gt;
  &lt;p&gt;Это самые основные функции, который следует знать, об их значении надо будет прочитать самостоятельно в документации!&lt;/p&gt;
  &lt;h2&gt;Строки:&lt;/h2&gt;
  &lt;p&gt;Строки(string) записываются с помощью &amp;#x27; &amp;#x27; , например :&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;const firstName = &amp;#x27;Andrey&amp;#x27;;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Для начала нам следует понять по какому принципу происходят операции со строками:&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;const firstName = &amp;#x27;Andrey&amp;#x27;;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;const city = &amp;#x27;Ufa&amp;#x27;;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;value = firstName + &amp;#x27;was born&amp;#x27; + city;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;console.log(value)&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Выведется : Andrey was born Ufa.&lt;/p&gt;
  &lt;p&gt;Попробуйте сами поиграться и понять, почему же именно так происходит вывод.&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;value = firstName.length;&lt;/code&gt; - используется для вычисления длины переменной, проблемы тоже учитываются.&lt;/p&gt;
  &lt;p&gt;Так же есть ряд методом, которые следует освоить :&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;toUpperCase()&lt;/li&gt;
    &lt;li&gt;concat()&lt;/li&gt;
    &lt;li&gt;indexOf()&lt;/li&gt;
    &lt;li&gt;includes()&lt;/li&gt;
    &lt;li&gt;slice()&lt;/li&gt;
    &lt;li&gt;replace()&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Их вам следует изучить самостоятельно, они вам будут часто попадаться в работе.&lt;/p&gt;
  &lt;h2&gt;Домашнее задание:&lt;/h2&gt;
  &lt;ol&gt;
    &lt;li&gt;Установить редактор кода с нужными плагинами&lt;/li&gt;
    &lt;li&gt;Изучить всю теорию, если что-то непонятно написать в бот&lt;/li&gt;
    &lt;li&gt;Лично проверить все примеры, а лучше придумать самому и опробовать&lt;/li&gt;
    &lt;li&gt;Объявите 5 различных переменных&lt;/li&gt;
    &lt;li&gt;Выполните 5 математических операций с Math&lt;/li&gt;
    &lt;li&gt;Выполните 5 операций со строками&lt;/li&gt;
    &lt;li&gt;Изучить самостоятельно нужные материалы и на них сделать 10 примеров ( строки concat()....  ) &lt;/li&gt;
  &lt;/ol&gt;

</content></entry><entry><id>learnscript:mZB2n__i7</id><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript/mZB2n__i7?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><title>А ты сможешь решить 3 логические задачи для настоящего программиста?</title><published>2020-03-31T08:44:39.775Z</published><updated>2020-03-31T08:44:39.775Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/c2/98/c2989308-c8e0-40ed-9027-793effbe6c32.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/0b/cc/0bcc487e-199e-46d3-bacb-e87215660a0d.jpeg&quot;&gt;Компании любят проверять молодых специалистов на различные логические задачи. Мы подобрали три интересных задачи, которые заставят вас задуматься.</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/0b/cc/0bcc487e-199e-46d3-bacb-e87215660a0d.jpeg&quot; width=&quot;770&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Компании любят проверять молодых специалистов на различные логические задачи. Мы подобрали три интересных задачи, которые заставят вас задуматься.&lt;/p&gt;
  &lt;h4&gt;№1 – Как на счёт кофе?&lt;/h4&gt;
  &lt;p&gt;&lt;em&gt;Предположительная ситуация:&lt;/em&gt; в вашем офисе поставили 3 автомата, которые делают разнообразные напитки. Первый автомат изготавливает кофе, второй делает чай, а третий способен давать один из перечисленных напитков, но не предоставляет право выбора. Чтобы воспользоваться любым аппаратом требуется кинуть 1 монету. На автоматах присутствуют специальные наклейки, обозначающие тип выдаваемого напитка. &lt;u&gt;Одна проблема&lt;/u&gt; – по техническим причинам завод перепутал все обозначения. Каждый автомат имеет неправильную наклейку. Вопрос, сколько потребуется монет, чтобы правильно определить тип автоматов?&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/59/ac/59acb955-9310-41e9-9a37-3b2748c8b4a2.jpeg&quot; width=&quot;1020&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; Задача только на первый взгляд сложная, от этой мысли следует абстрагироваться, решение лежит на поверхности.&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;Подходим к аппарату с пометкой «кофе-чай» и бросаем таксу в виде монетки. Помним, что все наклейки неправильные, соответственно здесь либо чай, либо кофе.&lt;/li&gt;
    &lt;li&gt;Предположим, что аппарат выдал чай, соответственно модель с надписью кофе не может выдавать кофе (все наклейки неправильные) и чай, так как ранее уже был найден аппарат с ним.&lt;/li&gt;
    &lt;li&gt;При помощи исключения возможных вариантов несложно определить, где выдаётся кофе.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p&gt;&lt;strong&gt;Итог:&lt;/strong&gt; 1 монеты достаточно.&lt;/p&gt;
  &lt;h4&gt;#2 – Фальшивые монеты&lt;/h4&gt;
  &lt;p&gt;Программирование и математика непосредственно связаны, но логика профессии должна выходить за пределы предмета. Как на счёт попробовать интересную задачу с весами.&lt;/p&gt;
  &lt;p&gt;Перед нами 12 монет, среди них 11 штук оригинальные, а одна из них фальшивая. Поддельная копия монеты имеет отличительный вес. Суть задания необходимо определить фальшивую монету за минимальное количество взвешиваний. В ходе процедуры применяются чашечные весы.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/f5/a0/f5a0b9a4-b1cf-4504-a98d-ea70f1b61a6a.jpeg&quot; width=&quot;893&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; Элементарная задача, но все равно не редко появляется путаница, половина отвечает 1 или 2. Для определения поддельной копии следует провести 3 взвешивания, так как у нас не получится узнать какая конкретно монета является поддельной за меньшее количество попыток. Соответственно, большая часть монет должна быть с одинаковым весом, так как они настоящие, а третья монета, из последнего взвешивания, будет поддельной.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Итог:&lt;/strong&gt; потребуется 3 взвешивания.&lt;/p&gt;
  &lt;h4&gt;#3 – Вода в бочке&lt;/h4&gt;
  &lt;p&gt;Перед вами пустая и герметичная бочка. Задача заключается в том, чтобы наполнить ёмкость водой, а сложность – тара должна быть заполнена ровно на &lt;code&gt;50%&lt;/code&gt;. Важное условие! Использовать длинные предметы вроде палки и подобного запрещено.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/97/cf/97cf8fd3-916c-4bab-97ff-b89dcb64b8de.jpeg&quot; width=&quot;400&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; Перед нами физика, вас это смущает? Программист должен быть всесторонне развит, особенно те представители профессии, которые заняты разработкой искусственного интеллекта. Подобные задачки могут пригодиться в жизни.&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;Берём шланг и наливаем в бочку побольше воды, не обязательно заполнять полностью, но важно получить уверенность, что воды больше 50%.&lt;/li&gt;
    &lt;li&gt;Бочку следует постепенно наклонять до получения угла 45° по отношению к ровной поверхности. Все излишки воды просто вытекут, а необходимый объём останется.&lt;/li&gt;
  &lt;/ol&gt;

</content></entry><entry><id>learnscript:OAoaeNh8D</id><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript/OAoaeNh8D?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><title>Что выбрать C++ или C#? С чего лучше начать?</title><published>2020-03-29T17:19:22.493Z</published><updated>2020-03-29T17:19:22.493Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/a1/24/a1248a90-2f76-4a40-bffc-f00e7a133442.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/37/88/3788ec54-68c3-46cb-b356-3c20ebe22155.jpeg&quot;&gt;Между собой оба языка очень похожи, при отсутствии опыта разобраться в различиях очень сложно. Статья поможет расставить всё по своим местам и укажет верный язык на основании поставленных задач.</summary><content type="html">
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/37/88/3788ec54-68c3-46cb-b356-3c20ebe22155.jpeg&quot; width=&quot;640&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Между собой оба языка очень похожи, при отсутствии опыта разобраться в различиях очень сложно. Статья поможет расставить всё по своим местам и укажет верный язык на основании поставленных задач.&lt;/p&gt;
  &lt;p&gt;Большинство программистов утверждают о необходимости начала изучения чистого C, но моё мнение – это пустая трата времени, которая не оправдается в будущем. Нет смысла изучать языки, которые уже давно устарели и были заменены на более перспективные, функциональные и интересные. Устаревшие языки не имеют нововведений, они практически не поддерживаются, а вакансии вовсе не появляются на различных биржах. &lt;/p&gt;
  &lt;p&gt;Единственная сфера использования – поддержание работоспособности проектов, которые ещё не перешли на обновлённые языки. Если проект качественный, он в скором времени обновится, иначе будет постепенно терять популярность, соответственно, все равно нет перспективы развития. При желании заняться изучением нового языка стоит предпочесть &lt;code&gt;C++&lt;/code&gt; или &lt;code&gt;C#&lt;/code&gt;.&lt;/p&gt;
  &lt;h4&gt;Особенности C#&lt;/h4&gt;
  &lt;p&gt;После пропуска большого этапа «обучения» на Си, можно задаться вопросом куда же всё-таки направляться и какое состояние в сфере программирования на C#. При выборе этого языка стоит помнить, что программист строго привязан к операционной системе &lt;strong&gt;Windows&lt;/strong&gt;, можно даже не учитывать преимущества &lt;u&gt;Mono Develop&lt;/u&gt;, так как основной недостаток – полная зависимость от дальнейших действий &lt;em&gt;Microsoft.&lt;/em&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/d1/62/d1621091-6abf-4e16-a8d3-7d9a48653765.jpeg&quot; width=&quot;770&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;В большей части вакансии &lt;strong&gt;C# &lt;/strong&gt;связанные с Asp.net – это веб разработка и всё тому подобное. Здесь уже выбор каждого. В отношении обучающего материала лучше сразу начинать с &lt;strong&gt;Шилдта&lt;/strong&gt;, его способ описания ООП достаточно понятен и ясен, хотя и сам язык не вызывает особых сложностей, особенно если есть хоть какие-то знания. После его прочтения стоит перейти к &lt;strong&gt;Троелсену&lt;/strong&gt;, который позволит почувствовать фундамент под ногами и даст более-менее приличные знания. После базового освоения языка можно дополнить информацию с помощью Рихтера, который детальнее раскроет особенности работы с .NET платформой.&lt;/p&gt;
  &lt;p&gt; &lt;/p&gt;
  &lt;h4&gt;Достоинства C++&lt;/h4&gt;
  &lt;p&gt;Теперь стоит обратиться к изучению С++, который хорошо показал себя за счёт абстракционного мышления. Иначе говоря, программист волен сам выбирать писать ли ему на высоком или низком уровне, изменяя способ написания в зависимости от задачи. &lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;С++&lt;/strong&gt; уже позволяет писать программы, которые могут работать на разных платформах, с этой целью разработан Qt. &lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/d9/19/d919052f-d5b6-45e1-8503-fdc0cc2819d4.jpeg&quot; width=&quot;532&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;В отношении методичной литературы стоит посоветовать &lt;strong&gt;Страуструпа&lt;/strong&gt;, его книга представлена в форме справочника, которая хорошо знакомит с принципами языка и методами работы. Когда с ним будет покончено можно перейти к &lt;strong&gt;Саттеру &lt;/strong&gt;и &lt;strong&gt;Мейерсу&lt;/strong&gt;, но для закрепления материала нужно обязательно использовать практические навыки. Этого уже достаточно для понимания языка выше среднего.&lt;/p&gt;
  &lt;p&gt;Если судить в целом, то все языки представляют собой только инструмент. Правильное использование – это залог успеха, состав мозгов и способ мышления помогают добиваться впечатляющих результатов всегда. Вовсе не обязательно изучать языки наизусть, напротив, заучивание даже плохо, достаточно всего лишь понимать принципы работы. Чтобы нам не углубляться в алгоритмы, стоит изучить книгу Кормена. &lt;/p&gt;
  &lt;p&gt;У каждого языка различаются сферы использования. Если акцент ставится на написание игр, лучше предпочесть &lt;strong&gt;С#&lt;/strong&gt;, ведь язык применяется в основе распространённого движка Unity. Он позволяет создавать игры как с 2-мерной графикой, так и полноценные &lt;strong&gt;3D&lt;/strong&gt;. В противовес можно сказать, что &lt;strong&gt;С++&lt;/strong&gt; применяется в основе &lt;u&gt;Unreal Engine&lt;/u&gt;, он отличается большей мощностью и требуется для написания масштабных игр для ПК.&lt;/p&gt;
  &lt;p&gt;&lt;/p&gt;
  &lt;h4&gt;Сравнение языков&lt;/h4&gt;
  &lt;h3&gt;1. Скорость написания&lt;/h3&gt;
  &lt;p&gt;C# обеспечивает быстрейший старт в сфере программирования, прототип можно создать значительно быстрее. Если в приоритете лежит скорость изначальной разработки, стоит выбирать C#, который выигрывает у С++.&lt;/p&gt;
  &lt;p&gt;После создания инфраструктуры, подбора основных методов работы, подключения, изучения библиотек и настройки билда скорость приблизительно выравнивается, значительного преобладания на одном из языков не отмечается. &lt;/p&gt;
  &lt;p&gt;Вывод следующий, если цель стоит в создании небольшого проекта с малым бюджетом, стоит выбирать C#, так как это позволит сократить время и затраты. Для создания продолжительных, крупных проектов преимущество будет незначительным.&lt;/p&gt;
  &lt;h3&gt;2. Кроссплатформенность&lt;/h3&gt;
  &lt;p&gt;В отношении кросплатформенности С++ сильно превосходит конкурента, хотя и есть определённые оговорки. Придётся прибегнуть к дополнительным затратам и между некоторыми платформами отмечается бинарная несовместимость.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/72/e9/72e94e8a-ec42-421c-bede-4b0b4edd4d27.jpeg&quot; width=&quot;1068&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;C# не кросплатформенный, существует разработанное решение со стороны на .net, оно позволяет связывать сразу несколько платформ. Изначально планировалось создание языка для кросплатформенного кодинга, но с течением времени направление развития было изменено. &lt;/p&gt;
  &lt;p&gt;Сейчас под &lt;strong&gt;Windows &lt;/strong&gt;разработана достаточно полноценная инфраструктура на .net, а в остальных платформах такого решения не было запущено.&lt;/p&gt;
  &lt;h3&gt;3. Библиотеки&lt;/h3&gt;
  &lt;p&gt;Выбор между библиотеками можно сделать в пользу С++, так как не только их количество больше, но и ассортимент качественнее. За длительную историю разработки удалось достичь хорошей оптимизации и было устранено большее количество недочётов. Многие библиотеки находятся в открытом доступе, могут использоваться на разных платформах и имеют открытый код. &lt;/p&gt;
  &lt;p&gt;Даже с учётом ряда положительных сторон всё не настолько радужно, ведь многие библиотеки С++ разработаны по различным структурам, порой даже без них. Нередко встречается структурно-процедурная форма построения, причина такого недостатка – перенос библиотеки с Си.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/cc/b9/ccb98826-3a34-473c-b9ca-dc1c7a697b50.png&quot; width=&quot;630&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Дополнительным минусом можно выделить формирование и переопределение основных типов данных. В множестве библиотек С++ возникает необходимость создавать собственные контейнеры, изменять базовые типы данных и строки. Со стороны логического обоснования – это обеспечивает повышенную производительность, улучшение кросплатформенности, устранение недостатков кода. Несмотря на очевидные позитивные стороны вопроса значительно снижается удобство пользования и красота кода. &lt;/p&gt;
  &lt;p&gt;Среди базовых библиотек C++ выбор не такой обширный, по функционалу С# превосходит их. Основная сложность и задача программиста – это правильный подбор библиотек и это потребуется даже при выполнении небольшого проекта.&lt;/p&gt;
  &lt;h3&gt;4. Стоимость поддержки&lt;/h3&gt;
  &lt;p&gt;Значительной разницы в цене поддержки между обоими языками не отмечается. Важно осознавать, что отдельные баги внутри приложений на С# сложно поддаются устранению методами .net. Если потребуется исправление багов, цена резко увеличится, а поддержание станет дороже. Если коснётся рефакторинга, то чаще всего проекты С# проще поддаются изменению.&lt;/p&gt;

</content></entry><entry><id>learnscript:_GSc0i91-</id><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript/_GSc0i91-?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><title>Что должен знать каждый Full Stack разработчик?</title><published>2020-03-29T14:38:54.566Z</published><updated>2020-03-29T14:38:54.566Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/48/79/48795d66-bc74-4170-a727-4ed53da9f3c2.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/30/c8/30c82510-27c8-4442-abb5-1a7a845a4af4.jpeg&quot;&gt;Умеете ли вы видеть в простоте красоту? Для разработчика это значит везде применять только один инструмент. В статье мы поговорим про 10 вещей, что должен знать каждый Full Stack.</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/30/c8/30c82510-27c8-4442-abb5-1a7a845a4af4.jpeg&quot; width=&quot;1956&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Умеете ли вы видеть в простоте красоту? Для разработчика это значит везде применять только один инструмент. В статье мы поговорим про 10 вещей, что должен знать каждый Full Stack.&lt;/p&gt;
  &lt;p&gt;Наверняка вы знаете, что язык JavaScript можно использовать как во front-end, так и в back-end. Может вы даже задумывались о таком варианте или уже активно им пользуетесь. Как бы то ни было, есть еще много вещей, которые необходимо узнать каждому, кто собирается стать Full-Stack JS веб-разработчиком. &lt;/p&gt;
  &lt;h4&gt;1. Фундаментальное понимание языка&lt;/h4&gt;
  &lt;p&gt;Конечно же, нереально стать разработчиком JS Full Stack без хорошего владения JavaScript. Причем асом быть не обязательно: хватит и среднего хорошего понимания. Многие ошибочно считают JavaScript простым языком, но это не совсем так. JS имеет множество своих особенностей и странностей. Но привыкнув к ним, вы найдете его очень интересным и удобным. Первое время примеры кода при запуске часто будут оказываться нестабильными. Тем не менее, научившись применять JavaScript правильно, вы станете писать весьма выразительно.&lt;/p&gt;
  &lt;p&gt;Обладателям объектно-ориентированной базы будет сложно воспринять тот факт, что JS является динамическим и прототипным одновременно. На первых порах работу может сильно облегчить один маленький нюанс, который, к сожалению, я сам узнал слишком поздно.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/c2/12/c2122838-c986-496a-bf65-94f409162019.png&quot; width=&quot;922&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;В целом язык имеет 2 типа данных: примитивы (их 5) и объекты (все остальное, в том числе функции, массивы). Некоторые примитивы вдобавок содержат объектные дубликаты – их JS автоматически приводит во время выполнения определенных операций.&lt;/p&gt;
  &lt;p&gt;Рассмотрим пример: &lt;code&gt;«hello».length&lt;/code&gt; создаст обертку объекта String для примитива string. Если изучать объекты на фундаментальном уровне, их можно представить в виде пары ключ (string) и значение (что угодно: один из примитивов или любой объект).&lt;/p&gt;
  &lt;p&gt;Наверное, следующим важным аспектом языка можно назвать его акцент на асинхронную разработку, что дает возможность продолжать главный поток выполнения кода параллельно с ожиданием завершения прочих методов. Делается это с помощью таких основных способов как колбэк и промисы.&lt;/p&gt;
  &lt;h4&gt;2. Frontend-фреймворк&lt;/h4&gt;
  &lt;p&gt;Благодаря высокой производительности одностраничные приложения сейчас стали очень популярными. Чтобы создавать их, желательно изучить любой Frontend-фреймворк. Самые востребованные – это Angular, Vue и React, но никто не запрещает вам выбрать какой-нибудь другой.&lt;/p&gt;
  &lt;p&gt;В мире JS постоянно ведутся споры о том, какой фреймворк самый лучший. Попробуйте загуглить обзоры и сравнения: вы найдете сотни статей, в которых детально разбираются плюсы и минусы каждого из них.&lt;/p&gt;
  &lt;h4&gt;3. HTML/CSS&lt;/h4&gt;
  &lt;p&gt;Вы в любом случае захотите использовать свои стили CSS и немного изменять применяемые фронтенд-библиотеки. Большинство из тех действий, которые касаются CSS, можно просто загуглить. Но если вам нравится заниматься дизайном тщательно, и вы хотите сделать сайт “живым”, придется познакомиться с CSS поближе. &lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/12/6d/126dd326-0574-49cf-a2f3-bd67860a7241.jpeg&quot; width=&quot;900&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Например, желательно изучить импортирование шрифтов пользователя, их стилизацию, установка свойств в зависимости от ширины экрана (здесь не помогут Bootstrap-сетки) и применение селекторов. &lt;/p&gt;
  &lt;p&gt;И HTML, и CSS не обязательно учить заранее – это лучше делать в процессе работы над проектом. Но до того как приступать к своим шаблонам, все-таки разберитесь с разницей между строчными и блочными элементами. Это спасет вас от лишней головной боли в процессе написания CSS-кода.&lt;/p&gt;
  &lt;h4&gt;4. Bootstrap 4&lt;/h4&gt;
  &lt;p&gt;В наши дни каждое приложение должно корректно смотреться на всех устройствах. А чтобы написать для этой цели весь требующийся CSS-код, придется потратить слишком много времени и усилий.&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/0e/9c/0e9cfdb9-b567-4d07-8771-98063f8e3fea.png&quot; width=&quot;250&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Кроме того, Frontend содержит много фич, призванных улучшить пользовательский опыт (popovers, элементы навигации, popups и т.д.). Чтобы реализовать их вручную, придется создать громадный бойлерплейт-код, на разработку и дальнейшую поддержку которого уйдет целая вечность. &lt;/p&gt;
  &lt;p&gt;Вот почему вам нужно изучить Bootstrap – библиотеку для фронтенда от компании Twitter. Она предоставляет широкий функционал, содержащий в том числе стили и интерактивность. С ее помощью вам не грозит начинать с нуля.&lt;/p&gt;
  &lt;p&gt;Конечно, никто не заставляет вас постигать все функции и возможности Bootstrap сразу. Мы советуем первым делом обратить внимание на rid-макет. Также, еще до работы над первым проектом, освойте панели навигации, которые сейчас используются абсолютно везде благодаря тому, что делают веб-страницы дружественными ко всем мобильным устройствам. Если вы пользуетесь Angular или React, то можете не переживать о совместимости с ними функций Bootstrap: в этих фреймворках предусмотрены библиотеки для интегрирования. &lt;/p&gt;
  &lt;h4&gt;5. NodeJS, а также Backend-фреймворк&lt;/h4&gt;
  &lt;p&gt;Как и любому другому языку программирования, JavaScript нужна специальная среда для запуска на сервере. NodeJS работает на движке V8, как и браузер, хотя разница между ними все-таки есть. Главное отличие заключается вот в чем: API браузером добавляется для получения доступа к DOM, тогда как Node делает это для взаимодействия с ОС. Каждый Full-Stack JS веб-разработчик должен знать NodeJS, чтобы не пришлось учить дополнительный язык.&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/dd/53/dd531268-deb7-4f36-8244-3f83a8d03ab6.png&quot; width=&quot;3800&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Выбирая backend-фреймворк (как и front-end), вы можете остановиться на любом варианте. Чаще всего используют ExpressJS, который разгоняет сервер и помогает приступить к написанию APIs. Желающим попробовать что-то другое, мы все-таки советуем вам для начала изучить Express, а уже потом экспериментировать с прочими имеющимися бэкенд-фреймворками.&lt;/p&gt;
  &lt;h4&gt;6. TypeScript&lt;/h4&gt;
  &lt;p&gt;По правде говоря, в JavaScript есть много проблем, например, с межбраузерной совместимостью, разными версиями NodeJS, сложным масштабированием из-за отсутствия типобезопасности и др. &lt;/p&gt;
  &lt;p&gt;TypeScript позволяет транспилировать в чистый ES5, что решает массу проблемы с совместимостью. Кроме того, вы сможете писать на JS как и на C# или Java, т.е. более привычным традиционным ОО-способом.&lt;/p&gt;
  &lt;h4&gt;7. Инструмент для вызова API&lt;/h4&gt;
  &lt;p&gt;Одна из самых распространенных ошибок начинающих разработчиков полного цикла – во время разработки Backend-а запускать APIs front-end-а. Из-за этого реализация кода требует гораздо больше времени. Приходится после каждого обновления страницы указывать значения по-новой и переходить к части front-end-а, в которой происходит вызов APIs.&lt;/p&gt;
  &lt;p&gt;Для ускорения процесса необходимо заниматься front-end-ом и backend-ом отдельно друг от друга. Существуют такие полезные инструменты для вызова API, как Postman и SoapUI. С их помощью вы сможете вызывать APIs без обращения к фронтенду и использовать их для работы с аутентифицированными маршрутами.&lt;/p&gt;
  &lt;h4&gt;8. Основы SQL&lt;/h4&gt;
  &lt;p&gt;Реляционные БД по-прежнему остаются самыми подходящими для многих веб-приложений, даже несмотря на шумиху вокруг NoSQL и MongoDB. Не имеет значения, станете ли вы применять JS для backend-а: все Full-stack разработчики должны хорошо знать SQL. Первым делом обратите внимание на базовые понятия, например, создание таблиц и заполнение их данными.&lt;/p&gt;
  &lt;p&gt;Большая часть реляционных БД, в том числе MySQL или PostgreSQL, великолепно комбинируются с NodeJS. Обращаться к ним можно так же просто, как к NoSQL и всем другим СУБД. Нам кажется, что SQL-запросы гораздо более интуитивно понятны, чем тех БД, которые используют JSONs. К тому же MySQL и PostgreSQL позволяют хранить данные в виде объектов JavaScript.&lt;/p&gt;
  &lt;h4&gt;9. Сквозное и блочное (или модульное) тестирование&lt;/h4&gt;
  &lt;p&gt;Никогда не пренебрегайте тестами. Тем более во front-end, где многие сильно недооценивают важность модульного тестирования. А ведь оно не только позволяет предотвратить появление багов, но и повышает надежность кода, принуждая вас совершать code review. Фреймворки вроде Angular обладают встроенными инструментами для проведения тестов, поэтому вам не грозит долгая возня с настройками: сразу начнете писать тесты.&lt;/p&gt;
  &lt;p&gt;Блочным тестированием должны проверяться все элементы, для которых предусмотрено изменение поведения после определенных действий пользователя. Что касается backend-а, в нем тестированию подлежат все маршруты, а также публичные методы, запускаемые пользователями.&lt;/p&gt;
  &lt;p&gt;Сквозное тестирование рекомендуется для всех действий пользователя, затрагивающих больше одной страницы и обращающихся к backend-у. К примеру, &lt;strong&gt;e2e&lt;/strong&gt;-тестированию нужно подвергать вход в аккаунт, после которого предусмотрено перенаправление (чаще всего на пользовательскую страницу).&lt;/p&gt;
  &lt;h4&gt;10. Аутентификация пользователя&lt;/h4&gt;
  &lt;p&gt;Безопасность сайта обеспечивается многими способами: identity-токены и access-токены, пользовательские хранилища для сессии или использование сторонних инструментов вроде Active Directory от Microsoft. Вы не должны знать каждый из них, но общее представление о существующих вариантах у вас должно быть. Поверхностно познакомившись со всеми, выберите наиболее простой способ и начните углубляться конкретно в него.&lt;/p&gt;
  &lt;p&gt;Также не помешает иметь базовые знания о распространенных формах хакерских атак. Это не значит, что вы должны стать экспертом в сфере кибербезопасности, просто вам стоит знать, каким видам атак может подвергаться ваш сайт. &lt;/p&gt;
  &lt;p&gt;Начать работу над безопасностью APIs backend-а мы рекомендуем с JWT. NodeJS имеет несколько отличных сторонних библиотек, которые используются с Express и весьма просты в применении.&lt;/p&gt;
  &lt;p&gt;JSON Web Token – это разновидность аутентификации в клиент-серверных приложениях, с помощью которой вы можете только валидным пользователям позволять отправлять запросы к backend-у. JWTs к тому же могут содержать зашифрованные JSON-данные, поэтому у вас появится возможность вычислять тех, кто отправляет защищенные запросы.&lt;/p&gt;

</content></entry><entry><id>learnscript:i_DYMApTu</id><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript/i_DYMApTu?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><title>Что сейчас с PHP и что ждёт его завтра?</title><published>2020-03-29T07:46:24.791Z</published><updated>2020-03-29T07:50:58.787Z</updated><summary type="html">&lt;img src=&quot;https://teletype.in/files/21/56/21563f99-104c-4681-a245-ab410e064871.jpeg&quot;&gt;В ходе статьи мы расскажем о сегодняшнем положении вещей и самом вероятном ближайшем будущем противоречивого языка PHP.</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/21/56/21563f99-104c-4681-a245-ab410e064871.jpeg&quot; width=&quot;770&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;В ходе статьи мы расскажем о сегодняшнем положении вещей и самом вероятном ближайшем будущем противоречивого языка PHP.&lt;/p&gt;
  &lt;p&gt;Среди айтишников PHP обладает далеко не идеальной репутацией – это ни для кого не секрет. К его минусам относят крайне плохую организацию кода, который получается небезопасным и полным «дыр», нестабильные библиотеки, отсутствие богатого опыта у разработчиков и многое другое.&lt;/p&gt;
  &lt;p&gt;Тем не менее, PHP все еще остается одним из самых популярных языков для создания веб-приложений. Большая часть недостатков осталась в прошлом, поэтому сейчас его с уверенностью можно назвать достойным инструментом, с помощью которого пишутся надежные, управляемые и актуальные проекты&lt;/p&gt;
  &lt;h4&gt;Начнем с начала&lt;/h4&gt;
  &lt;p&gt;До того, как углубиться в детали, выясним, как у PHP дела обстоят сейчас. На сегодняшний день последней версией является 7.4. Под конец 2020-го будет выпущена следующая – PHP 8.&lt;/p&gt;
  &lt;p&gt;После 5-ой версии создатели языка начали успешно придерживаться последовательного цикла создания апдейтов. Они сумели соблюдать годовой план на протяжении последних 4-ех лет. Все новые релизы поддерживались по 2 года, а на третий активная поддержка сменялась «security fixes only».&lt;/p&gt;
  &lt;p&gt;Сейчас над PHP трудится группа волонтеров, далеко не все из которых получают зарплату за полную ставку. Есть специальная &lt;a href=&quot;https://externals.io/&quot; target=&quot;_blank&quot;&gt;доска обсуждений&lt;/a&gt;, открытая для всех желающих, где можно увидеть активное обговаривание темы развития языка. Если интересно, обязательно зайдите и почитайте.&lt;/p&gt;
  &lt;h4&gt;Фреймворки &lt;/h4&gt;
  &lt;p&gt;Есть два главных фреймворка для веб-разработки – это Symfony и &lt;a href=&quot;https://itproger.com/course/laravel&quot; target=&quot;_blank&quot;&gt;Laravel&lt;/a&gt;. Кроме того существуют и более мелкие инструменты вроде Laminas, Code Igniter, Cake и прочих; но тем, кто хочет погрузиться в современную PHP-разработку, лучше выбрать любой из двух основных.&lt;/p&gt;
  &lt;p&gt;Предназначение этих фреймворков заключается в разработке. Поэтому, если вас интересует исключительно управление контентом, используйте WordPress, Statamic или CraftCMS, ведь у них есть такое важное преимущество, как постоянное совершенствование.&lt;/p&gt;
  &lt;h4&gt;Экосистема&lt;/h4&gt;
  &lt;p&gt;Фреймворки обладают широкой экосистемой пакетов, а также полностью готовых продуктов. Это и админки, и системы управления взаимоотношениями с клиентами, и автономные пакеты, и серверы веб-сокетов, платежные интеграции и много других полезных штук.&lt;/p&gt;
  &lt;p&gt;Чтобы оценить сегодняшнее состояние экосистемы языка PHP, нужно посмотреть на главный репозиторий: приблизительно 25 миллионов загрузок каждый день. &lt;/p&gt;
  &lt;p&gt;А это график, показывающий, как со временем увеличивается число пакетов и версий:&lt;/p&gt;
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/ae/c3/aec3f4b0-2ac1-4b75-a3ea-8a34b921cf6d.png&quot; width=&quot;1501&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Намного больше статистики можно найти на сайте &lt;a href=&quot;https://packagist.org/statistics&quot; target=&quot;_blank&quot;&gt;Packagist&lt;/a&gt;. &lt;/p&gt;
  &lt;p&gt;Кроме фреймворков и систем управления содержимым, сейчас наблюдается рост количества асинхронных фреймворков (среда &lt;a href=&quot;https://www.swoole.co.uk/&quot; target=&quot;_blank&quot;&gt;Swool&lt;/a&gt;, среда &lt;a href=&quot;https://amphp.org/&quot; target=&quot;_blank&quot;&gt;Amp&lt;/a&gt; и библиотека &lt;a href=&quot;https://reactphp.org/&quot; target=&quot;_blank&quot;&gt;ReactPHP&lt;/a&gt;). Данный софт создан на языках, которые позволяют пользователям работать с асинхронным кодом, в том числе на PHP.&lt;/p&gt;
  &lt;h4&gt;Производительность&lt;/h4&gt;
  &lt;p&gt;Если говорить о временах 5-ой версии, производительность PHP можно назвать максимум средней. Но в 7-ой версии ядро сильно переписали, тем самым увеличив его эффективность в несколько раз. Второй важной причиной, повышающей производительность, стал прелоадинг, за счет которого появилась возможность хранить в памяти скомпилированные участки кода.&lt;/p&gt;
  &lt;p&gt;В PHP 8 еще одной ускорялкой станет JIT-компилятор. Помимо прочего он должен открыть для PHP двери в другие области кроме веб-разработки.&lt;/p&gt;
  &lt;h4&gt;Итог&lt;/h4&gt;
  &lt;p&gt;Судя по всему, восьмая версия будет решительным шагом вперед. Даже в данный момент PHP является очень хорошим инструментом для разработки разных веб-сайтов. При этом нужно учесть, что он непрерывно обновляется, а значит, точно не скоро потеряет свою актуальность.&lt;/p&gt;

</content></entry><entry><id>learnscript:M90GnIH2Q</id><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript/M90GnIH2Q?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><title>Бьерн Страуструп отвечает на топ-4 вопроса по C++ со Stack Overflow</title><published>2020-03-27T08:22:44.682Z</published><updated>2020-03-27T08:24:30.895Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/ba/31/ba3106f1-b46b-4841-9df5-fe85ea24fb7b.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/7f/03/7f037e4e-8ea0-4e21-899a-31b4058d0bfc.png&quot;&gt;Мариэль Фрэнк и Сонни Ли, авторы курса Learn C++ на Codecademy, недавно получили возможность взять интервью у доктора Бьерна Страуструпа, создателя C++.</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/7f/03/7f037e4e-8ea0-4e21-899a-31b4058d0bfc.png&quot; width=&quot;1000&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Мариэль Фрэнк и Сонни Ли, авторы курса Learn C++ на Codecademy, недавно получили возможность взять интервью у доктора Бьерна Страуструпа, создателя C++.&lt;/p&gt;
  &lt;p&gt;В рамках этого интервью он ответил на вопросы по C++, набравшие наибольшее количество голосов на Stack Overflow Хотя все интервью достойно полного прочтения, Codecademy великодушно разрешили нам поделиться его частью.&lt;/p&gt;
  &lt;p&gt;Если вы когда-нибудь задумывались, существуют ли на Stack Overflow определяюще исчерпывающие ответы, то вот нечто ближайшее к этому, что вы можете получить наверняка (хотя мы ожидаем, что кто-то может не согласиться).&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-processing-an-unsorted-array&quot; target=&quot;_blank&quot;&gt;Почему обработка отсортированного массива быстрее, чем обработка несортированного массива?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Одной из причин является предсказание ветвлений: ключевая операция в алгоритме сортировки — “if(v[i] &amp;lt; pivot]) …” или эквивалент. Для отсортированной последовательности этот тест всегда верен, тогда как для случайной последовательности выбранная ветвь изменяется случайным образом.&lt;/p&gt;
  &lt;p&gt;Другая причина заключается в том, что когда вектор уже отсортирован, нам никогда не нужно перемещать элементы в правильное положение. Эффект этих маленьких деталей дает коэффициент равный приблизительно пяти или шести, который мы наблюдали.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://stackoverflow.com/questions/1642028/what-is-the-operator-in-c&quot; target=&quot;_blank&quot;&gt;Что такое оператор --&amp;gt; в C++?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Это старый вопрос с подвохом. В С ++ нет оператора --&amp;gt;.Рассмотрите следующее:&lt;/p&gt;
  &lt;pre&gt;if(p - - &amp;gt; m = = 0) f(p);&lt;/pre&gt;
  &lt;p&gt;Это фактически означает: посмотрите, больше ли p--, чем m (так оно и есть), а затем сравните результат (true) с 0. Что ж, true != 0, поэтому результат равен false и f() не вызывается.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list&quot; target=&quot;_blank&quot;&gt;Лучшее руководство и список книг C++&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;К сожалению, нет канонического списка книг по C++. Такого в принципе не может быть. Не всем нужна одинаковая информация, не у всех одинаковый опыт, и лучшие практики C++ постоянно развиваются.&lt;/p&gt;
  &lt;p&gt;Я провел небольшое исследование в Интернете и нашел удивительный набор рекомендаций. Многие были серьезно устаревшими, а некоторые были просто плохими. Новичок, ищущий хорошую книгу без руководства, будет очень смущен!&lt;/p&gt;
  &lt;p&gt;Вам действительно нужна книга, потому что методы, которые делают C++ эффективным, нелегко найти в нескольких блогах по конкретным темам, и, конечно, блоги также страдают от ошибок, устаревания и плохих объяснений. Часто они также фокусируются на продвинутых новых темах и игнорируют основные принципы.&lt;/p&gt;
  &lt;p&gt;Я рекомендую свое &lt;a href=&quot;https://amzn.to/2LGYthA&quot; target=&quot;_blank&quot;&gt;Программирование: Принципы и Практика использования C++ (2-е издание) для людей, только начинающих учиться программировать, и Тур по C++ (2-е издание)&lt;/a&gt; для людей, которые уже являются программистами и которым необходимо ознакомиться с современным C++. Люди с сильным математическим образованием могут начать с &lt;a href=&quot;https://amzn.to/2LEFCDS&quot; target=&quot;_blank&quot;&gt;Открытия современного C++: интенсивный курс для ученых, инженеров и программистов &lt;/a&gt; Питера Готшлинга.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://stackoverflow.com/questions/57483/what-are-the-differences-between-a-pointer-variable-and-a-reference-variable-in&quot; target=&quot;_blank&quot;&gt; Каковы различия между переменной-указателем и ссылочной переменной в C++?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Чтобы узнать больше о ссылках и указателях, ознакомьтесь с &lt;a href=&quot;https://www.codecademy.com/learn/learn-c-plus-plus&quot; target=&quot;_blank&quot;&gt;Learn C++&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Обе представлены в памяти как машинный адрес. Разница в их использовании. Чтобы инициализировать указатель, вы даете ему адрес объекта. Для чтения и записи через указатель мы используем оператор разыменования (*). Когда мы присваиваем один указатель другому, они оба будут указывать на один и тот же объект.&lt;/p&gt;
  &lt;p&gt;Обратите внимание, что указатель может указывать на разные объекты в течение своего жизненного цикла. Это основное отличие от ссылок. Ссылка привязывается к объекту при его создании и не может быть переделана в ссылку на другой.&lt;/p&gt;
  &lt;p&gt;&lt;/p&gt;
  &lt;p&gt;&lt;em&gt;Бьярн Страуструп — технический партнер и управляющий директор Morgan Stanley в Нью-Йорке и приглашенный профессор Колумбийского Университета. Он также является создателем C++.&lt;/em&gt;&lt;/p&gt;

</content></entry><entry><id>learnscript:BED40UQYa</id><link rel="alternate" type="text/html" href="https://teletype.in/@learnscript/BED40UQYa?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=learnscript"></link><title>Подборка книг по разработке под Android</title><published>2020-03-26T11:51:04.954Z</published><updated>2020-03-26T11:51:04.954Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/45/29/45298fdc-ffd8-4ef1-be95-c797daf0247f.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/3f/2b/3f2b0cd0-6087-4345-9520-c40c293035d2.jpeg&quot;&gt;Все учебные приложения были спроектированы таким образом, чтобы продемонстрировать важные концепции и приемы программирования под Android и дать опыт их практического применения.</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/3f/2b/3f2b0cd0-6087-4345-9520-c40c293035d2.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3&gt;Android. Программирование для профессионалов. 3-е издание&lt;/h3&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/94/6a/946a6493-041f-4b86-bbfc-7457b0def391.jpeg&quot; width=&quot;200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Все учебные приложения были спроектированы таким образом, чтобы продемонстрировать важные концепции и приемы программирования под Android и дать опыт их практического применения.&lt;/p&gt;
  &lt;p&gt;&lt;/p&gt;
  &lt;h3&gt;Head First. Программирование для Android. 2-е издание&lt;/h3&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/0a/1b/0a1becb7-f50c-4088-84db-aca5e9f59011.jpeg&quot; width=&quot;243&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Эта книга простым языком учит правильно формировать структуру приложений, проектировать гибкие и интерактивные интерфейсы, запускать службы в фоновом режиме, обеспечивать работу на разных устройствах и многое другое.&lt;/p&gt;
  &lt;h3&gt;Android для разработчиков. 3-е издание&lt;/h3&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/c0/ee/c0ee7d43-650b-4d12-8154-c7fb3c1a93cd.jpeg&quot; width=&quot;198&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;В основе книги лежит принцип разработки, ориентированной на приложения, — концепции показаны на примере полностью работоспособных приложений Android, а не фрагментов кода.&lt;/p&gt;
  &lt;h3&gt;Android. Сборник рецептов. Задачи и решения для разработчиков приложений. 2-е издание&lt;/h3&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/5d/56/5d565ec9-d7bb-435f-86a5-c287d14b7486.jpeg&quot; width=&quot;204&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Книга идеально подходит для разработчиков, владеющими языком Java, основами платформы Android и интерфейса Java SE API. Она содержит рецепты, предоставленные более чем тридцатью разработчиками. Каждый рецепт содержит четкое решение и пример кода, готовый к использованию.&lt;/p&gt;
  &lt;h3&gt;Эффективное использование потоков в операционной системе Android. Технологии асинхронной обработки данных&lt;/h3&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/47/00/4700ca67-a1df-44eb-83e0-2a25445f2029.jpeg&quot; width=&quot;191&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Эта книга с практической точки зрения описывает несколько асинхронных механизмов, доступных в программной среде Android SDK, а также рассматривает основные принципы и правила выбора одного из них, лучше всего подходящего для создаваемого приложения.&lt;/p&gt;

</content></entry></feed>