برنامه نویسی | Teachify @teachify Channel on Telegram

برنامه نویسی | Teachify

@teachify


برای موفق شدن 🌱 با این عبارت خداحافظی کن: "باشه فردا"🍃


Admin: @Yousef_Vafaei

برنامه نویسی | Teachify (Persian)

اینجا Teachify است! یک کانال تلگرام برای علاقه‌مندان به برنامه‌نویسی و یادگیری فناوری اطلاعات. اگر شما هم می‌خواهید در دنیای فناوری پا به پا باشید و به یادگیری زبان‌های برنامه‌نویسی مختلف بپردازید، این کانال برای شماست. از اموزش‌های تخصصی در زمینه برنامه‌نویسی تا مقالات جدید و روز، Teachify همراه شما خواهد بود. تیم Teachify تلاش می‌کند تا با ارائه مطالب مفید و جذاب، شما را در مسیر موفقیت و پیشرفت حرکت کند. ما به شعار "باشه فردا" واقعیت می‌بخشیم و شما را به تغییرات مثبت و آینده‌ی روشن هدایت می‌کنیم. تیم Teachify همیشه در کنار شماست و آماده پاسخگویی به سوالات شماست. برای اطلاعات بیشتر و عضویت در کانال، به لینک زیر مراجعه کنید: https://coffeete.ir/teachify

برنامه نویسی | Teachify

07 Dec, 15:31


استفاده از SQL خام در Django

هرچند که ORM به‌خوبی نیازهای عمومی ما را در جنگو برآورد میکند، اما گاهی اوقات برای کوئری‌های پیچیده یا بهینه‌سازی‌های خاص، استفاده از کوئری‌های خام SQL بهترین راه‌حل است.

در کد زیر، یک کوئری ساده‌ی خام برای دریافت محصولات با قیمت بالاتر از 100 را می‌بینید:

from django.db import connection

with connection.cursor() as cursor:
cursor.execute("SELECT * FROM myapp_product WHERE price > %s", [100])
results = cursor.fetchall()
for row in results:
print(row)



این کار برای ما کنترل بیشتر بر کوئری‌ها، امکان استفاده از ویژگی‌های خاص دیتابیس و بهبود عملکرد در شرایط خاص را امکان پذیر میکند.

فقط دقت کنید که حتما از پارامترها (%s) به‌جای ترکیب مستقیم مقادیر در کوئری استفاده کنید تا از حملات SQL Injection جلوگیری شود.

وقتی از پارامترها برای مقادیر ورودی در کوئری استفاده می‌کنید، Django یا کتابخانه‌ی مربوطه مقدار ورودی شما را ایمن‌سازی می‌کند. این یعنی کاراکترهای مخربی که ممکن است توسط یک مهاجم وارد شوند، به‌عنوان بخشی از داده در نظر گرفته شده و نمی‌توانند ساختار اصلی کوئری را تغییر دهند. به این فرآیند "escaping" گفته می‌شود.

اگر مستقیماً مقادیر کاربر را بدون استفاده از پارامترها در رشته‌ی SQL قرار دهید، کوئری شما در برابر SQL Injection آسیب‌پذیر می‌شود.

به عنوان مثال ناامن، فرض کنید کاربر می‌خواهد محصولی را براساس قیمت جستجو کند:
price = input("Enter a price: ")  
query = f"SELECT * FROM products WHERE price > {price}"
cursor.execute(query)

اگر کاربر به جای مقدار عددی، ورودی مخربی مثل زیر وارد کند:
0; DROP TABLE products; --  

کوئری نهایی شما به شکل زیر خواهد بود:

SELECT * FROM products WHERE price > 0; DROP TABLE products; --  

این کوئری باعث حذف شدن جدول products می‌شود!

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

07 Dec, 09:58


✔️ به هوش مصنوعی chatgpt گفتم با توجه به شناختی که از من داری غذای مورد علاقه منو درست کن!

اولش اینجوری گفت:
با توجه به علایق شما به یادگیری و برنامه‌نویسی، احتمالاً غذایی که هم ساده باشه و هم خلاقیت نیاز داشته باشه، مورد علاقه شماست! 😄
من یک بشقاب غذای سالم و انرژی‌بخش مثل پاستا با سس سبزیجات تازه یا املت سبزیجات با کمی نان تست رو پیشنهاد می‌کنم. این غذاها هم سریع آماده می‌شن، هم مناسب کسانی که ساعت‌ها پشت کامپیوتر کار می‌کنن!

اگه مشخص‌تر بهم بگید چه غذایی دوست دارید، می‌تونم تصویر بهتری بسازم. مثلاً غذای ایرانی، فست‌فود یا غذای سنتی؟

بعدش گفتم در نظر بگیر که من ایرانی ام.

این تصویر رو با این کپشن برام درست کرد:
این هم تصویر یک غذای ایرانی خوشمزه که شامل برنج زعفرانی با ته‌دیگ طلایی، کباب مرغ، سبزی خوردن، گوجه، و یک کاسه ماست است. امیدوارم اشتهایتان را تحریک کند! 😊

پ.ن: واقعا اشتهام تحریک شد :))

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

07 Dec, 07:37


✔️ این عالی بود :)))

#fun
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

03 Dec, 18:50


✔️ ترفند جالب پایتون: Context Manager با with

عبارت Context Manager یکی از مفاهیم مهم و کاربردی در زبان پایتون است که برای مدیریت منابعی که نیاز به باز و بسته شدن دارند (مثل فایل‌ها، کانکشن‌ها به دیتابیس، یا قفل‌ها) استفاده می‌شود.

یک Context Manager به شما این امکان را می‌دهد که بخشی از کد را در یک "بلوک مدیریتی" اجرا کنید، و در شروع و پایان آن بلوک، اقدامات خاصی انجام شود. این کار معمولاً با استفاده از دستور with انجام می‌شود.

به کمک دستور with می‌توانید مدیریت منابع مثل فایل‌ها یا دیتابیس را ساده‌تر کنید. این دستور به‌طور خودکار وظایف شروع و پایان را انجام می‌دهد.

with open("example.txt", "r") as file:
data = file.read()
# The file is automatically closed here.


یا برای ساخت Context Manager خودتان:
from contextlib import contextmanager

@contextmanager
def my_context():
print("🔹 Start...")
yield "Some data"
print("🔸 End...")

with my_context() as data:
print(data)


@Teachify | برنامه نویسی

برنامه نویسی | Teachify

03 Dec, 07:59


✔️ به نظر من که درست میگه :)))

نظر شما چیه؟
#fun
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

02 Dec, 22:47


Channel photo updated

برنامه نویسی | Teachify

02 Dec, 12:04


✔️ برنامه‌نویس‌ها درونگرای برونگرا هستند!!

برنامه‌نویس‌ها معمولاً درونگرا به نظر می‌رسن؛ عاشق کار در سکوت و غرق شدن در دنیای کدها هستند. اما کافیه یکی مثل خودشون رو ببینن! اون وقت انگار یه جرقه روشن میشه و برونگرایی‌شون فوران می‌کنه!

شاید این به خاطر این باشه که کنار هم‌فکرهاشون، حرف زدن راحت‌تره، چون نیاز نیست چیزی رو توضیح بدن؛ اونا حرف های همو می‌فهمن.

حالا تو چطور؟ وقتی با یه برنامه‌نویس دیگه حرف می‌زنی، برونگرا میشی؟

#برنامه‌نویسی #درونگرایی #برونگرایی
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

01 Dec, 20:54


✔️ نحوه نمایش اعداد در مبناهای مختلف و تبدیل آن‌:

مبنای 2 (دودویی یا باینری): پیشوند 0b یا 0B
ارقام معتبر: فقط 0 و 1
مثال: 0b11111111 معادل 255 در ده‌دهی است.

مبنای 8 (هشت‌هشتی یا اوکتال): پیشوند 0o یا 0O
ارقام معتبر: از 0 تا 7
مثال: 0o377 معادل 255 در ده‌دهی است.

مبنای 16 (شانزده‌هشتی یا هگزادسیمال): پیشوند 0x یا 0X
ارقام معتبر: از 0 تا 9 و حروف a-f یا A-F
مثال: 0xff معادل 255 در ده‌دهی است.

برای نمایش این اعداد در مبناهای مختلف:
x = 255
print(bin(x)) # '0b11111111'
print(oct(x)) # '0o377'
print(hex(x)) # '0xff'


در نتیجه، هرکدام از این پیشوندها عدد را در مبناهای مختلف نمایش می‌دهند. توجه داشته باشید که اگر غیر از ارقام معتبر وارد کنید، خطای SyntaxError رخ می‌دهد.

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

01 Dec, 16:54


✔️ انواع ساختار داده در برنامه نویسی

در دنیای برنامه‌نویسی و علوم کامپیوتر، ساختارهای داده (Data Structures) ابزارهایی هستند که نحوه سازماندهی و مدیریت داده‌ها را تعیین می‌کنند. این ساختارها مستقیماً بر کارایی و سرعت الگوریتم‌ها تأثیر می‌گذارند. هر برنامه‌نویس باید با انواع ساختار داده در برنامه نویسی آشنا باشد، چراکه استفاده صحیح از ساختار داده مناسب می‌تواند زمان اجرا را کاهش داده و مصرف حافظه را بهینه کند و همچنین مشکلات پیچیده‌ای مثل جستجو، مرتب‌سازی، یا مدیریت داده‌های بزرگ را ساده‌تر کند.

در کالی بویز بخوانید: انواع ساختار داده در برنامه نویسی

@kaliboys | کالی بویز

برنامه نویسی | Teachify

30 Nov, 14:31


✔️ آشنایی با Walrus Operator در پایتون (به معنی شیرآبی)

در نسخه ۳.۸ پایتون، اپراتوری به نام Walrus Operator (با نماد :=) معرفی شد که هدف آن ساده‌تر کردن کدنویسی در شرایط خاص است. این اپراتور به شما اجازه می‌دهد هم‌زمان یک مقدار را به یک متغیر اختصاص دهید و از آن استفاده کنید.

فرض کنید می‌خواهیم طول کلماتی از یک لیست را بررسی کنیم و فقط کلماتی که طولشان بیش از ۳ کاراکتر است را چاپ کنیم.

بدون Walrus Operator:
words = ["apple", "pie", "banana", "kiwi"]
for word in words:
if len(word) > 3:
print(word)


با Walrus Operator:
words = ["apple", "pie", "banana", "kiwi"]
for word in words:
if (length := len(word)) > 3:
print(f"{word} (length: {length})")


در کد دوم، مقدار طول کلمه (با نام length) محاسبه شده و هم‌زمان در شرط و چاپ استفاده می‌شود، بدون نیاز به محاسبه مجدد.

مثال های دیگر:

حلقه‌های ورودی:
while (user_input := input("Enter something: ")) != "exit":
print(f"You entered: {user_input}")


خواندن از فایل:
with open("data.txt") as file:
while (line := file.readline().strip()):
print(line)


#Python
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

30 Nov, 10:46


دعوت به مصاحبه HR شدم 🥹

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

30 Nov, 07:36


✔️ درسته ما کارمون با پایتونه ولی می‌دونید چرا PHP نسخه 6 نداره؟ 🤔

بعد از نسخه 5.6، نسخه 7 منتشر شد، اما نسخه 6 چی شد؟ کجا رفت؟

نسخه 6 قرار بود منتشر بشه، اما به دلیل مشکلاتی، هیچ‌وقت به نتیجه نرسید و به‌طور کامل کنار گذاشته شد.

ایده اصلی نسخه 6، اضافه کردن پشتیبانی از یونیکد به هسته PHP بود. هدف این بود که PHP بتونه تمام زبان‌های دنیا و کاراکترهاشون رو پشتیبانی کنه. حتی مثلاً می‌شد از ایموجی‌ها به عنوان اسم متغیر یا تابع استفاده کرد!

اما چرا این پروژه شکست خورد؟

1. تغییرات سنگین: برای این قابلیت باید کلی ساختار زبان تغییر می‌کرد، که اجرای اون واقعاً سخت و پیچیده بود.

2. مشکلات عملکردی: اضافه کردن یونیکد باعث افت شدید پرفورمنس PHP می‌شد، که برای اکثر برنامه‌نویسا غیرقابل‌قبول بود.

در نهایت، پروژه نسخه 6 کنار گذاشته شد و قابلیت‌هایی که قابل پیاده‌سازی بودن، در نسخه 7 ارائه شدن.
@Teachify | Rasoul Esmaeili

برنامه نویسی | Teachify

29 Nov, 09:57


✔️ مفهوم match-case در پایتون (نسخه 3.10 به بعد)

اگر تا حالا با شرایط پیچیده در پایتون سروکله زدید، match-case کار شما رو راحت‌تر می‌کنه! این ویژگی مثل switch-case در زبان‌های دیگه عمل می‌کنه، اما با قدرتی فراتر برای مدیریت الگوهای پیچیده.

فرض کنید می‌خواهید داده‌های مختلفی رو پردازش کنید، مثل ایجاد، حذف یا به‌روزرسانی یک آیتم. به کمک این قابلیت، این کار ساده‌تر و مرتب‌تر میشه:

def process_data(data):
match data:
case {"action": "create", "id": id, "content": content}:
print(f"Creating a new item with ID: {id} and content: {content}")
case {"action": "delete", "id": id}:
print(f"Deleting the item with ID: {id}")
case {"action": "update", "id": id, "content": content}:
print(f"Updating the item {id} with content: {content}")
case _:
print("Invalid data")

# Test the function
process_data({"action": "create", "id": 1, "content": "Hello"})
process_data({"action": "delete", "id": 2})
process_data({"action": "update", "id": 3, "content": "Updated content"})


▪️مزایای match-case:
- کد خواناتر و قابل‌درک‌تر از if-else های تو در تو
- تطبیق الگوهای پیچیده (مثل دیکشنری‌های تو در تو)
- انعطاف بالا برای مدیریت داده‌ها

#پایتون #python
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

28 Nov, 20:05


✔️ Python List Methods

#Python
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

28 Nov, 10:59


✔️ نکاتی که باید به هنگام استفاده از هوش مصنوعی برای کدزنی یا دیباگ در نظر بگیرید!

ورودی دقیق بدهید: سوالات و توضیحات خود را به‌صورت واضح و جزئی مطرح کنید تا پاسخ‌های مرتبط‌تری دریافت کنید.

از کد یاد بگیرید: کدی که هوش مصنوعی تولید می‌کند را بررسی کنید و با مطالعه آن مهارت‌های خود را ارتقا دهید.

ساده‌سازی کد: اگر کد تولید شده بیش از حد پیچیده است، آن را بازنویسی کنید تا خواناتر و بهینه‌تر شود.

سازگاری با تیم: کد تولید شده را مطابق با استانداردها و سبک کدنویسی تیم خود تنظیم کنید.

پایداری و امنیت: همیشه کد را از نظر امنیت و کارایی بررسی کنید؛ ممکن است آسیب‌پذیری‌هایی در کد وجود داشته باشد.

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

28 Nov, 09:26


ترتیب سوالات خاطرم نیست ولی سعی میکنم عنوان ها رو بنویسم:
Design Patterns
OOP
Decorators
Generators
Signals
Database Transactions
Pure Python (این قسمت زیاد بود سوالاتش)
Built-in Functions (map)
Lambda Functions
Panda
Numpy
Python Libraries (Poetry, Decouple, PyDict, Flake8, Black)
Python Threading
Python / Processing

مصاحبه کننده یک شخص واقعا عالی بود و آدم از معاشرت باهاش لذت میبرد.
به هیچ عنوان خودش رو نمیگرفت و مثل یک دوست با هم حرف زدیم.
هر جا لازم میشد خودش برام بیشتر توضیح میداد.
جواب های منم تحسین میکرد و برای بعضی سوالات میگفت انتظار نداشتم بتونی جواب بدی :))
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

28 Nov, 09:02


✔️چگونه اطلاعات اضافی را در رابطه‌های ManyToMany جنگو ذخیره کنیم؟

در جنگو، روابط چند به چند به‌صورت پیش‌فرض ساده هستند و تنها رابطه بین دو مدل را نگهداری می‌کنند. اما وقتی نیاز به ذخیره اطلاعات اضافی درباره این رابطه دارید (مثل تاریخ، وضعیت، یا توضیحات)، باید از ویژگی قدرتمند through استفاده کنید. بیایید با جزئیات این مفهوم را بررسی کنیم:

اگر به‌صورت ساده از ManyToManyField استفاده کنید، جنگو خودش یک جدول واسط (Intermediate Table) برای مدیریت رابطه بین دو مدل ایجاد می‌کند که در تصویر مدل BookAuthor میباشد.

در این حالت جنگو خودکار جدولی ایجاد می‌کند که تنها دو ستون دارد و شما نمی‌توانید اطلاعات اضافه (مثل تاریخ انتشار یا نقش نویسنده) را ذخیره کنید.
| book_id | author_id |

وقتی نیاز دارید اطلاعات بیشتری در مورد رابطه ذخیره کنید، through به شما امکان می‌دهد یک مدل سفارشی برای جدول واسط بسازید. این مدل می‌تواند علاوه بر کلیدهای خارجی، فیلدهای اضافی هم داشته باشد.

فرض کنید می‌خواهید رابطه بین کتاب و نویسنده را ذخیره کنید و علاوه بر آن، تاریخ انتشار همکاری را نیز نگهدارید، کد شما به صورت تصویر پیوست شده خواهد بود.

ایجاد نویسنده و کتاب:
author = Author.objects.create(name="John Doe")
book = Book.objects.create(title="Python for Beginners")


افزودن نویسنده به کتاب با اطلاعات اضافی:
BookAuthor.objects.create(book=book, author=author, publication_date="2024-01-01")


حالا می‌توانید اطلاعات رابطه را بخوانید:
relations = BookAuthor.objects.all()
for relation in relations:
print(f"{relation.author.name} wrote '{relation.book.title}' on {relation.publication_date}")


#Django #Python
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

28 Nov, 04:29


یکی از جنبه های اصلی ORM که معمولا نادیده گرفته میشه!

این جنبه اینه که ORM می‌تونه رفتار خاص هر پایگاه داده رو مدیریت کنه و توسعه‌دهنده رو از این پیچیدگی‌ها بی‌نیاز کنه.

از اونجایی که دیتابیس‌ها اصول و رفتارهای خاص خودشون رو دارن، مثلاً:

گویش‌های SQL یا SQL Dialect:
هر پایگاه داده (مثل MySQL، PostgreSQL یا Oracle) نسخه خاص خودش از SQL رو داره که ممکنه در جزئیات مثل نحوه نوشتن کوئری، نوع داده‌ها یا عملیات پیشرفته تفاوت داشته باشه. ORM این تفاوت‌ها رو پنهان می‌کنه و شما می‌تونید با یک زبان واحد (مثل کدهای پایتون در SQLAlchemy یا Django ORM) کار کنید.

بهینه‌سازی عملکرد:
از اونجایی که ORM می‌دونه هر دیتابیس در چه چیزی قوی‌تره (مثلاً PostgreSQL برای Queryهای پیچیده عالیه، ولی SQLite برای عملیات‌های سبک مناسب‌تره) و سعی می‌کنه بهینه‌ترین کوئری‌ها رو برای اون دیتابیس تولید کنه.

محدودیت‌های خاص دیتابیس‌ها:
مثلاً برخی دیتابیس‌ها از ویژگی‌های خاصی مثل Partial Indexes، Full Text Search یا JSON Fields پشتیبانی می‌کنن. ORM‌ها اغلب این قابلیت‌ها رو شناسایی کرده و ازشون استفاده می‌کنن.

مدیریت اتصال و تنظیمات خاص:
با استفاده از ORM‌ها تنظیمات خاص دیتابیس مثل زمان‌بندی اتصالات، مدیریت تراکنش‌ها و تنظیمات سطح دسترسی رو به طور خودکار انجام میشن.

در نتیجه با استفاده از ORM، نیازی نیست که توسعه‌دهنده خودش با پیچیدگی‌های دیتابیس خاصی درگیر بشه. ORM این نقش رو بر عهده می‌گیره و به سیستم کمک می‌کنه که بفهمه دقیقاً با چه دیتابیسی سروکار داره و چطور باید باهاش رفتار کنه.

این یعنی، ORM فراتر از یک ابزار برای تبدیل اشیا به جداول عمل می‌کنه؛ بلکه یه مدیر هوشمند بین دیتابیس و برنامه است که باعث می‌شه توسعه نرم‌افزار راحت‌تر، سریع‌تر و سازگارتر با انواع دیتابیس‌ها باشه.

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

27 Nov, 16:59


✔️ تفاوت copy و deepcopy در پایتون!

کپی ساده (Shallow Copy):
وقتی یک کپی ساده از یک شیء می‌گیرید، فقط ارجاع به عناصر اصلی درون شیء ساخته میشه.

import copy

original_list = [1, 2, [3, 4]]
shallow_copy = copy.copy(original_list)

# تغییر در لیست اصلی
original_list[0] = 100
print("Original:", original_list) # [100, 2, [3, 4]]
print("Shallow Copy:", shallow_copy) # [1, 2, [3, 4]]


تغییر مستقیم روی مقادیر اصلی در کپی ساده تأثیر نمی‌ذاره.
اما اگر عناصر تو در تو (مثل لیست داخل لیست) تغییر کنن، کپی هم تحت تأثیر قرار می‌گیره:

# تغییر در یک عنصر تو در تو
original_list[2][0] = 300
print("Original:", original_list) # [100, 2, [300, 4]]
print("Shallow Copy:", shallow_copy) # [1, 2, [300, 4]]


دیپ کپی (Deep Copy):
وقتی دیپ کپی می‌گیرید، یک کپی کامل از شیء و تمام زیرمجموعه‌های درونی اون ساخته میشه. به عبارت دیگه، حتی اشیای تو در تو هم جداگانه کپی میشن.

deep_copy = copy.deepcopy(original_list)

# تغییر در عنصر تو در تو
original_list[2][0] = 500
print("Original:", original_list) # [100, 2, [500, 4]]
print("Deep Copy:", deep_copy) # [1, 2, [300, 4]]


تغییر در عناصر تو در توی شیء اصلی، هیچ اثری روی دیپ کپی نداره.
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

27 Nov, 08:00


✔️ مقایسه زبان‌های برنامه‌نویسی!!!

یک تحلیل جذاب از عملکرد زبان‌های مختلف برنامه‌نویسی: 

نکات مهم: 
- زبان های Java و Kotlin عملکرد بسیار سریعی دارند؛ احتمالاً به دلیل تمرکز ویژه گوگل روی بهینه‌سازی این زبان‌ها. 
- زبان JavaScript در بین زبان‌های تفسیری و JIT، از نظر سرعت عملکردی فوق‌العاده دارد. 
- زبان Python، در مقایسه با سایر زبان‌ها، بدون استفاده از ابزارهایی مثل PyPy نسبتاً کندتر است. 

📂 کدهای مربوط به این بررسی را میتوانید در مخزن زیر ببینید:
https://github.com/bddicken/languages

#برنامه‌نویسی
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

26 Nov, 13:00


✔️ تفاوت 3 نوع دیتاتایپ لیست، تاپل و ست در پایتون چیست؟

1. لیست (List)
تغییرپذیر (Mutable): می‌توانید عناصر را اضافه، حذف یا تغییر دهید.
مرتب (Ordered): ترتیب عناصر همان‌طور که اضافه شده‌اند حفظ می‌شود.
اجازه مقادیر تکراری: می‌توانید مقادیر تکراری داشته باشید.
از براکت ([]) برای تعریف استفاده می‌شود.
my_list = [1, 2, 3, 3, 4]
my_list.append(5) # اضافه کردن عنصر
my_list[0] = 10 # تغییر مقدار
print(my_list) # خروجی: [10, 2, 3, 3, 4, 5]

2. تاپل (Tuple)
تغییرناپذیر (Immutable): پس از تعریف، نمی‌توانید عناصر آن را تغییر دهید.
مرتب (Ordered): ترتیب عناصر حفظ می‌شود.
اجازه مقادیر تکراری: مانند لیست، می‌توانید مقادیر تکراری داشته باشید.
کارایی بالاتر: به دلیل تغییرناپذیری، تاپل‌ها سریع‌تر از لیست‌ها هستند.
از پرانتز (()) برای تعریف استفاده می‌شود.
my_tuple = (1, 2, 3, 3, 4)
# my_tuple[0] = 10 # خطا: تغییرناپذیری
print(my_tuple[1]) # دسترسی به عنصر دوم: 2

3. ست (Set)
تغییرپذیر (Mutable): می‌توانید عناصر را اضافه یا حذف کنید.
بدون ترتیب (Unordered): ترتیب عناصر تضمین‌شده نیست.
بدون مقادیر تکراری: ست فقط مقادیر یکتا را ذخیره می‌کند.
از آکولاد ({}) برای تعریف استفاده می‌شود.
my_set = {1, 2, 3, 3, 4}
my_set.add(5) # اضافه کردن عنصر
print(my_set) # خروجی: {1, 2, 3, 4, 5} (بدون تکرار و ترتیب مشخص)


@Teachify | برنامه نویسی

برنامه نویسی | Teachify

26 Nov, 12:22


توی این مصاحبه سوالات زیاد بود به خصوص pure python.
حتما سرفرصت براتون تا جایی که یادم میاد مینویسم

برنامه نویسی | Teachify

26 Nov, 07:37


مسیر برگشت از مصاحبه 🥲

مصاحبه کننده در یک کلام عالی بود❤️

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

25 Nov, 22:28


ترب یه آگهی استخدام گذاشته و تکنولوژی های مورد استفاده اش رو گفته:
یکم خودتون رو محک بزنید :))

زبان برنامه‌نویسی: پایتون، جاوا اسکریپت.
فریم‌ورک به ترتیب اهمیت: Django, React, Starlette, FastAPI, Flask.
ذخیره و بازیابی اطلاعات به ترتیب اهمیت: postgresql, elasticsearch, redis, mongo, MinIO, ClickHouse, Influx, Prometheus,
داشبورد: grafana, kibana, metabase, amplitude.
زیرساخت: docker, kubernetes.
کنترل‌پروژه: gitlab.
تست و دیپلوی: gitlab-ci.

لینک جابینجا

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

25 Nov, 07:50


کی امروز از اینجا رد شده؟


@Teachify | برنامه نویسی

برنامه نویسی | Teachify

24 Nov, 12:03


دوستان این پروژه رو میتونید توی لینک زیر ببینید:
https://github.com/yousefvafaei/Django-Upload-Manager
حتما اگه وقتش رو داشتین تست کنین و نظراتتون رو برام بگین.
اگه کدهاش رو دیدین و براتون مفید بود ممنون میشم اگه star بدین.

برنامه نویسی | Teachify

24 Nov, 11:56


فردا مصاحبه دارم
پس فردا مصاحبه دارم
یه مصاحبه برای پریروز بود که کنسل کردن و تایمش رو گفتن اعلام میکنن که ممکنه اونم همین 2-3 روز دیگه باشه :))

پ.ن: هنوز قسمت نشده از فریلنسری دربیام بیرون :|

سوالاتی که ازم پرسیده میشه رو حتما براتون میذارم.
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

23 Nov, 16:26


✔️ پورت‌های پیش‌فرض برخی از پایگاه داده‌های مهم

دیتابیس SQLite بدون پورت (فایل‌محور است).

دیتابیس PostgreSQL با پورت 5432

دیتابیس MySQL/MariaDB با پورت 3306

دیتابیس Oracle با پورت 1521

دیتابیس SQL Server با پورت 1433

دیتابیس MongoDB با پورت 27017
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

18 Nov, 13:32


Finally after a week🥲

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

17 Nov, 16:10


✔️مدیریت فنی در گوگل - Kianoosh Mokhtarian

توی این قسمت از اپیزود طبقه 16، کیانوش مختاریان، مدیر و رهبر فنی در گوگل از مسیر جذاب خودش، از دانشگاه شریف تا کار در گوگل و نهایتاً بازگشت به ایران حرف میزنه

موضوعات جذاب گفتگو:

اهمیت یادگیری زبان‌های مختلف برنامه‌نویسی و الگوریتم‌ها تو دنیای واقعی
مهارت‌های نرم و کار تیمی
نکات کلیدی برای موفقیت در فرآیند استخدام گوگل
اگه به مهندسی نرم‌افزار، توسعه فردی و کار در شرکت‌های بزرگ علاقه داری، این گفتگو یه فرصت عالی برای یادگیری و الهام گرفتنه.

https://youtu.be/oXbVKzIt-gQ?si=sM37GBtw5JUGovj3

#گوگل #برنامه‌نویسی #مهندسی_نرم‌افزار #مصاحبه
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

15 Nov, 19:27


من هنوز درگیر اینما :))
واس همون کم پست میذارم🥲

برنامه نویسی | Teachify

13 Nov, 08:29


✔️ توی یک #مصاحبه ای بودم

مصاحبه کننده واقعا درک کافی از مصاحبه رو داشت و من خیلی خوشم اومد از این مصاحبه.

سوالاتی که میپرسید بیشتر توی حوزه مهندسی نرم افزار بود و میخواست ببینه جواب من و تفکرات من به چه صورته ...
و در آخر هم گفت نیاز نیست شما با مصاحبه کننده های بعدی مقایسه بشید، شما با خودتون و با توجه به رزومه خودتون مقایسه میشید.

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

13 Nov, 01:02


همین چیزاست که باعث میشه شبا بیدار بمونیم و کار کنیم.🥲

پ.ن: فایل منیجر یا آپلود منیجر با قابلیت های فراوان که با زبان پایتون و فریمورک جنگو نوشته شده.

هنوز 50 درصدش اوکی شده!

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

12 Nov, 18:53


فک کن یه تسک داری که باید انجام بدی
محدودیت کامل زمانی هم داری،

اونوقت آنتن و اینترنت و همه چی به یک باره قط بشه :/
چیکار میکنی؟
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

12 Nov, 14:47


✔️ چقدر حقه این تصویر :))
دلم واسه ویکیپدیا سوخت🥹

#fun
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

12 Nov, 06:30


🍂دوره آموزشی +Network با تخفیف باور نکردنی در جشنواره برگین

🍁%60 تخفیف شگفت انگیز

🔥30 ساعت آموزش فقط و فقط 440 هزار تومن

🍁سرفصل های دوره: https://B2n.ir/w40178

🍁ثبت نام: http://B2n.ir/u71718

🍁برای مشاوره رایگان با شماره زیر تماس بگیر👇

☎️021-88549150


🔸http://instagram.com/asreshabakeh/
🔸 Era-network.ir

برنامه نویسی | Teachify

09 Nov, 15:04


✔️ متدهای جادویی __getitem__ و __setitem__ در پایتون

در پایتون می‌تونید با __getitem__ و __setitem__ یک شیء رو مثل لیست‌ها و دیکشنری‌ها مدیریت کنید! این متدها امکان دسترسی و تغییر عناصر با اندیس‌گذاری رو فراهم می‌کنند.

مثال:

class CustomList:
def __init__(self, data):
self.data = data

def __getitem__(self, index):
return self.data[index]

def __setitem__(self, index, value):
self.data[index] = value

clist = CustomList([10, 20, 30])
print(clist[1]) # دسترسی به اندیس 1
clist[1] = 50 # تغییر اندیس 1 به 50


#Python #Programming

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

09 Nov, 04:29


✔️ استفاده از متد جادویی __call__ در پایتون

متد __call__ در پایتون به شما اجازه می‌دهد تا یک شیء از کلاس خود را مثل یک تابع فراخوانی کنید. این کار می‌تواند در سناریوهایی که نیاز به پردازش پیچیده دارید، بسیار مفید باشد.

فرض کنید می‌خواهیم یک کلاس به نام Multiplier ایجاد کنیم که هر بار شیء آن مثل تابع فراخوانی می‌شود، ورودی‌ها را با یک مقدار خاصی که در ابتدا تنظیم شده، ضرب کند.

class Multiplier:
def __init__(self, factor):
self.factor = factor

def __call__(self, value):
return value * self.factor

# استفاده از کلاس
double = Multiplier(2)
triple = Multiplier(3)

print(double(5)) # خروجی: 10
print(triple(5)) # خروجی: 15


1. متد __init__: عامل (factor) را تنظیم می‌کند.
2. متد __call__: ورودی را با عامل از پیش‌تعریف شده ضرب کرده و نتیجه را برمی‌گرداند.

با این روش، می‌توان از هر شیء کلاس Multiplier به عنوان یک تابع استفاده کرد و در عین حال از ویژگی‌های شیءگرایی بهره برد.

#Python #Programming

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

08 Nov, 08:00


✔️ آشنایی با کتابخانه Requests در پایتون

کتابخانه Requests یکی از قدرتمندترین ابزارهای پایتون برای ارسال درخواست‌های HTTP است که کار را با APIها و ارتباطات وبی ساده می‌کند. این کتابخانه به شما امکان می‌دهد به راحتی درخواست‌های GET، POST، PUT و DELETE را ارسال و پاسخ‌ها را مدیریت کنید.

▪️نمونه کد برای درخواست GET:
import requests

response = requests.get('https://api.example.com/data')
if response.status_code == 200:
    data = response.json()
    print(data)
else:
    print("درخواست با شکست مواجه شد!")

▪️امکانات Requests:

ارسال و دریافت JSON

مدیریت هدرها (Headers) و کوکی‌ها

پشتیبانی از پروتکل‌های امن (SSL)

آپلود فایل و تنظیم زمان تایم‌اوت

#Python #Programming #Requests #API

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

08 Nov, 07:30


🔥 فرصتی که منتظرش بودی رسید! چالش ۱۴ روزه طراحی سایت "میلیونر سایت‌ساز" از ۲۶ آبان شروع می‌شه. 
   👨‍🏫 استاد فتحی با تجربیات چندساله خودش کنارته تا در این مسیر موفق بشی. مفاهیم پایه‌ای، پروژه‌گرفتن، رازهای طراحان موفق و هر چیزی که نیاز داری، همین جاست! 
   به چالش بپیوندید و اولین قدم رو برای موفقیت  بردارید!
راستی این چالش کاملا رایگان می‌باشد
لینک چنل:
https://t.me/mahdifathi_site

برنامه نویسی | Teachify

06 Nov, 18:22


✔️حذف فاصله‌های خالی از ابتدا و انتهای رشته در پایتون

در زبان برنامه‌نویسی پایتون، برای حذف فاصله‌های خالی (فاصله، تب، و خطوط جدید) از ابتدای و انتهای یک رشته، از متد strip() استفاده می‌کنیم.

text = "   Hello, World!   "
cleaned_text = text.strip()
print(cleaned_text) # Output: "Hello, World!"


اگر فقط می‌خواهید فاصله‌ها را از ابتدای رشته حذف کنید، می‌توانید از lstrip() که مخفف Left Strip و برای حذف از انتهای رشته از rstrip() که مخفف Right Strip است استفاده کنید.

text = "   Learn Python with teachify   "
print(text.lstrip()) # Output: "Learn Python with teachify "
print(text.rstrip()) # Output: " Learn Python with teachify"


#پایتون #نکات_پایتون
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

06 Nov, 12:26


✔️ مشکل کوئری N+1 در جنگو

این مشکل زمانی پیش میاد که برای هر رکورد، کوئری‌های اضافی به دیتابیس ارسال بشه تا اطلاعات مرتبط رو بگیریم. مثلاً فرض کنید می‌خواید لیستی از کتاب‌ها و نویسنده‌هاشون رو نمایش بدید، و به ازای هر کتاب، اطلاعات نویسنده رو به‌صورت جداگانه دریافت می‌کنید. در این حالت، کوئری‌های زیادی به دیتابیس ارسال می‌شه که باعث کاهش سرعت برنامه می‌شه!

راه‌حل‌های Django برای حل مشکل N+1:

استفاده از select_related: برای روابط OneToOne یا ForeignKey از select_related استفاده کنید تا کوئری‌ها بهینه بشن و داده‌ها رو با یک کوئری بازیابی کنید.

استفاده از prefetch_related: برای روابط ManyToMany یا ForeignKey معکوس بهتره از prefetch_related استفاده کنید که کمک می‌کنه داده‌های مرتبط با چندین کوئری از پیش فراخوانی بشن.
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

04 Nov, 07:52


✔️ سناریو دارک و کثیف یک شرکت ایرانی!

چندی پیش، مطلبی درباره یک اقدام انقلابی یکی از شرکت های ایرانی منتشر شد که بر اساس آن، به صورت آزمایشی یک روز از هفته به تعطیلی اختصاص داده شد تا کارکنان تنها چهار روز در هفته کار کنند. این اقدام به عنوان یک آزمایش مطرح شد و قرار بود در صورت عدم کاهش بازدهی، به طور دائمی اجرا شود.

بسیاری این اقدام را تحسین کردند و در شبکه‌های اجتماعی مورد توجه زیادی قرار گرفت.

اما به تازگی خبری منتشر شد که نشان می‌داد پس از اجرای آزمایشی، بازدهی کاهش نیافت. بنابراین این نتیجه‌گیری به عمل آمد که تعداد قابل توجهی از کارکنان اضافه هستند، و به همین دلیل تعدادی از نیروها تعدیل شدند و شرایط کاری به پنج روز در هفته بازگشت.

این خبر از سوی بسیاری به عنوان یکی از تیره‌ترین سناریوهای ممکن از استثمار کارکنان تلقی شده است.

با این حال، صحت و سقم هیچ‌یک از این داستان‌ها به طور قطعی تایید نشده است. امید می‌رود که این شرکت در راستای شفاف‌سازی این آزمایش و نتایج آن، بیانیه‌ای صادر کند.

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

04 Nov, 04:29


✔️ آمار جالب درباره مصاحبه‌های شغلی و تاثیرگذاری اولین برخورد!

آیا می‌دانستید مدیران معمولاً در همان ۹۰ ثانیه اول مصاحبه تصمیم می‌گیرند که آیا داوطلب مناسب استخدام است یا نه؟

در نظرسنجی از ۲۰۰۰ مدیر، اشتباهات رایج متقاضیان که منجر به رد شدن آنها می‌شود به این ترتیب مشخص شد:

۷۰٪ مدیران می‌گویند که ظاهر غیررسمی داوطلبان در جلسه مصاحبه، تاثیر منفی بر آنها دارد.

۶۷٪ بر این باورند که عدم برقراری تماس چشمی، نشانه‌ای از عدم اعتماد به نفس است.

۵۵٪ از داوطلبانی که نحوه ورودشان به اتاق نامناسب بوده است، رد شده‌اند.

۴۷٪ مدیران بیان کرده‌اند که ناآگاهی درباره شرکت و موقعیت شغلی، نشان از کمبود آمادگی دارد.

۳۸٪ داوطلبانی را که صدای ضعیف و بدون اعتماد به نفس داشتند یا لبخند نمی‌زدند، رد کرده‌اند.

۳۳٪ از داوطلبانی که وضعیت نشستن آنها نامناسب بوده، نتوانسته‌اند نظر مثبت جلب کنند.

۲۶٪ از داوطلبانی که دست دادن نامناسب داشتند رد شده‌اند.

۲۱٪ دلیل رد برخی از داوطلبان را دست به سینه نشستن آنها در طول مصاحبه عنوان کرده‌اند.

پس به خاطر داشته باشید که در مصاحبه‌های شغلی، فقط مهارت‌های فنی مهم نیستند؛ زبان بدن، تماس چشمی، و آماده‌بودن برای شرکت نیز می‌تواند سرنوشت‌ساز باشد.
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

03 Nov, 21:41


✔️طرف هوش مصوعی chatgpt باز کرده و گوشی رو چسبونده به مانیتور و داره با اون جواب سوالات مصاحبه رو میده :))

#fun #فان
@Teachify | برنامه نویسی

برنامه نویسی | Teachify

03 Nov, 20:59


از ذهن های کثیف چی میدونید :)))

دوستی تعریف می کرد که وقتی میخواست برای شرکتی #رزومه ارسال کنه و حتما دعوت به مصاحبه بشه، از یک حیله جالب استفاده می کرد!
تعدادی رزومه ضعیف تر از خودش و با اطلاعات فیک (در حدی که برای مصاحبه انتخاب نشن) درست میکرد و با ایمیل های فیک اونها را قبل و بعد از رزومه خودش ارسال می کرد.
با این روش، رزومه اش برای بررسی کننده رزومه ها به چشم میومد و با احتمال بیشتری دعوت میشد!

پ.ن: تصویر رو هوش مصنوعی با توجه به این موضوع ساخته

@Teachify | HamidAdldoost

برنامه نویسی | Teachify

03 Nov, 10:53


خب خداروشکر موقعیت دیگه ای پیش اومد که بریم و خودمون رو ثابت کنیم :))

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

03 Nov, 04:29


✔️ بهترین ابزارهای تست API

🔹 Postman
مزایا: کاربرپسند، قابلیت ایجاد تست‌های خودکار و مستندسازی آسان.
معایب: ممکنه در پروژه‌های بزرگ کند عمل کنه.

🔹 Insomnia
مزایا: ظاهر جذاب و پشتیبانی از GraphQL.
معایب: برخی امکانات فقط در نسخه پرو موجود هست.

🔹 SoapUI
مزایا: ایده‌آل برای تست‌های SOAP و REST، امکان تست‌های خودکار پیشرفته.
معایب: رابط کاربری قدیمی و کمی پیچیده.

🔹 Paw (فقط برای macOS)
مزایا: طراحی ویژه برای مک و مدیریت بومی API.
معایب: فقط مخصوص مک و هزینه‌بر.

🔹 Hoppscotch (قبلاً Postwoman)
مزایا: رایگان، متن‌باز، سریع و ساده.
معایب: کمبود برخی ویژگی‌های پیشرفته و نیازمند اینترنت.

🔹 cURL
مزایا: ابزار خط فرمان قدرتمند و انعطاف‌پذیر.
معایب: یادگیری‌اش برای تازه‌کارها کمی دشوار هست.

@Teachify | برنامه نویسی

برنامه نویسی | Teachify

02 Nov, 14:00


✔️ چت جی بی تی (ChatGPT) چگونه کار می کند؟

بسیاری از کاربران هنگامی که از هوش مصنوعی چت جی بی تی استفاده می‌کنند، به این فکر می‌افتند که واقعاً این سیستم چگونه پاسخ‌های خود را تولید می‌کند. در حالی که توضیح کامل این فرآیند به علت پیچیدگی آن دشوار است، اما در اینجا سعی کرده‌ایم به زبانی ساده مراحل کلی کار این مدل را توضیح دهیم. با این اطلاعات، شاید بتوانید بهتر درک کنید که وقتی سوالی از چت جی بی تی می‌پرسید، چگونه به پاسخ شما می‌رسد.

در این مقاله بخوانید: ChatGPT چگونه کار می کند؟

@kaliboys | کالی بویز

برنامه نویسی | Teachify

02 Nov, 11:30


🛑 قابل توجه تریدر های عزیز کانال - استخدام و جایزه میلیاردی 🛑

💎به جرئت میتونم بگم که متفاوت ترین و بزرگ ترین رویداد ترید ایران رو دارن برگزار میکنن.

⚠️ برای رسیدن به سود مستمر و درآمد دلاری از ترید و فارکس، توصیه میکنم که این مسابقه بزرگ رو از دست ندین و حتما شرکت بکنید، کاملا هم رایگان هستش


اطلاعات بیشتر و شرکت در رویداد معامله گر منضبط 👇
.
https://t.me/+uUA6rmlkIqViYjU0

برنامه نویسی | Teachify

02 Nov, 10:28


https://t.me/teachify_programming/7167

برنامه نویسی | Teachify

01 Nov, 11:46


#تلنگر

62% از سال 1403 گذشت، جا نمونی از اهدافت ...

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

31 Oct, 21:02


✔️ Top programming languages on GitHub.

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

31 Oct, 10:22


گیت هاب رنگ هاش رو هالووینی کرده :))

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

31 Oct, 04:30


✔️ مفهوم r و رشته‌های خام در پایتون

در پایتون، ممکن است با رشته‌هایی روبه‌رو شوید که با حرف r آغاز می‌شوند. این حرف به ما می‌گوید که این رشته یک رشتهٔ خام (raw string) است.

وقتی شما از رشته‌های معمولی استفاده می‌کنید، برخی کاراکترها مانند \n (برای newline) یا \t (برای tab) به عنوان کاراکترهای خاص شناخته می‌شوند. اما در رشته‌های خام، این کاراکترها به صورت واقعی خودشان در نظر گرفته می‌شوند.

1. رشتهٔ معمولی:
normal_string = "Hello,\nWorld!"
print(normal_string)

خروجی:
Hello,
World!


2. رشتهٔ خام:
raw_string = r"Hello,\nWorld!"
print(raw_string)

خروجی:
Hello,\nWorld!


به عنوان مثال وقتی می‌خواهید یک مسیر فایل را مشخص کنید، استفاده از رشته‌های خام می‌تواند کمک کند تا از تداخل با کاراکترهای خاص جلوگیری شود:

  path = r"C:\Users\YourName\Documents\File.txt"


و یا برای نوشتن عبارات منظم (Regular Expressions) که شامل کاراکترهای خاص هستند، رشته‌های خام می‌توانند مفید باشند:

  regex = r"\d{3}-\d{2}-\d{4}"


💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

30 Oct, 19:44


نکته‌ای کاربردی در پایتون: استفاده از `_` برای نادیده گرفتن مقادیر

در پایتون، وقتی به یک متغیر نیازی نداریم، می‌توانیم از علامت _ استفاده کنیم. این رویکرد کد شما را خواناتر و حرفه‌ای‌تر می‌کند!

مثال 1: حلقه‌ها بدون نیاز به اندیس
فرض کنید بخواهیم به‌جای اندیس‌ها فقط به مقادیر در یک لیست دسترسی داشته باشیم:

numbers = [10, 20, 30]

for _, number in enumerate(numbers):
print(number)


اینجا از _ به‌جای index استفاده می‌کنیم چون نیازی به استفاده از آن نداریم.

مثال 2: مقداردهی متغیرها
هنگام استفاده از تابعی که چندین مقدار بازمی‌گرداند، اگر همه‌ی مقادیر موردنیاز نباشد، می‌توانیم از _ برای نادیده‌گرفتن آن‌ها بهره بگیریم:

def get_user_data():
return "yousef", "Vafaei", 28

first_name, _, age = get_user_data()
print(first_name, age)

در اینجا، _ جایگزین متغیری شده که به مقدار نام خانوادگی نیازی نداریم.

💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

30 Oct, 16:59


✔️ اصل YAGNI یا "You Aren't Gonna Need It" در توسعه نرم‌افزار

تو برنامه‌نویسی گاهی وسوسه می‌شیم امکانات اضافه‌ای رو از اول به پروژه‌هامون اضافه کنیم که شاید هیچ‌وقت نیازی بهشون نداشته باشیم.

اصل YAGNI بهمون می‌گه: «چیزهایی رو پیاده‌سازی نکن که فعلاً نیاز نداری!»

چرا؟ چون این کار می‌تونه وقت زیادی رو بگیره و کد پروژه رو پیچیده و شلوغ کنه.

فرض کن یه سیستم مدیریت وظایف می‌سازی. اولین نسخه باید فقط وظایف رو نمایش بده، اضافه و حذف کنه. حالا اگه از اول قابلیت‌های دسته‌بندی، اولویت‌بندی یا زمان‌بندی رو هم اضافه کنی، داری از اصل YAGNI فاصله می‌گیری. بهتره اول نیاز اصلی رو بسازی و بعد اگه به امکانات بیشتر نیاز شد، اون موقع به پروژه اضافه‌شون کنی.

میشه گفت که YAGNI یعنی: به جای اضافه‌کاری، روی نیازهای واقعی تمرکز کن!
💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

29 Oct, 21:49


بالاخره باید از یه جایی شروع کرد
یه روز برای سنیوری میریم مصاحبه یه روز برای کارآموزی :))

@Teachify

برنامه نویسی | Teachify

29 Oct, 18:29


✔️ انواع Join در SQL به زبان ساده (Inner, Left, Right و Full Join)

در دنیای پایگاه‌ داده‌ها، Join به عنوان ابزاری کلیدی برای ترکیب داده‌ها از چند جدول استفاده می‌شود. استفاده صحیح از Join به شما این امکان را می‌دهد تا به داده‌های متنوع دسترسی پیدا کنید و تحلیل‌های عمیق‌تری بر روی اطلاعات خود انجام دهید. در این مقاله، به بررسی انواع Join در SQL، رابطه بین جداول، زمان استفاده از Join و نحوه انتخاب نوع مناسب Join خواهیم پرداخت.

در این مقاله بخوانید: انواع Join در SQL به زبان ساده


💻 @kaliboys | کالی بویز

برنامه نویسی | Teachify

29 Oct, 13:54


سلام طبق قولی که داده بودم سوالاتی که خاطرم بود رو براتون نوشتم.
خیلیاش رو یادم نیومد ولی اگه خاطرم بیاد توی کامنت ها اضافه میکنم.

مثلا از کوئری های sql هم بود چند تا که دقیق یادم نیست.

سوالات دیتابیسی
1. تفاوت بین LEFT JOIN و INNER JOIN چیست؟ و دقیقا توی دیتابیس چی میشه وقتی این کارو میکنیم؟
2. ایندکسینگ (Indexing) چیه و اون پشت دقیقا چه اتفاقی می افته؟

سوالات گیت
3. فرق بین merge و rebase در گیت؟
4. اسکواش در گیت چیه؟ چطوری ازش استفاده کنیم؟ و چطوری Squash رو برگردونیم؟
5. پروژه رو کلی تغییر دادیم و کامیت کردیم. حالا میخواییم کلا برگردونیم حالت قبل از چه دستوری استفاده میکنیم و چرا؟ مثلا من گفتم git reset --hard بعدش گفتن بقیه آرگومان هاش چیه و ...

سوالات پایتونی
6. در پایتون استرینگ ها mutable هستند یا immutable ؟ مثلا وقتی گفتم استرینگ ها immutable هستند توضیح انحرافی دادن و گفتن مگه نمیتونیم 2 تا استریگ رو با هم جمع کنیم و ... در حالی که اینجوری یه رشته جدید ایجاد میشه و باید حواستون باشه

7. چطوری توی پایتون آدرس حافظه‌ی یک شیء رو ببینیم؟
8. چطوری توی یک کلاس از with استفاده کنیم؟

سوالات جنگو
9. چطوری از groupby در جنگو ORM استفاده کنیم (لپ تاپ رو گذاشتن جلوم و گفتن کدش رو بزن) و همچنین وقتی این دستور رو میزنیم توی پشت صحنه چی میشه؟
10. از متدهای annotate() و aggregate() سوال کردن

سوالات تایم کامپلکستی
11. از Time Complexity ها سوال کردن

12. از Osi model و پروتکل http و tcp و udp هم سوال کردن

ببینید سوالات دقیقا همینجوری پرسیده نمیشد، مثلا یه چیزی توضیح داده میشد و از بینش سوال در میومد.
بهم گفتن اخرین بار کی دست به کد بودی؟ ورژن فعلی پایتون و جنگو رو بین حرف ها ازم پرسیدن :))
تا ببینین اصلا توی باغ هستم یا نه

💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

28 Oct, 07:54


برسم خونه براتون مینویسم مصاحبه چطوری بود و چه سوالاتی پرسیدن.😃

برنامه نویسی | Teachify

28 Oct, 04:29


✔️ تفاوت سشن (Session) و کوکی (Cookie)

سشن (Session) و کوکی (Cookie) هر دو ابزارهایی برای ذخیره اطلاعات کاربر در وب‌اپلیکیشن‌ها هستند، اما تفاوت‌های کلیدی با هم دارند:

1. محل ذخیره‌سازی
- کوکی: روی مرورگر کاربر ذخیره می‌شود. این اطلاعات به‌صورت مستقیم در دستگاه کاربر قرار دارد و هنگام ارسال هر درخواست به سرور، به صورت خودکار همراه درخواست فرستاده می‌شود.
- سشن: روی سرور ذخیره می‌شود و اطلاعات کاربر در سمت سرور نگهداری می‌شود. سشن تنها یک شناسه (Session ID) را به کوکی کاربر ارسال می‌کند که این شناسه به سشن ذخیره‌شده در سمت سرور اشاره می‌کند.

2. امنیت
- کوکی‌ها نسبت به سشن‌ها از امنیت کمتری برخوردارند، زیرا مستقیماً روی دستگاه کاربر ذخیره می‌شوند و ممکن است توسط کاربر یا سایر اپلیکیشن‌ها دستکاری شوند. به همین دلیل برای ذخیره اطلاعات حساس توصیه نمی‌شوند.
- سشن‌ها امنیت بالاتری دارند، زیرا در سمت سرور ذخیره می‌شوند و کاربر به اطلاعات سشن دسترسی ندارد. تنها Session ID برای کاربر ارسال می‌شود که به اطلاعات سشن در سرور اشاره می‌کند.

3. طول عمر
- کوکی‌ها معمولاً دارای تاریخ انقضاء هستند و می‌توانند ماندگار باشند، حتی پس از بسته شدن مرورگر.
- سشن‌ها به طور معمول طول عمر کوتاهی دارند و با بستن مرورگر یا پس از مدت‌زمان خاصی (مثل ۳۰ دقیقه عدم فعالیت) منقضی می‌شوند، مگر اینکه به‌طور دستی تنظیم شوند.

4. حجم داده
- کوکی‌ها محدودیت حجمی دارند (معمولاً حداکثر ۴ کیلوبایت) و نمی‌توان اطلاعات زیاد در آن‌ها ذخیره کرد.
- سشن‌ها محدودیت حجمی کمتری دارند، زیرا روی سرور نگهداری می‌شوند و محدودیت آن به منابع سرور بستگی دارد.

مثال از کاربردها:
- کوکی‌ها برای ذخیره اطلاعاتی که نیاز است در مرورگر کاربر حفظ شوند مناسب‌اند، مانند حفظ حالت ورود کاربر یا ترجیحات وب‌سایت.
- سشن‌ها بیشتر برای ذخیره اطلاعاتی استفاده می‌شوند که امنیت و محرمانگی بیشتری لازم دارند، مثل اطلاعات احراز هویت کاربر در طول یک نشست کاری.

به طور خلاصه، کوکی برای ذخیره اطلاعات کاربر در سمت کلاینت و سشن برای ذخیره امن‌تر اطلاعات در سمت سرور استفاده می‌شود.
💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

27 Oct, 21:24


✔️ وقتی توی پایتون میگیم کوتیشن ها رو اسکیپ کردیم یعنی چی؟

در پایتون، Escape Character یعنی از کاراکتر بک‌اسلش (\) برای جلوگیری از تفسیر خاص یک کوتیشن درون یک رشته استفاده کرده‌ایم. اسکیپ کردن به این دلیل انجام می‌شود که در پایتون کوتیشن‌ها برای تعریف رشته‌ها استفاده می‌شوند و اگر داخل رشته‌ای به آن‌ها نیاز داشته باشیم، باید به پایتون بفهمانیم که این کوتیشن، پایان‌دهنده رشته نیست، بلکه بخشی از متن است.

فرض کنیم می‌خواهیم متنی با کوتیشن‌های داخلی داشته باشیم:

text = "He said, \"Hello!\""


در اینجا از بک‌اسلش (\) قبل از کوتیشن‌های داخل متن استفاده کردیم. با این کار، پایتون متوجه می‌شود که کوتیشن‌ها بخشی از متن هستند و رشته تمام نشده است. در این حالت، نتیجه به شکل زیر خواهد بود:

He said, "Hello!"


همچنین می‌توانیم از اسکیپ کردن برای سایر کاراکترها استفاده کنیم. مثلاً:

- \' برای کوتیشن تکی
- \" برای کوتیشن دوتایی
- \\ برای خود بک‌اسلش

💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

27 Oct, 16:07


✔️ متدهای جادویی (Dunder Methods) در پایتون

متدهای جادویی در پایتون یا آنچه که در اصطلاحات برنامه‌نویسی پایتون به آن‌ها Dunder methods گفته می‌شود، یکی از ویژگی‌های جالب و قدرتمند در برنامه‌نویسی شی‌ءگرا هستند. این متدها، که با دو زیرخط (دبل آندر اسکور) در ابتدا و انتهای خود شناخته می‌شوند، به برنامه‌نویسان امکان می‌دهند تا رفتار کلاس‌ها و اشیاء پایتون را در موقعیت‌های مختلف کنترل و سفارشی‌سازی کنند.

با استفاده از متدهای جادویی در پایتون، می‌توانید عملیاتی مانند مقایسه، جمع، ضرب، تبدیل به رشته و… را در کلاس‌ها و اشیاء خودتان تعریف کنید و هر جا نیاز بود از آن‌ها به شیوه‌ای مشابه با انواع داده‌های داخلی پایتون بهره‌برداری کنید. در این مقاله، به بررسی برخی از مهم‌ترین و پرکاربردترین این متدها می‌پردازیم.

در این مقاله بخوانید: متدهای جادویی (Dunder Methods) در پایتون

💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

27 Oct, 05:48


یک و نیم ساعت راه اومدم تا رسیدم به این شرکت(نیم ساعت زودتر رسیدم)، بعدش منابع انسانی توی اون نیم ساعت زنگ زده میگه ببخشید کنسل شد ... و یه تایم دیگه تنظیم میکنیم.

باید چی میگفتم بهش؟

برنامه نویسی | Teachify

26 Oct, 21:48


✔️ مثل من عجول نباشید :))

قضیه اینه که فردا قرار مصاحبه با یک شرکتی دارم.
از این رو برای رفتن به شرکت همش با خودم یک به دو میکردم که با ماشین خودم برم بهتره یا از حمل و نقل عمومی استفاده کنم ...!
چند دیقه پیش که داشتم مجدد پیام دعوت به مصاحبه رو چک میکردم، دیدم که این پیام خوب رو نوشتن و واقعا توی تهران اهمیت دادن به همچین مسئله ای خیلی مهمه.

پ.ن: تایتل هم به خاطر این بود که اولش متن دعوت به مصاحبه رو خوب نخونده بودم که این خط متن رو ببینم.

💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

25 Oct, 18:52


✔️ شرح: وقتی برای اکثر آگهی های برنامه نویسی رزومه فرستادی و اکثرا بی دلیل رد شدن و اومدی از chatgpt دلجویی میخوای 😬

💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

25 Oct, 14:29


✔️ یه ریپو خوب براتون پیدا کردم: تمامی الگوریتم های پیاده سازی شده در پایتون

📱 https://github.com/TheAlgorithms/Python

💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

25 Oct, 10:46


✔️ گرفتن اطلاعات جغرافیایی IP با پایتون

با یک برنامه ساده پایتون می‌توانیم اطلاعات مهمی مثل کشور، منطقه زمانی و ISP یک آدرس IP را به دست بیاوریم. در این مقاله، نحوه استفاده از API و کتابخانه‌های استاندارد پایتون برای این کار را توضیح داده‌ایم.

در این مقاله بخوانید: نحوه پیدا کردن اطلاعات IP با پایتون

💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

24 Oct, 04:29


✔️ تایپ هینت در پایتون

تایپ هینت (Type Hint) روشی برای مشخص کردن نوع داده‌های ورودی و خروجی تابع‌ها است. این قابلیت از نسخه 3.5 به پایتون اضافه شده و کد رو خواناتر و قابل‌فهم‌تر می‌کنه.

در این مقاله بخوانید: تایپ هینت (Type Hint) در پایتون

💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

23 Oct, 20:12


سلام
دوستان میخوام لوگو کانال رو عوض کنم
اگه مایلید از طرح شما استفاده کنم، لوگو مد نظرتون رو توی قسمت کامنت برام ارسال کنید.🙏
💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

23 Oct, 18:49


✔️ این عالی بود😂😂

#fun #فان
💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

21 Oct, 07:40


✔️ مرحله‌ی آخر استخدامتون، مواظب افکار سمی مصاحبه کننده باشید!

ممکنه به شما بگن که قبول شدی. اما یه شرکت بهتر برات سراغ دارم حقوق و شرایط بهتر و دورکاری کامل. تورو برای اونجا استخدام می‌کنم!
اگه به اشتباه یک لحظه از اون شرکت سوالی پرسیدین، طرف میفهمه که شرکت اون رو دوست ندارید و ....

برگرفته از افکار یک برنامه نویس تاکسیک !

پ.ن: تصویر هم chatgpt ساخته.

💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

19 Oct, 10:13


✔️ توجیه قشنگ دیجیکالا :))


💻@Teachify | برنامه نویسی

برنامه نویسی | Teachify

18 Oct, 10:49


حدودا یکی دو هفته بود که توی لینکدین فقط مطالبی در مورد سیگنال ها در جنگو برام میومد! و جالبیش اینه که دیروز مصاحبه داشتم و یکی از سوالاتی که مصاحبه کننده زیاد روش مانور داد همین سیگنال ها بود!
اینکه خوبن یا نه؟ به جاش میشه از چیا استفاده کرد؟ جایگزین خوبش چیه؟ و ...

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

18 Oct, 09:40


شما توی کدنویسی هاتون چیا رو تبدیل به کد میکنید؟

پ.ن: من خودم چای و قهوره :))

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

16 Oct, 21:13


✔️ آموزش استفاده از متد bulk_create در جنگو

اگر شما تعداد زیادی شیء برای ایجاد دارید و نمی‌خواهید با هر فراخوانی یک کوئری جدید به پایگاه داده بزنید، متد bulk_create می‌تواند به شما کمک کند. این متد به شما اجازه می‌دهد تا چندین شیء را تنها با یک کوئری به پایگاه داده اضافه کنید، که این باعث افزایش سرعت و بهینه‌سازی عملکرد برنامه شما می‌شود.

فرض کنید یک مدل به نام Student داریم:

from django.db import models

class Student(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
age = models.IntegerField()


حالا می‌خواهیم چند دانش‌آموز را با استفاده از bulk_create اضافه کنیم:

from .models import Student

# لیستی از اشیاء Student
students = [
Student(first_name="Ali", last_name="Ahmadi", age=12),
Student(first_name="Sara", last_name="Hosseini", age=11),
Student(first_name="Reza", last_name="Moradi", age=13),
]

# ایجاد تمام اشیاء با یک کوئری
Student.objects.bulk_create(students)


با این کار، هر سه دانش‌آموز با یک کوئری به پایگاه داده اضافه می‌شوند! این روش به طور قابل توجهی سریع‌تر از ایجاد هر شیء به صورت جداگانه است.

#جنگو #Django #پایتون #bulk_create #پایگاه_داده #کدنویسی #آموزش

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

15 Oct, 20:54


✔️ 48 قانون قدرت که توی سیاست و کسب و کار دونستنش از نون شب واجب‌تره:

1. هرگز مافوق خود را تحت‌الشعاع قرار ندهید.
2. دوستانتان را خیلی نزدیک به خود نگه ندارید، دشمنانتان را به خدمت بگیرید.
3. نیت واقعی خود را پنهان کنید.
4. کمتر از آنچه که لازم است بگویید.
5. بیش از حد وابسته به دیگران نباشید، یاد بگیرید خودتان کاری انجام دهید.
6. شهرت خود را به هر قیمتی حفظ کنید.
7. توجه و تمرکز دیگران را به سمت خود جلب کنید.
8. دیگران را وادار به انجام کارهای خود کنید، اما اعتبار آن را برای خود نگه دارید.
9. در زمان درست دست به اقدام بزنید.
10. از هرگونه آلوده شدن به افراد شکست خورده بپرهیزید.
11. دیگران را در حالت نامطمئن و ترس نگه دارید.
12. برای دیگران با صداقت و وفاداری کامل رفتار کنید، اما به آن‌ها اعتماد نکنید.
13. وقتی از دشمنان خود کمک می‌گیرید، آنان را کاملاً نابود کنید.
14. ظاهری دوستانه و مهربان نشان دهید، اما هرگز به دیگران اجازه سوءاستفاده ندهید.
15. دشمن خود را کاملاً نابود کنید.
16. در حین صحبت کردن، طوری صحبت کنید که آنچه نگفتید تأثیر بیشتری داشته باشد.
17. در کارهای خود اسرارآمیز باشید.
18. دیگران را وادار کنید برای شما کار کنند و خودتان در پشت صحنه بمانید.
19. هرگز از کسی که آسیب‌دیده است سوءاستفاده نکنید.
20. برای دشمنانتان راه فرار بگذارید.
21. برای دسترسی به اطلاعات، تظاهر به اعتمادسازی کنید.
22. به وسیله همدردی با دیگران خود را دوست‌داشتنی نشان دهید.
23. پایان کارهای خود را از قبل برنامه‌ریزی کنید.
24. نقش خود را در بازی قدرت با دقت انتخاب کنید.
25. خود را از نو بسازید.
26. ذهن دیگران را با استفاده از محیطی که در آن قرار دارند تحت تأثیر قرار دهید.
27. برای دیگران ارزش قائل شوید و احترام جلب کنید.
28. با جسارت وارد عمل شوید.
29. همه چیز را تا انتها برنامه‌ریزی کنید.
30. موفقیت‌های خود را برای ایجاد یک موقعیت محکم و بادوام استفاده کنید.
31. گزینه‌ها را کنترل کنید: کاری کنید که دیگران با انتخاب‌های محدود شما بازی کنند.
32. از رؤیاهای دیگران استفاده کنید.
33. افراد را بیازمایید و نقاط ضعف آنها را کشف کنید.
34. خود را به شکل پادشاه یا ملکه جلوه دهید و مانند آنان عمل کنید.
35. هنر زمان‌بندی را بیاموزید.
36. چیزهایی را که نمی‌توانید داشته باشید، بی‌اهمیت نشان دهید.
37. فضایی برای خود ایجاد کنید تا مردم به شما نیاز پیدا کنند.
38. به چیزهای کوچک خود توجه نکنید، با چشم‌اندازهای بزرگ تأثیر بگذارید.
39. مردم را با رفتارهای غیرمنتظره شگفت‌زده کنید.
40. آنچه رایگان به‌دست می‌آید، بی‌ارزش است.
41. هرگز قدم در کفش‌های فرد بزرگی نگذارید.
42. حمله‌هایتان را به قلب دشمن بزنید، اما با دقت.
43. دیگران را وادار به ترس و لرز نکنید.
44. به راحتی اظهار به پیروزی نکنید، افراد را وادار کنید که برای آن بجنگند.
45. خودتان را بازآفرینی کنید.
46. هیچ‌گاه از دیگران بیش از اندازه جلو نزنید.
47. هر زمان که قدرتی به‌دست آوردید، بر روی آن تمرکز کنید.
48. در حین پیروزی، دست از تلاش نکشید.
💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

12 Oct, 07:59


✔️ بهینه‌سازی زمان کدنویسی مثل حرفه‌ای‌ها با افزونه WakaTime در VSCode

اگه می‌خوای بدونی چقدر از وقتت رو پشت سیستم به کدنویسی، دیباگ و یادگیری زبان‌های برنامه‌نویسی مختلف می‌گذرونی، WakaTime بهترین ابزار برای توئه!

به‌تازگی این اکستنشن رو توی VSCode نصب کردم (خیالت راحت، برای بقیه IDEها هم هست!) و فقط با گرفتن یه API Key از سایتش، تونستم به سادگی زمان‌های کدنویسیم رو ردیابی کنم. حالا می‌تونم دقیق ببینم چقدر برای هر زبان وقت گذاشتم و کجاها باید بهینه‌تر کار کنم!

شما هم تست کنین.

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

07 Oct, 13:40


✔️ چه سیاستی پشت بعضی از این #آگهی ها وجود داره؟

اول درخواست رد میشه و بعدش مشاهده میشه!

پ.ن: طرف گفته حالا که رد کردم یه نگاهی هم بهش بکنم که رزومه بدون مشاهده رد نشده باشه :((

یا مشکل از اطلاع رسانی سایت هست؟

شما بگین چی به چیه؟

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

07 Oct, 09:27


✔️ 4 مفهوم اصلی در برنامه نویسی شی گرا

✔️کپسوله‌سازی یا Encapsulation: مخفی کردن داده‌ها و دسترسی به آنها فقط از طریق متدها.

✔️وراثت یا Inheritance: ایجاد کلاس‌های جدید از کلاس‌های موجود و استفاده مجدد از کد.

✔️چندریختی یا Polymorphism: توانایی استفاده از متدهای یکسان با رفتارهای مختلف در کلاس‌های متفاوت.

✔️انتزاع یا Abstraction: مخفی کردن جزئیات پیچیده و نمایش دادن فقط بخش‌های مهم از طریق کلاس‌های انتزاعی.

❤️ @Teachify | برنامه نویسی

برنامه نویسی | Teachify

06 Oct, 16:03


✔️ چطوری گیت رو بهتر یاد بگیریم؟

یادگیری Git تنها با مطالعه‌ی مستندات و مقاله‌های مختلف می‌تواند چالش‌برانگیز باشد. چیزی که می‌تواند این مسیر را هم سریع‌تر و هم جذاب‌تر کند، استفاده از ابزارهایی است که دستورات Git را به‌صورت تصویری و تعاملی نمایش می‌دهند. این ابزارها امکان تجربه‌ی زنده‌ی دستورات و مشاهده‌ی نتایج آن‌ها را فراهم می‌کنند، که برای درک بهتر مفاهیم بسیار مفید است.

دو ابزار شناخته‌شده در این زمینه، LearnGitBranching و Visualizing Git هستند. این ابزارها به کاربران اجازه می‌دهند که دستورات Git را به‌صورت بصری تجربه کرده و تأثیر آن‌ها را در لحظه مشاهده کنند. حتی اگر به Git تسلط کافی دارید، این ابزارها می‌توانند درک شما را از نحوه‌ی کار این سیستم نسخه‌سازی عمیق‌تر کنند.

شما برای یادگیری و تسلط بر Git از چه ابزارها و منابعی استفاده می‌کنید؟

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

05 Oct, 17:04


✔️ مقایسه فریمورک های بک‌اند

مقایسه شده توسط CHAT GPT 4

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

03 Oct, 21:37


وقتی دارم رو پروژه قدیمی کار میکنم :))

#fun #فان
💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

03 Oct, 09:44


✔️ برنامه‌نویسی Async و Sync؛ تفاوت‌ها و کاربردها

برنامه نویسی Async (غیر همزمان) و Sync (همزمان) دو مدل متفاوت از اجرای کدها در برنامه‌نویسی هستند. اما فرق آن‌ها در چیست؟

در برنامه نویسی Sync (همزمان)، دستورات به صورت دنباله‌دار و پشت سر هم اجرا می‌شوند. هر خط کد باید کامل اجرا شود تا نوبت به خط بعدی برسد. به زبان ساده، برنامه باید منتظر بماند تا یک کار تمام شود و سپس کار بعدی را آغاز کند. فرض کنید شما در صف خرید ایستاده‌اید، تا نفر قبلی خریدش تمام نشود، نوبت به شما نمی‌رسد.

+ ساده و قابل پیش‌بینی
+ مناسب برای کارهای ساده و بی‌وقفه
- برای عملیات‌های زمان‌بر (مانند درخواست‌های شبکه) باعث کند شدن برنامه می‌شود.

در این برنامه‌نویسی Async (غیر همزمان)، برنامه منتظر تکمیل یک دستور نمی‌ماند و به کارهای دیگر ادامه می‌دهد. این به شما اجازه می‌دهد تا عملیات‌های طولانی (مثل دریافت داده از سرور) به‌طور موازی و بدون انتظار انجام شوند. تصور کنید شما سفارش خود را به رستوران می‌دهید و در حالی که غذا آماده می‌شود، می‌توانید به کارهای دیگر بپردازید.

+ مناسب برای عملیات‌های طولانی و زمان‌بر
+ افزایش کارایی و سرعت برنامه
- پیچیدگی بیشتر در کدنویسی و مدیریت خطاها

در کل، اگر برنامه‌ای دارید که با منابع بیرونی مثل شبکه، فایل‌ها یا دیتابیس کار می‌کند، Async گزینه بهتری است. اما اگر کار شما ساده است و نیازی به هم‌زمانی ندارید، Sync ساده‌تر و قابل فهم‌تر است.
💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

02 Oct, 07:42


⬇️کاهش گفتگوهای برنامه‌نویسان به خاطر وجود ChatGPT

▪️توی یکی از بزرگ‌ترین انجمن‌های تخصصی برنامه‌نویسان به اسم Stack Overflow، تعداد سوال و جواب‌ها 25 درصد کم شده!

▪️این کاهش درست از زمانی شروع شده که مدل زبانی OpenAI، یعنی همون ChatGPT، عرضه شد. بیشترین تأثیر این موضوع هم روی سوالات مربوط به Python و JavaScript بوده.

▪️محققان می‌گن اگه این روند ادامه پیدا کنه و برنامه‌نویسان دیگه توی انجمن‌ها بحث نکنن، ممکنه یه مشکل جدید به وجود بیاد: دیگه اطلاعات کافی برای آموزش مدل‌های هوش مصنوعی وجود نخواهد داشت!
💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

01 Oct, 20:41


✔️ 7 نوع join مختلف در sql که حتما باید بدونید

💻 @Teachify | DevTwitter

برنامه نویسی | Teachify

26 Sep, 20:56


چقدر حقه این تصویر :)))))

#fun #فان
💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

26 Sep, 06:29


✔️ چندتا جمله انگیزشی بخونیم:

1. "The only limit to our realization of tomorrow is our doubts of today." – Franklin D. Roosevelt
(تنها محدودیت ما برای تحقق فردا، شک‌های امروزمان است.)

2. "Success is not final, failure is not fatal: It is the courage to continue that counts." – Winston Churchill
(موفقیت نهایی نیست، شکست مرگبار نیست؛ شجاعت ادامه دادن مهم است.)

3. "Don’t watch the clock; do what it does. Keep going." – Sam Levenson
(به ساعت نگاه نکن؛ مثل خودِ ساعت باش. به حرکت ادامه بده.)

4. "The harder you work for something, the greater you’ll feel when you achieve it."
(هر چه سخت‌تر برای چیزی کار کنی، حس بهتری از رسیدن به آن خواهی داشت.)

5. "Doubt kills more dreams than failure ever will." – Suzy Kassem
(شک، بیشتر از شکست، رویاها را می‌کُشد.)

6. "Your limitation—it's only your imagination."
(محدودیت تو فقط در خیالت است.)

7. "Dream it. Wish it. Do it."
(رویاپردازی کن. آرزو کن. انجامش بده.)

8. "Success is not about being the best, it’s about being better than you were yesterday."
(موفقیت به معنای بهترین بودن نیست، بلکه به معنای بهتر بودن از دیروز خود است.)

9. "Believe in yourself and all that you are. Know that there is something inside you that is greater than any obstacle." – Christian D. Larson
(به خودت و به تمام آنچه که هستی، باور داشته باش. بدان که چیزی درون تو هست که بزرگتر از هر مانعی است.)

10. "The secret of getting ahead is getting started." – Mark Twain
(راز پیشرفت، شروع کردن است.)

💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

25 Sep, 12:53


✔️ اگر در دانشگاه علوم کامپیوتر یا مهندسی کامپیوتر درس نخوندین و همیشه حسرت این رو داشتین تو یکی از دانشگاه‌های برتر تحصیل کنید، این ریپو برای شماست اگر پشتکار و تلاش لازم رو داشته باشین.

github.com/ossu/computer-science

#RezaJafari
💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

23 Sep, 17:03


برنامه نویسی | Teachify pinned Deleted message

برنامه نویسی | Teachify

23 Sep, 15:01


اونایی که خانوم هاشون هنرمند هست مراقب لپ تاپشون باشن :))

#fun #فان
💻 @Teachify | برنامه نویسی

برنامه نویسی | Teachify

23 Sep, 13:47


✔️ ‏زیر دلم درد گرفت بخدا :))

پ.ن: از جمله آگهی سایت های انجام پروژه

#fun #فان
💻 @Teachify | برنامه نویسی