Обновить
998.3

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Почему так тяжело учить грамматику иностранного языка?

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров7.8K

Недавно ,была опубликована статья: «Почему так трудно учить иностранный язык?». В развитие этой темы, думаю, самое трудное в изучении языка – это грамматика. Для многих она всегда была камнем преткновения. Отсюда постоянно идут разговоры, что грамматика – не главное, мол, можно вполне обойтись без нее, просто погрузившись в языковую среду, как, совершенно естественно, учат язык дети

Однако, для взрослых такой метод работает менее эффективно. Часто, просто нет возможности общаться напрямую с носителями, но, даже, у постоянно находящихся за рубежом, все равно, возникает необходимость посещать языковые курсы.

Взрослые, как правило, используют два основных метода изучения иностранного языка: с помощью преподавателей или репетиторов и самостоятельно.

Первый способ особенно хорош для студентов языковых ВУЗов. Ребята туда идут подготовленные и высокомотивированные. Скажем, я, на первом курсе мехмата МГУ, встретил студентку первого курса МГИМО, которая, в свои 17 лет уже знала, в совершенстве, английский, французский и японский языки. На память, она оставила мне рисунок меня с надписью на катакане. Я даже собирался купить японско-русский словарь, чтобы прочесть ее послание, но, не судьба.

У нас, английский язык преподавали жестко, как и все остальные предметы для математиков, включая физкультуру. Тем не менее, с большим трудом, мы могли его «сдать», но, фактически, при этом, почти ничего не знать.

По большому счету, все упиралось в слабое знание грамматики, Да и словарный запас был недостаточным. Хотя, может быть, главным, все же, оказался недостаток мотивации, ибо вся она уходила на математику. По этой причине, нас очень любили студенты МГИМО, которые говорили, что: «Мы понимаем всех, кроме вас, математиков». Именно на нас они оттачивали свое мастерство ведения брифингов и пресс-конференций. И даже уговаривали задавать каверзные вопросы (это в те времена, когда, за прослушивание «Голоса Америки» можно было вылететь из Университета).

Читать далее

Аналог вложенным функциям на языке программирования Си

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров6K

Полноценной замены вложенным функциям в языке программирования Си нет, но есть несколько способов, как их можно симулировать. Чаще всего в вложенных функциях нам важно то, что код определяется там же, где передаётся в качестве функции обратного вызова. Иногда этот код бывает настолько мал, что выносить его в отдельную функцию в глобальной области видимости смысла нет. Например, для сортировки массива по возрастанию с помощью функции типа qsort чаще всего достаточно такого кода: return e1 - e2;. Вынести его в отдельную функцию в глобальной области видимости, а затем ещё придумывать корректное название — так себе удовольствие. Вложенные функции, добавленные в GCC как расширение, могли бы решить эту проблему, но такой код не будет работать на других компиляторах языка Си.

Читать далее

ThinkFun: от революционера STEM производителя до стабильного бренда под крылом Ravensburger

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров843

В 1985 году небольшая компания ThinkFun начала с простой идеи — делать обучение увлекательным через игры, которые развивают ум, а не просто развлекают. За десятилетия она выросла в мирового лидера STEM-игр, создавая хиты, которые учили логике, физике и даже программированию — без экранов и скучных уроков. Её игры вдохновляли миллионы детей по всему миру, превращая сложные науки в захватывающие приключения. Но путь от гаражного стартапа до глобального бренда оказался не таким простым, как казалось. А сейчас, похоже, даже вступил в период стагнации. Давайте посмотрим на хронологию событий.

Читать далее

Миша — консольный SSH клиент

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров14K

Миша - консольный SSH клиент, который в будущем перерастет в полноценную утилиту для удобно взаимодействия с удаленным компьютером по SSH

Читать далее

Что такое детерминизм и как с ним бороться?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.2K

Привет, Хабр!

Много лет можно наблюдать один и тот же ритуал: человек берёт фиксированный seed, торжественно записывает его в три места, запускает обучение и искренне ожидает, что всё будет повторяться до бита. А потом accuracy скачет на третьем знаке, лосс уплывает и приходит вопрос: «Почему не детерминируется?» А потому что детерминизм в ML это не один флажок. Это сумма десятка мелких факторов, от выбора алгоритма в cuDNN до порядка файлов в каталоге.

Читать далее

Кубистая планета — делаем шарообразный мир в стиле Minecraft

Время на прочтение18 мин
Количество просмотров13K

Вооружившись игровым движком Unity, я написал техническое демо, в котором пытаюсь наложить кубические воксели Minecraft на шарообразное тело (планету). Планета генерируется процедурно, и её можно полностью разрушить. Игроки могут расставлять или убирать разные блоки, которых насчитывается более 20 типов.

Да, во многом эта реализация базируется на обычных приёмах, которые могут быть знакомы вам из типичного кустарного клона Minecraft, но благодаря сферической структуре игрового мира возникает ряд уникальных аспектов, которые учитываются в строительстве. Основное внимание в этом посте будет уделено именно таким нетривиальным задачам.

Читать далее

Как мы в Java-проекте UDT для PostgreSQL поддерживали

Уровень сложностиСложный
Время на прочтение33 мин
Количество просмотров2.8K

PostgreSQL позволяет создавать хранимые функции и процедуры. И если при их вызове с простыми данными проблем не возникает, то сложные иерархические структуры могут вызвать трудности.

В статье мы разберёмся, как передавать и получать вложенные объекты в процедурах и функциях PostgreSQL с помощью JDBC.

Читать далее

Бесконечные циклы. Всё, что может пойти не так — пойдёт не так

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.3K

Конструкции типа while(true) или for(;;) довольно опасные. Когда люди их пишут, то всегда надеются на то, что сработает условие выхода из цикла. Однако, на самом деле, как бы мы ни были уверены, такие конструкции лучше избегать.

В любом программном продукте есть баги, и те инварианты, на которые идёт расчёт, могут просто не сработать. Решение? Читайте в переводе от команды Spring АйО, где автор указывает примеры того, как с этими конструкциями поступили в Jooq и как с ними работает один из департаментов University of California.

Читать далее

Что с Python? Меньше производительности, никакого сахара и больше багов

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров12K

Python продолжает меняться, но не всегда так, как ждёт сообщество. Новый синтаксический сахар отклоняют, прирост производительности оказывается скромнее обещанного, а очередные депрекации в setuptools ломают проекты. При этом экосистема получает долгожданный стандартный lock-файл и поддержку uv в Dependabot. В статье разбираем, что это значит на практике и почему начинающим Python-разработчикам важно следить за этими изменениями.

Читать далее

Чудесная история Генри Шугара

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.3K

Это фильм. «Чудесная история Генри Шугара». В 2023 года. Я сделал красочные цвета. Вот что получилось. Ну что? Что вы думаете? «Кислотные телепузики»? :-)

Фильм получил премию «Оскар» в 2024 года. Вот полной ffmpeg:

Читать далее

Как превратить SQL в API на Go?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.6K

Команда Go for Devs подготовила перевод статьи о том, как превратить SQL в полноценный API прямо в Go. Автор показывает, как можно безопасно принимать WHERE-условия в виде SQL-подзапросов, валидировать их и использовать для запросов к базе. Просто, элегантно и почти без лишнего кода.

Читать далее

Как мы Best Practices в Java анализатор внедряли

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.6K

История о том, как мы переписывали приложение под DI контейнеры, разбирали зависимости, рисовали графики, чтобы в этом не потеряться, и молились, чтобы ничего вдруг не сломалось.

Читать далее

How I Learned to Stop Worrying and Love the… BDSM

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров775

Это публикация‑опрос. Поэтому и такой заголовок :-) Отсылку поймут не только лишь все, но главная цель — привлечь внимание народа к опросу.

В принципе, публикацию можно даже и не читать. Она просто поясняет, откуда взялись два варианта между которыми нужно выбирать по итогу — какое из двух названий лучше применить в технической документации.

Буду благодарен всем, кто поучаствует в голосовании.

Читать далее

Ближайшие события

Пентест: когда компании просят «хакеров» их взломать

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.6K

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

Поехали...

PCW — новая метрика продуктивности разработчиков с ИИ

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров607

Команда AI for Devs подготовила перевод статьи о метрике Percentage of Code Written (PCW) от Windsurf. Эта метрика показывает, какой процент кода в проекте реально пришёл от ИИ. Авторы утверждают: PCW надёжнее привычных показателей вроде acceptance rate и отражает, насколько продукт действительно помогает разработчикам. А как вы думаете — можно ли измерить ценность ИИ в цифрах?

Читать далее

Не доверяй и проверяй, или как я валидировал ссылку в JavaScript

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров2.9K

Всем привет! На связи Сергей, ведущий фронтенд-разработчик в команде привлечения Центрального университета. Расскажу историю, как валидировал ссылку и попал впросак. Я использовал браузерный URL API для своих целей и думал, что знаю, как он работает. И прежде чем кидать в меня помидоры, как в разработчика, который не читает документацию, дайте шанс рассказать свою историю.

Читать далее

«Архитектура бэкенда», или как я написал мою первую техническую книгу

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров8.3K

Привет, Хабр!

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

Читать далее

Недооценённые фичи SQL: PIVOT/UNPIVOT, CROSS APPLY/LATERAL и частичные индексы

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.1K

В большинстве материалов по SQL обсуждаются знакомые всем конструкции — SELECT, JOIN, WHERE, группировки, простые индексы. Но когда вы обрабатываете сложные данные, оптимизируете производительность или строите аналитические отчёты, ограничиваться только базовыми операторами — значит добровольно усложнять себе жизнь. В SQL есть мощные, но редко упоминаемые функции, которые помогают решить задачи элегантно и эффективно.

В этой статье, основанной на личных экспериментах и наблюдениях, мы рассмотрим три таких инструмента: PIVOT/UNPIVOT, CROSS APPLY/LATERAL и частичные (filtered) индексы.

Читать далее

Python и множества: генераторы, которые делают код чище

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров4.4K

Команда Python for Devs подготовила перевод статьи о генераторах множеств в Python. С их помощью можно создавать, преобразовывать и фильтровать множества одной строкой кода. Разбираем примеры, практические приёмы и ошибки, которых стоит избегать.

Читать далее

Кратко о вариантности с примерами на TypeScript

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2.3K

В теории типов вариантность описывает отношение между двумя обобщёнными типами (дженериками). Например, в каких обстоятельствах родительский тип может быть заменён дочерним, а в каких — нет, и так далее.

На эту тему можно найти множество ресурсов, особенно таких, где всё описано длинно и сложным, формально-архитектурным языком. Мне бы хотелось создать короткую и простую памятку (с небольшими вкраплениями формализмов), к которой можно легко вернуться, если вдруг забудутся детали.

Читать далее

Вклад авторов