Какой язык программирования был использован в примере выше?
Anonymous Quiz
33%
С#
53%
C
10%
C++
3%
Objective-C
Кстати, наш сайт, где вам помогут с разработкой мобильных приложений и сайтов выглядит так: https://ag-soft.ru
ag-soft.ru
Заказная разработка приложений и сайтов / Профессиональные IT-решения для вашего бизнеса
Компания специализируется на заказной разработке мобильных приложений, веб-сайтов и IT-решений. Мы создаем качественные продукты, которые помогают бизнесу расти и развиваться. Индивидуальный подход, современные технологии и надежная поддержка.
Почему JavaScript — это фундаментальный язык программирования?
Фундаментальным JavaScript является, потому что в браузере исполняется только он, независимо от того, какой браузер вы открываете. Таким образом, все, что выполняется в веб-среде, будь то обычная веб-страница или социальная сеть, воспроизводится с участием JavaScript.
Любые альтернативы JavaScript — это все равно системы, тем или иным образом затрагивающие этот фундаментальный язык. Конечным итогом любой такой альтернативы все равно будет JavaScript. В качестве примера приведем язык Dart, который в настоящее время приобретает популярность. Он удобнее и мощнее чем JavaScript, тем не менее уйти от последнего полностью он не позволяет. Если на Dart-е мы хотим запустить программу в браузере, данная программа предварительно компилируется в код на JavaScript и этот код уже исполняется в браузере.
JavaScript непрерывно развивается, выпускаются диалекты, расширяющие возможности этого языка. Расширения эти достаточно интересны, так, например, TypeScript предоставляет возможность динамической типизации, он компилируется, что дополнительно увеличивает надежность языка.
Фундаментальным JavaScript является, потому что в браузере исполняется только он, независимо от того, какой браузер вы открываете. Таким образом, все, что выполняется в веб-среде, будь то обычная веб-страница или социальная сеть, воспроизводится с участием JavaScript.
Любые альтернативы JavaScript — это все равно системы, тем или иным образом затрагивающие этот фундаментальный язык. Конечным итогом любой такой альтернативы все равно будет JavaScript. В качестве примера приведем язык Dart, который в настоящее время приобретает популярность. Он удобнее и мощнее чем JavaScript, тем не менее уйти от последнего полностью он не позволяет. Если на Dart-е мы хотим запустить программу в браузере, данная программа предварительно компилируется в код на JavaScript и этот код уже исполняется в браузере.
JavaScript непрерывно развивается, выпускаются диалекты, расширяющие возможности этого языка. Расширения эти достаточно интересны, так, например, TypeScript предоставляет возможность динамической типизации, он компилируется, что дополнительно увеличивает надежность языка.
Какой алгоритм помогает найти простые числа?
Anonymous Quiz
4%
Алгоритм Прима
51%
Алгоритм Решето Эратосфена
44%
Алгоритм поиска в ширину
Как построить процесс тестирования так, чтобы тестировщик не стал врагом разработчика?
Представим ситуацию:
Разработчик пыхтел над задачей месяц, выполнил ее, прошел код-ревью. После этого задача вернулась с тестирования с формулировкой «все 💩, ничего не работает»
После сотого круга таких комментариев разработчик начинает выходить из себя, что пагубно влияет на рабочий процесс.
Как сделать так, чтобы таких ситуаций не происходило?
1. Тестировщик должен точно составлять баг-репорт по согласованному шаблону
2. Задача от тестировщика должна возвращаться на проверку, а не к выполнению. Это позволяет руководителю четко отслеживать количество вернувшихся с тестирования задач, а разработчику дает возможность перепроверить результаты в тестировании
3. Автоматизация тестирования: помогает уменьшить количество ручного труда тестировщика, а значит уменьшит количество точек отказа, на которых что-то может пойти не так
4. Юнит-тесты лучше писать разработчику, тогда разработчик будет сам участвовать в процессе тестирования и будет проще к этому относиться
Вывод: выстаивать бизнес-процессы внутри своей компании тоже надо
Представим ситуацию:
Разработчик пыхтел над задачей месяц, выполнил ее, прошел код-ревью. После этого задача вернулась с тестирования с формулировкой «все 💩, ничего не работает»
После сотого круга таких комментариев разработчик начинает выходить из себя, что пагубно влияет на рабочий процесс.
Как сделать так, чтобы таких ситуаций не происходило?
1. Тестировщик должен точно составлять баг-репорт по согласованному шаблону
2. Задача от тестировщика должна возвращаться на проверку, а не к выполнению. Это позволяет руководителю четко отслеживать количество вернувшихся с тестирования задач, а разработчику дает возможность перепроверить результаты в тестировании
3. Автоматизация тестирования: помогает уменьшить количество ручного труда тестировщика, а значит уменьшит количество точек отказа, на которых что-то может пойти не так
4. Юнит-тесты лучше писать разработчику, тогда разработчик будет сам участвовать в процессе тестирования и будет проще к этому относиться
Вывод: выстаивать бизнес-процессы внутри своей компании тоже надо
Какой алгоритм описан на скриншоте?
Anonymous Quiz
25%
Алгоритм сортировки пузырьком
1%
Алгоритм сортировки слиянием
36%
Алгоритм сортировки вставками
38%
Алгоритм сортировки Шелла
Простота прекрасна
А тема сегодняшнего поста: история языка С
Язык С - это прадед C++, C#, Java а также всех других Си-подобных языков. Из всех языков, Си – самый легендарный и до изящности простой, именно он стал основой для многих, чуть ли не всех, языков программирования. Это, я бы сказал, ящик пандоры, который открыли Керниган и Ритчи.
Мощность языка Си одна из самых больших (больше только у Ассемблера), он краток и лаконичен. Единственное, что может сделать Ассемблер и не может сделать Си – это перевод процессора в защищенный режим.
Первая книга (#моялюбимая) о языке Си была написана Керниганом и Ритчи в 1978 году и вышла в свет под названием «Язык программирования Си». Позже именно она стала неофициальным стандартом Си.
Сам Ритчи наиболее известен как создатель языка программирования C и ключевой разработчик операционной системы Unix. Я лично считаю его одним из самых великих программистов в мире. Он
А тема сегодняшнего поста: история языка С
Язык С - это прадед C++, C#, Java а также всех других Си-подобных языков. Из всех языков, Си – самый легендарный и до изящности простой, именно он стал основой для многих, чуть ли не всех, языков программирования. Это, я бы сказал, ящик пандоры, который открыли Керниган и Ритчи.
Мощность языка Си одна из самых больших (больше только у Ассемблера), он краток и лаконичен. Единственное, что может сделать Ассемблер и не может сделать Си – это перевод процессора в защищенный режим.
Первая книга (#моялюбимая) о языке Си была написана Керниганом и Ритчи в 1978 году и вышла в свет под названием «Язык программирования Си». Позже именно она стала неофициальным стандартом Си.
Сам Ритчи наиболее известен как создатель языка программирования C и ключевой разработчик операционной системы Unix. Я лично считаю его одним из самых великих программистов в мире. Он
Какова сложность алгоритма пирамидальной сортировки?
Anonymous Quiz
2%
O(n)
54%
O(log n)
4%
O(1)
40%
O(n log n)
Знания математики в программировании. Зачем?
По меньшей мере понадобятся неплохие базовые школьные знания. Если Вы - будущий веб-разработчик и собираетесь писать интерфейсы, то не так уж сильно будете взаимодействовать с математикой, хотя и здесь есть нюансы.
Вот живой пример: мне недавно нужно написать таймер обратного отсчета. Так как простое решение сразу в голову не пришло, я вывел уравнение окружности, использовал школьные знания по вычислению площади круга и т. д. Конечно, можно было решить задачу проще и “загуглить” как это сделать, раз идея в голову сама не пришла, однако само наличие базовых знаний, представлений о правильности тех или иных формул, уместности их применения понадобится и в этом случае.
Другие области программирования, такие как алгоритмы, структуры данных, Data Science и любые иные области которые связаны с прикладным использованием данных, требуют глубоких знаний статистики и линейной алгебры, уже не говоря о математическом анализе. Последний используется в сфере машинного обучения, все подобные модели строятся на связи статистики и очень глубокого математического анализа.
Такая область математических знаний, как статистика особенно важна. Предсказательные модели, аналитические модели, даже простейшая программа по аналитике комментариев в социальной сети должна содержать внутри себя массивные решения по обработке статистических данных. Знание линейной алгебры также потребуется программисту для построения моделей.
Для работы с интерфейсами нужны не только базовые школьные знания математики, но и основы математического анализа, которые обычно дают на первых курсах ВУЗа. Есть также смежные с программированием сферы: прикладная математика, которая, например, позволяет посчитать сопротивление лобового стекла автомобиля и т. д.
Конечно, сам процесс решения сложных уравнений выполняет программа но знать, как это сделать вручную все равно необходимо. Также необходимо понимать сам подход к тому, как грамотно
запрограммировать данные вычисления и логически верно выстроить сложную программу. Немаловажно также уметь оптимизировать программу, а это, опять же, знание математики.
Информационная безопасность включает в себя написание безопасных программ (или написание опасных программ для других в виде хакерского ПО). К этой сфере относится криптография: шифры, разработка математических моделей шифров. Так что здесь для успешной работы в принципе не обойдешься базовыми школьными знаниями математики.
Как видите, математика нужна каждому, кто хочет заниматься программированием. Кому-то она понадобится в большей степени, кому то в меньшей, но без нее так или иначе не обойтись
По меньшей мере понадобятся неплохие базовые школьные знания. Если Вы - будущий веб-разработчик и собираетесь писать интерфейсы, то не так уж сильно будете взаимодействовать с математикой, хотя и здесь есть нюансы.
Вот живой пример: мне недавно нужно написать таймер обратного отсчета. Так как простое решение сразу в голову не пришло, я вывел уравнение окружности, использовал школьные знания по вычислению площади круга и т. д. Конечно, можно было решить задачу проще и “загуглить” как это сделать, раз идея в голову сама не пришла, однако само наличие базовых знаний, представлений о правильности тех или иных формул, уместности их применения понадобится и в этом случае.
Другие области программирования, такие как алгоритмы, структуры данных, Data Science и любые иные области которые связаны с прикладным использованием данных, требуют глубоких знаний статистики и линейной алгебры, уже не говоря о математическом анализе. Последний используется в сфере машинного обучения, все подобные модели строятся на связи статистики и очень глубокого математического анализа.
Такая область математических знаний, как статистика особенно важна. Предсказательные модели, аналитические модели, даже простейшая программа по аналитике комментариев в социальной сети должна содержать внутри себя массивные решения по обработке статистических данных. Знание линейной алгебры также потребуется программисту для построения моделей.
Для работы с интерфейсами нужны не только базовые школьные знания математики, но и основы математического анализа, которые обычно дают на первых курсах ВУЗа. Есть также смежные с программированием сферы: прикладная математика, которая, например, позволяет посчитать сопротивление лобового стекла автомобиля и т. д.
Конечно, сам процесс решения сложных уравнений выполняет программа но знать, как это сделать вручную все равно необходимо. Также необходимо понимать сам подход к тому, как грамотно
запрограммировать данные вычисления и логически верно выстроить сложную программу. Немаловажно также уметь оптимизировать программу, а это, опять же, знание математики.
Информационная безопасность включает в себя написание безопасных программ (или написание опасных программ для других в виде хакерского ПО). К этой сфере относится криптография: шифры, разработка математических моделей шифров. Так что здесь для успешной работы в принципе не обойдешься базовыми школьными знаниями математики.
Как видите, математика нужна каждому, кто хочет заниматься программированием. Кому-то она понадобится в большей степени, кому то в меньшей, но без нее так или иначе не обойтись
Agile — это итеративный подход к управлению проектами и разработке программного обеспечения, который помогает командам быстрее и с меньшими проблемами поставлять ценность клиентам.
Agile-подходы используют разработчики Google, Netflix, Spotify и других компаний. В России об «agile-трансформации» также объявил «Сбер».
К заказной разработке, по моему опыту, Agile относительно неприменим. Сейчас я расскажу, почему.
Есть некий продукт, я бы даже сказал “идея продукта”, к примеру: нужно доставить человека из одного города в другой. Вот для решения задачи сначала сделают скейтборд, на котором он таки доберется до другого города, затем скейтборд апгрейднут до велика, а далее - до мотоцикла. Так появился самолет.
Agile - это про постепенную разработку и реализацию проекта, идея которого состоит в том, чтобы прийти к самолету в поэтапно. А заказная разработка - это “сделай мне самолет, сразу”, вот поэтому аджайл и заказ - штука не совсем совместимая.
Agile-подходы используют разработчики Google, Netflix, Spotify и других компаний. В России об «agile-трансформации» также объявил «Сбер».
К заказной разработке, по моему опыту, Agile относительно неприменим. Сейчас я расскажу, почему.
Есть некий продукт, я бы даже сказал “идея продукта”, к примеру: нужно доставить человека из одного города в другой. Вот для решения задачи сначала сделают скейтборд, на котором он таки доберется до другого города, затем скейтборд апгрейднут до велика, а далее - до мотоцикла. Так появился самолет.
Agile - это про постепенную разработку и реализацию проекта, идея которого состоит в том, чтобы прийти к самолету в поэтапно. А заказная разработка - это “сделай мне самолет, сразу”, вот поэтому аджайл и заказ - штука не совсем совместимая.
Какова сложность алгоритма, описанного псевдокодом выше?
Anonymous Quiz
29%
O(n)
32%
O(n^2)
35%
O(n log n)
4%
O(log n)
Что такое паттерны ООП ?
Паттерн (от англ. «pattern» - шаблон) – алгоритм действий, который можно применить при решении той или иной задачи. Паттерны ООП – это набор рекомендаций, который придумали опытные программисты и который не накладывает на программиста никаких обязательств.
Рассмотрим паттерн «singleton» (одиночка) - описание какого-то класса в системе, который будет создан всего один раз. Набор правил, которых нужно придерживаться и которые обязывают программу создавать только один экземпляр.
Простым языком: пусть у нас есть некое множество овец. Определенные внешние факторы требуют, чтобы у этих овец был только один пастух. Если же пастухов становится 2 и более, овцы теряются. В данном контексте singleton – это пастух. Это значит, что система, которая создается программистом, должна обеспечить уникальность пастуха и не должна позволять другим программистам ставить еще одного или более пастухов для выпаса овец. Таким образом, программист будет обращаться все время к одному пастуху.
Паттерны объекто-ориентированного программирования важны с точки зрения построения архитектуры приложений. Данные рекомендации сильно помогают в работе программистам.
Паттерн (от англ. «pattern» - шаблон) – алгоритм действий, который можно применить при решении той или иной задачи. Паттерны ООП – это набор рекомендаций, который придумали опытные программисты и который не накладывает на программиста никаких обязательств.
Рассмотрим паттерн «singleton» (одиночка) - описание какого-то класса в системе, который будет создан всего один раз. Набор правил, которых нужно придерживаться и которые обязывают программу создавать только один экземпляр.
Простым языком: пусть у нас есть некое множество овец. Определенные внешние факторы требуют, чтобы у этих овец был только один пастух. Если же пастухов становится 2 и более, овцы теряются. В данном контексте singleton – это пастух. Это значит, что система, которая создается программистом, должна обеспечить уникальность пастуха и не должна позволять другим программистам ставить еще одного или более пастухов для выпаса овец. Таким образом, программист будет обращаться все время к одному пастуху.
Паттерны объекто-ориентированного программирования важны с точки зрения построения архитектуры приложений. Данные рекомендации сильно помогают в работе программистам.
Section Header
+ name := HELLO_WORLD;
Section Public
- main <-
(
"Hello world\n".print;
);
+ name := HELLO_WORLD;
Section Public
- main <-
(
"Hello world\n".print;
);
Какой язык программирования был использован выше?
Anonymous Quiz
33%
Scala
8%
Lisp
56%
Lisaac
4%
Smalltalk
Что такое паттерны ООП ?
Паттерн (от англ. «pattern» - шаблон) – алгоритм действий, который можно применить при решении той или иной задачи. Паттерны ООП – это набор рекомендаций, который придумали опытные программисты и который не накладывает на программиста никаких обязательств.
Рассмотрим паттерн «singleton» (одиночка) - описание какого-то класса в системе, который будет создан всего один раз. Набор правил, которых нужно придерживаться и которые обязывают программу создавать только один экземпляр.
Простым языком: пусть у нас есть некое множество овец. Определенные внешние факторы требуют, чтобы у этих овец был только один пастух. Если же пастухов становится 2 и более, овцы теряются. В данном контексте singleton – это пастух. Это значит, что система, которая создается программистом, должна обеспечить уникальность пастуха и не должна позволять другим программистам ставить еще одного или более пастухов для выпаса овец. Таким образом, программист будет обращаться все время к одному пастуху.
Паттерны объекто-ориентированного программирования важны с точки зрения построения архитектуры приложений. Данные рекомендации сильно помогают в работе программистам.
PS: данный пост уже выходил на моем канале. На данный момент мы с командой изменили дизайн и движемся в новом направлении и начать решили именно с поста про ООП и овец :)
Паттерн (от англ. «pattern» - шаблон) – алгоритм действий, который можно применить при решении той или иной задачи. Паттерны ООП – это набор рекомендаций, который придумали опытные программисты и который не накладывает на программиста никаких обязательств.
Рассмотрим паттерн «singleton» (одиночка) - описание какого-то класса в системе, который будет создан всего один раз. Набор правил, которых нужно придерживаться и которые обязывают программу создавать только один экземпляр.
Простым языком: пусть у нас есть некое множество овец. Определенные внешние факторы требуют, чтобы у этих овец был только один пастух. Если же пастухов становится 2 и более, овцы теряются. В данном контексте singleton – это пастух. Это значит, что система, которая создается программистом, должна обеспечить уникальность пастуха и не должна позволять другим программистам ставить еще одного или более пастухов для выпаса овец. Таким образом, программист будет обращаться все время к одному пастуху.
Паттерны объекто-ориентированного программирования важны с точки зрения построения архитектуры приложений. Данные рекомендации сильно помогают в работе программистам.
PS: данный пост уже выходил на моем канале. На данный момент мы с командой изменили дизайн и движемся в новом направлении и начать решили именно с поста про ООП и овец :)
Алгоритм Хаффмана
На днях выходил из машины и поймал себя на следующих размышлениях: как можно было бы представить данные, кроме как написать? В голову сразу пришел бинарный код.
Было бы интересно рассмотреть вопрос о том, как мы распознаем границы между буквами и словами в рамках двоичного кода.
Ответ на этот вопрос дает один из самых важных и изящных алгоритмов в компьютер сайнс - алгоритм Хаффмана.
Также этот алгоритм дает ответ на вопрос «как построить оптимальный код?», то есть тот код, в котором каждый из элементов алфавита кодируется наименее возможным количеством бинарных символов.
На днях выходил из машины и поймал себя на следующих размышлениях: как можно было бы представить данные, кроме как написать? В голову сразу пришел бинарный код.
Было бы интересно рассмотреть вопрос о том, как мы распознаем границы между буквами и словами в рамках двоичного кода.
Ответ на этот вопрос дает один из самых важных и изящных алгоритмов в компьютер сайнс - алгоритм Хаффмана.
Также этот алгоритм дает ответ на вопрос «как построить оптимальный код?», то есть тот код, в котором каждый из элементов алфавита кодируется наименее возможным количеством бинарных символов.
Всем привет! На связи Aero QA. В декабре мы наблюдаем, что CTO наших клиентов стало сложнее защищать бюджеты нового года на разработку, сохраняя ресурсы на текущем уровне. В этих условиях необходимо дойти до нужного результата, сократив Time to market.
Мы помогаем с выстраиванием оптимальных процессов разработки, межкомандных коммуникаций и с автоматизацией рутин. Одновременно повышаем прозрачность процесса в целом и уровень вовлеченности команд. Реализуем в форме консалтинга или выращиваем центр компетенций внутри клиента.
Начинаем с DevOps аудита — это бесплатно. В этом году готовы взять еще два проекта от целевых клиентов.
По срокам займет от 2 до 4 недель. В итоги аудита включим:
1. Отчет, где покажем:
- Анализ окружений
- Точки роста по каждому направлению
- Практические рекомендации по воздействия
2. Семинары, где расскажем, как использовать полученные наработки.
За подробностями — в директ @dmitri_marin. Мы покажем на конкретных кейсах экспертизу и то, как помогли клиентам значительно сократить time2market активных проектов.
#промо
Мы помогаем с выстраиванием оптимальных процессов разработки, межкомандных коммуникаций и с автоматизацией рутин. Одновременно повышаем прозрачность процесса в целом и уровень вовлеченности команд. Реализуем в форме консалтинга или выращиваем центр компетенций внутри клиента.
Начинаем с DevOps аудита — это бесплатно. В этом году готовы взять еще два проекта от целевых клиентов.
По срокам займет от 2 до 4 недель. В итоги аудита включим:
1. Отчет, где покажем:
- Анализ окружений
- Точки роста по каждому направлению
- Практические рекомендации по воздействия
2. Семинары, где расскажем, как использовать полученные наработки.
За подробностями — в директ @dmitri_marin. Мы покажем на конкретных кейсах экспертизу и то, как помогли клиентам значительно сократить time2market активных проектов.
#промо
aeroidea.ru
АЭРО – провайдер ecommerce & data решений
Ecommerce и data решения для крупного бизнеса. Веб- и мобильная разработка, ecommerce платформа, аналитика данных, дизайн, CDP и бизнес-консалтинг