Mr. Programmer👨‍💻👨‍💻
24 subscribers
21 photos
9 videos
1 file
20 links
🧑‍💻Ҳамаи маълумоти ҷолиб дар бораи IT, дарсҳои видеоиро дар ин ҷо тамошо кунед.

🧑‍💻Follow all interesting information and video lessons about IT here.

🧑‍💻Следите за всей интересной информацией и видеоуроками об ИТ здесь
Download Telegram
​Как общаться с руководителем

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

Первое. Не теряйте ответственности по дороге
Всю дорогу стараюсь донести до своих разработчиков мысль, что задача (таск в Джире) — это их зона ответственности вплоть до попадания кода в прод. Хотя деплоит в прод за редким исключением не разработчик.

Антипример.
— (на дэйлике) Разработчик Васенька, скоро уж страшный зим катит глаза, в смысле, окончание спринта, что у тебя вот с тобой задачкой на 6 человеко-часов?
— Ой, а я же тебе на позапрошлом дэйлике сказал, что Луна в Третьем доме, поэтому на неё забил…
— (немая сцена)

Что пошло не так? Исполнитель неявно спихнул ответственность за свою часть работы на руководителя: пусть Папа Римский помолится за всех нас! Не произошло явной передачи (это когда обе стороны понимают, кто теперь тащит задачу, и фиксируют договорённость где-то, хоть в той же Джире). У подчинённого возникла иллюзия, что если он проговорил вслух о своей проблеме, то добрая фея уже прилетела и всё решила за него.

Второе. Старайтесь не общаться с марсианами
Этот пункт развивает мысль, начатую в первом. Иногда, особенно при разборе какого-то факапа, разработчик начинает говорить о задаче отстранённо: «в коде появилось...», «в ветку влилось...», «в прод залили...». Мой руководитель иногда перебивает такое повествование вопросом: «Кто, марсиане залили?»

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

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

Четвёртое. Руководитель — ваш рычаг, ваш бустер, ваш джинн из бутылки
Частенько люди пишут, мол, я что, нанимался ещё и требования писать, и код тестировать? Я хочу, чтобы мне просто приносили ТЗ, а я просто пилил код, отстаньте от меня все!

Я уважаю такую позицию: есть много людей, которые не хотят развиваться, выходить за однажды установленные кем-то рамки. Им нужно дать возможность работать согласно договора / контракта с фирмой, и поставить нормальный рабочий процесс — прямейшая обязанность руководителя.

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

Пятое. Доверие — основа общения
И наконец, пункт, который говорит о базе, на которой строится взаимодействие. Тут не про его осуществление, а про подготовку. Люди, как и все другие социальные существа, постоянно «обнюхивают» друг-друга, то есть стараются построить более-менее точную картину насчёт того человека, с кем они имеют дело.

👉 @seniorFront
👍3
​Какие бывают utility types в TypeScript ?

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

Partial
Делает все свойства типа T необязательными.
interface User {
id: number;
name: string;
email: string;
}

const updateUser = (id: number, userUpdates: Partial<User>) => {
// Обновление пользователя
};

updateUser(1, { name: 'Alice' }); // Можно передать только часть свойств


Required
Делает все свойства типа T обязательными.
interface User {
id?: number;
name?: string;
email?: string;
}

const user: Required<User> = {
id: 1,
name: 'Alice',
email: 'alice@example.com'
}; // Все свойства должны быть указаны


Readonly

Делает все свойства типа T только для чтения.
interface User {
id: number;
name: string;
email: string;
}

const user: Readonly<User> = {
id: 1,
name: 'Alice',
email: 'alice@example.com'
};

user.id = 2; // Ошибка: свойство id доступно только для чтения


Pick

Создает тип с набором свойств K из типа T.
interface User {
id: number;
name: string;
email: string;
}

const user: Pick<User, 'id' | 'name'> = {
id: 1,
name: 'Alice'
}; // Только свойства id и name


Omit

Создает тип, исключающий свойства K из типа T.
interface User {
id: number;
name: string;
email: string;
}

const user: Omit<User, 'email'> = {
id: 1,
name: 'Alice'
}; // Все свойства, кроме email


Record
Создает тип объекта, ключи которого из K, а значения типа T.
type Roles = 'admin' | 'user' | 'guest';

const roles: Record<Roles, string> = {
admin: 'Admin User',
user: 'Regular User',
guest: 'Guest User'
};


Exclude

Создает тип, исключая из T те типы, которые находятся в U.
type T = 'a' | 'b' | 'c';
type U = 'a';

type Result = Exclude<T, U>; // 'b' | 'c'


Extract

Создает тип, включающий только те типы из T, которые также находятся в U.
type T = 'a' | 'b' | 'c';
type U = 'a' | 'c';

type Result = Extract<T, U>; // 'a' | 'c'


NonNullable
Исключает null и undefined из типа T.
type T = string | number | null | undefined;

type NonNullableT = NonNullable<T>; // string | number


ReturnType

Получает тип возвращаемого значения функции T.
function getUser() {
return { id: 1, name: 'Alice' };
}

type User = ReturnType<typeof getUser>; // { id: number, name: string }


👉 @seniorFront
👍3
React — это популярная JavaScript-библиотека, используемая для создания пользовательских интерфейсов. Она основана на компонентах и позволяет строить динамичные и эффективные веб-приложения. React также использует концепцию виртуального DOM (Document Object Model), который значительно ускоряет обновление интерфейса.
Основные концепции React:
1.Компоненты: В React все представление UI состоит из компонентов. Каждый компонент управляет своим собственным фрагментом интерфейса. Компоненты могут включать в себя HTML, CSS и JavaScript.
2.Виртуальный DOM: Виртуальный DOM — это упрощенная версия реального DOM. React сначала вносит изменения в виртуальный DOM, а затем применяет эти изменения к реальному DOM. Это позволяет значительно ускорить процесс обновления страницы.
3.Однонаправленный поток данных: В React данные передаются сверху вниз, от родительского компонента к дочерним. Это упрощает управление состоянием и делает приложение более предсказуемым.


function Counter() {
const [count, setCount] = useState(0);

const increment = () => setCount(count + 1);
const decrement = () => setCount(count - 1);

return (
<div>
<h1>Счётчик: {count}</h1>
<button onClick={increment}>Увеличить</button>
<button onClick={decrement}>Уменьшить</button>
</div>
);
}

export default Counter;

Объяснение:
1.useState: Это хук, который используется для управления состоянием в функциональных компонентах. В примере переменная count хранит значение счётчика, а функция setCount используется для его обновления.
2.onClick: При нажатии на кнопки вызываются функции increment или decrement, которые увеличивают или уменьшают значение счётчика.

Преимущества React:
1.Быстрое и эффективное обновление: Благодаря виртуальному DOM, React обновляет только те части интерфейса, которые изменились, что повышает производительность.
2.Переиспользуемые компоненты: Компоненты в React можно использовать многократно в разных частях приложения.
3.React Hooks: Хуки React позволяют использовать состояние и другие возможности в функциональных компонентах, что делает код более компактным и удобным.


Таким образом, React — это мощный инструмент для создания современных веб-приложений с высокой производительностью и удобным управлением состоянием.
👍2❤1
Assalomu aleykum.Barodaron shumoro bo Idi fitr tabrik mekunam.Allohi mehrubon ruzahoi giriftai shumoro qabul kunad.To Ramazoni digar hamai movu shumoro sihatu salomat rasonad Omin🤲🤲🤲
❤3👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Дар Telegram акнун метавонед вазифа (таск) гузоред — дар дохили чатҳо!

• Метавонед дар чатҳои шахсӣ ва гурӯҳӣ истифода баред — барои худатон ё барои аъзои гурӯҳ вазифа таъин кунед
• Ҳар як вазифа иҷрокунандаи алоҳида дорад, бо расми профилаш намоиш дода мешавад
• Метавонед режимро интихоб кунед: ё як нафар иҷро мекунад ё ҳамаи иштирокчиён — танзими чандир барои ҳама гуна ҳолатҳо
❤2
🚀 Elevating UX with React Native Reanimated + Gesture Handler


I’m excited to share a smooth, gesture-driven UX feature I recently built using react-native-reanimated paired with react-native-gesture-handler.
🔍 What I achieved:
🌀 Created interactive swipe, drag, and spinner effects using Reanimated’s native-thread animations.
🎯 Integrated gesture detection with Gesture Handler to deliver fluid, responsive motion—even during complex interactions.
🧩 Designed modular UI components that feel native and intuitive.
Why it matters:
Reanimated moves animations off the JS thread, avoiding frame drops and delivered buttery smoothness
Gesture Handler handles low-latency swipe, pinch, and tap gestures, solving gesture conflicts in nested views .
Together, they empower developers to craft polished interfaces, from Tinder-style cards to draggable sheets

🤝 How this benefits teams & apps:
📈 Better performance on lower-end devices
👌 Safer and more maintainable gesture code
🧰 Easily extendable—mix in Reanimated for animation, Gesture Handler for interaction, even Skia for visuals
If you're working with react-native-reanimated and react-native-gesture-handler, feel free to message me — I'm happy to help.
👍3
✍️ Друзья! Открываем запись на новый поток курсов по Фронтенд-разработке! 🧑🏻‍💻

💻 Если ты мечтаешь создавать современные и стильные сайты — начни путь в IT уже в августе! Тебя ждут понятные уроки, поддержка наставников и дружелюбная атмосфера.

📌 Что важно знать:
• Старт: август 2025
• Продолжительность: ~5 месяцев;
• Занятия: 3 раза в неделю
• Начало занятий: 18:00
• Длительность: 2 часа
• Место проведения занятий: Душанбе, Регус — Бустон Сити (ориентир: магазин «Гуля Голд», лицей №4)
• Стоимость 1-го месяца: 200 сомони

✅ По завершении первого месяца — экзамен. Успешно сдавшие смогут продолжить обучение на следующих этапах.

📲 Перейди по ссылке заполни заявку на обучение прямо сейчас.

🤖 Заявку также можно отправить через нашего бота @MyHamdam_bot

🚀 Не упусти шанс освоить востребованную профессию в сфере веб-технологий!

📱 975-68-86-86

Телеграм | Фейсбук | Инстаграм
❤1
Асоси фарқиятҳои байни localStorage, sessionStorage ва cookies чист?

✅ Ҷавоб ҳар 10 дақиқа гузошта мешавад!
👍1
Javob:
localStorage → доимӣ нигоҳ дошта мешавад, ҳатто вақте браузер баста шавад ҳам нест намешавад.

sessionStorage → танҳо то поёни сессия нигоҳ дошта мешавад.

cookies → ба сервер низ фиристода мешавад, ҳаҷми он хурдтар аст!
❤2
JSON не поддерживает комментарии 😡

Не проблема! В package.json можно использовать специальные поля для комментариев 🪿
👍1
⚡️Volta

Все мы знаем про инструмент управления версиями Node.js под названием NVM (Node Version Manager), но есть ещё один - Volta.

📌Какие же отличия?

Volta не требует инициализации функций оболочки при каждом открытии терминала и выбирает версию на лету. Volta закрепляет и Node, и npm/yarn на проект через package.json, а nvm фокусируется на Node и обычно опирается на .nvmrc с ручным переключением.

📕 Документация тут
❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Ихел нарх бо ай кчо ёфта метонен😂😂
🚀 Next.js ҳамчун Backend — имкониятҳои пурқувват барои developer-ҳо!

Бисёриҳо Next.js-ро танҳо барои frontend мешиносанд, вале дар ҳақиқат он метавонад backend-и пурра бошад! 😎

Бо истифода аз API Routes, шумо метавонед:

API endpoint-ҳои худатон созед

Бо базаи маълумот (PostgreSQL, MongoDB, Prisma ва ғайра) кор кунед

Authentication (JWT, OAuth, NextAuth) илова кунед

Ҳамааш дар як codebase — backend ва frontend якҷо 🔥


// app/api/users/route.ts
import { NextResponse } from 'next/server';

export async function GET() {
const users = [{ id: 1, name: 'Abdulloh' }];
return NextResponse.json(users);
}


📦 Next.js 14 ва “App Router” ба шумо имкон медиҳад, ки SSR, ISR ва API-ро ҳамзамон истифода баред.
Ин маънои онро дорад, ки шумо метавонед як платформаи пурра (full-stack) созед — бе Express ё NestJS!
👍3❤2
🔥 Хатогиҳои маъмул миёни Junior-ҳо
Дар таҷриба бисёр Junior-ҳоро дидаам, ки аз рӯи сабаби камтаҷрибагӣ чанд хатогиҳои маъмул мекунанд. Ин хатоҳо табиӣ ҳастанд, вале агар одам барвақт фаҳмад — хеле тез тараққӣ мекунад.

Маъмултарин хатогиҳо инҳоянд:

Library-ҳои навро бе зарурат истифода мебаранд.
Хоҳад React бошад, Nest ё Node — аввал кушиш кунед чизро бо код ҳал кунед. Library танҳо вақте лозим мешавад, ки воқеан вақтро сарфа кунад.

Кодро аз ҳад мураккаб менависанд.
Яъне як чизро бо 10 қатор ҳал мекунанд, ки аслан бо 2 қатор мешавад. OOP, pattern ё abstraction-ро дар ҷое истифода мебаранд, ки лозим нест.

Пеш аз Google пурсидан, мустақилона таҳқиқ намекунанд.
"Error шуд — ChatGPT пурсидам."
Вале Junior бояд аввал error-ро хонад, фаҳмад, баъд ҳал кунан ва омӯзад. Google – дӯсти аввал аст.

Codebase-ро намехонанд.
Лоиҳа ба дасташ мерасад ― лекин аввал README ё структураи лоиҳаро намебинад. Дар натиҷа 2 рӯз вақти беҳуда сар мешавад.

Аз савол додан метарсанд.
Фикр мекунанд, ки савол "аҳмақона" мебарояд. Аммо савол надодан — хатои калонтар аст. Ҳеҷ касро савол додан шарманда намекунад.

Version control-ро дуруст истифода намебаранд.
Branch-ҳои нодуруст, commit message-ҳои нофаҳмо, push-и файлҳои нолозим.

Copy-paste аз StackOverflow бе фаҳмидан.
Ин чиз баъдтар лоиҳаро вайрон мекунад. Код бояд фаҳмида шавад — на танҳо кор кунад.

❓ Шумо дар таҷриба кадом хатоҳоро бештар дидаед?

Шояд чизе ҳаст, ки ман фаромӯш кардам? Нависед, ҷолиб аст.
❤3👍1