𝐶𝑜𝑑𝑒 𝐶𝑎𝑡
141 subscribers
48 photos
38 videos
3 files
20 links
A cat 🐈‍⬛ wandering through the world of code.

Python • Django • Web • Tech •BackEnd
ــــــــــــــــــــــــــــــــــــــــــــــــــ
The Margins Channel:
@HashiaHa
Discussion:
@Hashia0

Directory: t.me/CodeCat_Dev?direct
Download Telegram
اگه موقع یادگیری برنامه نویسی یا حالا هر موضوعی دارید نوت برداری می‌کنید، حتما حداقل دوبار مرور اش کنید اینکار باعث میشه نوت برداری تون بی فایده نباشه :)

@MPL_Code
یه تکنیک میخام بهتون بگم، در کنار اینکه زبان برنامه نویسی مورد نظرتون رو تخصصی یاد میگیرید، زبان انگلیسی تون هم تقویت میشه:

برید داکیومنت همون زبان رو بخونید شاید اوایل فکر کنید سخته و متوجه نشید ولی همین موضوع یه نکته داره ، مواردی که متوجه نمی‌شید رو با گوگل ترانسلت ترجمه کنید نوت برداری کنید، کلمه به کلمه و جمله به جمله همه رو تا درک نکردید و نفهمیدید به آسونی ازش نگذرید، اینطوری به دانش برنامه نویسی و زبان انگلیسی تون اضافه میشه،
البته هرچند AI هست و در موارد خیلی پیچیده میتونید ازش بخواید براتون توضیح ساده یی بده، ولی هیچی بنظر من جای روش های قدیمی و خاک خورده رو نمیگیره، این مسیر مداومت میخاد و شما تهش به پیر(متخصص) مسیر خودتون تبدیل میشید.
#تکنیک
@CodeCat_Dev
This media is not supported in your browser
VIEW IN TELEGRAM
اگه تو مسیر یادگیری هستی و نمیدونی گام بعدی تون چه چیزی یادبگیرید یا کلا کدوم مسیر رو برید این سایت عالیه:
roadmap.sh

و اگه پایتون رو انتخاب کردید و هدف بعدی تون جنگو هست این ریپو ادامه مسیر رو براتون چیده:
https://github.com/HHHMHA/django-roadmap

@CodeCat_Dev
Media is too big
VIEW IN TELEGRAM
از همون اول، برنامه‌نویسی رو انتخاب کردم چون از ساختن لذت می‌بردم.
از اون لحظه‌ای که کدِ لعنتی بالاخره کار می‌کنه و یه چیزی از هیچ ساخته می‌شه — چیزی که قبلش وجود نداشت.
حالا هوش مصنوعی اومده و همه می‌گن «دیگه لازم نیست خودت کد بزنی».
می‌گن سریع‌تره، ارزون‌تره، بی‌خطاست.
شاید راست بگن. شاید بازار عوض شده. شاید کارفرماها دنبال سرعت باشن، نه سلیقه.
ولی من ترجیح می‌دم خودم این کار رو انجام بدم.
نه از سر لجبازی.
از سر عشق.
چون وقتی خودم می‌نویسم، می‌فهمم. وقتی می‌فهمم، رشد می‌کنم. وقتی رشد می‌کنم، زنده‌ام.
می‌دونم آدم‌هایی هستن که مثل من فکر می‌کنن.
و اگه هم نباشن؟ برام مهم نیست.
حتی اگه باعث بشه کارفرما منو نخواد، حتی اگه بیکار بمونم —
باز هم همون کاری رو می‌کنم که بهش علاقه دارم.

چون موفقیت برای من یعنی رضایت خودم، نه فقط تأیید بازار.

🐾 @CodeCat_Dev
امروز فهمیدم یکی از خطرناک‌ترین دشمنان برنامه‌نویس‌ها باگ‌های پیچیده نیستن؛ یه حرف بزرگ و کوچیک هست.
من توی مدل نوشته بودم:
Product
بعد توی Serializer با اعتمادبه‌نفس نوشتم 🤣
product
جنگو هم گفت: «پیشی جونم همچین فیلدی نداریم.»
من: «چطور نداریم؟ خودم ساختمش!»
جنگو : «آره، ولی اسمش Product ـه، نه product...»
البته این اشتباه منو اینطوری بهم‌ نگفت دو ساعت سرش خودم رو به این در و اون در زدم
خلاصه چند ساعتی زندگی‌مو مرور کردم و فهمیدم تمام این مدت داشتم سر P و p با فریم‌ورک بحث می‌کردم.
درس امروز:
پایتون به حروف بزرگ و کوچک رحم نمی‌کنه.
این‌دو تا Product و product برای پایتون یکی نیستن.
یک حرف کوچیک، یک ارور بزرگ.
پ.ن: بنده این موضوع رو میدونستم ولی خب پیش میاد 🤣

🐾 @CodeCat_Dev
🐍 یه قابلیت کاربردی پایتون که باعث میشه کد تون تمیزتر بشه
تا حالا خواستید چند مقدار رو هم‌زمان از یک لیست بردارید و شماره‌ی هر کدوم رو هم داشته باشید؟

به‌جای این:
names = ["Ali", "Sara", "Mina"]

for i in range(len(names)):
print(i, names[i])

پایتون یک راه تمیزتر داره: enumerate() 👇
names = ["Ali", "Sara", "Mina"]

for index, name in enumerate(names):
print(index, name)

خروجی:
0 Ali
1 Sara
2 Mina

حتی می‌تونید شماره‌گذاری رو از ۱ شروع کنید:
for index, name in enumerate(names, start=1):
print(index, name)

خروجی:
1 Ali
2 Sara
3 Mina

نکته: enumerate() وقتی خیلی کاربردیه که هم‌زمان به خود مقدار و شماره/ایندکس آن نیاز دارید؛ بدون اینکه مجبور باشید با range(len(...)) کار کنید.

🐾@CodeCat_Dev
شده بخوایید چند تا ترمینال تو VSCodeهمزمان باز کنید؟
اینجایی که تو عکس خط کشیدم اینکار رو خیلی تمیز انجام میده

🐾 @CodeCat_Dev
وقتی فقط سر یک اسمگذاری اشتباه متغییر پنیک می‌کنی:🤭🫣

🐾 @CodeCat_Dev
Tirishko
Heydoo Hedayati
عاشق جنوب و لهجه شون م

🐾 @CodeCat_Dev
𝐶𝑜𝑑𝑒 𝐶𝑎𝑡
Photo
نماد لینوکس، پنگوئنی به نام Tux است که چاق و نشسته به نظر می‌رسد. دلیل این طراحی ترکیبی از تاریخچه، طنز و نمادگرایی است:

۱. داستان انتخاب پنگوئن (۱۹۹۶):
لینوس توروالدز (خالق لینوکس) گفته بود که وقتی در استرالیا بوده، یک پنگوئن کوچک او را نوک زده و همین باعث شد به فکر استفاده از پنگوئن به عنوان نماد بیفتد. او این حیوان را «بامزه و دوست‌داشتنی» می‌دانست، برخلاف نمادهای ترسناک یا خیلی جدی مثل روباه یا عقاب که بعضی پیشنهاد داده بودند.

۲. چرا چاق و نشسته؟

· طراحی اولیه توسط لری ایوینگ (۱۹۹۶): او Tux را طراحی کرد و عمداً او را با شکم گرد و حالت نشسته کشید تا بی‌آزار، خودی و بامزه به نظر برسد، نه یک شکارچی یا موجود قدرتمند.
· طنز و فروتنی: پنگوئن‌ها پرنده‌هایی هستند که پرواز نمی‌کنند و روی زمین دست‌وپا چلفتی‌اند، اما در آب بسیار ماهرند. این استعاره‌ای بود از اینکه لینوکس هم ممکن است در ابتدا ساده و بی‌ادعا به نظر برسد، اما در عمل قدرتمند است.
· حالت نشسته: نشان‌دهنده آرامش، اعتماد به نفس و «آماده بودن» است، نه پرخاشگری.

۳. نام Tux:
از ترکیب Torvalds و Unix ساخته شده (یا به روایتی از Tuxedo، چون پنگوئن‌ها شبیه کت‌وشلوار هستند).

۴. چرا چاق؟
در طراحی‌های اولیه، اندام گرد و توپُر Tux باعث می‌شد قابل لمس و دوستانه باشد و از نمادهای خشن و نظامی‌گونه فاصله بگیرد. این با فلسفه متن‌باز (Open Source) که مبتنی بر همکاری و اجتماع است، همخوانی داشت.

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

#لینوکس

🐾 @CodeCat_Dev
یادتونه بچه بودیم پلانکتون رو مسخره میکردیم که با یه مانیتور ازدواج کرده؟

🐾 @CodeCat_Dev
Sure Thing
Miguel
برای وقتی که کد نمی‌زنی.

#پیشنهاد‌پیشی

🐾 @CodeCat_Dev
مطمئناً براتون پیش اومده که یه کتابخانه یا پکیجی رو توی VSCode نصب کردید یا هر تغییراتی رو آوردی، ولی تغییرات اعمال نشده و نتونستید ازش استفاده کنید، و مجبور شدید IDE رو ببندید و دوباره باز کنید. ولی یه راه سریع‌تر هم هست.
Ctrl+Shift+P

رو بزنید و از منوی دستوری گزینه‌ی
 Python: Clear cache and reload the window

رو انتخاب کنید. همین کار حکم همون بستن و باز کردن VSCode رو داره، بدون اینکه پنجره رو از دست بدید.

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

#تکنیک‌

🐾 @CodeCat_Dev
تا حالا شده موقع push کردن پروژه روی گیتهاب با این خطا مواجه بشید؟

! [rejected] main -> main (fetch first)

یعنی: «گیتهاب تغییراتی داره که شما ندارید. اول اونها رو دریافت کنید، بعد push کنید.»

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

راه حل: اول با git pull تغییرات ریموت رو دریافت کنید، بعد دوباره push کنید تا نسخه‌ها هماهنگ بشن.
توجه داشته باشید:
اگه history لوکال و ریموت کاملاً متفاوتن و میخواید نسخه‌ی لوکال رو جایگزین ریموت کنید، میتونید از این دستور استفاده کنید:

git push --force

⚠️ ولی با احتیاط! چون کامیتهای روی ریموت رو پاک میکنه و اگه کسی دیگه‌ای روی ریپو کار کرده باشه، تغییراتش از بین میره. اگه میخواید ایمن‌تر باشه، از این استفاده کنید:

git push --force-with-lease

این نسخه قبل از force کردن، چک میکنه که آیا ریموت از آخرین باری که دیدید تغییر کرده یا نه؛ اگه تغییر کرده باشه، جلوی push رو میگیره و نمیذاره کار بقیه رو خراب کنید.

#گیت‌گیتهاب
🐾 @CodeCat_Dev
This media is not supported in your browser
VIEW IN TELEGRAM
حتما قرار نیست عزیزتون ازتون گرفته بشه تا قدرشو بدونید دیگه!

🐾 @CodeCat_Dev