1. Программист и тестолог: как создаются сложные программы
2. Цель, структура и особенности курса
• Цель – ознакомиться с профессиями,
необходимыми для разработки и
тестирования сложных
информационных систем.
• Особенность: практическая
направленность – ознакомиться с
реальной работой программистов и
тестологов.
3.
4.
5.
6.
7.
8.
9.
10. IT-профессии
• руководитель департамента информационных
систем,
• руководитель группы разработчиков,
• руководитель проекта,
• бизнес-аналитик,
• постановщик задач,
• архитектор приложения/системный архитектор,
• прикладной математик,
• проектировщик приложения/баз данных,
• программный аналитик,
11. IT-профессии
программист,
системный программист,
WEB-дизайнер/программист,
(ведущий) специалист по внедрению и тестированию
как стать программистом быстро в 2022 ?
программного обеспечения,
тестолог,
системный интегратор,
администратор сайта/сервера/сети/базы данных,
инженер по техподдержке,
инженер по поддержке пользователей,
специалист по защите информации
12. Востребованность IT специалистов (самые популярные технические специалисты )
Востребованность IT специалистов
(самые популярные технические специалисты )
• разработчики (Java-разработчики, затем идут Oracle,
C++ и .NET разработчики).
• разработчики мобильных приложений (Android, Apple
iOS developers).
• IT-sales.
• IT Help-desk
• консультанты по внедрению и сопровождению ERPсистем.
• руководителей (CIO, ИТ-директора, начальники ИТотделов и тд.)
• ИТ-аналитики и тестировщики (увеличение спроса в
ежегодно примерно на 10-12%).
13. Система подготовки IT-специалистов в вузах России
Система подготовки ITспециалистов в вузах России
Среднее профессиональное образование
(колледжи, техникумы, вузы)
Высшее образование
(бакалавр)
Высшее образование
(магистр)
14. Тольяттинский государственный университет
15. ТГУ – это:
16. Высшее IT-образование в ТГУ
010302
Прикладная математика и
информатика
020303
090303
Математическое обеспечение и
администрирование
информационных систем
Бизнес-информатика
090303
Разработка социальных и
экономических информационных
систем
Прикладная информатика
17. Система подготовки по направлению кафедры «Прикладная математика и информатика»
опыт обучения более 15 лет;
уникальный набор дисциплин;
связь с крупными производителями ПО;
реальные проекты на всем периоде
обучения;
• 100% выпускников трудоустроены.
18. Сферы бизнеса
19. Создание своего бизнеса
• возможность полностью управлять
10 минут, чтобы узнать о профессии программист
своей деятельностью и быть
независимым;
• возможность иметь много свободного
времени;
• возможность зарабатывать
действительно много денег.
20. Сферы бизнеса
21. Сферы бизнеса
• кофейня;
• клуб;
• магазин по продаже мобильных
телефонов или других мелких товаров
из Китая;
• автомойка.
22. Сферы бизнеса
23. Недостатки
• Нужен большой стартовый капитал для
аренды помещения, покупки
оборудования, закупки партии товара.
• Нужно арендовать складское
помещение.
• Некоторые товары имеют срок
годности.
• Производство различных гаджетов и
устройств требует денег.
24. IT-компании из гаража
25. Сферы бизнеса
26. Сферы бизнеса
27. Сферы бизнеса
28. Сферы бизнеса
29. Сферы бизнеса
30. Сферы бизнеса
31. Сферы бизнеса
32. Сферы бизнеса
33. Сферы бизнеса
34. Сферы бизнеса
35. Жизненный цикл ПО
Жизненный цикл программного
обеспечения — период времени,
который начинается с момента
принятия решения о
необходимости создания ПО и
заканчивается в момент полного
изъятия из эксплуатации
36. Классические стадии жизненного цикла ПО
формирование требований к системе;
проектирование (моделирование);
реализация (кодирование);
тестирование;
ввод в действие;
эксплуатация и сопровождение.
37. Виды программирования
web-программирование
разработка desktop-приложений
разработка мобильных приложений
системное программирование
разработка игр
Источник: ppt-online.org
Программист и тестолог: как создаются сложные программы
1. Программист и тестолог: как создаются сложные программы
2. Цель, структура и особенности курса
• Цель – ознакомиться с профессиями,
необходимыми для разработки и
тестирования сложных
информационных систем.
• Особенность: практическая
направленность – ознакомиться с
реальной работой программистов и
тестологов.
3. Информационные технологии и системы
ИТ – приемы, способы и методы применения
средств вычислительной техники при
выполнении функций сбора, хранения,
обработки, передачи и использования
данных (ГОСТ 34.003-90)
Реализуются информационные технологии
через информационные системы
4. Информационные технологии и системы
• Информационная система (в широком
смысле) – совокупность технического,
программного и организационного
обеспечения, а также персонала,
предназначенная для того, чтобы
своевременно обеспечивать
надлежащих людей
надлежащей информацией
5. Информационные технологии и системы
• Информационная система (в узком
смысле) – программно-аппаратная
система, предназначенная для
автоматизации деятельности конечных
пользователей
6.
7. IT-профессии
• руководитель департамента информационных
систем,
• руководитель группы разработчиков,
• руководитель проекта,
• бизнес-аналитик,
• постановщик задач,
• архитектор приложения/системный архитектор,
• прикладной математик,
• проектировщик приложения/баз данных,
• программный аналитик,
8. IT-профессии
программист,
системный программист,
WEB-дизайнер/программист,
(ведущий) специалист по внедрению и тестированию
программного обеспечения,
тестолог,
системный интегратор,
администратор сайта/сервера/сети/базы данных,
инженер по техподдержке,
инженер по поддержке пользователей,
специалист по защите информации
9. Востребованность IT специалистов (самые популярные технические специалисты )
Востребованность IT специалистов
(самые популярные технические специалисты )
• разработчики (Java-разработчики, затем идут Oracle,
C++ и .NET разработчики).
• разработчики мобильных приложений (Android, Apple
iOS developers).
• IT-sales.
• IT Help-desk
• консультанты по внедрению и сопровождению ERPсистем.
• руководителей (CIO, ИТ-директора, начальники ИТотделов и тд.)
• ИТ-аналитики и тестировщики (увеличение спроса в
ежегодно примерно на 10-12%).
10. Система подготовки IT-специалистов в вузах России
Система подготовки ITспециалистов в вузах России
Среднее профессиональное образование
(колледжи, техникумы, вузы)
Высшее образование
(бакалавр)
Высшее образование
(магистр)
11. Тольяттинский государственный университет
12. ТГУ – это:
13. Высшее IT-образование в ТГУ
010302
Прикладная математика и
информатика
020303
090303
Математическое обеспечение и
администрирование
информационных систем
Бизнес-информатика
090303
Разработка социальных и
экономических информационных
систем
Прикладная информатика
14. Система подготовки по направлению кафедры «Прикладная математика и информатика»
опыт обучения более 15 лет;
уникальный набор дисциплин;
связь с крупными производителями ПО;
реальные проекты на всем периоде
обучения;
• 100% выпускников трудоустроены.
15. Сферы бизнеса
16. Создание своего бизнеса
• возможность полностью управлять
своей деятельностью и быть
независимым;
• возможность иметь много свободного
времени;
• возможность зарабатывать
действительно много денег.
17. Сферы бизнеса
18. Сферы бизнеса
• кофейня;
• клуб;
• магазин по продаже мобильных
телефонов или других мелких товаров
из Китая;
• автомойка.
19. Сферы бизнеса
20. Недостатки
• Нужен большой стартовый капитал для
аренды помещения, покупки
оборудования, закупки партии товара.
• Нужно арендовать складское
помещение.
• Некоторые товары имеют срок
годности.
• Производство различных гаджетов и
устройств требует денег.
21. IT-компании из гаража
22. Сферы бизнеса
23. Что нужно?
• Идея
• Компьютер или ноутбук с доступом в
интернет
• Стул и стол, чтобы поставить
компьютер
• Комната, где всё это будет стоять
24. Сферы бизнеса
25. Сферы бизнеса
26. Сферы бизнеса
27. Сферы бизнеса
28. Сферы бизнеса
29. Сферы бизнеса
30. Сферы бизнеса
31. Сферы бизнеса
32. Сферы бизнеса
33. Сферы бизнеса
34. Сферы бизнеса
35. Сферы бизнеса
36. Жизненный цикл ПО
Жизненный цикл программного
обеспечения — период времени,
который начинается с момента
принятия решения о
необходимости создания ПО и
заканчивается в момент полного
изъятия из эксплуатации
37. Классические стадии жизненного цикла ПО
формирование требований к системе;
проектирование (моделирование);
реализация (кодирование);
тестирование;
ввод в действие;
эксплуатация и сопровождение.
38. Виды программирования
web-программирование
разработка desktop-приложений
разработка мобильных приложений
системное программирование
разработка игр
39. Сферы бизнеса
40. Сферы бизнеса
41.
Программирование на языке Си
41
Алгоритм
Алгоритм – это чётко определённый план
действий для исполнителя.
Свойства алгоритма
• дискретность: состоит из отдельных шагов (команд)
• понятность: должен включать только команды,
известные исполнителю (входящие в СКИ)
• определённость: при одинаковых исходных данных
всегда выдает один и тот же результат
• конечность: заканчивается за конечное число шагов
• массовость: может применяться многократно при
различных исходных данных
• корректность: даёт верное решение при любых
допустимых исходных данных
А. Тонких, 2020
http://tltsu.ru
42. Основные типы алгоритмов
• линейный;
• ветвящийся (простые и сложные
ветвления);
• циклический (циклы с верхней и нижней
проверкой условия
продолжения/завершения цикла).
43. Способы записи алгоритмов
словесно-формульный;
псевдокод;
структурный или блок-схемный;
с помощью граф-схем;
карты Констайна;
с помощью сетей Петри и т.д.
44. Словесно-формульная запись
Найти значение следующего выражения
у=2а-(х+6):
1. Ввести значения а и х.
2. Сложить х и 6.
3. Умножить а на 2.
4. Вычесть из 2а сумму х+6
5. Присвоить y значение шага 4.
6. Вывести у как результат вычисления
выражения
45. Блок-схемы
46. Унифицированный язык моделирования UML Диаграммы деятельности Расчет выражения a/b + c*d
47.
Программирование на языке Си
47
Языки программирования
• Машинно-ориентированные (низкого уровня) каждая команда соответствует одной команде
процессора (ассемблер)
• Языки высокого уровня – приближены к
естественному (английскому) языку, легче
воспринимаются человеком, не зависят от
конкретного компьютера
• для обучения: Бейсик, ЛОГО, Паскаль
• профессиональные: Си, Фортран, Паскаль
• для задач искусственного интеллекта:
Пролог, ЛИСП
• для Интернета: JavaScript, Java, Perl, PHP,
ASP
А. Тонких, 2020
http://tltsu.ru
48. Структура программы (структурное программирование)
program <ИмяПрограммы>;
begin
end.
49. Структура программы (объектно-ориентированное программирование)
program Editor;
uses
Forms,
REAbout in ‘REAbout.pas’ ,
REMain in ‘REMain.pas’ ;
begin
Application.Title := ‘Text Editor’;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.
50. Понятие класса и объекта
• Класс (это тип) представляет собой
структуру, состоящую из атрибутов и методов
• Объект – экземпляр класса
ИмяКласса
Объект: ИмяКласса
Атрибуты
Атрибуты
Методы
Методы
51. Пример класса
<это очень упрощенный класс>
program MyFirstClass;
uses Objects;
type
TMyClass = class
x, y: integer;
//объявляем атрибуты
function getSum: integer; //объявляем методы
end;
TMyClass
x, y: integer
getSum: integer
Код
function TMyClass.getSum: integer;
Result := x + y;
end;
//описываем метод
var
MyClass: TMyClass; //объявляем объект
begin
MyClass:= TMyClass.Init;
//порождаем объект
MyClass.X := 1;
//задаем значения атрибутов
MyClass.Y := 2;
//выводим значение, возвращенное методом суммирования
Writeln(‘Object return ‘, MyClass.getSumm);
Readln;
//ждем нажатия клавиши Enter
end.
52. Программирование без ошибок (если не знать принципы тестирования)
• выключи компьютер, или хотя бы экран,
и хорошо разберись, что от тебя хотят.
• если алгоритм сложный, решай
кусками, не лезь сразу «в код».
Продумай шаги, потом их кодируй.
• чем проще алгоритм, тем лучше.
Подумай нужна ли унификация
программы, от этого она станет
сложней.
53. Программирование без ошибок (если не знать принципы тестирования)
• написал логически завершенный
участок программы – сделай прогон,
если обнаружились ошибки – исправь
их и только потом кодируй дальше;
• используй пошаговую трассировку с
просмотром значений;
• думай как можно «завалить» твою
программу (для реальных проектов!) –
защита «от дурака».
54. Азбука программирования «в двух словах»
1. Есть волшебная клавиша F1!
2. «Не Боги горшки обжигают» — не
бойся, пиши код. Чем больше
напишешь исправного кода, тем выше
твое мастерство.
3. Запомни основные типы данных.
4. Люди теряются в трех соснах, а
плохие программисты в пяти (всегото!) операторах.
55. «Пять сосен» программистов
1. Два оператора ветвлений:
if – простое ветвление (на всех языках
программирования);
Case – сложное ветвление (Switch на С,
Java и Select Case на Basic).
56. «Пять сосен» программистов (продолжение)
2. Три оператора для циклов:
for – оператор цикла «счетчик», на всех
языках программирования;
while … do – оператор с верхней
проверкой условия;
repeat … until – оператор с нижней
проверкой условия.
57. Тестирование
• Тестирование — процесс выполнения
программы с целью обнаружения
ошибок
• Шаги процесса задаются тестами
58. Можно ли обнаружить все ошибки? Или: как долго проводить тестирование?
• все ошибки в сложных программах
обнаружить за приемлемое время
нельзя;
• процесс тестирования прекращается,
когда обнаружена «основная часть»
ошибок (очень упрощенный критерий
).
59. Зависимость количества обнаруженных ошибок во времени
100%
доля обнаруженных ошибок
80%
60%
40%
20%
0%
0
1
2
3
4
5
время
6
7
8
9
10
60. Два классических принципа тестирования программы
• функциональное тестирование
(тестирование «черного ящика»);
• структурное тестирование
(тестирование «белого ящика»).
61. Тестирование «черного ящика»
• Известны: функции программы.
• Исследуется: работа каждой функции
на всей области определения.
X
F(x)
Y
Структура программы «закрыта» от
тестолога. Если количество переборов
входных данных очень велико, то
исчерпывающее тестирование невозможно.
62. Тестирование «белого ящика»
• Известна: внутренняя структура
программы.
• Исследуются: внутренние элементы
программы и связи между ними
X
Y
Источник: ppt-online.org
Интервью с программистом: «Это сложная профессия, и заниматься этим могут только умные люди»
За чем стоит будущее программирования, в чем находят азарт IT-шники и почему программист уже не тот, рассказал Павел Суворкин, студент третьего курса Нижегородского Политеха направления «Вычислительные машины, комплексы, системы и сети».
− Три причины, почему ты пошёл учиться на программиста? − Во-первых, быть программистом – значит решать сложные задачи. Мне нравится думать, трудиться над решением проблем, а еще создавать что-то полезное для людей. Во-вторых, программистам хорошо платят. Конечно, зарплата серьёзно зависит от опыта, сферы и места работы, но в целом деньги очень хорошие.
В-третьих, программирование нужно везде: в бизнесе, науке, здравоохранении, промышленности и так далее. Среди такого разнообразия обязательно найдётся область, интересная именно тебе. Лично я заинтересован в создании нейронных сетей и в разработке машинного интеллекта.
Это применимо в компьютерных играх, медицине, дорожном движении, умном доме, робототехнике, технологии недалёкого будущего − беспилотные автомобили. − Как ты считаешь, можно ли выучиться на программиста самостоятельно? − Следует понимать, что программист − это не тот, кто знает несколько языков программирования и может писать какие-нибудь программы.
Программист, а вернее IT-специалист − это человек, разбирающийся во многих науках, знающий и применяющий передовые технологии для разработки новых. Что касается самостоятельного обучения − тут всё неоднозначно.
В некоторых сферах, таких как web-дизайн, вполне возможно обучиться самостоятельно: выучить некоторые языки для написания сайтов (HTML, PHP, C#), разораться в фронт-энд и бэк-энд разработке и освоить инструменты дизайна. Если есть желание заниматься более сложными задачами: разработкой ОС (операционной системы), машинным интеллектом, решением прикладных задач в медицине, ракетостроением, то самостоятельно обучиться этому крайне сложно, даже невозможно.
Лучшее решение − поступить в престижный вуз и в течение нескольких лет изучать различные дисциплины, необходимые для разработчика ПО. − Сравни свои ожидания и впечатления от учёбы?
− Если честно, когда я поступал, то думал, что я буду очень много программировать и учить языки, но реальность оказалась куда сложнее… Помимо всего этого, мне также пришлось усиленно учить математический анализ, физику, вычислительную математику, теорию вероятности, криптографию, схемотехнику, электротехнику, микропроцессорные системы, базы данных, администрирование сетей, машинное обучение, организацию ЭВМ (Электронных Вычислительных Систем), устройство и работу ОС (мы буквально по винтику разбираем OS Windows 7). Я получил гораздо более продвинутые и широкие знания, чем первоначально планировал, и это всего за 3 года!
К слову, это является продолжением вопроса о самостоятельном обучении. − В какой сфере программирования собираешься работать? − По моему мнению, будущее за машинным интеллектом, и я хочу принять участие в его создании. Это очень интересно и полезно. Машины на автопилоте, умные города, самостоятельно регулирующие движение автомобилей, умный дом.
− Заниматься программированием скучно или азартно? − На начальных этапах, когда мало знаешь, это не столь азартно. Написание небольших простеньких программ не приносит особого восторга, но чем больше ты изучаешь, тем больше возможностей перед тобой открывается.
Нельзя сразу сесть и написать хорошую полезную программу, но со временем программы будут получаться всё лучше и лучше, уже начнёт проявляться свой стиль программирования. Появляется азарт, когда решаешь сложные задачи. − Согласен ли ты со стереотипом, что программисты обычно лохматые, ходят в свитере, носят очки, не могут жить без интернета и не умеют общаться с девушками?
− Ну да, когда говорят программист, сразу представляется взъерошенный очкарик, копающийся в компьютере и бормочущий себе под нос что-то непонятное. Это стереотип из 90-х – раньше программисты примерно так и выглядели. Современный же программист хорошо одевается, может позволить себе хороший автомобиль.
Он хорошо образован, разбирается в передовых технологиях, хотя у него специфическое чувство юмора и «программистский жаргон», не все смогут понять его. Проблем общения с девушками не обнаружено 🙂 − В твоём городе быть программистом перспективно? − Конечно, программисты нужны везде, в Нижнем Новгороде достаточно крупных IT компаний, думаю, что без работы не останусь.
− Что самое сложное в профессии? − Постоянное обучение. Информационные технологии быстро развиваются, постоянно появляется что-то новое. Погоня за новыми технологиями тяжела. Приходится изучать сложные алгоритмы и читать книги и документацию на английском языке. − Что следует учесть школьникам, которые захотели пойти учиться на программиста?
− Нужно понимать, что это сложная профессия, требующая усилий. Но награда велика: востребованность, хорошая зарплата, интересная работа, общение с умными и целеустремлёнными людьми. Также хороший программист со знанием английского может ездить в командировки в США и Европу (небольшая подсказочка). − Испытываешь ли ты гордость, когда говоришь, что учишься на программиста?
− Конечно, ведь это престижно и интересно. Многие считают, что программированием могут заниматься только умные люди, и я с ними согласен.
За чем стоит будущее программирования, в чем находят азарт IT-шники и почему программист уже не тот, рассказал Павел Суворкин, студент третьего курс.
Источник: 5uglov.ru