Грэйди Буч
(мастер методов коллективной разработки ПО, Chief Scientist for Software Engineering в IBM Research):
Разработка программного обеспечения была,
остается, и, наиболее вероятно, в обозримом будущем будет оставаться фундаментально
сложным видом человеческой деятельности
(из доклада на CEE-SECR 2009,
сделанного из Second Life).
Программирование (programming)-
составление программы процесс проектирования, написания, отладки, тестирования,
документирования и поддержки ПО.
Для написания
программ достаточно простейшего текстового редактора, однако на таком уровне
сложно достичь высокой эффективности работы.
Современное
программирование осуществляется на основе использования
систем программирования (IDE
и
RAD)
- технологий и
средств быстрого создания программ.
Люди считают, что программирование — это наука избранных, но в реальности все
наоборот — просто много людей создают программы, которые используют чужие
программы, как будто строя стену из маленьких кирпичиков.
Microsoft и GitHub представили нейросетевого
помощника программиста Copilot («второй
пилот») на базе искусственного интеллекта от
Open AI.
GitHub Copilot обучен работать с различными фреймворками и языками
программирования на наборе данных, хранящемся в общедоступных репозиториях,
включая терабайты общедоступного кода и является помощником для написания
лучшего кода. GitHub Copilot анализирует текущий код разработчика и
предлагает для его доработки новые строки или функции, в зависимости от
контекста. По мере того, как программист работает с системой, она
адаптируется к его стилю и начинает предлагать более продуктивные решения,
ускоряя текущие возможности человека. Первоначально этот инструмент будет
доступен в Microsoft Visual Studio Code
Системы
программирования
Система
программирования
(инструментальная система, среда разработки)
— это
совокупность компьютерных программ, предназначенных для разработки новых программ на конкретных языках программирования.
Система
программирования выступает эффективным (для достижения
определенных результатов) посредником между
программистом и языком программирования.
Система
программирования - эффективный посредник только для достижения
определенных результатов
Система
программирования
является
метамоделью взаимодействия программиста с языком программирования (определяет
способы, характер, глубину этого взаимодействия)
Система программирования позволяет (на основании
использования готовых шаблонов, фреймворков и
библиотек) создавать (моделировать
(конструировать) программы (правильные тексты на
языках программирования) без непосредственного
взаимодействия с языками программирования и даже
при условии полного незнания этих языков)
Среда разработки
программного обеспечения
(IDE, Integrated
development environment) — система
программных средств, используемая для разработки
программного обеспечения.
Существуют
среды разработки, предназначенные для:
одного
языка программирования
(Visual Basic)
нескольких
языков (например,
Microsoft Visual Studio)
Визуальные среды
разработки
отличает
относительная
лёгкость освоения, быстрота
разработки, стандартизация
внешнего вида программ.
Визуальные среды
разработки применяются
в основном для создания прикладных программ.
Visual Studio Code
Visual Studio Code—
редактор кода, с поддержкой десятков
программирования и форматов файлов, который:
выпущен Microsoft в 2016 году как «легкий» редактор для кроссплатформенной разработки веб- и
облачных приложений, позволяющий обойтись
без полной интегрированной среды разработки;
распространяется бесплатно, разрабатывается
как программное обеспечение с открытым
исходным кодом;
доступен в версиях для платформ Windows,
Linux и OS X;
основан на проекте Atom компании GitHub и
является надстройкой над Chromium и Node.js.
включает встроенный отладчик, инструменты
для Git и рефакторинга, навигации по коду,
автодополнения типовых конструкций и
контекстной подсказки;
поддерживает разработку для платформ ASP.NET
и Node.js
Обеспечивает поддержку: JavaScript, C++, C#,
TypeScript, jade, PHP, Python, XML, Batch, F#,
DockerFile, CoffeeScript, Java, HandleBars
(англ.)русск., R, Objective C, PowerShell,
Lua, Visual Basic, Markdown, JSON, HTML, CSS,
LESS и SASS и др...
Visual Studio
Code пользуется заслуженным уважением разработчиков,
предоставляет функциональность IDE и выступает в
качестве реальной альтернативы Visual Studio для
проектов среднего размера в качестве основного
инструмента разработки команды.
github.com/Microsoft/vscode/tree/master/extensions
— репозиторий расширений от компании
Microsoft. Много расширений отличного
качества, идеальные примеры при создании
вашего собственного расширения.
marketplace.visualstudio.com/VSCode —
магазин расширений для VS code. Поищите
расширение которое затрагивает
функциональность похожую на ту что вы
планируете реализовать и в большинстве
случаев там будет ссылка на репозиторий с
исходным кодом.
Electron
Electron
— платформа, позволяющая создавать,
собирать проинсталлировать в различных ОС
простые
десктопные приложения, используя HTML, CSS и
JavaScript.
Electron
предлагает стандартный стек технологий
frontend-разработчика:
Существуют
различные
стили
программирования,
крайними выражением которых являются:
Cowboy
coding
- ковбойский стиль «сделал и забыл», для очень
коротких проектов и для проверки
работоспособности идей, без плана, без
спецификации.
Heavyweight
-
монументальный стиль, предусматривает разбиение
всей разработки на четкие этапы
(бизнес-моделирование, анализ требований,
разработка архитектуры, кодирование, отладка,
тестирование, документирование,
сопровождение).
Кент
Бек
(основоположник
eXtremal Programming,
XP): Некоторые виды деятельности являются определяющими
для успеха разработки программ. Но вы также должны — как
всей командой, так и каждый сотрудник в отдельности —
развить в себе множество социальных навыков:
честность, стремление к прозрачности,
ответственность и т. д.
Уильям
Гейтс
(создатель
Microsoft):
Многие считают, что создание компьютерных
программ - это отшельнический вид деятельности,
когда вы целый день сидите, закрывшись в офисе, и
пишете код. Это совершенно неверно. Умение общаться
и эффективно работать с разными людьми также очень
важно. Новаторство в области программного
обеспечения, как и почти во всех других видах
деятельности, требует умения сотрудничать и делиться
идеями с другими людьми, разговаривать с клиентами,
учитывать их замечания и понимать их нужды.
Лиза
Александер
(вице-президент
Red Hat
по кадрам):
Мы,
конечно же,
зарабатываем деньги. Но определяющую роль играет сама
работа.
Это шанс поучаствовать в международной
разработке и внедрении технологии, способной
изменить социальную структуру общества. И наша
культура.
Мы
стремимся, чтобы инновационные
решения предлагало как можно больше
сотрудников и для нашей корпоративной
культуры характерны открытое общение и взаимопомощь.
Red Hat
- одна из крупнейших компаний, специализирующихся
на создании свободного программного обеспечении
(3000 сотрудников в 25 странах мира на конец 2007
года).
Дуглас
Меррил(вице-президент
по технологиям
Google):
Важно собрать вместе людей
из разных стран, разговаривающих на
разных языках, с разными взглядами на мир и сделать
так, чтобы они работали вместе. Мы не обязаны
говорить и думать одинаково. Каждый
должен делиться своими взглядами на мир с другими -
так мы получим наиболее интересные и креативные
решения.
Дуглас
Меррил:
Если вы знаете
три языка - вы "трехъязычный" (trilingual), если вы
знаете два языка - вы "двуязычный" (bilingual), если
же вы знаете только один язык - вы американец.
Дэн Рид
(директор Microsoft по многоядерным вычислениям): «Во всем мире ощущается
нехватка специалистов, владеющих навыками написания
программ с параллельной обработкой»
Увеличение числа ядер
в центральном процессоре не приводит к увеличению
скорости выполнения последовательного кода
приложений. Необходимы новые языки программирования и иные
технологии использования преимущества
многоядерной обработки.
Microsoft
и Intel выделили 20 млн долл. университетам
Калифорнии и Иллинойса на создание новых
методов параллельного (в том числе «многоядерного»)
программирования и обучение таким методам. Задача
инициативы, — превратить
«параллельное программирование» в синоним просто
«программирования».
ИТ-сектор экономики Беларуси
02.04.2019
Совокупный объем ИT-экспорта в 2018
- $1,3 млрд.
Объем экспорта ИТ-услуг на душу населения — $108 (в
США - $58, в Индии — $40, КНР — $20.
60,5% ИT-специалистов занято в аутсорсинговых услугах.
Среднегодовой темп роста выручки ИТ-сектора (2011–2015) — около 16%.
Доля
работающего населения, занятого в ИКТ, — 2,2% (105 000)
Доля
сектора в ВВП — 7,7%
В
Беларуси работает более 50 международных R&D-центров ИТ-компаний.
ИТ-компании с
офисами в Беларуси экспортировали в январе–феврале компьютерных услуг на
$367 000 000 (+34% к 2019).
За январь–март ВВП снизился на 0,3%, а белорусский ИТ-сектор обеспечил самый
высокий прирост ВВП +0,5%.
Многие
ИТ-компании являются резидентами
Парка высоких технологий (ПВТ):
http://park.by/
05.08.2021
Резиденты ПВТ по итогам 1 полугодия 2021 заплатили рекордную сумму налогов:
Br357,4 млн (+86% к 2020)
Ставка подоходного налога для айтишников из ПВТ выросла с 9 до 13% (на 44%).
В ПВТ
70 000 специалистов (+ 10 000 новых рабочих мест в 2020)
В ПВТ 1021 компания (в 2020 году в ПВТ 236 новых резидентов, в марте
2021-го — еще 65.
Приток прямых иностранных инвестиций в ПВТ вырос на 26% и составил в
2020 $331,7 миллиона
В 2020 года в ПВТ 107 разработки зарубежных корпораций (в 2020 + 23
центра)
Объем производства Br7,4 млрд 400 млн. 1,5% занятых в экономике и
4+% ВВП
EPAM
Systems -
крупнейший поставщик услугв СНГ, Центральной и Восточной Европев области разработки:
систем корпоративного планирования
(ERP),
корпоративных информационных порталов (EIP),
систем управления отношениями с
клиентами (CRM),
серверов интеграции приложений (EAI),
систем
управления проектами
(PMS),
систем управления контентом (CMS),
систем управления знаниями (KMS)
.
Созданная
в Минске
1993 году, сегодня компания EPAM Systems имеет 17
представительствв 8 странах мира, в штате более 3000 специалистов.
Несколько
лет подряд
EPAM Systemsпризнана компанией №1 в категории ведущих аутсорсинг-компаний в
Ц. и В. Е.
Аркадий
Михайлович
Добкин- основатель, президент и председатель совета
директоров
EPAM Systems,
один из
основоположников
Парка высоких технологий в Минске. В 2004 г.
Аркадий Добкин
- один из трех наиболее профессиональных руководителей
IT-компаний. В 2006 г.
Аркадий Добкин
- один из 25 лучших
ИТ-консультантов года. В 2007 г.
Аркадий Добкин
- в тройке финалистов нац-го
амер-го конкурса "Предприниматель года".
В 2007
отделение
EPAM Systems
открыто в Бресте.
Аркадий Добкин:Яучился
в минской школе №50, окончил
Белорусский национальный технический университет по
специальности "инженер электротехники".
Начинал
я свой бизнес почти
20 лет назад, оказавшись в США и не имея ни гроша
в кармане. Тогда мне, не
знавшему даже английского языка,
пришлось несколько месяцев
перебиваться случайными
заработками, мыть посуду в
ресторане. идея организовать на
территории бывшего СССР компанию
по разработке программного
обеспечения вызывала среди друзей
и знакомых лёгкое недоумение.
Правда, однажды кто-то из них, с
тайной целью избавить меня от иллюзий, подарил
мне
книгу американского аналитика и
консультанта Эдварда Йордана,
посвящённую методам организации ИТ-бизнеса. Её я
зачитал, что называется, "до
дыр", применив на практике идеи
известного американского
менеджера.В итоге появилась EPAM Systems, а когда в Минск
приехал сам Эдвард Йордан, то оставил автографы
на двух новых экземплярах той самой
книги - для меня и моего знакомого
в США.
07.09.2013
Капитализация EPAM Systems
1,02 млрд долларов.
07.09.2018Капитализация EPAM Systems
7,68 млрд долларов.
15.05.2019
В 1 квартале 2019 EPAM заработала
$521 300 000 выручки
(+ 23%, $97 200 000 к 1 кварталу 2018). Ожидаемая выручка во 2 квартале
$540 000 000.
27 900 специалистов в EPAM (+17,6% к 1 кварталу
2018).
05.10.2019
Во 2 квартале 2019 EPAM заработала
$551 600 000 выручки
(+ 23,8% ко 2 кварталу 2018). Ожидаемая выручка во 3 квартале
$579 000 000.
33 100 специалистов в EPAM (+21% ко 2 кварталу
2018).
Agile-подход
25.01.2010
Концепция скорой
(agile)
разработки ПО все более популярна
Формального определения для
agile-парадигмы
пока нет: процесс создания ПО разбивается на небольшие
итеративные (повторяющиеся) блоки с целью минимизации рисков, которые
были бы возможны в случае охвата командой разработчиков всего проекта
целиком и сразу.
Согласно
Forrester Research35% из 1,3 тыс. ИТ-специалистов сообщили, что
agile-методология наиболее точно отвечает принятому у них процессу
разработки.
Показатель повышается до 46% в том
случае, если к agile-подходу отнести такие практики, как RUP (Rational
Unified Process)
и
спиральная методология.
Команды
разработчиков отказываются от прежних ортодоксальных подходов в пользу
смешения парадигм и их комбинации, для того чтобы выработать гибридный
подход, оптимально применимый в условиях крупных организаций.
Несмотря на то что scrum-методологию
выбирает бóльшая часть (11%) agile-разработчиков, многие из девелоперов
не останавливаются на конкретных подходах типа экстремального
программирования: команды стремятся дополнить свой опыт
приемлемыми именно в их случае практиками создания ПО.
Абсолютная победа
16.11.2009
14-летний
белорусский вундеркинд
Геннадий Короткевич
(закончил 8 классов гимназии
№56 города Гомеля)
выигрывает
почти все соревнования, в которых участвует. Три года подряд Геннадий
Короткевич получает золотую медаль всемирной Олимпиаде по
программированию среди школьников (IOI). В августе 2009 года он стал
абсолютным чемпионом — самым юным за 21-летнюю историю конкурса.
21.07.2017
Геннадий Короткевич (шестикурсник
факультета информационных технологий и программирования питерского ИТМО)
занимает первую строчку в рейтинге спортивных программистов CodeForces. На
счету Гены — множество побед на российских и международных
соревнованиях по программированию, включая Google Code Jam, VK Cup,
Russian Code Cup и Facebook Hacker Cup. В том числе в чемпионате по
спортивному программированию Яндекс.Алгоритм
в 2013, 2014, 2015 и 2017 годах.
20.01.2010
Марко Чаласан, 9-годишно
македонче, е истински IT гений. Още на 6 години той е
сертифициран за системен администратор от Microsoft, а преди месец става
наймладият
Microsoft Certified Systems
Engineer.
Матей Потокар
(главния мениджър на Microsoft Словения):
Марко е дете-чудо.
В Словения пред служители на Microsoft малкият системен администратор е
представил презентация за работата на Active Directory с акцент върху
плюсовете и предизвикателствата на технологията. В момента Марко се
грижи дистанционно за компютърната мрежа на неправителствена организация,
която работи с хора с увреждания. Любимото му хоби е футболът.
Допълнително компютърният вундеркинд води часовете по информатика в
началното си училище, където преподава основи на компютрите на децата
между 8 и 11-годишна възраст. Момчето разказва, че обикновено прекарва
по 4 часа дневно пред компютъра, но понякога се случва да работи и по 10
часа. Заради характера на професионалните му занимания Марко има
специално позволение от правителството да ходи на училище по-рядко от
връстниците си.
Что мы, разработчики, будем делать, если когда нас автоматизируют, и
мы окажемся на улице?
Что-то айтишников расплодилось, где былая элитарность. Да грядёт
чистка ИТ-шной расы, великое разделение на автоматизаторов и
автоматизируемых ;)
Если нас так легко автоматизировать, то мб мы не тем занимаемся?
Люди с кодопрошлым или закат программистов
10
причин несчастья разработчиков
В соответствии срезультатами
опроса
разработчики (опрошено 417 человек) программного
обеспечения, в среднем, «слегка счастливы».
Причина
Частота
Застрять в решении проблемы
186
Нехватка времени
152
Плохое качество кода и
практики программирования
107
Недорабатывающий коллега
71
Чувство несоответствия работе
63
Обыденная или повторяющаяся
задача
60
Необъяснимая ошибка в коде
57
Плохой процесс принятия
решений
42
Введённые ограничения на
разработку
40
Личные проблемы, не связанные
с работой
39
Научная статьяопубликована15
марта 2017 года на сайте arXiv.org (arXiv:1703.04993v1).
Типы
программистов?
Гений
Почти всегда молод, знает о программировании куда больше, чем ему
нужно знать, проводит 90% своего свободного времени за кодингом.
ВСЕГДА САМОУЧКА. Всегда следует за трендами и “the next big things”.
Может только взглянуть на код, понять и проанализировать его, как
компьютер, с редким талантом. Часто очень хорош в математике.
Хипстер
Использует Javчше. Фанатик почти всегда знает только один язык и
никогда не пытается выучить другой. Больше сфокусирован на
библиотеках и синтаксисе, чем на создании настоящих приложений,
сайтов или игр.