✅ ۱. پروفایل خود را تکمیل کنید (تصویر مناسب، بیوگرافی قوی، مهارتها و تجربهها)
✅ ۲. فعالیت خود را شروع کنید (لایک، کامنت، تعامل)
✅ ۳. محتوای ارزشمند منتشر کنید (داستانها، تجربیات، تحلیلها، نکات آموزشی)
✅ ۴. درخواست ارتباط هدفمند ارسال کنید و شبکه ارتباطی خود را گسترش دهید
✅ ۵. بهصورت مستمر فعالیت کنید و از الگوریتم لینکدین بهره ببرید
با رعایت این نکات، نه تنها دیده میشوید، بلکه میتوانید یک برند شخصی قوی بسازید و فرصتهای شغلی و حرفهای فوقالعادهای برای خود ایجاد کنید.
✅ ۲. فعالیت خود را شروع کنید (لایک، کامنت، تعامل)
✅ ۳. محتوای ارزشمند منتشر کنید (داستانها، تجربیات، تحلیلها، نکات آموزشی)
✅ ۴. درخواست ارتباط هدفمند ارسال کنید و شبکه ارتباطی خود را گسترش دهید
✅ ۵. بهصورت مستمر فعالیت کنید و از الگوریتم لینکدین بهره ببرید
با رعایت این نکات، نه تنها دیده میشوید، بلکه میتوانید یک برند شخصی قوی بسازید و فرصتهای شغلی و حرفهای فوقالعادهای برای خود ایجاد کنید.
❤7🔥1
⭕️ تفاوت و اهمیت Soft Skills و Hard Skills
✍🏼 مهارت های نرم یا Soft Skills
مهارت های نرم به قابلیت ها و ویژگی های فردی اشاره داره که به نحوه تعامل و ارتباط شما با افراد دیگه تاثیر میذاره. این مهارت ها معمولا غیر فنی هستن و به طور غریزی در اکثر افراد وجود دارن و منبع مشخصی برای یادگیری اونها وجود نداره اما به مرور میشه تقویتشون کرد.
توانایی هایی مثل:
ارتباطات و فن بیان - همکاری و کار تیمی - حل مسئله - مدیریت زمان - رهبری - انطباق پذیری - انعطاف پذیری - انتقاد پذیری - مذاکره - خلاقیت - اعتماد به نفس - هوش هیجانی - مدیریت استرس و ...
💻 مهارت های سخت یا Hard Skills
مهارت های سخت به توانایی ها و دانش فنی اشاره داره که قابل اندازه گیری و آموزش هستن. این مهارت ها معمولا از طریق دوره های آموزشی مختلف، تجربه، مطالعه و در یک بازه زمانی مشخص به دست میان.
مهارت هایی مثل:
تمامی حوزه های برنامه نویسی - تحلیل داده - مدیریت پروژه - طراحی گرافیک - مهارت های فنی - زبان های خارجی - تحلیل مالی - رانندگی - نواختن ساز و ...
⁉️ مهارت های نرم و مهارت های سخت مکمل همدیگه هستن و برای موفقیت در هر زمینه ای ضروری هستن. مهارت های سخت به شما اجازه میدن تا وظایف فنی و تخصصی خودتون رو به خوبی انجام بدین درحالی که مهارت های نرم به شما کمک میکنن تا در محیط کار به خوبی با بقیه ارتباط برقرار کنید و همکاری کنید، نسبت به شرایط مختلف انعطاف پذیر باشین، توانایی جذب کارفرما و مذاکره در پروژه های مختلف رو داشته باشین و ... .
مطالعه و تحقیق، شرکت در بحث های مختلف، ارتباط با دیگران، حضور در اجتماع، شرکت در دوره ها و کارگاه ها، سمینار ها و ... به تقویت مهارت های نرم کمک زیادی میکنن.
Group: @azad_program
Channel: @kiau_program
✍🏼 مهارت های نرم یا Soft Skills
مهارت های نرم به قابلیت ها و ویژگی های فردی اشاره داره که به نحوه تعامل و ارتباط شما با افراد دیگه تاثیر میذاره. این مهارت ها معمولا غیر فنی هستن و به طور غریزی در اکثر افراد وجود دارن و منبع مشخصی برای یادگیری اونها وجود نداره اما به مرور میشه تقویتشون کرد.
توانایی هایی مثل:
ارتباطات و فن بیان - همکاری و کار تیمی - حل مسئله - مدیریت زمان - رهبری - انطباق پذیری - انعطاف پذیری - انتقاد پذیری - مذاکره - خلاقیت - اعتماد به نفس - هوش هیجانی - مدیریت استرس و ...
💻 مهارت های سخت یا Hard Skills
مهارت های سخت به توانایی ها و دانش فنی اشاره داره که قابل اندازه گیری و آموزش هستن. این مهارت ها معمولا از طریق دوره های آموزشی مختلف، تجربه، مطالعه و در یک بازه زمانی مشخص به دست میان.
مهارت هایی مثل:
تمامی حوزه های برنامه نویسی - تحلیل داده - مدیریت پروژه - طراحی گرافیک - مهارت های فنی - زبان های خارجی - تحلیل مالی - رانندگی - نواختن ساز و ...
⁉️ مهارت های نرم و مهارت های سخت مکمل همدیگه هستن و برای موفقیت در هر زمینه ای ضروری هستن. مهارت های سخت به شما اجازه میدن تا وظایف فنی و تخصصی خودتون رو به خوبی انجام بدین درحالی که مهارت های نرم به شما کمک میکنن تا در محیط کار به خوبی با بقیه ارتباط برقرار کنید و همکاری کنید، نسبت به شرایط مختلف انعطاف پذیر باشین، توانایی جذب کارفرما و مذاکره در پروژه های مختلف رو داشته باشین و ... .
مطالعه و تحقیق، شرکت در بحث های مختلف، ارتباط با دیگران، حضور در اجتماع، شرکت در دوره ها و کارگاه ها، سمینار ها و ... به تقویت مهارت های نرم کمک زیادی میکنن.
Group: @azad_program
Channel: @kiau_program
❤5🔥2🤣1
👩💻آدا لاولیس (Ada Lovelace) : داستان اولین برنامه نویس جهان، قبل از کامپیوتر
شاید تا الان فکر میکردین که اولین برنامه نویس جهان یک نابغه ریاضیات یا یک پروفسور خیلی کارکشته بوده که با یه جرقه ایده برنامه نویسی به ذهنش اومده🤔
❗️ اما امروز یک داستان جالب براتون داریم.
تصور کنین حدود 200 سال پیش، وقتی نه خبری از کامپیوتر ها بود نه موبایل و تکنولوژی امروزی، یک خانم جوان انگلیسی چیزی رو پیشبینی کرد که دنیای امروز ما رو ساخت!
آدا لاولیس (1852-1815) دختر لرد بایرون شاعر مشهور انگلیسی با وجود زندگی کوتاه 36 ساله اش انقلابی در دنیای محاسبات و تکنولوژی ایجاد کرد.
✨ داستان از جایی شروع میشه که آدا در جوانی با چارلز بَبیج، ریاضیدان برجسته آشنا شد، بَبیج طرح ماشینی به نام “موتور تحلیلی” داشت که میتونست محاسبات پیچیده انجام بده - چیزی شبیه به کامپیوترهای امروزی!
لاولیس به درک عمیقی از پتانسیل ماشین تحلیلی دست پیدا کرد، او متوجه این موضوع شد که این ماشین صرفا یک ابزار محاسباتی نیست، بلکه با استفاده از دستورالعمل های دقیق، کارهای پیچیده تری انجام داد، آدا با نوشتن الگوریتم هایی که ماشین تحلیلی رو قادر به اجرای محاسبات خاص می کرد، درواقع اولین برنامه های کامپیوتری تاریخ رو خلق کرد.
اون پیشبینی کرده بود که این ماشین ها می تونن در آینده کارهای بیشتر از یک محاسبات ساده مثل ساخت موسیقی، تصویر و ... کنن.
💡 نکته جالب اینه که مادر آدا برای اینکه دخترش مثل پدرش شاعر نشه، مجبورش کرد علم ریاضیات رو مطالعه کنه ولی همین ترکیب ریاضیات و خلاقیت، آدا رو به یک نابغه تبدیل کرد.
همچنین به احترام نام اون در سال 1983 زبان برنامه نویسی با نام Ada معرفی شد.
Group: @azad_program
Channel: @kiau_program
شاید تا الان فکر میکردین که اولین برنامه نویس جهان یک نابغه ریاضیات یا یک پروفسور خیلی کارکشته بوده که با یه جرقه ایده برنامه نویسی به ذهنش اومده🤔
❗️ اما امروز یک داستان جالب براتون داریم.
تصور کنین حدود 200 سال پیش، وقتی نه خبری از کامپیوتر ها بود نه موبایل و تکنولوژی امروزی، یک خانم جوان انگلیسی چیزی رو پیشبینی کرد که دنیای امروز ما رو ساخت!
آدا لاولیس (1852-1815) دختر لرد بایرون شاعر مشهور انگلیسی با وجود زندگی کوتاه 36 ساله اش انقلابی در دنیای محاسبات و تکنولوژی ایجاد کرد.
✨ داستان از جایی شروع میشه که آدا در جوانی با چارلز بَبیج، ریاضیدان برجسته آشنا شد، بَبیج طرح ماشینی به نام “موتور تحلیلی” داشت که میتونست محاسبات پیچیده انجام بده - چیزی شبیه به کامپیوترهای امروزی!
لاولیس به درک عمیقی از پتانسیل ماشین تحلیلی دست پیدا کرد، او متوجه این موضوع شد که این ماشین صرفا یک ابزار محاسباتی نیست، بلکه با استفاده از دستورالعمل های دقیق، کارهای پیچیده تری انجام داد، آدا با نوشتن الگوریتم هایی که ماشین تحلیلی رو قادر به اجرای محاسبات خاص می کرد، درواقع اولین برنامه های کامپیوتری تاریخ رو خلق کرد.
اون پیشبینی کرده بود که این ماشین ها می تونن در آینده کارهای بیشتر از یک محاسبات ساده مثل ساخت موسیقی، تصویر و ... کنن.
💡 نکته جالب اینه که مادر آدا برای اینکه دخترش مثل پدرش شاعر نشه، مجبورش کرد علم ریاضیات رو مطالعه کنه ولی همین ترکیب ریاضیات و خلاقیت، آدا رو به یک نابغه تبدیل کرد.
همچنین به احترام نام اون در سال 1983 زبان برنامه نویسی با نام Ada معرفی شد.
Group: @azad_program
Channel: @kiau_program
❤🔥6❤3
🦭 آشنایی با عملگر والروس := در پایتون
عملگر والروس از پایتون 3.8 اضافه شد و به شما این امکان را میدهد که همزمان مقدار یک متغیر را تعیین کرده و از آن استفاده کنید. این ویژگی باعث کوتاهتر شدن کدها میشود.
🔹 قبل از والروس:
🔹 بعد از والروس:
✅ کد کوتاهتر و خواناتر شده و مقدار n تنها یک بار مقداردهی شده است.
💡 کجا ازش استفاده کنیم؟
🔹 در حلقهها و شرطهایی که نیاز به مقداردهی و بررسی مقدار داریم.
📌 خوانایی کد مهمتر از کوتاه بودن آن است، پس فقط جایی که مفید باشد از آن استفاده کنید!
#Python #برنامهنویسی #کدنویسی
Group: @azad_program
Channel: @kiau_program
عملگر والروس از پایتون 3.8 اضافه شد و به شما این امکان را میدهد که همزمان مقدار یک متغیر را تعیین کرده و از آن استفاده کنید. این ویژگی باعث کوتاهتر شدن کدها میشود.
🔹 قبل از والروس:
n = int(input("Enter a number: "))
while n > 0:
print(n)
n = int(input("Enter a number: "))🔹 بعد از والروس:
while (n := int(input("Enter a number: "))) > 0:
print(n)✅ کد کوتاهتر و خواناتر شده و مقدار n تنها یک بار مقداردهی شده است.
💡 کجا ازش استفاده کنیم؟
🔹 در حلقهها و شرطهایی که نیاز به مقداردهی و بررسی مقدار داریم.
📌 خوانایی کد مهمتر از کوتاه بودن آن است، پس فقط جایی که مفید باشد از آن استفاده کنید!
#Python #برنامهنویسی #کدنویسی
Group: @azad_program
Channel: @kiau_program
❤6🔥1
اصول SOLID
(1/2) پست دوم با مثال گذاشته میشه
یکی از چالشهایی که هر برنامهنویس با ان مواجه میشه کدهای پیچیده، غیرقابل توسعه و پر از باگ هستش برای اینکه کدهامون تمیز، توسعهپذیر و تستپذیر باشند باید از یک سری اصول مهندسی نرمافزار استفاده کنیم اصول SOLID برای همین طراحی شدند
تاریخچه SOLID
در اواخر دهه ۱۹۸۰ و اوایل ۱۹۹۰، رابرت سی. مارتین (Robert C. Martin) که به "عمو باب" (Uncle Bob) معروف است روی روشهای بهتر طراحی شیگرا کار میکرد در مقالهای که سال ۲۰۰۰ منتشر کرد، پنج اصل مهم را معرفی کرد که به برنامهنویسا کمک میکرد کدهای بهتری بنویسن
چند سال بعد مایکل فدرز (Michael Feathers) این پنج اصل را با نام SOLID معرفی کرد که مخفف پنج اصل زیر است:
- Single Responsibility Principle
- Open/Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
این اصول باعث میشه کدهای ما:
خواناتر و درکپذیرتر باشن، کمتر دچار تغییرات غیرمنتظره شوند، تستپذیرتر باشن و به راحتی توسعه داده شوند
___________________________
نظر شخصی: همیشه رعایت SOLID خوب نیست و گاهی ممکنه به ضرر خودمون و پروژه تموم شه به چند دلیل :
1) پیچیدگی اضافی توی پروژه هایی که نیازی به پیچیدگی کد ندارند و خیلی ساده با یک کلاس میتونند کار کنند
2) وقتی تازه میخوایم یه پروداکت رو بالا بیاریم و سرعت توسعه مهم تر از کد خیلی اصولی هست
3) از این گزینه به بعد از سواد بنده خارج هست و اگر مشتاق بودید میتونید درموردش سرچ کنید و بیشتر بخونید
___________________________
S - Single Responsibility Principle (SRP)
هر کلاس فقط باید یک وظیفه مشخص داشته باشه یعنی یک کلاس نباید چندین کار مختلف انجام بده
O - Open/Closed Principle (OCP)
کلاسها باید برای توسعه باز، ولی برای تغییر بسته باشند یعنی وقتی نیاز به ویژگی جدید داریم نباید کد قبلی را تغییر دهیم بلکه باید قابلیت اضافه کردن به آن وجود داشته باشه
L - Liskov Substitution Principle (LSP)
هر کلاس فرزند باید بدون مشکل جایگزین کلاس والد بشه
I - Interface Segregation Principle (ISP)
به جای یک اینترفیس بزرگ چند اینترفیس کوچکتر داشته باشه
D - Dependency Inversion Principle (DIP)
کلاسها نباید به جزئیات وابسته باشند بلکه باید به اینترفیسها وابسته باشند.
Group: @azad_program
Channel: @kiau_program
(1/2) پست دوم با مثال گذاشته میشه
یکی از چالشهایی که هر برنامهنویس با ان مواجه میشه کدهای پیچیده، غیرقابل توسعه و پر از باگ هستش برای اینکه کدهامون تمیز، توسعهپذیر و تستپذیر باشند باید از یک سری اصول مهندسی نرمافزار استفاده کنیم اصول SOLID برای همین طراحی شدند
تاریخچه SOLID
در اواخر دهه ۱۹۸۰ و اوایل ۱۹۹۰، رابرت سی. مارتین (Robert C. Martin) که به "عمو باب" (Uncle Bob) معروف است روی روشهای بهتر طراحی شیگرا کار میکرد در مقالهای که سال ۲۰۰۰ منتشر کرد، پنج اصل مهم را معرفی کرد که به برنامهنویسا کمک میکرد کدهای بهتری بنویسن
چند سال بعد مایکل فدرز (Michael Feathers) این پنج اصل را با نام SOLID معرفی کرد که مخفف پنج اصل زیر است:
- Single Responsibility Principle
- Open/Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
این اصول باعث میشه کدهای ما:
خواناتر و درکپذیرتر باشن، کمتر دچار تغییرات غیرمنتظره شوند، تستپذیرتر باشن و به راحتی توسعه داده شوند
___________________________
نظر شخصی: همیشه رعایت SOLID خوب نیست و گاهی ممکنه به ضرر خودمون و پروژه تموم شه به چند دلیل :
1) پیچیدگی اضافی توی پروژه هایی که نیازی به پیچیدگی کد ندارند و خیلی ساده با یک کلاس میتونند کار کنند
2) وقتی تازه میخوایم یه پروداکت رو بالا بیاریم و سرعت توسعه مهم تر از کد خیلی اصولی هست
3) از این گزینه به بعد از سواد بنده خارج هست و اگر مشتاق بودید میتونید درموردش سرچ کنید و بیشتر بخونید
___________________________
S - Single Responsibility Principle (SRP)
هر کلاس فقط باید یک وظیفه مشخص داشته باشه یعنی یک کلاس نباید چندین کار مختلف انجام بده
O - Open/Closed Principle (OCP)
کلاسها باید برای توسعه باز، ولی برای تغییر بسته باشند یعنی وقتی نیاز به ویژگی جدید داریم نباید کد قبلی را تغییر دهیم بلکه باید قابلیت اضافه کردن به آن وجود داشته باشه
L - Liskov Substitution Principle (LSP)
هر کلاس فرزند باید بدون مشکل جایگزین کلاس والد بشه
I - Interface Segregation Principle (ISP)
به جای یک اینترفیس بزرگ چند اینترفیس کوچکتر داشته باشه
D - Dependency Inversion Principle (DIP)
کلاسها نباید به جزئیات وابسته باشند بلکه باید به اینترفیسها وابسته باشند.
Group: @azad_program
Channel: @kiau_program
❤12👍2
Azad's Programmers
اصول SOLID (1/2) پست دوم با مثال گذاشته میشه یکی از چالشهایی که هر برنامهنویس با ان مواجه میشه کدهای پیچیده، غیرقابل توسعه و پر از باگ هستش برای اینکه کدهامون تمیز، توسعهپذیر و تستپذیر باشند باید از یک سری اصول مهندسی نرمافزار استفاده کنیم اصول SOLID…
اصول SOLID
(2/2)
SRP
هر کلاس فقط باید یک وظیفه مشخص داشته باشه یعنی یک کلاس نباید چندین کار مختلف انجام بده ، کلاس وظیفه تولید گزارش داره و چاپ در کلاس جداگانه انجام میشود
OCP
کلاسها باید برای توسعه باز، ولی برای تغییر بسته باشند یعنی وقتی نیاز به ویژگی جدید داریم نباید کد قبلی را تغییر دهیم بلکه باید قابلیت اضافه کردن به آن وجود داشته باشه، کلاسها به جای تغییر قابلیت توسعه دارند و نیازی نیست کد اصلی رو تغییر بدیم
ISP
به جای یک اینترفیس بزرگ چند اینترفیس کوچکتر داشته باشه، هر قابلیت در اینترفیس جداگانه تعریف شده
DIP
کلاسها نباید به جزئیات وابسته باشند بلکه باید به اینترفیسها وابسته باشند ، وابستگی از طریق اینترفیس تعریف شده
Group: @azad_program
Channel: @kiau_program
(2/2)
SRP
هر کلاس فقط باید یک وظیفه مشخص داشته باشه یعنی یک کلاس نباید چندین کار مختلف انجام بده ، کلاس وظیفه تولید گزارش داره و چاپ در کلاس جداگانه انجام میشود
class Report:
def __init__(self, data):
self.data = data
def generate_report(self):
return f"Report Data: {self.data}"
class ReportPrinter:
@staticmethod
def print(report: Report):
print(report.generate_report())
OCP
کلاسها باید برای توسعه باز، ولی برای تغییر بسته باشند یعنی وقتی نیاز به ویژگی جدید داریم نباید کد قبلی را تغییر دهیم بلکه باید قابلیت اضافه کردن به آن وجود داشته باشه، کلاسها به جای تغییر قابلیت توسعه دارند و نیازی نیست کد اصلی رو تغییر بدیم
from abc import ABC, abstractmethod
class DiscountStrategy(ABC):
@abstractmethod
def apply(self, price):
pass
class PercentageDiscount(DiscountStrategy):
def apply(self, price):
return price * 0.9
class FixedDiscount(DiscountStrategy):
def apply(self, price):
return price - 10
class DiscountCalculator:
def __init__(self, strategy: DiscountStrategy):
self.strategy = strategy
def calculate(self, price):
return self.strategy.apply(price)
discount = DiscountCalculator(PercentageDiscount())
print(discount.calculate(100))
LSP
هر کلاس فرزند باید بدون مشکل جایگزین کلاس والد بشخ نیاز به اصلاح طراحی داریم
class Shape:
def area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Square(Shape):
def __init__(self, side):
self.side = side
def area(self):
return self.side * self.side
ISP
به جای یک اینترفیس بزرگ چند اینترفیس کوچکتر داشته باشه، هر قابلیت در اینترفیس جداگانه تعریف شده
from abc import ABC, abstractmethod
class Printer(ABC):
@abstractmethod
def print(self, document):
pass
class Scanner(ABC):
@abstractmethod
def scan(self, document):
pass
class FaxMachine(ABC):
@abstractmethod
def fax(self, document):
pass
class SimplePrinter(Printer):
def print(self, document):
print(f"Printing: {document}")
class AllInOnePrinter(Printer, Scanner, FaxMachine):
def print(self, document):
print(f"Printing: {document}")
def scan(self, document):
print(f"Scanning: {document}")
def fax(self, document):
print(f"Faxing: {document}")
DIP
کلاسها نباید به جزئیات وابسته باشند بلکه باید به اینترفیسها وابسته باشند ، وابستگی از طریق اینترفیس تعریف شده
from abc import ABC, abstractmethod
class Database(ABC):
@abstractmethod
def connect(self):
pass
class MySQLDatabase(Database):
def connect(self):
return "Connected to MySQL"
class PostgreSQLDatabase(Database):
def connect(self):
return "Connected to PostgreSQL"
class UserService:
def __init__(self, db: Database):
self.db = db
def get_user(self):
return self.db.connect()
db = PostgreSQLDatabase()
user_service = UserService(db)
print(user_service.get_user())
Group: @azad_program
Channel: @kiau_program
👍6❤2
💠 لیستی از عبارت ها و مخفف های رایجی که ممکنه راجبشون شنیده باشین
WWW: World Wide Web
URL: Uniform Resource Locator
HTML: HyperText Markup Language
CSS: Cascading Style Sheets
SASS: Syntactically Awesome Style Sheets
AJAX: Asynchronous JavaScript And Xml
NPM: Node Package Manager
DOM: Document Object Model
SPA: Single Page Application
CSR: Client Side Rendering
SSR: Server Side Rendering
UI: User Interface
UX: User Experience
JSON: JavaScript Object Notation
XML: Extensible Markup Language
CSV: Comma Separated Values
YAML: YAML Ain’t Markup Language
SEO: Search Engine Optimization
IDE: Integrated Development Environment
VCS: Version Control System
CMS: Content Management System
PWA: Progressive Web Application
MVC: Model View Controller
MVVM: Model View ViewModel
API: Application Programming Interface
REST: Representational State Transfer
DDD: Domain-Driven Design
CRUD: Create, Read, Update, Delete
CLI: Command Line Interface
CDN: Content Delivery Network
SDK: Software Development Kit
OOP: Object Oriented Programming
HTTP: HyperText Transfer Protocol
HTTPS: HyperText Transfer Protocol Secure
VPN: Virtual Private Network
OWASP: Open Web Application Security
DNS: Domain Name System
DHCP: Dynamic Host Configuration Protocol
IP: Internet Protocol
LAN: Local Area Network
SOAP: Simple Object Access Protocol
DDoS: Distributed Denial of Service
SSH: Secure Shell
SSL: Secure Sockets Layer
XSS: Cross-Site Scripting
IPS: Intrusion Prevention System
OS: Operating System
VM: Virtual Machine
DB: DataBase
DBA: DataBase Administrator
SQL: Structured Query Language
CI/CD: Continuous Integration/Continuous Delivery
DevOps: Development and Operations
TDD: Test-Driven Development
AI: Artificial Intelligence
ML: Machine Learning
DL: Deep Learning
NLP: Natural Language Processing
LLM: Large Language Model
MLOps: Machine Learning Operations
CPU: Central Processing Unit
GPU: Graphics Processing Unit
HDD: Hard Disk Drive
SSD: Solid-State Drive
RAM: Random Access Memory
ROM: Read-Only Memory
——————————————————
Group: @azad_program
Channel: @kiau_program
WWW: World Wide Web
URL: Uniform Resource Locator
HTML: HyperText Markup Language
CSS: Cascading Style Sheets
SASS: Syntactically Awesome Style Sheets
AJAX: Asynchronous JavaScript And Xml
NPM: Node Package Manager
DOM: Document Object Model
SPA: Single Page Application
CSR: Client Side Rendering
SSR: Server Side Rendering
UI: User Interface
UX: User Experience
JSON: JavaScript Object Notation
XML: Extensible Markup Language
CSV: Comma Separated Values
YAML: YAML Ain’t Markup Language
SEO: Search Engine Optimization
IDE: Integrated Development Environment
VCS: Version Control System
CMS: Content Management System
PWA: Progressive Web Application
MVC: Model View Controller
MVVM: Model View ViewModel
API: Application Programming Interface
REST: Representational State Transfer
DDD: Domain-Driven Design
CRUD: Create, Read, Update, Delete
CLI: Command Line Interface
CDN: Content Delivery Network
SDK: Software Development Kit
OOP: Object Oriented Programming
HTTP: HyperText Transfer Protocol
HTTPS: HyperText Transfer Protocol Secure
VPN: Virtual Private Network
OWASP: Open Web Application Security
DNS: Domain Name System
DHCP: Dynamic Host Configuration Protocol
IP: Internet Protocol
LAN: Local Area Network
SOAP: Simple Object Access Protocol
DDoS: Distributed Denial of Service
SSH: Secure Shell
SSL: Secure Sockets Layer
XSS: Cross-Site Scripting
IPS: Intrusion Prevention System
OS: Operating System
VM: Virtual Machine
DB: DataBase
DBA: DataBase Administrator
SQL: Structured Query Language
CI/CD: Continuous Integration/Continuous Delivery
DevOps: Development and Operations
TDD: Test-Driven Development
AI: Artificial Intelligence
ML: Machine Learning
DL: Deep Learning
NLP: Natural Language Processing
LLM: Large Language Model
MLOps: Machine Learning Operations
CPU: Central Processing Unit
GPU: Graphics Processing Unit
HDD: Hard Disk Drive
SSD: Solid-State Drive
RAM: Random Access Memory
ROM: Read-Only Memory
——————————————————
Group: @azad_program
Channel: @kiau_program
❤9🔥4👍1
Merge یا Rebase
مسئله این است
در Git وقتی روی یک پروژه کار میکنیم از برنچها استفاده میکنیم تا تغییرات رو از هم جدا کنیم اما در نهایت باید این تغییرات رو به برنچ اصلی (مثلا main یا develop) اضافه کنیم دو روش اصلی برای انجام این کار Merge و Rebase هستند
ادامه👇
مسئله این است
در Git وقتی روی یک پروژه کار میکنیم از برنچها استفاده میکنیم تا تغییرات رو از هم جدا کنیم اما در نهایت باید این تغییرات رو به برنچ اصلی (مثلا main یا develop) اضافه کنیم دو روش اصلی برای انجام این کار Merge و Rebase هستند
ادامه👇
🔥4
Merge و Rebase هر دو یه هدف دارن ادغام تغییرات از یک برنچ به برنچ دیگر
اما این کارو به روشهای کاملا متفاوتی انجام میدهند
Merge – ترکیب تغییرات با حفظ تاریخچه
وقتی از Merge استفاده میکنیم تغییرات یک برنچ را بدون تغییر در تاریخچه، به برنچ اصلی اضافه میکنیم گیت یک Merge Commit جدید ایجاد میکند که نشان میدهد این دو برنچ ترکیب شدند
بعد از Merge گیت یک کامیت جدید ایجاد میکنه که ترکیب دو برنچ رو نشون میده
تاریخچه کامیتها کاملا حفظ میشه
برای کار تیمی مناسبه چون تغییری در کامیتهای قبلی ایجاد نمیکنه
ممکن است تاریخچه شلوغ بشه مخصوصا اگر برنچهای زیادی رو مرج کنیم
Rebase – مرتب کردن تاریخچه تغییرات
ریبیس به جای ادغام مستقیم تغییرات کامیتهای برنچ فعلی رو روی جدیدترین نسخه برنچی که میخوایم بازنویسی میکنه این کار باعث میشه که تاریخچه تغییرات تمیز و خطی بمونه
در اینجا گیت تمام کامیتهای feature-branch رو میگیره و اونارو روی جدیدترین نسخه main بازنویسی میکنه
تاریخچه تغییرات مرتبتر و خطیتر میشه
برای پروژههایی که تمیز بودن تاریخچه مهمه مفیده
اگر برنچ روی پابلیک ریپازیتوری باشه و همتیمیها روی آن کار کنن ممکنه باعث مشکلاتی بشه
Merge:
تاریخچه تغییرات به صورت یک درخت باقی میمونه یعنی میشه دید که یک برنچ از کجا اومده
Rebase:
تاریخچه صاف و خطی میشه طوری که انگار تغییرات همیشه روی نسخه بهروز برنچ اصلی ساخته شده
—————————————
کی Merge و کی Rebase؟
Merge زمانی استفاده شود که:
بخوایم تاریخچه تغییرات حفظ شه
با کار تیمی و همکاری روی پابلیک ریپازیتوری سروکار داریم
بخوایم بفهمیم که هر تغییر از کجا اومده
Rebase زمانی استفاده شود که:
بخواهیم تاریخچه گیت تمیز و مرتب باشه
قبل از ادغام با main تغییرات رو روی آخرین ورژن اون اعمال کنیم
روی یک پرایوت ریپازیتوری (feature branch) کار میکنیم و تغییرات هنوز در پابلیک ریپازیتوری منتشر نشده
Group: @azad_program
Channel: @kiau_program
اما این کارو به روشهای کاملا متفاوتی انجام میدهند
Merge – ترکیب تغییرات با حفظ تاریخچه
وقتی از Merge استفاده میکنیم تغییرات یک برنچ را بدون تغییر در تاریخچه، به برنچ اصلی اضافه میکنیم گیت یک Merge Commit جدید ایجاد میکند که نشان میدهد این دو برنچ ترکیب شدند
بعد از Merge گیت یک کامیت جدید ایجاد میکنه که ترکیب دو برنچ رو نشون میده
تاریخچه کامیتها کاملا حفظ میشه
برای کار تیمی مناسبه چون تغییری در کامیتهای قبلی ایجاد نمیکنه
ممکن است تاریخچه شلوغ بشه مخصوصا اگر برنچهای زیادی رو مرج کنیم
Rebase – مرتب کردن تاریخچه تغییرات
ریبیس به جای ادغام مستقیم تغییرات کامیتهای برنچ فعلی رو روی جدیدترین نسخه برنچی که میخوایم بازنویسی میکنه این کار باعث میشه که تاریخچه تغییرات تمیز و خطی بمونه
در اینجا گیت تمام کامیتهای feature-branch رو میگیره و اونارو روی جدیدترین نسخه main بازنویسی میکنه
تاریخچه تغییرات مرتبتر و خطیتر میشه
برای پروژههایی که تمیز بودن تاریخچه مهمه مفیده
اگر برنچ روی پابلیک ریپازیتوری باشه و همتیمیها روی آن کار کنن ممکنه باعث مشکلاتی بشه
Merge:
تاریخچه تغییرات به صورت یک درخت باقی میمونه یعنی میشه دید که یک برنچ از کجا اومده
Rebase:
تاریخچه صاف و خطی میشه طوری که انگار تغییرات همیشه روی نسخه بهروز برنچ اصلی ساخته شده
—————————————
کی Merge و کی Rebase؟
Merge زمانی استفاده شود که:
بخوایم تاریخچه تغییرات حفظ شه
با کار تیمی و همکاری روی پابلیک ریپازیتوری سروکار داریم
بخوایم بفهمیم که هر تغییر از کجا اومده
Rebase زمانی استفاده شود که:
بخواهیم تاریخچه گیت تمیز و مرتب باشه
قبل از ادغام با main تغییرات رو روی آخرین ورژن اون اعمال کنیم
روی یک پرایوت ریپازیتوری (feature branch) کار میکنیم و تغییرات هنوز در پابلیک ریپازیتوری منتشر نشده
Group: @azad_program
Channel: @kiau_program
❤7👍1
✅ آرشیو منابع پایتون ✅
در این کانال فقط به آموزش ها، مطالب و اخبار مربوط به زبان برنامه نویسی " پایتون " پرداخته خواهد شد
کتاب، ویدئو، سورس کد، آموزش های کوتاه، اخبار و غیره
https://t.me/PythonForever
در این کانال فقط به آموزش ها، مطالب و اخبار مربوط به زبان برنامه نویسی " پایتون " پرداخته خواهد شد
کتاب، ویدئو، سورس کد، آموزش های کوتاه، اخبار و غیره
https://t.me/PythonForever
Telegram
Python Forever
✅ آرشیو منابع پایتون ✅
در این کانال فقط به آموزش ها، مطالب و اخبار مربوط به زبان برنامه نویسی " پایتون " پرداخته خواهد شد
کتاب، ویدئو، سورس کد، آموزش های کوتاه، اخبار و غیره
در این کانال فقط به آموزش ها، مطالب و اخبار مربوط به زبان برنامه نویسی " پایتون " پرداخته خواهد شد
کتاب، ویدئو، سورس کد، آموزش های کوتاه، اخبار و غیره
❤1🔥1
📌 مدل OSI چیست؟
مدل OSI (Open Systems Interconnection) یک استاندارد برای شبکههای کامپیوتری است که ارتباط بین سیستمهای مختلف را در 7 لایه تعریف میکند. این مدل به درک بهتر نحوه انتقال دادهها در شبکه کمک میکند و در حل مشکلات شبکه و امنیت بسیار کاربرد دارد.
در ادامه، 7 لایه این مدل رو بررسی میکنیم:
🔹 1. لایه فیزیکی (Physical Layer)
📡 این لایه مسئول انتقال دادهها بهصورت سیگنالهای الکتریکی، نوری یا امواج رادیویی است. در واقع، همه چیز در این لایه به سختافزار و تجهیزات شبکه مربوط میشود.
✅ مثالها: کابل شبکه، فیبر نوری، وایفای، بلوتوث، هاب
🔹 2. لایه پیوند داده (Data Link Layer)
🔄 در این لایه، دادهها به فریم (Frame) تبدیل میشوند و ارسال بین دستگاههای متصل به یک شبکه محلی (LAN) انجام میشود. همچنین وظیفه کنترل خطا و مدیریت دسترسی به رسانه انتقال (MAC Address) را دارد.
✅ مثالها: سوئیچ (Switch)، آدرسهای MAC، پروتکل ARP
🔹 3. لایه شبکه (Network Layer)
🌍 این لایه مسئول مسیریابی (Routing) و انتقال بستههای داده بین شبکههای مختلف است.
✅ در این لایه آدرسهای IP برای شناسایی دستگاهها در شبکه استفاده میشود.
✅ مثالها: IP (IPv4/IPv6)، روتر (Router)، پروتکل ICMP (Ping, Traceroute)
🔹 4. لایه انتقال (Transport Layer)
📦 این لایه وظیفهی مدیریت ارتباط بین دو سیستم و کنترل خطا در انتقال داده را بر عهده دارد.
🔹 TCP (اتصالگرا): تضمین میکند که تمام بستهها به ترتیب و بدون خطا به مقصد میرسند.
🔹 UDP (بدون اتصال): سریع است، اما تضمینی برای رسیدن بستهها وجود ندارد (مانند استریمهای زنده).
✅ مثالها: TCP، UDP، شماره پورتها (مثل HTTP روی پورت 80، HTTPS روی 443)
🔹 5. لایه نشست (Session Layer)
🔄 مسئول ایجاد، مدیریت و پایان دادن به ارتباطات بین دستگاهها است. مثلاً وقتی در یک وبسایت لاگین میکنید، این لایه مدیریت نشست کاربری شما را انجام میدهد.
✅ مثالها: SSL/TLS، RPC (Remote Procedure Call)
🔹 6. لایه ارائه (Presentation Layer)
🔐 این لایه وظیفه رمزگذاری (Encryption)، فشردهسازی (Compression) و تبدیل دادهها به فرمت مناسب را دارد.
✅ مثالها: SSL/TLS برای رمزگذاری، JSON/XML برای تبادل داده
🔹 7. لایه کاربرد (Application Layer)
👨💻 این لایه همان جایی است که کاربران با شبکه تعامل دارند و شامل پروتکلهای مختلفی برای سرویسهای اینترنتی است.
✅ مثالها: HTTP/HTTPS (وبگردی)، FTP (انتقال فایل)، SMTP/IMAP (ایمیل)، DNS (نام دامنه)
🛡 مدل OSI و امنیت شبکه
بیشتر حملات سایبری در لایههای 3، 4 و 7 اتفاق میافتند. مثلاً:
🚨 لایه 3: حملات IP Spoofing، ICMP Flood
🚨 لایه 4: حملات SYN Flood، UDP Flood
🚨 لایه 7: حملات DDoS (HTTP Flood)، SQL Injection، Cross-Site Scripting (XSS)
✅ راهکارهای امنیتی:
🔹 استفاده از فایروالهای لایه 7 (WAF) برای جلوگیری از حملات وب
🔹 CAPTCHA و Rate Limiting برای کاهش حملات DDoS
🔹 استفاده از TLS و VPN برای رمزگذاری دادهها
📌نتیجه گیری
مدل OSI یک راهنمای عالی برای درک عملکرد شبکهها و حل مشکلات آنهاست.
با شناخت این لایهها، میتوانیم در طراحی شبکه، امنیت و بهینهسازی ارتباطات، حرفهایتر عمل کنیم.
Group: @azad_program
Channel: @kiau_program
مدل OSI (Open Systems Interconnection) یک استاندارد برای شبکههای کامپیوتری است که ارتباط بین سیستمهای مختلف را در 7 لایه تعریف میکند. این مدل به درک بهتر نحوه انتقال دادهها در شبکه کمک میکند و در حل مشکلات شبکه و امنیت بسیار کاربرد دارد.
در ادامه، 7 لایه این مدل رو بررسی میکنیم:
🔹 1. لایه فیزیکی (Physical Layer)
📡 این لایه مسئول انتقال دادهها بهصورت سیگنالهای الکتریکی، نوری یا امواج رادیویی است. در واقع، همه چیز در این لایه به سختافزار و تجهیزات شبکه مربوط میشود.
✅ مثالها: کابل شبکه، فیبر نوری، وایفای، بلوتوث، هاب
🔹 2. لایه پیوند داده (Data Link Layer)
🔄 در این لایه، دادهها به فریم (Frame) تبدیل میشوند و ارسال بین دستگاههای متصل به یک شبکه محلی (LAN) انجام میشود. همچنین وظیفه کنترل خطا و مدیریت دسترسی به رسانه انتقال (MAC Address) را دارد.
✅ مثالها: سوئیچ (Switch)، آدرسهای MAC، پروتکل ARP
🔹 3. لایه شبکه (Network Layer)
🌍 این لایه مسئول مسیریابی (Routing) و انتقال بستههای داده بین شبکههای مختلف است.
✅ در این لایه آدرسهای IP برای شناسایی دستگاهها در شبکه استفاده میشود.
✅ مثالها: IP (IPv4/IPv6)، روتر (Router)، پروتکل ICMP (Ping, Traceroute)
🔹 4. لایه انتقال (Transport Layer)
📦 این لایه وظیفهی مدیریت ارتباط بین دو سیستم و کنترل خطا در انتقال داده را بر عهده دارد.
🔹 TCP (اتصالگرا): تضمین میکند که تمام بستهها به ترتیب و بدون خطا به مقصد میرسند.
🔹 UDP (بدون اتصال): سریع است، اما تضمینی برای رسیدن بستهها وجود ندارد (مانند استریمهای زنده).
✅ مثالها: TCP، UDP، شماره پورتها (مثل HTTP روی پورت 80، HTTPS روی 443)
🔹 5. لایه نشست (Session Layer)
🔄 مسئول ایجاد، مدیریت و پایان دادن به ارتباطات بین دستگاهها است. مثلاً وقتی در یک وبسایت لاگین میکنید، این لایه مدیریت نشست کاربری شما را انجام میدهد.
✅ مثالها: SSL/TLS، RPC (Remote Procedure Call)
🔹 6. لایه ارائه (Presentation Layer)
🔐 این لایه وظیفه رمزگذاری (Encryption)، فشردهسازی (Compression) و تبدیل دادهها به فرمت مناسب را دارد.
✅ مثالها: SSL/TLS برای رمزگذاری، JSON/XML برای تبادل داده
🔹 7. لایه کاربرد (Application Layer)
👨💻 این لایه همان جایی است که کاربران با شبکه تعامل دارند و شامل پروتکلهای مختلفی برای سرویسهای اینترنتی است.
✅ مثالها: HTTP/HTTPS (وبگردی)، FTP (انتقال فایل)، SMTP/IMAP (ایمیل)، DNS (نام دامنه)
🛡 مدل OSI و امنیت شبکه
بیشتر حملات سایبری در لایههای 3، 4 و 7 اتفاق میافتند. مثلاً:
🚨 لایه 3: حملات IP Spoofing، ICMP Flood
🚨 لایه 4: حملات SYN Flood، UDP Flood
🚨 لایه 7: حملات DDoS (HTTP Flood)، SQL Injection، Cross-Site Scripting (XSS)
✅ راهکارهای امنیتی:
🔹 استفاده از فایروالهای لایه 7 (WAF) برای جلوگیری از حملات وب
🔹 CAPTCHA و Rate Limiting برای کاهش حملات DDoS
🔹 استفاده از TLS و VPN برای رمزگذاری دادهها
📌نتیجه گیری
مدل OSI یک راهنمای عالی برای درک عملکرد شبکهها و حل مشکلات آنهاست.
با شناخت این لایهها، میتوانیم در طراحی شبکه، امنیت و بهینهسازی ارتباطات، حرفهایتر عمل کنیم.
Group: @azad_program
Channel: @kiau_program
👍7❤6👎2🔥1
تی ماکس(tmux) یکی از ابزارهای قدرتمند برای مدیریت چندین ترمینال در یک پنجره است. به کمک tmux میتونید پنجرههای مختلف رو در یک ترمینال داشته باشید و به راحتی بین اونها جابجا بشید. مثلاً میتونید چندین اتصال SSH به سرور داشته باشید و بین اونها به سرعت سوئیچ کنید. از مزایای دیگه tmux اینه که میتونید به یک محیط کاری باز برگردید حتی اگر ترمینال شما بسته شده باشه یا قطع اتصال اتفاق افتاده باشه. خیلی برای افرادی که کارهای طولانی مدت توی سرور انجام میدن یا با پروژههای مختلف کار میکنن مفیده.
Group: @azad_program
Channel: @kiau_program
### tmux Cheat Sheet
#### 1️⃣ دستورات اصلی tmux
- tmux : شروع یک محیط کاری جدید tmux
- tmux new -s <name> : شروع محیط کاری جدید با نام دلخواه
- tmux attach -t <name> : اتصال به محیط کاری موجود
- tmux ls : نمایش لیست محیطهای کاری فعال
- tmux kill-session -t <name> : بستن یک محیط کاری
---
#### 2️⃣ مدیریت پنجرهها و پنلها
- Ctrl+b c : ایجاد پنجره جدید
- Ctrl+b n : رفتن به پنجره بعدی
- Ctrl+b p : رفتن به پنجره قبلی
- Ctrl+b <number> : رفتن به پنجره شماره مشخص
- Ctrl+b , : تغییر نام پنجره جاری
تقسیم پنلها:
- Ctrl+b % : تقسیم پنجره به صورت عمودی
- Ctrl+b " : تقسیم پنجره به صورت افقی
- Ctrl+b o : جابجایی بین پنلها
- Ctrl+b ; : سوئیچ به آخرین پنل فعال
- Ctrl+b x : بستن پنل جاری
---
#### 3️⃣ تغییر اندازه پنلها
- Ctrl+b :resize-pane -L 5 : کاهش عرض پنل به اندازه 5 ستون
- Ctrl+b :resize-pane -R 5 : افزایش عرض پنل به اندازه 5 ستون
- Ctrl+b :resize-pane -U 3 : کاهش ارتفاع پنل به اندازه 3 ردیف
- Ctrl+b :resize-pane -D 3 : افزایش ارتفاع پنل به اندازه 3 ردیف
---
#### 4️⃣ حالت کپی و اسکرول
- Ctrl+b [ : ورود به حالت کپی (برای اسکرول و انتخاب متن)
- از کلیدهای جهتدار یا PageUp/PageDown برای اسکرول استفاده کنید
- Space : شروع انتخاب متن در حالت کپی
- Enter : کپی کردن متن انتخابشده
- q : خروج از حالت کپی
- Ctrl+b ] : چسباندن متن کپیشده
---
#### 5️⃣ جدا شدن و اتصال دوباره
- Ctrl+b d : جدا شدن از محیط کاری (detach)
- برای اتصال دوباره از دستور tmux attach یا tmux attach -t <name> استفاده کنید
---
#### 6️⃣ دستورات عمومی و متفرقه
- Ctrl+b ? : نمایش لیست دستورات و کلیدهای میانبر
- Ctrl+b t : نمایش ساعت در نوار وضعیت
- Ctrl+b r : بارگذاری مجدد تنظیمات (بعد از تغییر در ~/.tmux.conf)
- Ctrl+b . : درخواست شماره پنجره جهت جابجایی مستقیم
- Ctrl+b : : ورود به حالت فرمان برای اجرای دستورات
---
#### 7️⃣ تنظیمات
- فایل ~/.tmux.conf را ویرایش کنید تا کلیدهای میانبر، رنگها و نوار وضعیت را به دلخواه تنظیم کنید.
- مثال: set -g mouse on برای فعالسازی پشتیبانی ماوس
- بعد از تغییر، با Ctrl+b r تنظیمات را بارگذاری مجدد کنید
---
#### 8️⃣ نکات مفید
- از محیطهای کاری پایداری استفاده کنید؛ به جای بستن، با detach خارج شوید تا بعداً بتوانید به کارهای خود ادامه دهید.
- در صورت تداخل کلیدها، کلید پیشفرض را تغییر دهید (مثلاً set -g prefix C-a).
- برای پروژههای مختلف، میتوانید محیطهای کاری مجزا با پنجرهها و پنلهای متنوع داشته باشید.
---
#### 9️⃣ راهنمای رفع مشکل
- اگر در حالت کپی گیر کردید، با فشار دادن q از آن خارج شوید.
- در صورت نیاز، از tmux kill-server برای بستن تمام محیطهای کاری استفاده کنید (با احتیاط، چون همه کارهای در حال اجرا بسته میشوند).
Group: @azad_program
Channel: @kiau_program
❤9👍1
🌐 تفاوت نقش ها، Web Designer ،Web Developer یا UI/UX Designer؟
سلام رفقا 👋🏼
توی دنیای وب، نقشهای UI/UX Designer، Web Designer و Web Developer خیلی به گوش میخوره، ولی دقیقا چه فرقی دارن؟ بیاین یه مرور سریع کنیم:
1️⃣ با Web Developer ها یا توسعه دهنده های دنیای وبسایت شروع میکنیم، توسعهدهندههای واقعی وب! با استفاده از زبان ها و تکنولوژی های مختلف مثل HTML، CSS، JavaScript و ... ، فریمورکهایی مثل React، Vue، Angular، Django، Laravel، Asp .NET، Nest و ... سایت رو از صفر تا صد کدنویسی میکنن و مطمئن میشن تا Back-End (تمام منطق و رفتار و عملکرد وبسایت در پشت صحنه و Front-End (ظاهر پویا، عملکرد ها و منطقی که کاربر به صورت مستقیم باهاش در ارتباطه) به درستی کار کنه.
2️⃣ میرسیم به Web Designer ها یا طراحان وب که درواقع منظورمون افرادین که بیشتر با CMS هایی مثل وردپرس کار میکنن. طراحانی که با Template Design، ابزار ها و پلاگینها، یک وبسایت رو میسازن و بدون نیاز به کدنویسی عمیق، یه خروجی شیک تحویل میدن.
3️⃣ و در آخر UI/UX Designer ها، متخصصای رابط و تجربه کاربری! UI (User Interface) روی طراحی بصری مثل Layout، ساختار، رنگها، آیکون ها و به طور کل جلوه ظاهری طرح برنامه تمرکز داره و UX (User Experience) هم به بهینهسازی User Journey، دسترسی پذیری و راحتی کار با برنامه یا نرم افزار اهمیت میده، طراحان رابط و تجربه کاربری برای پیاده سازی دیزاین یا طرح نرم افزار مد نظر از ابزارایی مثل Figma یا Adobe XD استفاده میکنن.
❓تفاوت کلیدی؟
دولوپرها توی عمق کدنویسی صفر تا صد و منطق سایتن، وب دیزاینرها با CMS و خلاقیت سریع عمل میکنن، و UI/UX دیزاینر ها روی طراحی کاربرمحور زوم دارن.
شماها چی؟ فکر میکنین به چه فیلدی بیشتر علاقه مندین؟ نظرتون رو بگین
Group: @azad_program
Channel: @kiau_program
سلام رفقا 👋🏼
توی دنیای وب، نقشهای UI/UX Designer، Web Designer و Web Developer خیلی به گوش میخوره، ولی دقیقا چه فرقی دارن؟ بیاین یه مرور سریع کنیم:
1️⃣ با Web Developer ها یا توسعه دهنده های دنیای وبسایت شروع میکنیم، توسعهدهندههای واقعی وب! با استفاده از زبان ها و تکنولوژی های مختلف مثل HTML، CSS، JavaScript و ... ، فریمورکهایی مثل React، Vue، Angular، Django، Laravel، Asp .NET، Nest و ... سایت رو از صفر تا صد کدنویسی میکنن و مطمئن میشن تا Back-End (تمام منطق و رفتار و عملکرد وبسایت در پشت صحنه و Front-End (ظاهر پویا، عملکرد ها و منطقی که کاربر به صورت مستقیم باهاش در ارتباطه) به درستی کار کنه.
2️⃣ میرسیم به Web Designer ها یا طراحان وب که درواقع منظورمون افرادین که بیشتر با CMS هایی مثل وردپرس کار میکنن. طراحانی که با Template Design، ابزار ها و پلاگینها، یک وبسایت رو میسازن و بدون نیاز به کدنویسی عمیق، یه خروجی شیک تحویل میدن.
3️⃣ و در آخر UI/UX Designer ها، متخصصای رابط و تجربه کاربری! UI (User Interface) روی طراحی بصری مثل Layout، ساختار، رنگها، آیکون ها و به طور کل جلوه ظاهری طرح برنامه تمرکز داره و UX (User Experience) هم به بهینهسازی User Journey، دسترسی پذیری و راحتی کار با برنامه یا نرم افزار اهمیت میده، طراحان رابط و تجربه کاربری برای پیاده سازی دیزاین یا طرح نرم افزار مد نظر از ابزارایی مثل Figma یا Adobe XD استفاده میکنن.
❓تفاوت کلیدی؟
دولوپرها توی عمق کدنویسی صفر تا صد و منطق سایتن، وب دیزاینرها با CMS و خلاقیت سریع عمل میکنن، و UI/UX دیزاینر ها روی طراحی کاربرمحور زوم دارن.
شماها چی؟ فکر میکنین به چه فیلدی بیشتر علاقه مندین؟ نظرتون رو بگین
Group: @azad_program
Channel: @kiau_program
❤4👍1
محدود کردن قبلِ از کار افتادن سیستم! 💡
...
...
Throttling یکی از روشهای مهم برای مدیریت درخواستها و جلوگیری از فشار بیش از حد روی سرورهاست
تو این پست باهاش آشنا میشیم
تو جنگو میتونیم با استفاده از DRF خیلی راحت Throttling رو پیادهسازی کنیم
این قابلیت بهمون کمک میکنه تعداد درخواست هایی که هر کاربر یا کل سیستم میتونه در یک بازه زمانی مشخص بفرسته رو کنترل کنیم
چجوری از Throttling تو DRF استفاده کنیم؟!
DRF چند نوع Throttle پیشفرض داره:
AnonRateThrottle → برای کاربران ناشناس
UserRateThrottle → برای کاربران لاگین کرده
ScopedRateThrottle → برای محدود کردن درخواستها در سطح API خاص
کافیه این تنظیمات رو توی settings.py اضافه کنیم و مقدار دلخواهمون رو تنظیم کنیم
با این روش از overload شدن سرور هم جلوگیری میکنیم.
بیشتر
Group: @azad_program
Channel: @kiau_program
...
...
Throttling یکی از روشهای مهم برای مدیریت درخواستها و جلوگیری از فشار بیش از حد روی سرورهاست
تو این پست باهاش آشنا میشیم
تو جنگو میتونیم با استفاده از DRF خیلی راحت Throttling رو پیادهسازی کنیم
این قابلیت بهمون کمک میکنه تعداد درخواست هایی که هر کاربر یا کل سیستم میتونه در یک بازه زمانی مشخص بفرسته رو کنترل کنیم
چجوری از Throttling تو DRF استفاده کنیم؟!
DRF چند نوع Throttle پیشفرض داره:
AnonRateThrottle → برای کاربران ناشناس
UserRateThrottle → برای کاربران لاگین کرده
ScopedRateThrottle → برای محدود کردن درخواستها در سطح API خاص
کافیه این تنظیمات رو توی settings.py اضافه کنیم و مقدار دلخواهمون رو تنظیم کنیم
با این روش از overload شدن سرور هم جلوگیری میکنیم.
بیشتر
Group: @azad_program
Channel: @kiau_program
LinkedIn
Throttling | Shahab Bozorgi
محدود کردن قبلِ از کار افتادن سیستم! 💡
...
...
Throttling یکی از روشهای مهم برای مدیریت درخواستها و جلوگیری از فشار بیش از حد روی سرورهاست
تو این پست باهاش آشنا میشیم
تو جنگو میتونیم با استفاده از DRF خیلی راحت Throttling رو پیادهسازی کنیم
این قابلیت…
...
...
Throttling یکی از روشهای مهم برای مدیریت درخواستها و جلوگیری از فشار بیش از حد روی سرورهاست
تو این پست باهاش آشنا میشیم
تو جنگو میتونیم با استفاده از DRF خیلی راحت Throttling رو پیادهسازی کنیم
این قابلیت…
❤9🔥2
دریافت اطلاعات با متد POST
وقتی صحبت از دریافت اطلاعات میشه اولین متدی که به ذهنمون میاد GET هستش, این متد برای دریافت دیتا از سرور بدون ایجاد تغییر در سرور استفاده میشه تو این حالت، دیتامون به طور معمول در URL ارسال میشه و قابل مشاهده هست
ولی نکته جالب اینجاست که حتی با متد POST هم میتونیم اطلاعات را بگیریم, متد POST معمولا برای ارسال دیتا ها به سرور استفاده میشه تا در دیتابیس ذخیره بشه اما هیچ قانونی وجود نداره که این متد فقط برای ارسال دیتا استفاده میشه
(اگه همچین قانونی بود میتونید این زیر بگید که با خیال راحت کار غیرقانونی بکنیم)
توی بعضی از سناریوها سرور میتونه از متد POST برای گرفتن دیتا استفاده کنه به خصوص زمانی که حجم دادهها زیاده و نمیخوایم اونارو در URL قرار بدیم به عنوان مثال در ارسال دیتای JSON یا فایل های حجیم بهتره که از POST استفاده کنیم
مثال:
قاعدتا این اطلاعات اگه توی URL باشه کثیفی به همراه داره و بهتر هستش برای امنیتش توی BODY باشه
چرا از POST برای گرفتن اطلاعات استفاده میشه؟!
حجم بالای دیتا: اطلاعات بزرگتر از اونی خستش که در URL جا میگیره
امنیت بیشتر: اطلاعاتی که در Body ریکوئست ارسال میشه نسبت به URL امنیت بیشتری داره چون به نسبت URL به راحتی مشاهده نمیشه
پیچیدگی دیتاها: گاهی اوقات ساختار دیتاهامون بسیار پیچیده هستش و نیاز به ارسال اطلاعات با فرمت خاصی مانند JSON یا XML داره که در POST راحت تر مدیریت میشه
تفاوت GET و POST در این مورد
وقتی دیتا توی URL (متد GET) فرستاده میشه این اتفاق ها میفته:
آدرس کامل توی history ذخیره میشه
توی server logs یا proxy ها ممکنه لاگ بشه
آدرس URL میتونه در referrer به سایتهای دیگه لو بره
محدودیت طول URL هم هستش
وقتی دادهها توی BODY (متد POST) فرستاده میشه:
دیتاها توی آدرس URL نمیان پس توی history یا لاگ URL دیده نمیشن
محدودیت طول نیستش میتونی حجم بیشتری از دیتارو ارسال کنیم
در ترکیب با HTTPS هم ریکوئست رمزنگاری میشه و امن تر میشه
در نهایت استفاده از متد POST برای دریافت اطلاعات بستگی به نیاز خاص پروژه و شرایط امنیتی داره و هر متدی در جا و زمان خود کاربرد های متفاوتی خواهد داشت و همه ی اینها برای اینه که امن تر بشه نه اینکه کاملا امن بشه
Group: @azad_program
Channel: @kiau_program
وقتی صحبت از دریافت اطلاعات میشه اولین متدی که به ذهنمون میاد GET هستش, این متد برای دریافت دیتا از سرور بدون ایجاد تغییر در سرور استفاده میشه تو این حالت، دیتامون به طور معمول در URL ارسال میشه و قابل مشاهده هست
ولی نکته جالب اینجاست که حتی با متد POST هم میتونیم اطلاعات را بگیریم, متد POST معمولا برای ارسال دیتا ها به سرور استفاده میشه تا در دیتابیس ذخیره بشه اما هیچ قانونی وجود نداره که این متد فقط برای ارسال دیتا استفاده میشه
(اگه همچین قانونی بود میتونید این زیر بگید که با خیال راحت کار غیرقانونی بکنیم)
توی بعضی از سناریوها سرور میتونه از متد POST برای گرفتن دیتا استفاده کنه به خصوص زمانی که حجم دادهها زیاده و نمیخوایم اونارو در URL قرار بدیم به عنوان مثال در ارسال دیتای JSON یا فایل های حجیم بهتره که از POST استفاده کنیم
مثال:
{
"merchantId": "63a69a2d18f9347bd89d5fe6",
"mode": "weekly",
"type": "amount"
}قاعدتا این اطلاعات اگه توی URL باشه کثیفی به همراه داره و بهتر هستش برای امنیتش توی BODY باشه
چرا از POST برای گرفتن اطلاعات استفاده میشه؟!
حجم بالای دیتا: اطلاعات بزرگتر از اونی خستش که در URL جا میگیره
امنیت بیشتر: اطلاعاتی که در Body ریکوئست ارسال میشه نسبت به URL امنیت بیشتری داره چون به نسبت URL به راحتی مشاهده نمیشه
پیچیدگی دیتاها: گاهی اوقات ساختار دیتاهامون بسیار پیچیده هستش و نیاز به ارسال اطلاعات با فرمت خاصی مانند JSON یا XML داره که در POST راحت تر مدیریت میشه
تفاوت GET و POST در این مورد
وقتی دیتا توی URL (متد GET) فرستاده میشه این اتفاق ها میفته:
آدرس کامل توی history ذخیره میشه
توی server logs یا proxy ها ممکنه لاگ بشه
آدرس URL میتونه در referrer به سایتهای دیگه لو بره
محدودیت طول URL هم هستش
وقتی دادهها توی BODY (متد POST) فرستاده میشه:
دیتاها توی آدرس URL نمیان پس توی history یا لاگ URL دیده نمیشن
محدودیت طول نیستش میتونی حجم بیشتری از دیتارو ارسال کنیم
در ترکیب با HTTPS هم ریکوئست رمزنگاری میشه و امن تر میشه
در نهایت استفاده از متد POST برای دریافت اطلاعات بستگی به نیاز خاص پروژه و شرایط امنیتی داره و هر متدی در جا و زمان خود کاربرد های متفاوتی خواهد داشت و همه ی اینها برای اینه که امن تر بشه نه اینکه کاملا امن بشه
Group: @azad_program
Channel: @kiau_program
❤10👍4
#چالش_پایتونی
خروجی کد در تصویر کدام گزینه است؟
A) [1, 2, 3]
B) ERROR
C) [1, 2, 3, 4]
D) [4]
Group: @azad_program
Channel: @kiau_program
خروجی کد در تصویر کدام گزینه است؟
A) [1, 2, 3]
B) ERROR
C) [1, 2, 3, 4]
D) [4]
Group: @azad_program
Channel: @kiau_program
🏆4
#چالش_پایتون
(یخورده سخت تر)
خروجی این کد چیه؟
A) [0, 1, 100]
B) [2, 100]
C) [100]
D) خطا میدهد
Group: @azad_program
Channel: @kiau_program
(یخورده سخت تر)
خروجی این کد چیه؟
A) [0, 1, 100]
B) [2, 100]
C) [100]
D) خطا میدهد
Group: @azad_program
Channel: @kiau_program
👍3
انواع یادگیری در Machine Learning چیه؟
توی یادگیری ماشین (Machine Learning)، ما با سه نوع اصلی یادگیری سر و کار داریم:
1. یادگیری نظارتشده (Supervised Learning):
مدل رو با دادههایی آموزش میدیم که خروجی درست (Label) دارن.
مثل اینکه به مدل بگیم: "این عکس گربهست، اون یکی سگ!"
کاربردها: تشخیص چهره، طبقهبندی ایمیل (Spam / Not Spam)، پیشبینی قیمت.
2. یادگیری بدون نظارت (Unsupervised Learning):
اینجا دادهها خروجی مشخص ندارن. مدل باید خودش الگوها و ساختارها رو کشف کنه.
مثلاً گروهبندی مشتریها بر اساس رفتار خریدشون.
کاربردها: خوشهبندی (Clustering)، کاهش ابعاد (Dimensionality Reduction).
3. یادگیری تقویتی (Reinforcement Learning):
مدل مثل یه بازیکن عمل میکنه: کار انجام میده، بازخورد میگیره (پاداش یا تنبیه)، و یاد میگیره چطور بهتر عمل کنه.
کاربردها: بازیها (مثل AlphaGo)، رباتیک، سیستمهای توصیهگر پویا.
جمعبندی:
اگر میخوای وارد دنیای ML بشی، اول این سه نوع یادگیری رو خوب بشناس. چون پایهی همه چیزن.
#ML #machine_learning #ماشین_لرنینگ #یادگیری_ماشین
Group: @azad_program
Channel: @kiau_program
توی یادگیری ماشین (Machine Learning)، ما با سه نوع اصلی یادگیری سر و کار داریم:
1. یادگیری نظارتشده (Supervised Learning):
مدل رو با دادههایی آموزش میدیم که خروجی درست (Label) دارن.
مثل اینکه به مدل بگیم: "این عکس گربهست، اون یکی سگ!"
کاربردها: تشخیص چهره، طبقهبندی ایمیل (Spam / Not Spam)، پیشبینی قیمت.
2. یادگیری بدون نظارت (Unsupervised Learning):
اینجا دادهها خروجی مشخص ندارن. مدل باید خودش الگوها و ساختارها رو کشف کنه.
مثلاً گروهبندی مشتریها بر اساس رفتار خریدشون.
کاربردها: خوشهبندی (Clustering)، کاهش ابعاد (Dimensionality Reduction).
3. یادگیری تقویتی (Reinforcement Learning):
مدل مثل یه بازیکن عمل میکنه: کار انجام میده، بازخورد میگیره (پاداش یا تنبیه)، و یاد میگیره چطور بهتر عمل کنه.
کاربردها: بازیها (مثل AlphaGo)، رباتیک، سیستمهای توصیهگر پویا.
جمعبندی:
اگر میخوای وارد دنیای ML بشی، اول این سه نوع یادگیری رو خوب بشناس. چون پایهی همه چیزن.
#ML #machine_learning #ماشین_لرنینگ #یادگیری_ماشین
Group: @azad_program
Channel: @kiau_program
👍5❤4🔥1👏1
تجربهات از برنامهنویسی چیه؟
سلام رفقا!
هرکدوممون توی مسیر برنامهنویسی داستان خاصی داریم.
چی شد که برنامه نویسی یاد گرفتید
📌 اولین زبان؟
📌 اولین پروژه؟
📌 سختترین چالش؟
بیاید توی گروه یا کامنتها تجربهتونو بنویسین.
با هم یاد میگیریم، با هم پیشرفت میکنیم 💪
#برنامهنویسی #تجربه_شخصی #یادگیری_جمعی
Group: @azad_program
Channel: @kiau_program
سلام رفقا!
هرکدوممون توی مسیر برنامهنویسی داستان خاصی داریم.
چی شد که برنامه نویسی یاد گرفتید
📌 اولین زبان؟
📌 اولین پروژه؟
📌 سختترین چالش؟
بیاید توی گروه یا کامنتها تجربهتونو بنویسین.
با هم یاد میگیریم، با هم پیشرفت میکنیم 💪
#برنامهنویسی #تجربه_شخصی #یادگیری_جمعی
Group: @azad_program
Channel: @kiau_program
👍3
در یک حرکت غافلگیر کننده ای فرادرس خیلی از آموزش هاشو تخیف ویژه گذاشته با قیمت 89 تومن میتونین تهیه کنین .
تا فردا مهلت استفادشه گفتم خبرشو بهتون بدم .
#برنامه_نویسی #آموزش_برنامه_نویسی #آموزش
Group: @azad_program
Channel: @kiau_program
تا فردا مهلت استفادشه گفتم خبرشو بهتون بدم .
قدم به قدم در مسیر برنامه نویسی حرفه ای با آزاد پروگرمرز🫵💻
#برنامه_نویسی #آموزش_برنامه_نویسی #آموزش
Group: @azad_program
Channel: @kiau_program
❤7🔥2