Уроки cи

Возможно, вам также будет интересно

В последнее время среди программного обеспечения в мире появляется все больше открытого (open source) и свободно распространяемого (freeware) софта. Не стоит игнорировать этот тренд и применительно к АСУ ТП.

Многие производственные предприятия работают уже больше 20 лет, и их устаревшие системы автоматизации почти исчерпали свой срок службы.
В таком случае самое время задуматься о снижении рисков, связанных с устареванием оборудования, и об удовлетворении растущих потребностей миллиарда новых покупателей из среднего класса, благодаря которым к 2020 г. потребительские расходы увеличатся на $8 трлн …

ГК «Микрон» в технологическом партнерстве с ГК «Силтэк» запускает в серийное производство новые радиочастотные (RFID) миниатюрные электронные ушные бирки S-Tag 3D Animal для маркировки животных, которые обеспечивают идентификацию не менее 50 меток за 1 минуту на расстоянии 3–4 м.
Инженерами «Силтэк» спроектирован компактный корпус бирки для животных на базе концепта метки RFID UHF, специально разработанной для этого лабораторией «Микрона».
Конструкция бирки, включающей сердечник, антенну и UHF-чип, позволяет сохранить радиофизические свойства метки и обеспечивает стабильное считывание …

Как работают программы

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

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

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

Вот пример логики такой подпрограммы:

Можно вернуть данные пользователю, записать их в файл или передать другой подпрограмме. Вот ещё один пример использования программы:

Эта команда запускает программу в ОС Linux, которая конвертирует изображение img.jpg в другой формат, а потом сохраняет в файл img.png.

Регулирование частоты вращения двигателя постоянного тока независимого возбуждения ДПТ НВ

Что такое язык программирования

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

Компьютер понимает только машинный код — специальный язык, который очень сложно изучить. Вот как выглядит вывод на экран надписи «Hello, World!» на машинном коде (в шестнадцатеричном представлении):

Чтобы упростить разработку, были созданы языки программирования — с их помощью пишут инструкции для компьютера, которые понятны и человеку. Одним из первых был язык ассемблера. Вот как на нём выглядит вывод надписи «Hello, World!»:

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

Мобильная Установка Доказательства Актуальности Контроля Изменений. Часть 1. «Хороший человек идет на войну»

Итак, надоело! Даже, не так, ДОСТАЛО! А точнее, за…. Впрочем, не буду прибегать к ненормативной лексике. Квартира, купленная 2.5 года назад — это не квартира, а какое-то вечное испытание. Да такое, что Форт Баярд отдыхает. Кроме того, в конце игры Баярда можно нехило поднять золотишка, а чем тут все закончится — я еще не знаю. Недостаточная (ниже норм, утвержденных Правительством РФ, а эти нормы, скажем так, разрабатывались моржами) температура воздуха в помещении, отсутствие горячей воды по утрам, а ежедневное принятие душа превращается в соревнование «кто быстрей», ибо вода неожиданно может стать кипятком. Или, наоборот, льдом. Бездействие управляющей компании, сбор инициативной группы, объявления по подъездам, коллективная жалоба… это и многие другие веселые подробности останутся за рамками повествования.

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

Среды и компиляторы для программирования на C

Если вы пользуетесь одним из дистрибутивов GNU/Linux, вам подойдет любой текстовый редактор с подсветкой синтаксиса, также понадобятся GCC и терминал.

Существуют редакторы для программистов, включающие различные дополнения, в том числе терминал, просмотр каталогов и др. Например, Geany или Atom.

C – компилируемый язык программирования. В GNU/Linux для получения исполняемых файлов используется GCC – набор компиляторов, включающий в том числе компилятор для C. Чтобы из исходного файла (обычно таким файлам дают расширение *.с) получить исполняемый, надо выполнить в терминале команду примерно следующего вида:

gcc -o hello hello.c

, где gcc — команда, запускающая программу, выполняющую компиляцию и иные действия; -o – ключ, сообщающий, что мы вручную указываем имя исполняемого файла; hello – имя получаемого исполняемого файла; hello.c – имя файла с исходным кодом. Имя исполняемого файла можно не указывать:

gcc hello.c

В этом случае исполняемый файл будет иметь имя по умолчанию a.out.

Для Windows существует свой набор компиляторов – MinGW. Его можно использовать самостоятельно, однако он входит в состав простой среды разработки Dev-C++, которая может оказаться хорошим выбором для обучения программированию на языках C и С++.

При сохранении выбирайте тип файла «C source files (*.c)». Компиляция и запуск программы выполняется при нажатии клавиши F9. После исполнения программа сразу закрывается и результат невозможно увидеть. Чтобы этого не происходило, прописывают две дополнительные строки: #include <conio.h> и getch(). (Возможно это не актуально для более новой версии Dev-C++.)

«Hello World» в GNU/Linux:

#include <stdio.h>
 
int main () {
    printf ("Hello World\n");
}

«Hello World» в Windows:

#include <stdio.h>
#include <conio.h>
 
int main () {
    printf ("Hello World\n");
 
    getch();
}

С другой стороны, существует большое количество кроссплатформенных сред разработки. Например, Eclipse + модуль CDT, KDevelop, CLion.

«Hello World» на C

На примере простейшей программы сразу отметим некоторые особенности языка программирования C.

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

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

Функция printf() предназначена для вывода данных. Ее назначение аналогично функции print() в Python. Однако функция printf() после вывода не выполняет переход на новую строку. Поэтому для перехода используется специальный символ, который обозначается комбинацией \n.

Выражения на языке C разделяются точкой с запятой.

В языке C функции ввода-вывода не являются частью языка. Например, в Python нам не надо импортировать никакой модуль, чтобы пользоваться функциями print() и input(). В C мы не можем просто вызвать функцию printf(), т. к. в самом C ее просто нет. Эту функцию, а также ряд других, можно подключить с помощью заголовочного файла stdio.h. Именно для этого в начале программы прописана строка . Include с английского переводится как «включить», а stdio есть сокращение от «стандартный ввод-вывод (input-output)».

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

Закомментируйте1 первую строчку кода программы HelloWorld. Попробуйте скомпилировать программу. Удалось ли получить исполняемый файл? Какое предупреждение выдал компилятор?

1 // — однострочный комментарий на языке C; /* … */ — многострочный комментарий на языке C.

Типы данных

Все стандартные типы данных определены в PLCOpen Organization и они являются частью языков программирования PLC. В стандарте МЭК типы данных делятся на две группы: элементарные типы данных и производные типы.
Элементарные типы данных:

  • Целые
  • С плавающей точкой
  • Типы времени
  • Строки
  • Битовые

Под каждым из элементарных типов данных есть несколько IEC типов данных. Ниже приведены типы данных, определенные МЭК в61131-3:
Тип

IEC Data Type Format Range

SINT

INT

DINT

LINT

USINT

UINT

LDINT

ULINT

Short Integer

Integer

Double Integer

Long Integer

Unsigned Short Integer

Unsigned Integer

Long Double Integer

Unsigned Long Integer

-128 … 127

-32768 … 32767

-2^31 … 2^31-1

-2^63 … 2^63-1

0 … 255

0 … 2^16-1

0 … 2^32-1

0 … 2^64-1

С плавающей точкой:

IEC Data Type Format Range

REAL

LREAL

Real Numbers

Long Real Numbers

±10^±38

±10^±308

Типы времени:

IEC Data Type Format Use

TIME

DATE

TIME_OF_DAY

DATE_AND_TIME

Duration of time after an event

Calendar date

Time of day

Date and time of day

T#10d4h38m57s12ms or TIME#10d4h38m

D#1989-05-22 or DATE#1989-05-22

TOD#14:32:07 or TIME_OF_DAY#14:32:07.77

DT#1989-06-15-13:56:14.77 or DATE_AND_TIME#1989-06-15-13:56:14.77

Строки:

IEC Data Type Format Range

STRING

Character String

‘My string’

Битовые:

IEC Data Type Format Range

BOOL

BYTE

WORD

DWORD

LWORD

Boolean

Byte

Word

Double Word

Long Word

1 bit

8 bits

16 bits

32 bits

64 bits

Производные типы данных:

  • Структурированные типы данных
  • Перечислимые типы данных
  • Поддиапазонные типы данных
  • Массивы

Полученные типы данных — пользовательские типы данных.Все полученные типы данных строятся путем конструкций ключевых слов TYPE и END_TYPE. Между ключевыми словами описывается производный тип данных, который вы хотите объявить.

Что нужно знать и уметь

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

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

  1. Уметь писать собственные и читать чужие коды.
  2. Иметь математические способности и логическое, аналитическое мышление.
  3. Интересоваться информационными технологиями, иметь глубокие знания в этой сфере и постоянно их обновлять.
  4. Знать английский язык.
  5. Иметь способности к многозадачности.
  6. Уметь автоматически переводить решения бизнес-задач на машинный язык.
  7. Знать, как вносить, обрабатывать, хранить информацию при помощи разработанных программ.
  8. Создавать, настраивать и внедрять в производство программные продукты.
  9. Уметь автоматизировать повторяющиеся процессы.
  10. Тестировать разработанный продукт и уметь исправлять выявленные ошибки.
  11. Понимать технические задания и самому их составлять.
  12. Уметь пользоваться инструментами программирования, фреймворками и вспомогательными программами.

И это лишь часть того, что должен уметь делать программист.

Возможно, вам также будет интересно

В статье рассмотрены современные системы архивации данных в АСУ ТП, наиболее часто используемые СУБД и соответствующие аппаратные платформы. Описаны принципы построения многоуровневых систем сбора и архивации данных, агрегации и «горячего» резервирования.

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

Робототехника на ИННОПРОМе-2017

22 июня, 20179-13 июля в Екатеринбурге при поддержке Минпромторга России и правительства Свердловской области пройдет 8-я международная промышленная выставка ИННОПРОМ.

На ИННОПРОМ-2017 планируется широкая робототехническая повестка. Впервые выставку посетят Президент International Federation of Robotics (IFR) Джо Гемма, а также представители Korea Association of Robot Industry (KAR) и China Robot Industry Alliance (CRIA). В обсуждении вопросов международного сотрудничества и развития робототехники в России на ИННОПРОМ-2017 будет участвовать топ-менеджмент мировых лидеров промышленной робототехники ABB, …

Советы новичкам

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

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

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

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

Узнайте больше об архитектуре компьютера.

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

Что это такое?

В свое время (1991-1992 года), выбрав язык Си в
качестве основного языка программирования для математических классов,
автор столкнулся с проблемой отсутствия нормальных учебников,
которые можно было бы рекомендовать школьникам. Это
вынудило его написать свой конспект лекций, который можно было бы
назвать «Практический курс программирования на Си»
в него вошли те сведения, которые действительно требовались автору на практике.
Многолетний опыт преподавания показал, что конспект
действительно востребован и широко используется как школьниками, так
и выпускниками.

В качестве среды разработки используется бесплатно распространяемая
оболочка Dev-C++ с открытым исходным
кодом, включающая компилятор GCC.

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

Описание ПО для программирования и конфигурирования ПЛК CODESYS

CODESYS – это не только среда программирования — это целый комплекс средств по работе с промышленным оборудованием. Он включает собственный OPC-сервер, графический редактор для создания визуализаций, менеджер
рецептов, лог аварий и многое другое. На данный момент выпускаются контроллеры на базе двух версий CODESYS: версия 2 и версия 3.

CODESYS v2 поддерживается производителем только в режиме исправления ошибок. Новые функции в него уже не добавляются. Тем не менее, функционала CODESYS v2 достаточно для подавляющего большинства задач. К тому же он
требует меньше ресурсов ПЛК и компьютера.

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

Основные отличия СODESYS v3 от v2:

  • Поддержка элементов Объектно Ориентированного Программирования (ООП).
  • Новый язык программирования UML (Unified Modelling Language), тесно связанный с ООП.
  • Сети ПЛК — инструмент управления в одном проекте несколькими контроллерами.
  • Управление системами движения (CODESYS SoftMotion).
  • Оптимизация программного кода (сложные конструкции типа IF … END_ IF можно «сворачивать» для упрощения просмотра кода).
  • Обновленный и улучшенный менеджер визуализаций. Появились стили визуализаций, которые позволяют изменить оформление проекта в один клик, а также существенно расширилась библиотека графических элементов.

О тенденциях в промышленных сетях

С тех пор, как в 1979 году появился протокол Modbus, он стал де-факто стандартом промышленной сети. Изначально он был спроектирован для использования с последовательными интерфейсами RS-232/RS-485. Позже практически без изменений он
«перекочевал» в сети Ethernet в виде протокола Modbus TCP.

  • Протокол является полностью открытым, его спецификация доступна всем. При этом нет необходимости в специальных интерфейсных микросхемах для реализации.
  • Реализация Modbus очень проста на программном уровне.
  • Дешевая среда передачи (обычная витая пара).
  • Высокая надежность передачи данных благодаря использованию в каждой посылке контрольной суммы.
  • Это низкая пропускная способность шины.
  • Отсутствие какой-либо начальной инициализации системы. Пользователю вручную придется настраивать каждое устройство перед включением его в сеть (а именно задавать ему адрес, скорость обмена и т.д.).
  • Дешевая среда передачи (обычная витая пара).
  • В стандарте четко прописано использование только двух типов данных: BOOL и WORD. Соответственно, при передаче других типов данных зачастую возникают разночтения между устройствами разных производителей.

Как эффективнее работать с C#

Для эффективной работы полезно знать о дополнительных инструментах. Вот некоторые из них:

  1. WPF (Windows Presentation Foundation) поможет легко и быстро создать интерфейс для любых экранов, уменьшает количество кода, отображающего интерфейс.
  2. Xamarin — фреймворк для разработки кроссплатформенных приложений для Windows Phone, Android и iOS. То есть вы напишете один код, и он сразу будет работать на всех основных платформах.
  3. ASP.NET помогает просто и быстро связать серверный код с клиентским в серверных приложениях и веб-разработке.
  4. Entity Framework — один из лучших фреймворков для работы с базами данных. Позволяет работать с данными как с объектами.
  5. LINQ (Language Integrated Query) — мини-язык запросов, встроенный в C# и позволяющий легко выбирать, фильтровать, сортировать и группировать любые данные из любых источников: баз данных, массивов, структур, файлов и так далее.
  6. Visual Studio — среда разработки, созданная специально для языка C#.

Писать код в среде разработки удобно. У неё много плюсов, например:

Основные понятия языка SFC¶

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

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

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

Далее описывается каждый элемент SFC диаграммы.

Наиболее важным элементом языка SFC является шаг, который описывает одну
операцию. Шаг изображается в виде прямоугольника с собственным именем
внутри (см. рис. 7.1).

Рис. 7.1 – Графическое представление «Шага» языка SFC

У каждого шага может быть 3 контакта. Сверху и снизу для соединения с
переходом и справа для соединения с блоком действий. Шаг предваряется
переходом, который определяет условие для активации данного шага в
процессе выполнения программы и отображается в виде горизонтальной черты
на ветви диаграммы процесса с указанием имени и условия. Два шага
никогда не могут быть соединены непосредственно, они должны всегда
отделяться переходом (см. рис. 7.2).

Рис. 7.2 – Шаги «step2» и «step3», соединённые переходом «tr2_3»

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

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

(i<= 100) AND b

либо на любом другом языке.

На рис. 7.3 приведён пример перехода между шагом «Step3» и «Step5» с
именем «transition4».

Рис. 7.3 – Переход между шагами «Step3» и «Step5» с предопределённым
условием «transition4»

В данном случае «transition4» это имя для предопределённого перехода,
который может использоваться многократно на SFC диаграмме для
определения переходов между несколькими шагами. Код для него может быть
представлен, например, на языке ST:

:= (flag = True AND level > 10);

На рис. 7.4 представлен переход между шагами «Step6» и «Step7» в виде
обычного условия:

level > 10

Рис. 7.4 – Переход между шагами «step6» и «step7» с предопределённым
условием «transition4»

На рис. 7.5 представлен переход между шагами «Step8» и «Step9» в виде
значения логического выражения «AND» на языке FBD:

Рис. 7.5 – Переход между шагами «step8» и «step9», заданный «логическим
И» на языке FBD

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

Каждый шаг имеет нулевое или большее количеством действий, объединённых,
как правило, на диаграмме, в блок действий. На рис. 7.6 показан примера
шага «evaluateStep» и связанный с ним блок действий.

Рис. 7.6 – Шаг «evaluateStep» и связанный с ним блок действий,
содержащий 3 действия

Блок действий определяет операции, которые должны выполняться при
активации (выполнении) шага. Шаги без связанного блока действий
идентифицируются как ждущий шаг. Блок действий может состоять из
предопределённых действий. Каждому предопределённому действию
присваивается имя (на рис. 7.6 это «action0» и «action1»). Одно действие
может использоваться сразу в нескольких шагах. Действие может
выполняться непрерывно, пока активен шаг, либо единожды. Это
определяется специальными квалификаторами, описание которых приведено в
таблице 6. Квалификаторы также могут ограничивать время выполнения
каждого действия в шаге.

Шаг может быть также заменён «прыжком». Последовательности шагов всегда
ассоциируются с прыжком к другому шагу той же самой последовательности
шагов. Это означает, что они выполняются циклически. Переход на
произвольный шаг – это соединение на шаг, имя которого указано под
знаком «прыжка». Такие переходы нужны для того, чтобы избежать
пересекающихся и идущих вверх соединений. На рис. 7.7 показана SFC
диаграмма, содержащая два «прыжка».

Рис. 7.7 – SFC диаграмма, содержащая «прыжки»

Первый делает переход к шагу «init» в случае выполнения условия
«transition4», второй делает переход к шагу «step1», в случае выполнения
условия «transition2».

Заключение

Сегмент встраиваемых систем в суммарном годовом объеме применений CODESYS ежегодно увеличивается. CODESYS применяется во встраиваемых контроллерах компаний Bosh, Rolls-Royce Marine, Praxis, CC Systems, Moba и др. Это далеко не опытные прототипы, речь идет о десятках тысяч изделий. Примеры нескольких применений показаны на фотографиях.

Среди МЭК-систем программированиия CODESYS выделяется тем, что, подобно компиляторам С/С++, непосредственно генерирует надежный и компактный машинный код, пригодный для встраиваемых систем. Простые в освоении языки МЭК позволяют привлечь к разработке и сопровождению специалистов прикладной области. Интерес для разработчика встраиваемых систем может представлять богатый функционал комплекса CODESYS. Многозадачность реального времени, обработка событий, встроенная визуализация, развитый набор коммуникаций, «горячее» обновление кода, полевые сети, поддержка управления через Интернет, средства национальной локализации проектов и другие функции CODESYS могут быть не востребованы во встраиваемой системе изначально. Но необходимо учитывать, что все они создавались эволюционно, исходя из практических требований, возникавших у пользователей контроллеров в разных странах, разных условиях и на разных этапах работ. В процессе жизни встраиваемой системы неизбежно возникают аналогичные или близкие задачи. Например, задача настройки и тестирования оборудования заказчиком, интеграция с другим оборудованием, веб-интерфейс и т. п. Во многих случаях CODESYS даст готовое решение.

Заключение

Подведем итоги. Чтобы начать обучение программированию, надо следовать поэтапно. Сделайте следующее:

  1. Заполните пробелы, если таковые имеются. Речь идет об архитектуре компьютера и английском языке.
  2. Изучите для начала теорию алгоритмов и структур данных.
  3. Выберите направление, в котором есть желание развиваться.
  4. В зависимости от направления подберите язык программирования.
  5. Наберитесь знаний об инструментах программирования и веб-фреймворках.
  6. Изучите базы данных.

И в качестве общих советов:

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

На блоге iklife.ru вы найдете еще больше информации о программировании и других сферах деятельности.

Удачи!

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий