Скинули вакансию на технического директора с интересным требованием:
Уж простите, но не удержался 😁⤵️
Нам подойдут те управленцы, которые читали книжки по инженерии, а поэтому понимают, что:
- Тестировщики не нужны – разработчики должны сдавать работающий код
Уж простите, но не удержался 😁⤵️
😁3🤡2
Так себе программист
Скинули вакансию на технического директора с интересным требованием: Нам подойдут те управленцы, которые читали книжки по инженерии, а поэтому понимают, что: - Тестировщики не нужны – разработчики должны сдавать работающий код Уж простите, но не удержался…
This media is not supported in your browser
VIEW IN TELEGRAM
😁5🤡2
#include <iostream>
namespace First
{
int var = 1;
}
namespace Second
{
int var = 2;
}
int main()
{
{
using namespace First;
var = 3;
}
std::cout << First::var << Second::var << std::endl;
return 0;
}
Выше дан код на C++. Какой вывод будет у программы?
Anonymous Quiz
30%
12
48%
32
7%
13
15%
Никакой. Ошибка сборки
This media is not supported in your browser
VIEW IN TELEGRAM
😠 Хэй, все знают, что даже у старых жигулей есть душа!
😁4
Так себе программист
😠 Хэй, все знают, что даже у старых жигулей есть душа!
Кстати, про ИИ, нейросети и все такое.
В "Аэлите" Толстого есть эпизод, где прибывшие на Марс люди изучают язык местных с помощью специальной приспособы. Там что-то крутится-вертится, и азбука, фразы и понятия постепенно проникают в сознание.
После "загрузки" знания в голову, им оставалось лишь вздремнуть для закрепления)
Но я что подумал...
Если нам сейчас кажется, что созданные нами нейросети в будущем заменят специалистов, то почему мы не думаем от том, что вместо компьютерных нейросетей, мы будем обучать мозг человека напрямую?
Ну, возьмем и построим все необходимые нейросвязи прямо в мозгу. Врачу - свои, инженеру - свои. Не будем писать учебники, статьи, посты в тележке, а начнём распространять нейросетевые модели обучения. Коммерческие и бесплатные. Специальные и общеобразовательные.
Представьте, грузишь в голову базу и работаешь, копишь опыт. Как скопил что-нибудь интересное, извлекаешь свою нейросеть и выставляешь её на маркетплейс.
Фантастика
#КнижнаяПолка
В "Аэлите" Толстого есть эпизод, где прибывшие на Марс люди изучают язык местных с помощью специальной приспособы. Там что-то крутится-вертится, и азбука, фразы и понятия постепенно проникают в сознание.
Лось чувствовал, – мозг его яснеет, будто поднимается туманная пелена, и новые слова и понятия отпечатлеваются в памяти.
После "загрузки" знания в голову, им оставалось лишь вздремнуть для закрепления)
Но я что подумал...
Если нам сейчас кажется, что созданные нами нейросети в будущем заменят специалистов, то почему мы не думаем от том, что вместо компьютерных нейросетей, мы будем обучать мозг человека напрямую?
Ну, возьмем и построим все необходимые нейросвязи прямо в мозгу. Врачу - свои, инженеру - свои. Не будем писать учебники, статьи, посты в тележке, а начнём распространять нейросетевые модели обучения. Коммерческие и бесплатные. Специальные и общеобразовательные.
Представьте, грузишь в голову базу и работаешь, копишь опыт. Как скопил что-нибудь интересное, извлекаешь свою нейросеть и выставляешь её на маркетплейс.
Фантастика
#КнижнаяПолка
👍2😁2🥴1
Путаница в интерфейсах (часть 5)
Рубрика "Нам пишут" 🤓
Прислали диалог подтверждения отмены записи в одной из МИС (медицинская информационная система).
Если подумать, то диалог вполне логичный. Решение понятно. Но это если подумать.
В моменте же красный цвет для утвердительного действия и зелёный цвет для отрицательного вносят путаницу. Так посмотришь, и уже не уверен, хочешь ли отменять😁
🔜 Как вариант, можно было бы оставить кнопки вообще без цветов.
🔜 Другой вариант - это оставить красный цвет на кнопке "Да, отменить", а зеленый цвет и "галочку" с "крестиком" убрать. Тогда конфликтующих элементов интерфейса станет меньше.
—
Читать Путаница в интерфейсах (часть 4)
Рубрика "Нам пишут" 🤓
Прислали диалог подтверждения отмены записи в одной из МИС (медицинская информационная система).
Если подумать, то диалог вполне логичный. Решение понятно. Но это если подумать.
В моменте же красный цвет для утвердительного действия и зелёный цвет для отрицательного вносят путаницу. Так посмотришь, и уже не уверен, хочешь ли отменять😁
—
Читать Путаница в интерфейсах (часть 4)
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2👍1
#include <iostream>
template<class T>
void func(const std::initializer_list<T>& input)
{
for (const auto& val : input )
std::cout << val << " ";
}
int main()
{
func({1, 2, 3});
return 0;
}
Ну да, шаблоны... Но должны же мы были к ним хоть раз зайти!
Выше дан код на C++. Какой вывод будет у программы?
Anonymous Quiz
14%
0 0 0
55%
1 2 3
14%
val val val
18%
Никакой. Ошибка компиляции.
От "научного тыка" к осознанной отладке в C++
Раньше я не пользовался отладчиком. Вместо этого алгоритм поиска багов был такой:
1. Метод научного тыка - менял какие-то строки и надеялся.
2. Гуглил - иногда везло, но чаще нет.
3. Нагружал код логами -
4. Отправлялся к ментору - последняя надежда.
Хороший алгоритм, кстати. К последнему пункту обязательно срабатывал! Но это было очень долго.
А про отладчик я знал. Но он казался сложным. Думалось, что проще написать 100 логов, чем нажимать на кнопку с жуком 🤨
Но это не могло продолжаться вечно. После жёсткого нагоняя на 4-м пункте я необратимо узнал, что отладчик это:
- видеть состояние программы на каждой строке кода;
- пошагово двигаться по строкам, заходя во все функции;
- анализировать сложные ситуации, которые невозможно залогировать.
С отладчиком часы мучений превратились в минуты отладки. Но, правда, и баги стали позаковыристей 🤭
Если вы все еще логируете, то вот вам мой нагоняй. Смотрим видео, где за 10 минут разберемся в основных аспектах отладчика.
Видео:📱 YouTube | 📱 ВКонтакте
Раньше я не пользовался отладчиком. Вместо этого алгоритм поиска багов был такой:
1. Метод научного тыка - менял какие-то строки и надеялся.
2. Гуглил - иногда везло, но чаще нет.
3. Нагружал код логами -
cout << "Я тут! var = " << var << endl;.4. Отправлялся к ментору - последняя надежда.
Хороший алгоритм, кстати. К последнему пункту обязательно срабатывал! Но это было очень долго.
А про отладчик я знал. Но он казался сложным. Думалось, что проще написать 100 логов, чем нажимать на кнопку с жуком 🤨
Но это не могло продолжаться вечно. После жёсткого нагоняя на 4-м пункте я необратимо узнал, что отладчик это:
- видеть состояние программы на каждой строке кода;
- пошагово двигаться по строкам, заходя во все функции;
- анализировать сложные ситуации, которые невозможно залогировать.
С отладчиком часы мучений превратились в минуты отладки. Но, правда, и баги стали позаковыристей 🤭
Если вы все еще логируете, то вот вам мой нагоняй. Смотрим видео, где за 10 минут разберемся в основных аспектах отладчика.
Видео:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👏1🕊1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2🔥1
#include <iostream>
class MyClass
{
int a_ = 0;
public:
MyClass(int value = 0): a_(value)
{
std::cout << a_;
}
};
int main()
{
MyClass s1();
MyClass s2(10);
return 0;
}
Выше дан код на C++. Какой вывод будет у программы?
Anonymous Quiz
20%
10
64%
010
8%
0010
8%
Никакой. Ошибка компиляции
🤯2
Дефицит внимания: кто виноват
Знаете, что это за спонтанное желание проверять телефон каждые 5 минут?
Это не лень - так работает перегруженный мозг. Об этом ещё в 2010 году в своей книге писал Торкель Клингберг.
Виной всему прогресс. Мы все меньше читаем книги и все больше черпаем информацию из Интернета, где куча отвлекающих факторов. Реклама, соцсети, маркетплейсы, мессенджеры, мемы в конце концов. Всё как бы говорит тебе: "Не надо шевелить мозгами, отвлекись". И мы отвлекаемся. Причем, чем сложнее решаемая нами задача, тем охотнее мозг отлынивает.
Дело в том, что за наш мыслительный процесс отвечает рабочая память. А она вроде оперативки на компьютере: быстрая, но маленькая. Рабочая память может удерживать одновременно до 7 элементов информации. Её очень легко перегрузить, и эффективность мышления снизится. Поэтому сущая мелочь, одно уведомление в мессенджере, может выбить нас из мыслительного процесса.
За собой я явно заметил проблему дефицита внимания. Я легко отвлекаюсь. И это понятно: работа программиста значительно нагружает когнитивные ресурсы, а мозг ленив по своей природе и будет отвлекаться при любой возможности.
Поэтому, учитывая доводы Клингберга, со временем я выработал для себя следующие правила концентрации:
1. Уменьшаю "шум". Уведомления развлекательного контента у меня отключены по умолчанию - этого не должно быть в поле зрения. Если надо серьезно сосредоточиться, я отключаю вообще все уведомления на 1 час. Через час вернусь и все просмотрю. Так может продолжаться весь день, а может эпизодически. Зависит от решаемых задач.
2. Фиксирую контексты. Для каждого контекста у меня есть свои заметки. Выключаясь из контекста, я фиксирую в заметке, на чем остановился. Потом легче включиться обратно. Под сменой контекста я подразумеваю переключение с задачи на задачу или, например, с рабочего проекта на домашний проект. Здесь мне очень помогает Obsidian (как-нибудь расскажу подробнее).
3. Делаю перерывы. Например, фитнес-браслет предупреждает меня, если не было движения в течение часа. На него и ориентируюсь. Встал, прошёлся, сел обратно.
4. Тренирую память через чтение сложной литературы. Технические тексты, изобилие терминов, не родной язык здорово нагружают "процессор". Но есть минус: такие вещи не очень хочется читать 😁
—
А вы страдаете от дефицита внимания? Делитесь в комментах или в реакциях 😊👇
😁 - да, и мне норм
🔥 - да, борюсь с этим
👍 - у меня нет такой проблемы
📍Клингберг Т - Перегруженный мозг. Информационный поток и пределы рабочей памяти (2010) #КнижнаяПолка
Знаете, что это за спонтанное желание проверять телефон каждые 5 минут?
Это не лень - так работает перегруженный мозг. Об этом ещё в 2010 году в своей книге писал Торкель Клингберг.
Виной всему прогресс. Мы все меньше читаем книги и все больше черпаем информацию из Интернета, где куча отвлекающих факторов. Реклама, соцсети, маркетплейсы, мессенджеры, мемы в конце концов. Всё как бы говорит тебе: "Не надо шевелить мозгами, отвлекись". И мы отвлекаемся. Причем, чем сложнее решаемая нами задача, тем охотнее мозг отлынивает.
Дело в том, что за наш мыслительный процесс отвечает рабочая память. А она вроде оперативки на компьютере: быстрая, но маленькая. Рабочая память может удерживать одновременно до 7 элементов информации. Её очень легко перегрузить, и эффективность мышления снизится. Поэтому сущая мелочь, одно уведомление в мессенджере, может выбить нас из мыслительного процесса.
За собой я явно заметил проблему дефицита внимания. Я легко отвлекаюсь. И это понятно: работа программиста значительно нагружает когнитивные ресурсы, а мозг ленив по своей природе и будет отвлекаться при любой возможности.
Поэтому, учитывая доводы Клингберга, со временем я выработал для себя следующие правила концентрации:
1. Уменьшаю "шум". Уведомления развлекательного контента у меня отключены по умолчанию - этого не должно быть в поле зрения. Если надо серьезно сосредоточиться, я отключаю вообще все уведомления на 1 час. Через час вернусь и все просмотрю. Так может продолжаться весь день, а может эпизодически. Зависит от решаемых задач.
2. Фиксирую контексты. Для каждого контекста у меня есть свои заметки. Выключаясь из контекста, я фиксирую в заметке, на чем остановился. Потом легче включиться обратно. Под сменой контекста я подразумеваю переключение с задачи на задачу или, например, с рабочего проекта на домашний проект. Здесь мне очень помогает Obsidian (как-нибудь расскажу подробнее).
3. Делаю перерывы. Например, фитнес-браслет предупреждает меня, если не было движения в течение часа. На него и ориентируюсь. Встал, прошёлся, сел обратно.
4. Тренирую память через чтение сложной литературы. Технические тексты, изобилие терминов, не родной язык здорово нагружают "процессор". Но есть минус: такие вещи не очень хочется читать 😁
—
А вы страдаете от дефицита внимания? Делитесь в комментах или в реакциях 😊👇
😁 - да, и мне норм
🔥 - да, борюсь с этим
👍 - у меня нет такой проблемы
📍Клингберг Т - Перегруженный мозг. Информационный поток и пределы рабочей памяти (2010) #КнижнаяПолка
🔥11😁6👍2
Как работает inline в C++
В C++
Для того, чтобы сделать функцию встраиваемой, нужно указать ей ключевое слово
Можно, конечно, подумать, что было бы классно все функции программы сделать встраиваемыми. Но тогда размер программы стал бы огромным. Представьте, что если бы мы встроили функцию из 10 строк в 10-ти местах её вызова, мы получили бы в 10 раз больше скомпилированного кода! А если таких функций у нас под сотню?🤔 То-то и оно.
Надо иметь в виду, что слово
Общий совет по использованию слова
Но есть один случай, когда использовать
Такие пироги 😊
Кстати, а ведь мы можем рассмотреть встраивание на практике с помощью обратной разработки... Жмите 👍, а я подумаю над примером.
В C++
inline-функции - это функции, код которых при компиляции может быть встроен в место их вызова. Встраивание - это оптимизация, повышающая производительность кода, так как при этом исчезает относительно ресурсоемкий вызов функции. Для того, чтобы сделать функцию встраиваемой, нужно указать ей ключевое слово
inline и определить её реализацию прямо в месте объявления.inline void func()
{
...
}
Можно, конечно, подумать, что было бы классно все функции программы сделать встраиваемыми. Но тогда размер программы стал бы огромным. Представьте, что если бы мы встроили функцию из 10 строк в 10-ти местах её вызова, мы получили бы в 10 раз больше скомпилированного кода! А если таких функций у нас под сотню?
Надо иметь в виду, что слово
inline - это только рекомендация для компилятора. Функция может и не встроиться. В то же время даже если вы не укажете inline, то компилятор встроит функцию, если это покажется ему целесообразным. Например, когда функция очень маленькая. А может встроить и большую, но которая вызывается всего лишь в одном месте.Общий совет по использованию слова
inline такой: его можно не использовать. А если очень хочется, то сначала докажите себе, что это правда нужно и правда поможет.Но есть один случай, когда использовать
inline точно не стоит: вместе с виртуальными функциями. Компилятор почти со 100% вероятностью его проигнорирует и создаст виртуальную функцию в единице трансляции класса. Исключением может быть ситуация, когда виртуальная функция вызывается единожды и без использования полиморфизма.Такие пироги 😊
Кстати, а ведь мы можем рассмотреть встраивание на практике с помощью обратной разработки... Жмите 👍, а я подумаю над примером.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Надежность или отказоустойчивость
Грубо говоря, термины означают примерно одно и то же. Что от надежной системы, что от отказоустойчивой, мы ожидаем, что она будет работать несмотря ни на что. Но если разобраться в деталях, то разница все таки есть.
Надежность - это способность системы выполнять свои функции без отказов в определенных условиях.
Отказоустойчивость - это способность системы сохранять свою работоспособность даже при отказах.
Например, при наличии Интернета (условие) наш браузер надежно скачивает файлы. Но если при скачивании соединение ненадолго пропадет (отказ), браузер все равно докачает файл при его возобновлении. Это - отказоустойчивость. То есть выбор термина зависит от контекста.
#Словарь
Но а что решим с жигулями на картинке? 😅☝️
🔥 - надежная
👍 - отказоустойчивая
Голосуем!
Грубо говоря, термины означают примерно одно и то же. Что от надежной системы, что от отказоустойчивой, мы ожидаем, что она будет работать несмотря ни на что. Но если разобраться в деталях, то разница все таки есть.
Надежность - это способность системы выполнять свои функции без отказов в определенных условиях.
Отказоустойчивость - это способность системы сохранять свою работоспособность даже при отказах.
Например, при наличии Интернета (условие) наш браузер надежно скачивает файлы. Но если при скачивании соединение ненадолго пропадет (отказ), браузер все равно докачает файл при его возобновлении. Это - отказоустойчивость. То есть выбор термина зависит от контекста.
#Словарь
Но а что решим с жигулями на картинке? 😅
🔥 - надежная
👍 - отказоустойчивая
Голосуем!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Что такое "состояние гонки" в программировании?
Anonymous Quiz
57%
Ошибка многопоточной программы, когда ее работа зависит от порядка выполнения разных участков кода
24%
Ошибка многопоточной программы, при которой поток данных обгоняет процессор
10%
Состояние погони за сроками в конце итерации разработки
10%
Экспоненциальное нарастание ошибок в программе из-за погони за сроками
Получалось в информатику в школе?
Anonymous Poll
30%
Конечно, я отличник
42%
В основном да
18%
Ну так себе
0%
В основном нет
9%
Какая такая информатика?
Как разбить проект CMake на подпроекты
В новом видео мы разберём одну из ключевых возможностей CMake — команду add_subdirectory. Это инструмент, который помогает структурировать код в больших проектах, разделяя его на логические части.
В качестве примера выбран простейший проект на C++ / CMake, который мы разделим на два подпроекта: библиотеку и основное приложение.
📱 Смотреть на YouTube
📱 Смотреть во ВКонтакте
✍️ Читать текстовую версию
В новом видео мы разберём одну из ключевых возможностей CMake — команду add_subdirectory. Это инструмент, который помогает структурировать код в больших проектах, разделяя его на логические части.
В качестве примера выбран простейший проект на C++ / CMake, который мы разделим на два подпроекта: библиотеку и основное приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3