Содержание

Эффективное обучение C# разработчиков или Правильное программирование на C# с нуля

Эффективное обучение C# разработчиков или Правильное программирование на C# с нуля (Фишки для новичков в программировании организационного характера)

Добрый день тебе, Читатель.

Причиной написания этой статьи стало моё увлечение C# и некотоые наблюдения, изложенные ниже.

Я и помогавшие мне тренеры по избранной мной дисциплине, применяли свой опыт и наблюдательность, преследуя простую цель: Хоть кому-то облегчить жизнь программиста, сделать обучение лучше и удобней. К тому же это такое, своего рода, инсайдерство — Чистой воды GNU философия, приложенная к Майкрософтовскому продукту.

Как и многие другие, я столкнулся с отсутствием систематических и позволяющих получить понимание предмета материалов, рассчитанных на людей, к программированию ранее отношения не имевших. Говоря иначе, стало ясно, что — Нету в Укрнете такого ресурса или библиотеки с online консультантом профи, которые давали бы возможность взять и понять основы программирования. Вы скажете, минуточку, а как же Сертификационные центры Майкрософт. Есть ещё мощный и системный «Кибер Бионик Систематикс». Есть академия «ШАГ», прости Господи, ставшая притчей во языцех. Но все же обучающая. Все же…

Конечно, всё это есть. Платно, но ладно — «Бог с ними». Лишь бы доступно. Лишь бы с пользой для людей…

Здесь речь пойдёт не совсем об этом. Здесь статья о Старте. Той ситуации, когда человек хочет научиться и ищет информацию. Ищет. Ищет. Хочет. Очень хочет. И, всё-же, находит (Речь же всё таки идёт о наших студентах:) и, конечно-же, делает ошибки (Речь же всё таки идёт о наших студентах:).

Вот на их (ошибок) базе и базе здравого чувства юмора, мы и построили данный материал.

Надеемся, он понравится Вам.

Посещая профильные курсы по программированию, например Стартовый C#, Вы можете просто слушать тренера и выполнять Задачи, прилагаемые к Видео урокам по С#. Вы также можете посмотреть видео ролики по C#, доступные на прочих ресурсах, посвященных программированию в .NET и предлагающих быстрый старт, основанный на использовании инструментов этой Microsoft платформы, и предлагающих получить знания по CLR через понимание C# как языка программирования, доступного для изучения «с нуля». Несмотря на заявленную продолжительность обучающих курсов в 32, 76 или 112 часов. Поверьте мне, Вам придётся смириться с тем, что вы не сможете научиться программировать, потратив на это всего неделю-другую. Но, за этот промежуток времени, Вы вполне можете усвоить основы модели и организовать рабочий процесс, по-сути, облегчив свою работу, создав условия, максимально оптимизирующие процесс обучения программированию на C#, а также выявив «узкие места» и способы их решения.

Именно на этих «сложностях» мы и постараемся акцентировать внимание в данном материале, в тоже время стараясь давать и решения. Большинство «проблем в обучении C#» связаны с неусидчивостью, невнимательностью и, что куда более важно, нежеланием практиковать решения с абстрактно-пространственном мышлением, тем самым не позволяя, в процессе обучения, назвать проблемы и сложности – задачами и решить их. Мы надеемся, что данный материал поможет Вам в преодолении тех самых «ступенек новичка», с которыми сталкивается любой начинающий разработчик, желающий изучить C#.

Приступим.

1) Изучение С#. Первые задачи

Мы не зря выделили слово задачи. Практикуя такой подход, как замена негативных установок позитивными решениями, Вы нанесёте сокрушающий удар двум самым сильным врагам программиста С# – прокрастинации и спешке. Первочерёдная задача любого программиста напоминает задачу «ямабуси», странствующих буддистских монахов. Первым делом, если Вы хотите научится писать на C#, как и на любом другом объектно-ориентированном языке, Вам придётся обрести Осознанность. Вы должны четко осознавать, что Вам объясняют, зачем Вам нужны эти знания, какие идеи у Вас возникают при получении этих знаний и, что самое главное, Вы должны чётко осознавать, что ваш тренер по программированию не зря делает всё так, как делает. Программисты часто склонны переоценивать свой опыт. Тяга к упрощению создаваемых конструкций, случается, даёт обратные плоды – человек привыкает к тому, что его решение — это всегда «просто», а значит, малозатратно по времени и прилагаемым к решению усилиям. Так возникает прокрастинация – откладывание решений на вечное завтра и «реакция 2», названная так потому, что неосознанные новички в программировании действуют по двум моделям: либо «Я ничего не знаю и потому никогда это не пойму!» и «О! Так я это читал! Это как с тех видеокурсов по C# — Я всё это знаю!». Страх и гиперактивность — плохие помощники. А это именно они. Потому запомним вывод: никогда не торопитесь, всегда знайте зачем и почему Вы учитесь программированию здесь и сейчас, выполняйте учебный план, делая задания только правильно и в срок и лишь после этого двигайтесь дальше.

2) Работа с примерами кода в C#. Вопрос внимания и приоритетов

На начальном уровне, используя такие возможности, как очное обучение С#, видеоуроки по С# и пользуясь литературой, большинство новичков в программировании превращают плюсы в минусы. Поддержка, организованная тренером, доступом к видеоматериалам по C#, с включёнными в него задачниками и доступом к примерам в интернете, заставляют изучающих базовый C#, думать, что программирование — это нечто вроде «конструктора ЛЕГО», где код просто указывает, какие модули где лежат и что собирая их решаются задачи. Но это абсолютно не соответствует истине! Работа программиста — это написание кода. Жизнь программиста — это Понимание кода. Все тренировки производятся во имя Понимания роли тех или иных элементов, синтаксиса и понятий C#, а также среды, в которой разворачивает решения C# программист. Начало обучения программированию — это трата огромного количества времени тренера, на вопросы и разговоры о примерах C# кода, чтобы внимательно и спокойно понять, как можно работать с тем, что делает код.

3) Работа с действием. Практический разбор решений С#

Работа с примерами кода, осознанное и последовательное изучение логики C#, инструментария MS Visual Studio, верное определение приоритетов, основанное как на анализе полученных знаний в C#, так и на мнении тренера, знающего гораздо больше, страхуют Вас от «подхода менеджера», предпочитающего копипасту написанию. Код нужно писать. Это действие, свойственное программистам. И если Вы уж решили научиться программировать на C#, привыкайте Вводить решения. Строка за строкой, разбирая решения с тренером, постигая логику, понимая, почему написано так, а не иначе. Такой подход приведёт Вас к тому, что рано или поздно Вы вдруг заметите, что уже не только видите, почему писали так, а не иначе, но и можете написать иначе, проще и удобнее. «Найти и изменить» — вся суть современного программирования, на C# или любом другом современном языке. Когда Вы пишете программу, Вы всегда ищете данные, затем меняете их, вводя всё большее количество взаимосвязей, в свою очередь меняющих данные так, что из них получаются те самые – нужные данные, что были определены задачей.

4) Используйте задачники и отладчик для понимания возможностей C#. Пишите свой собственный код

Понимание примеров, знание синтаксиса, умение разбираться в системной логике и логике процессов, знакомство с ключевыми определениями абстрактно-пространственной модели C#, понятия класса C#, объекта C# и C# функции, а также умение создавать проекты в MS Visual Studio, дают Вам право пробовать свои силы. Помните, внимательность и сдержанность актуальны и здесь. Разработка своих вариантов задач из учебника и практических заданий, которые дополняли видеоуроки по C#, написание своих версий без обращения к базам исходного кода – нужна любая практика, тренирующая Вас не только как реализатора, но и как «генератора идей». Не забывайте про использование отладчика, заставляющего C# программиста проходить созданные им конструкции, строка за строкой, снова и снова, пока код не будет оптимизирован и работоспособен. Гордость за выполненную работу – вот желаемый результат в обучении IT специалистов в Украине, тем более если речь идёт о обучении программиста, избравшего путь изучения C#. Гордость, легко конвертируемая в любую избранную мотивацию. Ведь по настоящему хорошего специалиста всегда хотят все!

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

5) Хлопок одной ладонью или правило 10 000 вопросов. Необходимость комплексного и систематического подхода к обучению программированию на C# и в изучении .NET платформы

Если Вы научились писать код, то, наверное, это значит, что Вы уже не новичок в C#. Теперь Вы обрели самостоятельность и знаете, как принципы личностной организации рабочего процесса, так и «узкие места» и методы работы, позволяющие проходить их с лёгкостью и изяществом опытного программиста C#. Что же это значит? Вы стали C# разработчиком? Нет. Вы только сделали первый шаг. Нужен отрезвляющий хлопок одной ладонью, или говоря без притч и ассоциативного ряда с буддизмом, попросту пощечина, выданная самому себе с улыбкой. Теперь Вы можете переходить к тому, что называют Углубленное изучение C# или ответом тренеру, всё это время державшему нуба в чёрном теле. Пришла Ваша очередь, вот что это значит. 10 000. Именно 10 000 вопросов! Никак не меньше! 10 000 вопросов услышит от вас тренер в онлайн-консультации, в процессе очных занятий углубленного изучения C#, просмотра видео уроков и их обсуждения. Осознанных, неспешных, выдержанных и логичных до бешенства. Здесь и сейчас, как мы и учили Вас. Ведь Вы не просто начинающий C# программист, а человек, достигающий своих целей, умеющий мыслить абстрактно-пространственными категориями и знающий важность комплексного обучения программированию C# и изучению .NET платформы. И, да! Вот ещё кое-что. Надеюсь, теперь Вы и теперь не собираетесь обманывать себя тем, что Вы научитесь углубленной разработке на C# за пару-тройку недель.

Самоучитель по Си с нуля

Справочник по языку программирования СИ

1 урок.  Простейшая программа на Си.                                                          Установка Си для Windows 7

              Структура программы в Си.  Вывод сообщения на экран              Другие языки программирования:

2 урок   Переменные в Си. Операции                                                            Курс Python

             Типы переменных, Арифметические операции с перменными      Курс Vb

3 урок   Вывод информации на экран в Си.                                                   Курс Pascal

                Форматированный вывод информации на экран. Оператор Printf Курс по PHP

4 урок   Ввод данных с клавиатуры в Си

             Форматированный ввод информации с клавиатуры. Оператор scanf

5 урок  Ввод и вывод данных в Си++

             Операторы cout и cin

6 урок   Условия в Си. Оператор if

             Условные алгоритмы. Опертаор If

7 урок   Логические операции в Си

             Логические  выражения и операции and  or  (И,  ИЛИ)

8 урок   Множественный выбор в СИ

             Оператор switch

9 урок   Циклы в Си.Оператор for

             Циклические алгоритмы. Цикл for

10 урок  Цикл с условием в Си. Оператор while

11 урок  Графика в Си.

              Графический режим. Рисование основных фигур : точка, линия, окружность, прямоугольник

12 урок   Случайные числа в Си

               Задание случаных чисел в необходимом диапазоне 

13 урок  Процедуры и функции в Си.

              Глобальные и локальные переменные. Параметры функций и процедур. Зданаие процедур и функций в Си

14 урок   Массивы в Си.  

              Определение массива в Си. Задание массива с клавиатуры. Вывод массива на экран. 

15 урок   Матрицы в Си

               Определение матрицы в Си. Воод матрицы и вывод на экран

16 урок  Файлы в Си

                   Чтение и запись информации в файлы в Си

17 урок Ошибки в программах на Си

               Поиск и исправление ошибок в программах на си

Поделиться 

 

 

Программирование 1С с нуля

В этой статье я попытаюсь Вам рассказать. как с нуля, в кратчайшие сроки, изучить 1С программирование 8.3 и 8.2. Причем не только изучить, но и монетизировать свои знания.

1С с нуля - как начать?

Программирование 1С с нуля — с чего начать?

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

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

Для обучения программе 1С 8.3 с нуля, в виде практической части, рекомендую установить самые распространенные типовые конфигурации — «Управление торговлей» и «Бухгалтерию предприятия«. Создайте в базе тестовую организацию, оформите поступление товара, продайте часть товара, проведите инвентаризацию, примите основные средства, спишите товар, сделайте возврат от покупателя и т.д. Проведите в программе 1C все действия, встречающиеся в повседневной жизни предприятия.

Начинаем программировать в 1С

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

Создайте документ поступления, оприходуйте товар. Создайте документ продажи — продайте. Постройте отчет, в котором можно будет увидеть товародвижение. Разработайте печатную форму к документам. Не рекомендую сразу лезть в «сложные» типовые конфигурации, первый этап программирования в 1 С 8.3 с нуля — понимание назначений объектов метаданных.

Разъясните для себя, что такое справочники, константы, документы, регистры накопления. Особо важный пункт в изучении программирования 1С — встроенный язык запросов. Без него невозможно эффективно получать данные из системы. Возможно, для интереса, Вы можете найти знакомых, которым нужна была своя «уникальная» программа. Вы можете договориться с ними о разработке такой программы бесплатно или за небольшое вознаграждение. В таком случае Вы получите не только навыки программирования на живом примере, но и опыт общения с заказчиком, что на деле является очень важным свойством программиста 1С.

Сейчас Вам как никогда требуется самомотивация, необходимость много работать и впитывать новую информацию как губка. Каждый день Вы будете узнавать что-то новое, интересное (завидую вам 🙂 ). На этом этапе изучения программирования 1С с нуля из материалов я бы порекомендовал:

  • Начать читать книги по 1С программированию, начиная с самых простых (вроде «Простых примеров разработки»). Скорее всего, Вы не будете сразу понимать всё, но информация отложится в Вашей памяти, и её можно будет использовать в дальнейшем.
  • Просмотр видеокурсов по 1С онлайн- очень полезная и наглядная информация, тем более что достать большинство из них можно бесплатно.
  • Чтобы начать решать реальные практические задания, зарегистрируйтесь на бирже фриланса 1С и начните решать задания из архива. Тем самым Вы не только получите реальный опыт, но и поймете, какие виды услуг на рынке сейчас востребованы.

Монетизируем знания в 1С

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Через некоторое время мы становимся этаким Middle 1C developer. Мы уже понимаем архитектуру 1С 8.2, умеем отличать дебет от кредита, смело общаемся с клиентом — в общем, мы полноценные специалисты, прошедшие этот путь с нуля. Становится вопрос — монетизация знаний. На самом деле, рынок услуг 1С чрезвычайно большой. И зарабатывать на нём можно очень приличные деньги. Рассмотрим основные способы продажи своих услуг:

Работа в 1С-Франчайзи

Огромный плюс — франчайзи берут специалистов 1C с нуля. Работа в фирме-франчайзи 1С — путь постоянного развития. Вы точно будете узнавать каждый день что-то новое, интересное. Основной плюс франчайзи, на мой взгляд, — неограниченная сверху планка заработной платы (если Вы работаете на почасовой ставке). По опыту могу сказать, во франчайзи можно зарабатывать очень неплохие деньги — всё зависит от Вашей выработки. Когда зарплата завязана на выработке, это очень мотивирует.

Необходимо всегда искать креативные варианты повышения выработки часов. Например, создать универсальную обработку, которую можно продавать всем клиентам. Работы в фирмах-франчайзи, как правило, огромное количество. У опытных программистов 1С получается «закрывать» до 300 часов в месяц, что в пересчете на среднюю ставку программиста 1С получается довольно неплохо. Мой личный рекорд — 400 часов.

Работа фрилансером/свой бизнес в 1С

Работа фрилансером  аналогична работе во франчайзи. Мы также предоставляем услуги 1С на аутсорсе. Вы замотивированы на оказание качественных услуг: если клиент уйдет, Вам нечего будет кушать :). Существенное отличие — нам необходимо заниматься поиском клиента, вести бухгалтерию организации (ИП или ООО). Клиентов можно искать в интернете, на специальных сайтах для фрилансеров, просто по знакомым и т.д.

Работа на внутреннем проекте («фикси»)

Другой вариант — работа на внутреннем проекте внедрения 1С 8.2 в компании, или, как это иногда называется, «фикс». Этот вариант отличается повышенным уровнем стабильности — сколько бы Вы не работали, Вы получите свой оклад. Ни больше, ни меньше. Как правило, если всё качественно сделано, ничего не ломается. Если нет новых задач, это значит, что можно заняться своими делами — саморазвитием или же найти дополнительную подработку.

Видеокурс по программированию в 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

15 приложений для изучения программирования с нуля

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

Начнём с малых 🙂 Зачем детям сидеть за скучными книжками, если можно учиться играючи? Мало того, они смогут программировать свои игры и персонажей. Возможно, именно ваш ребёнок создаст гейм-шедевр.

Learn Java

Android | iOS

Бесплатное приложение для Android и iOS, где вы найдете более 150 уроков в рамках курса обучению Java.

У вас есть возможность учиться всем языкам программирования в удобном приложении и на всех популярных платформах. За $25/мес. вы получите доступ ко всем обучающим курсам Lynda.

Lynda — это одна из самых крупных образовательных платформ от LinkedIn, специализирующаяся на изучении дизайна, языков программирования и улучшении скиллов web-разработки.

В вас живет дух соревнования? Попробуйте это приложение! Здесь вы сможете сражаться и соревноваться с другими участниками в мастерстве программирования. В CodeWars вы найдете все самые популярные языки программирования, поэтому участвовать в челленджах сможет каждый.

Интерактивный учебник программирования, в котором вы найдёте более 35 языков программирования, огромное количество фреймворков.. Здесь есть тест способностей и полноценная система наград.

Рекомендуем скачать это приложение для Android каждому, кто хочет изучить программирование с нуля.

SoloLearn: учимся программировать

Android | iOS

Их слоган: «Свежий контент каждый день» полностью оправдан. В приложении можно ознакомиться с востребованными и популярными языками программирования, алгоритмами, машинным обучением.

Programming Hub. Learn to code

Android | iOS

Еще одно приложение, которое обучит вас программированию. Здесь есть всё: курсы, тестирование, примеры, компилятор. Учитесь и практикуйтесь в одном месте. В приложении есть все популярные языки программирования: Java, C, C++, HTML, JS, Python.

Хотите программировать для iOS? Установите Swift 4: как уже понятно из названия, он учит языку программирования Swift, что используется в macOS, iOS, watchOS и tvOS продукции.

Крутейшее приложение, которое научит вас программировать на языке Swift. Учитесь программированию на практических примерах прямо на iPad.

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

P. S.: создано для детей, но ограничений по возрасту нет. Главное, чтобы пользователь хотел учиться программированию.

Как вы уже поняли, лучший способ заинтересовать ребенка IT — превращать процесс обучения в игру. Lightbot представляет собой настоящую головоломку с уклоном в программирование.

Цель игры: заставить робота подсветить все плитки на решетке. И это нужно сделать за один подход, иначе всё придётся делать заново. Игра для обучения программированию познакомит с базовыми понятиями. Идеальный выбор для мальчиков и девочек от 6 до 106 лет.

Ресурс, на котором вы найдете тысячи текстов, видео и руководства от настоящих IT-гуру.

Codemurai

Android | iOS

Хотите почувствовать себя настоящим самураем? Приложение Codemurai обучит программированию в основных языках. Кроме этого, вы разберетесь в объектно-ориентированном программировании и узнаете много захватывающих малоизвестных фишек от настоящих гуру своего дела.

Encode: Learn to Code

Android | iOS

Интересна сфера программирования, но не хватает времени для обучения из-за основной работы? Разработчики сделали процесс обучения максимально простым в понимании, не требующим усилий для изучения. С помощью Learn to code вы начнёте кодить на Java, Python, HTML и CSS с нуля.

Научитесь программировать в HTML5 и CSS, не отрываясь от своего телефона. Приложение для Android с чистым интерфейсом подходит даже для тех, у кого нулевой опытом в кодинге.

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



Как я сам научился программировать за 8 недель / Хабр

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

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

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

Получение начального понимания языка программирования Python и общих методов программирования (2 выходных дня):

  • Learn Python the Hard Way. Несмотря на название, это довольно простой способ, он делает изучение основных понятий очень легким, и большинство уроков займет менее 10 минут. Тем не менее, я обнаружил, что данный способ не работает для некоторых, более сложных тем, так что я рекомендую остановиться после урока 42 и двигаться дальше.
  • Google’s python class. Читайте заметки и / или смотрите видео и делайте все упражнения, пока вы не будете выполнять их правильно — не подсматривая в ответы. Борясь с упражнениями, которые я постоянно делал неправильно было очень полезным для меня в качестве полученного опыта, и я узнал бы гораздо меньше, если бы я просто посмотрел на ответы и пытался убедить себя, что я понял упражнение.

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

Получение начального понимания веб-фреймворка Django (1 выходной):

  • Пройдите Django учебник.
  • Удалите весь код, который вы создали в процессе выполнения шагов из учебника.
  • Пройдите учебник еще раз, заново.

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

Во второй раз я не был так сосредоточен на новизне концепции и смог сосредоточиться на понимании того как все части взаимосвязаны.

Получение более глубокого понимания Python / общих концепций программирования (4-8 выходных дня):

Опять же, я хотел бы рекомендовал попробовать каждый из них и посмотреть, какой вам понравится больше. Я делаю оба, но это, наверное, перебор.

Практика построения простых веб-приложений (2 выходных дня):

  • Выполняйте упражнения из Django в примерах. Эти упражнения не так строго ведут ученика, как учебник Django, но они предлагают хороший способ, чтобы начать разрабатывать свои собственные простые веб-приложения.
Создайте свой прототип (2 выходных дня):

Вот и все. 8 недель (или меньше) и вы ушли от ничего не зная о разработке программного обеспечения до рабочего прототипа. Не так уж и сложно, так ведь?

Следующие шаги:

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

P.S. Ниже приведены несколько другие потенциально полезные ресурсы — пожалуйста, оставьте ссылки в комментариях, если у вас есть предложения по другим ресурсам, которые обучают программированию:

Оригинал: How I Taught Myself to Code in 8 Weeks

языки, движки и все, что нужно знать начинающему разработчику — руководства на Skillbox

Игровая механика — это то, какими способами игрок взаимодействует с миром. Совокупность игровых механик составляет игровой процесс. Например, вы уже реализовали возможность ходьбы и прыжков. Эта игра, скорее, платформер.

А если добавите механику получения опыта, повышения уровней, прокачки навыков, — игра станет походить на RPG. Механика — такая же важная составляющая игры, как и сюжет или графика.

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

  • если добавить стрельбу, то будет экшн;
  • если игрок будет безоружен, — стелс;
  • если ещё и замки нужно взламывать, то это уже головоломка или пазл.

Будучи программистом, придётся уделять много времени механике.

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

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

Пример анимации двумерного персонажа

Для анимации 2D-объектов создаётся текстура по типу той, что на изображении выше. Она разбивается на равные части, которые сменяют друг друга. То есть игрок сначала видит первый кадр, который потом сменяется на второй, а затем на третий — это создает иллюзию движения.

Анимация в действии

Если брать 3D-модель, то используется скелетная анимация — модель как бы нанизывается на специальный каркас (скелет) с подвижными частями. Движение этих частей прописывается в коде.

На скриншоте видно, как персонаж сгибает руку в местах с точками (вершинами). Таких точек может быть очень много, если требуется сложная анимация — жесты, мимика и так далее.

Создаётся анимация так: прописываются точки координат или захватываются движения реального актера.

Первый способ сложный, но дешёвый, потому что от программиста требуется только прописать движения — сдвинуть точку A1 на координаты (50,240).

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

0.7 — Компиляция вашей первой программы

Прежде чем мы сможем написать нашу первую программу, нам нужно научиться создавать новые программы в нашей интегрированной среде разработки (IDE). В этом уроке мы расскажем, как это сделать, а вы также скомпилируете и выполните свою первую программу!

Проектов

Чтобы написать программу на C ++ внутри IDE, мы обычно начинаем с создания нового проекта (мы покажем вам, как это сделать чуть позже). Проект — это контейнер, содержащий все файлы исходного кода, изображения, файлы данных и т. Д., Необходимые для создания исполняемого файла (или библиотеки, веб-сайта и т. Д.), Который вы можете запускать или использовать.Проект также сохраняет различные настройки IDE, компилятора и компоновщика, а также запоминает, где вы остановились, чтобы при повторном открытии проекта позже состояние IDE можно было восстановить с того места, где вы остановились. Когда вы решите скомпилировать свою программу, все файлы .cpp в проекте будут скомпилированы и связаны.

Каждому проекту соответствует одна программа. Когда вы будете готовы создать вторую программу, вам нужно будет либо создать новый проект, либо перезаписать код в существующем проекте (если вы не хотите его сохранять).Файлы проекта обычно относятся к среде IDE, поэтому проект, созданный для одной среды IDE, необходимо будет воссоздать в другой среде IDE.

Создавайте новый проект для каждой новой программы, которую вы пишете.

Консольные проекты

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

Вот скриншот консоли Windows:

Windows console

По умолчанию консольные приложения не имеют графического интерфейса пользователя (GUI), они выводят текст на консоль, считывают ввод с клавиатуры и компилируются в автономные исполняемые файлы. Это идеально подходит для изучения C ++, поскольку сводит сложность к минимуму и обеспечивает работу в самых разных системах.

Не беспокойтесь, если вы никогда раньше не использовали консоль или не знаете, как получить к ней доступ. Мы будем компилировать и запускать наши программы через наши IDE (которые при необходимости будут вызывать консоль).

Рабочие места / решения

Когда вы создаете новый проект для своей программы, многие IDE автоматически добавляют ваш проект в «рабочую область» или «решение» (термин зависит от IDE). Рабочее пространство или решение — это контейнер, который может содержать один или несколько связанных проектов. Например, если вы пишете игру и хотите иметь отдельный исполняемый файл для одиночной и многопользовательской игры, вам нужно будет создать два проекта. Для обоих этих проектов не имело бы смысла быть полностью независимыми — в конце концов, они являются частью одной игры.Скорее всего, каждый из них будет настроен как отдельный проект в рамках одной рабочей области / решения.

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

Написание вашей первой программы

Традиционно первыми программистами, пишущими на новом языке, является печально известная программа hello world, и мы не собираемся лишать вас этого опыта! Вы нас потом поблагодарите.Может быть.

Начиная с этого урока, вы увидите множество представленных примеров кода C ++. Большинство этих примеров будут выглядеть примерно так:

#include

int main ()

{

std :: cout << "Привет, мир!";

возврат 0;

}

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

Создание проекта в Visual Studio 2019

Когда вы запустите Visual Studio 2019, вы должны увидеть диалоговое окно, которое выглядит следующим образом:

Visual Studio 2019 Get Started dialog

Выберите Создайте новый проект .

Вы увидите диалоговое окно, которое выглядит следующим образом:

Visual Studio 2019 Create New Project dialog

Если вы уже открывали предыдущий проект, вы можете получить доступ к этому диалоговому окну через меню File> New> Project .

Выберите Мастер рабочего стола Windows и нажмите Далее . Если вы этого не видите, то, вероятно, вы забыли выбрать установку Desktop development с рабочей нагрузкой C ++ при установке Visual Studio. В этом случае вернитесь к уроку 0.6 — Установка интегрированной среды разработки (IDE) и переустановите Visual Studio, как указано (примечание: вместо полной переустановки вы можете запустить установщик Visual Studio и изменить существующую установку, чтобы добавить рабочая нагрузка C ++).

Затем вы увидите диалоговое окно, которое выглядит следующим образом:

Visual Studio 2019 Configure New Project dialog

Замените существующее имя проекта на HelloWorld .

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

Нажмите Создать , чтобы продолжить.

Наконец, вы увидите последнее диалоговое окно:

Visual Studio 2019 Project options dialog

Убедитесь, что тип приложения установлен как консольное приложение (.exe) и что параметр Precompiled Header не выбран. Затем нажмите ОК .

Вы создали проект! Чтобы продолжить, перейдите в раздел Обозреватель решений Visual Studio ниже.

Создание проекта в Visual Studio 2017 или более ранней версии

Чтобы создать новый проект в Visual Studio 2017 или более ранней версии, перейдите в меню Файл> Создать> Проект . Появится диалоговое окно, которое выглядит примерно так:

Visual Studio 2017 New Project dialog

Сначала убедитесь, что Visual C ++ указан слева.Если вы не видите Visual C ++ , то вы, вероятно, забыли выбрать установку Desktop development с рабочей нагрузкой C ++ при установке Visual Studio. В этом случае вернитесь к уроку 0.6 — Установка интегрированной среды разработки (IDE) и переустановите Visual Studio, как указано (примечание: вместо полной переустановки вы можете запустить установщик Visual Studio и изменить существующую установку, чтобы добавить Рабочая нагрузка C ++).

Если вы используете Visual Studio 2017 v15.3 или новее, в разделе Visual C ++ выберите Рабочий стол Windows , а затем выберите Мастер рабочего стола Windows в главном окне.

Если вы не видите вариант Windows Desktop , вероятно, вы используете старую версию Visual Studio. Все в порядке. Вместо этого выберите Win32 , а затем Win32 Console Application в главном окне.

Внизу в поле Name введите имя вашей программы (замените существующее имя на HelloWorld ).В поле «Местоположение» вы можете дополнительно выбрать другое местоположение для размещения вашего проекта. По умолчанию пока все в порядке.

Щелкните ОК . Если вы используете старую версию Visual Studio, запустится мастер приложений Win32. Нажмите Далее .

На этом этапе вы должны увидеть диалоговое окно мастера, которое выглядит примерно так (более старые версии Visual Studio используют другой стиль, но имеют большинство тех же параметров):

Visual Studio 2017 Desktop wizard

Убедитесь, что вы сняли флажок Precompiled Header .

Затем нажмите ОК или Готово . Теперь ваш проект создан!

Обозреватель решений Visual Studio

В левой или правой части окна вы должны увидеть окно с названием Обозреватель решений . В этом окне Visual Studio создала для вас решение ( Solution «HelloWorld» ). Внутри него, имя которого выделено жирным шрифтом, находится ваш новый проект ( HelloWorld ). В рамках проекта Visual Studio создала для вас ряд файлов, в том числе HelloWorld.cpp (под элементом дерева Исходные файлы ). Вы также можете увидеть некоторые другие файлы .cpp или .h, которые пока можете игнорировать.

Visual Studio 2019 initial windows

В текстовом редакторе вы увидите, что Visual Studio уже открыла HelloWorld.cpp и создала для вас некоторый код. Выделите и удалите весь код и введите / скопируйте в вашу среду IDE следующее:

#include

int main ()

{

std :: cout << "Привет, мир!";

возврат 0;

}

Чтобы скомпилировать программу, нажмите F7 (если это не сработает, попробуйте Ctrl-Shift-B ) или перейдите в меню «Сборка »> «Сборка решения ».Если все пойдет хорошо, в окне вывода должно появиться следующее:

1> ------ Сборка началась: Проект: HelloWorld, Конфигурация: Отладка Win32 ------
1> HelloWorld.cpp
1> HelloWorld.vcxproj -> c: \ users \ alex \ documents \ Visual Studio 2017 \ Projects \ HelloWorld \ Debug \ HelloWorld.exe
========== Сборка: 1 успешно, 0 неудачно, 0 обновлено, 0 пропущено ==========
 

Это означает, что ваша компиляция прошла успешно!

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

Чтобы запустить скомпилированную программу, нажмите Ctrl-F5 или перейдите в меню отладки и выберите Начать без отладки . Вы увидите следующее:

Program run

Вот результат вашей программы! Поздравляем, вы скомпилировали и запустили свою первую программу!

Создание проекта в Code :: Blocks

Чтобы создать новый проект, перейдите в меню File> New> Project .Появится диалоговое окно следующего вида:

Code::Blocks Project Dialog

Выберите консольное приложение и нажмите кнопку Перейти (или Создать) .

Если вы видите диалоговое окно мастера консольного приложения, нажмите Далее , убедитесь, что выбран C ++, и снова нажмите Далее .

Теперь вам будет предложено назвать ваш проект. Назовите проект HelloWorld . Вы можете сохранить его где угодно. В Windows мы рекомендуем сохранить его в подкаталоге диска C, например, C: \ CBProjects .

Code::Blocks Save Project Dialog

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

Теперь ваш новый проект создан.

В левой части экрана вы должны увидеть окно Management с выбранной вкладкой Projects . Внутри этого окна вы увидите папку Workspace , в которой находится ваш проект HelloWorld :

Code::Blocks Workspace

Внутри проекта HelloWorld разверните папку Sources и дважды щелкните «main.cpp ». Вы увидите, что программа hello world уже написана для вас!

Замените это следующим:

#include

int main ()

{

std :: cout << "Привет, мир!";

возврат 0;

}

Чтобы построить свой проект, нажмите Ctrl-F9 или перейдите в меню «Сборка »> «Сборка ».Если все пойдет хорошо, в окне журнала сборки должно появиться следующее:

-------------- Сборка: отладка в HelloWorld (компилятор: компилятор GNU GCC) ---------------
mingw32-g ++. exe -Wall -fexceptions -g -std = c ++ 14 -c C: \ CBProjects \ HelloWorld \ main.cpp -o obj \ Debug \ main.o
mingw32-g ++. exe -o bin \ Debug \ HelloWorld.exe obj \ Debug \ main.o
Выходной файл - bin \ Debug \ HelloWorld.exe размером 1,51 МБ.
Процесс завершен со статусом 0 (0 минут, 0 секунд)
0 ошибок, 0 предупреждений (0 минут, 0 секунд)
 

Это означает, что ваша компиляция прошла успешно!

Чтобы запустить скомпилированную программу, нажмите Ctrl-F10 или перейдите в меню «Сборка »> «Выполнить ».Вы увидите что-то похожее на следующее:

Program run

Вот результат вашей программы!

Если вы используете g ++ в командной строке

В этом случае создавать проект не нужно. Просто вставьте следующее в текстовый файл с именем HelloWorld.cpp и сохраните файл:

#include

int main ()

{

std :: cout << "Привет, мир!";

возврат 0;

}

В командной строке введите:

g ++ -o HelloWorld HelloWorld.cpp

Будет компилироваться и связываться HelloWorld.cpp. Чтобы запустить его, введите:

HelloWorld (или, возможно, ./HelloWorld ), и вы увидите результат своей программы.

Если вы используете другие IDE или веб-компилятор

Вам нужно будет выяснить, как сделать следующее самостоятельно:
1) Создать консольный проект (только IDE)
2) Добавить файл .cpp в проект (только IDE, если он не создается автоматически для вас)
3) Вставьте в файл следующий код:

#include

int main ()

{

std :: cout << "Привет, мир!";

возврат 0;

}

4) Скомпилируйте проект
5) Запустите проект

Если компиляция не удалась

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

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

Во-вторых, посмотрите вопросы и ответы в уроке 0.8 — Несколько распространенных проблем C ++, так как ваша проблема может быть там освещена.

В-третьих, прочтите комментарии ниже — кто-то мог столкнуться с такой же проблемой.

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

Если ваша программа работает, но окно мигает и немедленно закрывается

Некоторые IDE не приостанавливают экран консоли автоматически после завершения выполнения программы. Ваша программа запущена, но окно вывода закрывается, прежде чем вы сможете просмотреть результаты.

Если это случай с вашей IDE, следующие два шага решат вашу проблему:

Сначала добавьте или убедитесь, что следующие строки находятся в верхней части вашей программы (пользователи Visual Studio, убедитесь, что эти строки появляются после #include «pch.h »или #include« stdafx.h », если таковые существуют):

#include

#include

Во-вторых, добавьте следующий код в конец функции main () (непосредственно перед оператором return):

std :: cin.clear (); // сбрасываем все флаги ошибок

std :: cin.ignore (std :: numeric_limits :: max (), ‘\ n’); // игнорируем любые символы во входном буфере, пока не найдем новую строку

std :: cin.получить(); // получаем от пользователя еще один символ

Это приведет к тому, что ваша программа будет ждать, пока пользователь нажмет клавишу, прежде чем продолжить, что даст вам время для проверки вывода вашей программы, прежде чем ваша среда IDE закроет окно консоли.

Другие решения, такие как обычно предлагаемая система ("пауза") , могут работать только в определенных операционных системах, и их следует избегать.

Ваш антивирус или антивирусное ПО также могут блокировать выполнение программы.В таком случае попробуйте временно отключить сканеры и посмотреть, решится ли проблема.

Visual Studio не будет приостанавливать работу в конце консольного приложения, если оно запущено с отладкой (меню «Отладка»> «Начать отладку»). Если вы хотите, чтобы он приостановился, вы можете либо использовать приведенное выше решение кода, либо запустить свою программу без отладки (меню «Отладка»> «Начать без отладки»).

Заключение

Поздравляю, вы прошли самую сложную часть этого руководства (установку IDE и компиляцию вашей первой программы)!

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

.

0.2 — Введение в языки программирования

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

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

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

Машинный язык

ЦП компьютера не может говорить на C ++.Ограниченный набор инструкций, которые ЦП может понять напрямую, называется машинным кодом (или машинным языком, или набором инструкций).

Вот пример инструкции на машинном языке: 10110000 01100001

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

Организация этих инструкций выходит за рамки этого введения, но стоит отметить две вещи.Во-первых, каждая инструкция состоит из последовательности нулей и единиц. Каждый отдельный 0 или 1 называется двоичной цифрой или для краткости битом. Количество битов, составляющих одну команду, может быть разным — например, некоторые процессоры обрабатывают инструкции, которые всегда имеют длину 32 бита, тогда как некоторые другие процессоры (например, семейство x86, которое вы, вероятно, используете) имеют инструкции, которые могут быть переменная длина.

Во-вторых, каждый набор двоичных цифр интерпретируется ЦП в команду для выполнения очень конкретной задачи, например, сравнить эти два числа или поместить это число в эту ячейку памяти .Однако из-за того, что разные ЦП имеют разные наборы инструкций, инструкции, написанные для одного типа ЦП, нельзя использовать на ЦП, который не использует один и тот же набор инструкций. Это означало, что программы, как правило, нельзя было переносить (использовать без серьезной переделки) для различных типов систем, и их приходилось писать заново.

Язык ассемблера

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

Вот такая же инструкция на ассемблере: mov al, 061h

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

Однако у сборки есть и недостатки. Во-первых, языки ассемблера по-прежнему требуют множества инструкций для выполнения даже простых задач. Хотя отдельные инструкции в некоторой степени удобочитаемы, понять, что делает вся программа, может быть сложно (это немного похоже на попытку понять предложение, рассматривая каждую букву по отдельности). Во-вторых, ассемблер по-прежнему не очень переносим — программа, написанная на ассемблере для одного процессора, скорее всего, не будет работать на оборудовании, использующем другой набор инструкций, и ее придется переписать или значительно изменить.

Языки высокого уровня

Для решения проблем удобочитаемости и переносимости были разработаны новые языки программирования, такие как C, C ++, Pascal (и более поздние языки, такие как Java, Javascript и Perl). Эти языки называются языками высокого уровня, поскольку они разработаны, чтобы позволить программисту писать программы, не беспокоясь о том, на каком компьютере будет выполняться программа.

Вот та же инструкция, что и выше в C / C ++: a = 97;

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

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

Вот упрощенное представление процесса компиляции:

Example of compiling

Поскольку программы на C ++ обычно компилируются, мы вскоре рассмотрим компиляторы более подробно.

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

Вот упрощенное представление процесса интерпретации:

Example of interpreting

Хорошее сравнение преимуществ компиляторов и интерпретаторов можно найти здесь.

Большинство языков можно компилировать или интерпретировать, однако традиционно языки, такие как C, C ++ и Pascal, компилируются, тогда как языки «сценариев», такие как Perl и Javascript, обычно интерпретируются. В некоторых языках, например в Java, используется сочетание этих двух языков.

Языки высокого уровня обладают многими желательными свойствами.

Во-первых, языки высокого уровня намного легче читать и писать, потому что команды ближе к естественному языку, который мы используем каждый день. Во-вторых, языкам высокого уровня требуется меньше инструкций для выполнения той же задачи, что и языкам более низкого уровня, что делает программы более краткими и понятными.В C ++ можно сделать что-то вроде a = b * 2 + 5; в одну строку. На ассемблере для этого потребуется 5 или 6 разных инструкций.

В-третьих, программы можно компилировать (или интерпретировать) для многих различных систем, и вам не нужно менять программу для работы на разных процессорах (вы просто перекомпилируете для этого процессора). Например:

Example of portability

Есть два общих исключения из переносимости. Во-первых, многие операционные системы, такие как Microsoft Windows, содержат специфические для платформы возможности, которые вы можете использовать в своем коде.Это может значительно упростить написание программы для конкретной операционной системы, но за счет переносимости. В этих руководствах мы избегаем кода, специфичного для платформы.

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

Правила, передовой опыт и предупреждения

По мере прохождения этих руководств мы будем выделять многие важные моменты в следующих трех категориях:

Правила

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

Лучшие практики — это то, что следует делать, , потому что такой способ работы обычно считается стандартным или настоятельно рекомендуется. То есть либо так поступают все (а если вы поступите иначе, вы будете делать то, чего люди не ожидают), либо это лучше альтернатив.

Предупреждения — это вещи, которые не следует делать, , потому что они обычно приводят к неожиданным результатам.

.