Coding
245 subscribers
5.91K photos
1.48K videos
34 files
6.01K links
Статьи и ссылки с разных ресурсов, для начинающих программистов.
Download Telegram
👩‍💻 Всем программистам посвящается!

Вот 14 авторских обучающих IT каналов по самым востребованным областям программирования:

Выбирай своё направление:

👩‍💻 Python — t.me/python_ready
🤔 InfoSec & Хакинг — t.me/hacking_ready
🖥 SQL & Базы Данных — t.me/sql_ready
👩‍💻 IT Новости — t.me/it_ready
🤖 AI & ML t.me/neuro_ready
👩‍💻 Frontend — t.me/frontend_ready
👩‍💻 C/C++ — https://t.me/cpp_ready
👩‍💻 C# & Unity — t.me/csharp_ready
👩‍💻 Linux — t.me/linux_ready
👩‍💻 Java — t.me/java_ready
📖 IT Книги — t.me/books_ready
📱 JavaScript — t.me/javascript_ready
🖼️ DevOpst.me/devops_ready
🖥 Design — t.me/design_ready

📌 Гайды, шпаргалки, задачи, ресурсы и фишки для каждого языка программирования!
👩‍💻 Всем программистам посвящается!

Вот 14 авторских обучающих IT каналов по самым востребованным областям программирования:

Выбирай своё направление:

👩‍💻 Python — t.me/python_ready
🤔 InfoSec & Хакинг — t.me/hacking_ready
🖥 SQL & Базы Данных — t.me/sql_ready
👩‍💻 IT Новости — t.me/it_ready
🤖 AI & ML t.me/neuro_ready
👩‍💻 Frontend — t.me/frontend_ready
👩‍💻 C/C++ — https://t.me/cpp_ready
👩‍💻 C# & Unity — t.me/csharp_ready
👩‍💻 Linux — t.me/linux_ready
👩‍💻 Java — t.me/java_ready
📖 IT Книги — t.me/books_ready
📱 JavaScript — t.me/javascript_ready
🖼️ DevOpst.me/devops_ready
🖥 Design — t.me/design_ready

📌 Гайды, шпаргалки, задачи, ресурсы и фишки для каждого языка программирования!
This media is not supported in your browser
VIEW IN TELEGRAM
Сайтодел | GitHub, Верстка, Сайты, FullStack (Telegram)

💾 Boxy Preloaders – лоадеры, в основе которых лежат квадраты и прямоугольники. Каждый элемент при движении меняет свой цвет.

Сайтодел | #сниппет #css
Сайтодел | GitHub, Верстка, Сайты, FullStack (Telegram)

🎨 Цветовая палитра макета "Foodee Mobile App Interface":

HEX | RGB
#FECC87 | rgb(254,204,135)
#F28582 | rgb(242,133,130)
#689984 | rgb(104,153,132)

⚠️ Цвет копируется одним кликом!

Сайтодел | #палитра
This media is not supported in your browser
VIEW IN TELEGRAM
Сайтодел | GitHub, Верстка, Сайты, FullStack (Telegram)

💾 Rings Navigation Concept – меню навигации, выполненное в виде кругов, вложенных друг в друга. Хорошая альтернатива привычным меню в виде строк или столбцов.

Сайтодел | #сниппет #css
This media is not supported in your browser
VIEW IN TELEGRAM
Code Ready | Frontend (Telegram)

👩‍💻 Связываем подпись с полем формы с помощью атрибута for!

Атрибут for используется у тега <label> и указывает, к какому элементу формы относится подпись.

А ещё не каждый элемент подойдёт для связи, годятся только из категории «связываемых»:
<button>;
<input>;
<meter>;
<progress>;
<select>;
<textarea>;
И даже сам <output>.


Кроме удобства, правильная связка <label for="..."> улучшает доступность формы, поскольку вспомогательные технологии могут определить, какая подпись относится к конкретному полю.

📣 Code Ready | #атрибут
Сайтодел | GitHub, Верстка, Сайты, FullStack (Telegram)

✍️ Neue Montreal – нейтральный шрифт без засечек с четкими формами. Подходит для мелких текстов веб-страниц. Пример шрифта есть в макете Abstract 3D Coral Shapes

Сайтодел | #шрифт
Сайтодел | GitHub, Верстка, Сайты, FullStack (Telegram)

🎨 Цветовая палитра макета "Foodee Mobile App Interface":

HEX | RGB
#FECC87 | rgb(254,204,135)
#F28582 | rgb(242,133,130)
#689984 | rgb(104,153,132)

⚠️ Цвет копируется одним кликом!

Сайтодел | #палитра
✈️ Code Ready | Frontend

innerText vs textContent — как обычное чтение DOM может заставить браузер пересчитать layout!

DOM хранит структуру документа отдельно от того, как эта структура отображается пользователю. textContent работает на уровне DOM-дерева. Он проходит по текстовым узлам и собирает содержимое без анализа CSS, размеров элементов или текущего состояния отображения.
const text = element.textContent;

innerText работает иначе. Чтобы вернуть текст в том виде, в котором его видит пользователь, браузеру необходимо учитывать CSS, видимость элементов, переносы строк и актуальное состояние компоновки.
const text = element.innerText;

Именно поэтому простое чтение свойства иногда может быть дорогой операцией:
element.style.width = '400px';

const text = element.innerText;

После изменения стиля браузер помечает компоновку как устаревшую. Если следующая операция требует данных о визуальном состоянии страницы, браузеру может потребоваться немедленно выполнить перерасчёт. Это называется принудительным синхронным перерасчётом layout.

Похожий механизм работает с другими свойствами, зависящими от текущей геометрии страницы:
element.style.width = '400px';

const width = element.offsetWidth;

К этой же категории относятся offsetHeight, getBoundingClientRect() и чтение некоторых свойств прокрутки (scrollTop, scrollHeight и другие).

Проблема обычно появляется не из-за одного вызова, а из-за постоянного смешивания операций записи и чтения:
elements.forEach(element => {
element.style.width = '400px';
console.log(element.innerText);
});

В таком случае браузер может постоянно выполнять цикл: запись — устаревшая компоновка — чтение — расчёт компоновки.

Это приводит к частым лишним перерасчётам компоновки (layout thrashing). Гораздо эффективнее разделять изменение состояния и чтение данных:
elements.forEach(element => {
element.style.width = '400px';
});

const values = elements.map(
element => element.innerText
);

Важно понимать: innerText не является медленным сам по себе. Если состояние компоновки уже актуально, чтение может быть дешёвым. Проблема возникает тогда, когда браузеру приходится синхронизировать DOM с текущим визуальным состоянием страницы.

Если нужно получить данные из DOM, обычно достаточно textContent. Если нужен текст именно в том виде, в котором его воспринимает пользователь, используется innerText.

🔥 Разница между ними не только в возвращаемой строке. textContent работает с моделью документа, а innerText — с моделью отображения. В производительных интерфейсах это различие может определить, будет ли чтение обычным получением текстового содержимого или причиной перерасчёта компоновки.

📣 Code Ready | #практика
✈️ Code Ready | Frontend

40 собесов и оффер за 1 месяц

Алексей разработчик.

Искал работу с декабря - написание сопроводов и отклики занимали очень много времени.

Выхлоп - почти нулевой.

В какой-то момент понял:
так можно искать бесконечно.

И по совету друга попробовал ии-ассистента для автооткликов - Софи.

▫️За ~1 месяц прошел около 40 собеседований
▫️Получил оффер с вакансии, на которую, по его словам, не откликнулся бы сам

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


Весь процесс - от первого собеседования до оффера - занял 4 дня.

Зарегистрироваться и попробовать Софи можно здесь.

3 дня - бесплатно.
✈️ Сайтодел | GitHub, Верстка, Сайты, FullStack

🐙 Promises Unwrapping – спецификация для промисов в стандарте ES6. Содержит большое количество информации и примеры использования кода.

Сайтодел | #репозиторий #github
This media is not supported in your browser
VIEW IN TELEGRAM
✈️ Сайтодел | GitHub, Верстка, Сайты, FullStack

💾 80s Music Facts – страница с плеером и анимированными карточками. Если навести курсор на фото, оно приблизится с небольшим поворотом вправо.

Сайтодел | #сниппет #css
✈️ [PYTHON:TODAY]

😱 Робот радуется прохождению теста «Докажите, что вы не робот»

Конец близко... С добрым утром ☕️
✈️ Code Ready | Frontend

Element.toggleAttribute() — нативное переключение DOM-атрибутов!

В DOM многие состояния элементов представлены через наличие или отсутствие атрибутов: disabled, hidden, required и пользовательские атрибуты состояния компонентов. Element.toggleAttribute() предоставляет нативный механизм для управления такими состояниями без ручной проверки текущего значения.

До появления toggleAttribute() подобные операции обычно реализовывались через отдельную проверку наличия атрибута и последующее добавление либо удаление:
const button = document.querySelector('button');

if (button.hasAttribute('disabled')) {
button.removeAttribute('disabled');
} else {
button.setAttribute('disabled', '');
}

Element.toggleAttribute() объединяет эту логику в один вызов. Метод проверяет текущее состояние атрибута и выполняет противоположное действие.
button.toggleAttribute('disabled');

Если атрибут отсутствует — он будет добавлен. При повторном вызове — удалён.

Для boolean HTML-атрибутов важно учитывать, что браузер анализирует сам факт присутствия атрибута, а не его значение.
<button disabled>
Submit
</button>

а также
<button disabled="">
Submit
</button>

имеют одинаковое поведение.

Метод возвращает boolean, отражающий состояние атрибута после выполнения операции:
const isDisabled = button.toggleAttribute('disabled');

console.log(isDisabled); // true

Дополнительно toggleAttribute() поддерживает второй аргумент force, который позволяет явно задать требуемое состояние вместо переключения.
button.toggleAttribute('disabled', true); // добавить атрибут
button.toggleAttribute('disabled', false); // удалить атрибут

Этот вариант удобен при синхронизации DOM с состоянием приложения, когда итоговое значение уже вычислено:
input.toggleAttribute('required', isRequired);

toggleAttribute() работает с любыми валидными DOM-атрибутами, включая пользовательские флаги состояния компонентов:
const card = document.querySelector('.card');

card.toggleAttribute('data-selected');

После выполнения:
<div class="card" data-selected></div>

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

Например, управление видимостью через стандартный атрибут hidden:
const block = document.querySelector('.details');

block.toggleAttribute('hidden');

🔥 Element.toggleAttribute() определён в DOM Standard и предоставляет единый API для добавления и удаления атрибутов без необходимости вручную комбинировать hasAttribute(), setAttribute() и removeAttribute(). Полезный метод, который делает работу с DOM-состояниями более лаконичной и предсказуемой. Поддерживается всеми современными браузерами.

📣 Code Ready | #практика