478.41K
Category: programmingprogramming

Общие сведения о сфере. Общие понятия об устройстве компьютера. Классификация языков программирования

1.

Введение
Общие сведения о сфере. Общие понятия об устройстве
компьютера. Классификация языков программирования.

2.

План
• Сфера IT сегодня
• Порог входа
• Основные направления деятельности
• Общие сведения о компьютере
• Что такое ЯП?
• Классификация языков программирования
• По назначению
• По типу исполнения кода

3.

Организационный вопрос
• В занятиях практику предпочитаю теории
• Между занятиями – ДЗ
• Вопросы по ДЗ приветствуются
• Некоторые темы пойдут на самостоятельное изучение
– для расширения кругозора в области

4.

Сфера IT
Финтех
Разработка
Веб-разработка
Консультирование
Back-end
Full Stack
Front-end

5.

Сфера IT
Микроэлектроника
ИИ
Разработка
новых
моделей
Выбор новых
применений
Работа с
«железом»
Разработка
приложений
Мобильные
платформы
Игры

6.

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

7.

Что такое компьютер?
• Компьютер – устройство или система, способная выполнять
заданную, четко определенную, изменяемую
последовательность операций. (с) Википедия

8.

Что такое компьютер?

9.

Память
RAM – Random Access Memory
• Оперативная память(ОЗУ)
• Энергозависимая
• Быстрая
• Предназначена для хранения
данных программ
• Небольшой объем
ROM – Read-Only Memory
• Постоянное запоминающее
устройство(ПЗУ)
• Энергонезависимая
• Медленная
• Предназначена для хранения
больших файлов длительное
время
• Большой объем

10.

Память
• Далее речь пойдет только об ОЗУ. Именно в этой памяти
хранятся переменные и другие данные, используемые при
работе наших программ.
• Как сказано ранее, объем ОЗУ небольшой. Каждой программе
операционная система(ОС) выделяет некоторые объем
оперативной памяти, в котором та работает.

11.

Процессор
• Центральный процессор(процессор, микропроцессор,
ЦП, ЦПУ) - электронный блок либо интегральная
схема, исполняющая машинные инструкции (код
программ), главная часть аппаратного обеспечения
компьютера или программируемого логического
контроллера. (с) Википедия
• Крайне расплывчатое определение, верно?

12.

Процессор

13.

Язык программирования
• Язы́к программи́рования — формальный язык,
предназначенный для записи компьютерных программ. Язык
программирования определяет набор лексических,
синтаксических и семантических правил, определяющих
внешний вид программы и действия, которые выполнит
исполнитель (обычно — ЭВМ) под её управлением. (с)
Википедия

14.

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

15.

Программирование
1. Постановка задачи
2. Формализация задачи
3. Создание алгоритма решения
4. Выбор ЯП для реализации алгоритма
5. Реализация алгоритма на выбранном ЯП
6. Тестирование работы программы

16.

Классификация ЯП
• Самое главное – ЯП это не панацея от всех бед) Это
исключительно инструмент
• Изучив на каком-то уровне один язык – можно значительно
быстрее изучить другой
• Основа основ – логика и алгоритмика
• Математика – зависит от сферы, высокие требования к
математике в области ИИ

17.

Классификация ЯП
• В принципе, любой ЯП, почти любой можно использовать для
чего угодно.
• Но, есть языки, «заточенные» по ту или иную сферу
• Приведем небольшую классификацию ЯП для различных сфер

18.

Финтех
Финтех
Разработка
Консультирование
Java(Spring), Python,
JavaScript
Внутренние языки
различных систем, SAP
ERP, ABAP и т.д.

19.

Веб-разработка
Веб-разработка
Back-end
Full Stack
Front-end
PHP, Java, Python,
JavaScript, C++,
Go…
Python, JavaScript

JavaScript и
производные

20.

ИИ
ИИ
Разработка
новых
моделей
Выбор новых
применений
Python, Matlab
Python

21.

Микроэлектроника
Микроэлектроника
Работа с
«железом»
С/С++, Assembler

22.

Разработка приложений
Разработка
приложений
Мобильные
платформы
Android
Игры
IOS
C++, C#, Java,
Python, Lua и т.д.
Java, Kotlin, Lua,
JavaScript
Objective-C, SWIFT

23.

Итоги
• Языков много. Очень много)
• Основные конструкции очень похожи, часто совпадают в
различных языках
• Некоторые ЯП требуют дополнительных технических средств
• Есть более «универсальные» языки, есть более «специальные»

24.

По типу исполнения кода
• По типу исполнения есть два типа – языки компилируемые и
интерпретируемые
• Данный параметр влияет на следующие характеристики:
• Зависимость от платформы
• Скорость выполнения
• Необходимость наличия специального ПО на компьютере пользователя
• Некоторые тонкости и нюансы

25.

Компилятор

26.

Компилятор
Достоинства
• Быстрота работы программы;
• Отсутствие надобности
компилятора на компьютере
пользователя.
Недостатки
• Программа зависит от ОС,
под которую была
скомпилирована;
• При внесении изменений
требуется перекомпиляция
кода.

27.

Интерпретатор

28.

Интерпретатор
Достоинства
• Независимость от ОС
(переносимость кода);
• При внесении изменений НЕ
требуется перекомпиляция
кода.
Недостатки
• Для запуска программы
требуется наличие
интерпретатора;
• Низкая скорость работы.

29.

Итоги
• Для того, чтобы попробовать себя в мире разработки, на мой
взгляд, идеальным ЯП является Python
• Это интерпретируемый ЯП с низким порогом вхождения
• Имеет широкую сферу применения

30.

Python
• Python – высокоуровневый язык программирования
общего назначения.
• Синтаксис ядра Python минималистичен.
• Данный ЯП относится к интепретируемым языкам.
• Является одним из самых популярных языков в
мире(3 место по данным TIOBE).

31.

Переменные
• Переменная – поименованная ячейка памяти
• Язык Python является языком с нестрогой типизацией – для создания
переменной необходимо лишь написать ее имя
a=2
str = "Vasy"
d = 2.3043
c = 'c'

32.

Переменные
• Но лучше так не делать) Дефицита памяти в наших задачах нет –
создавайте под каждое значение свою переменную.
• Также, лучше сразу называть переменные адекватно – не нужно
никаких a, b, c. Допустим, при написании калькулятора вам нужны 2
аргумента и знак.
• Переменные, как вариант, можно назвать arg1, arg2 и znak. Всяко
понятней, чем a, b, c. Интерпретатору, конечно, всё равно, но
адекватные названия повышают читаемость кода.

33.

Ввод данных с клавиатуры
• Используется конструкция input()
• a = input()
• Иногда необходимо явно привести вводимую переменную к
какому-либо типу данных
• a = int(input())
b = float(input())

34.

Задачи
• Ввести два целых числа и посчитать их сумму.
• Ввести два дробных числе и посчитать их
произведение.

35.

На самостоятельное изучение
• С целью расширения кругозора – почитать про различные
системы счисления, 2с/с, 8с/с, 16с/с.
• Попрактиковать простейшие переводы из 10с/с в различные
другие и обратно.

36.

Спасибо за внимание!
Вопросы?
English     Русский Rules