Python Hints
8.61K subscribers
170 photos
11 videos
9 files
141 links
Python tips and tricks
The Good, Bad and the Ugly

توی این کانال فقط قرار هست در مورد core python صحبت کنیم.

این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار)

Admin: @Abbasi_ai
Download Telegram
#سوال

اینو حتماً شنیدید:
توی پایتون GIL باعث می‌شه multi-thread واقعی نداشته باشیم.

حالا من چندتا سوال سطح بالاتر می‌پرسم، می‌خوام این سوالا رو توی مصاحبه‌های سطح سنیور و مید استفاده کنم :


۱- مگر نه اینکه GIL باعث میشه در لحظه فقط یک thread توی پایتون اجرا بشه؟ پس چرا کتابخونه threading داریم ؟

۲- توی یک برنامه کاملاً پایتونی ( fortran, C, ... درگیر نباشه) بنظر شما کدوم مورد سریعتر هست و چرا ؟

threading یا asynchronous

۳- حالتی به ذهنت می‌رسه که توی یک کد کاملا پایتونی استفاده از threading بهتر از asynchronous باشه ؟


چرا این سوالات ؟ چون خسته شدم انقدر که سخت‌ترین سوال مصاحبه این بود که؛
کی از threading استفاده کنیم کی از multi-process ؟
گفتم چندتا سوال خوب برای مصاحبه طرح کنم، البته دارم روش کار می‌کنم.
۴-۵ تا دیگه اضافه می‌شه
84👍43🔥3❤‍🔥2👏1
یک گروه هکری گفته کل اطلاعات همراه اول رو با نفوذ بدست آورده

بعد رفتن اعتبار سنجی کردن، دیدن داده‌ها درسته؛ تو گزارش چی زده باشند خوبه ؟

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

یعنی مملکت اینطوریه که، خب دیتای ملت رو که همه دارند، اگر راست می‌گید نفوذ کردید، سیستم خانم فلانی رو بکگراندش رو عوض کنید 😂🤣
👍1095🔥4👏2❤‍🔥1
Python Hints
#سوال اینو حتماً شنیدید: توی پایتون GIL باعث می‌شه multi-thread واقعی نداشته باشیم. حالا من چندتا سوال سطح بالاتر می‌پرسم، می‌خوام این سوالا رو توی مصاحبه‌های سطح سنیور و مید استفاده کنم : ۱- مگر نه اینکه GIL باعث میشه در لحظه فقط یک thread توی پایتون…
مصاحبه داشتم، کامل فراموش کرده بودم!

رفتم تو مصاحبه، مدیرفنی اومد گفت آقای فلانی یک مشکلی پیش اومده کمی دیرتر میاد ( مصاحبه من با ایشون ست شده بود )

بعد بحث به async رسید، دقیقاً سوالای خودم رو ازم پرسید.
جواب دادم و گفت؛ درک خیلی خوبی داری ولی نظری که داری میدی اشتباه هست.

دوتا چیز رو یادش نبود:
۱- شماتیک هر core مربوط به cpu
۲- مصاحبه من پایتون هست

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

خلاصه مصاحبه تموم شد؛ به ۱۰ دقیقه نکشید دوستی که من رو معرفی کرده بود زنگ زد گفت overqualified شدی.

میگم، مگه خودتون نگفتید Senior لازم دارید ؟

میزنه زیر خنده.


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

واقعاً ذوق کردم، فکر نمی‌کردم کانال انقدر بازخورد داشته باشه.

پینوشت:
بله پیش اومده جایی دستمزدش خوب بوده خودم رو زدم به اون راه که overqualified نشم و اینکار بدی نیست.
معمولاً بعضی مدیرای فنی براشون نگرانی هست که شخص باسوادتر نکنه تو کارشون دخالت کنه یا حرف نخونه، ولی برای من که دنبال داستان نیستم دستمزد که خوب باش مشکلی پیش نمیاد مگر اینکه کار برای دوست نزدیکم باشه و نتونم درمورد راهکار اشتباه سکوت کنم.
👍12331🔥11❤‍🔥9👏3
سوال تکراری چندماه اخیر:

- چرا کمتر پست میذاری ؟
- دیگه آموزش نمیدی ؟

جواب :

این روزها بیشتر درگیر Rust هستم توی وقتهای آزاد خودم؛ تسک‌های پایتون رو که تموم می‌کنم به تسک‌های rust رسیدگی می‌کنم و بعد برای تمرین بیشتر سراغ Rust میرم مجدد.
از Rust برای توسعه بکند و کارهای دیگه‌ای که درحال حاضر با پایتون انجام میدم نمی‌خوام استفاده کنم (هرچند با اون‌ها تمرین می‌کنم) اما بیشتر برای توسعه Kernel, Database, Protocol و ... یاد میگیرم استفاده کنم برای همین یک وقت زیادی رو هم صرف برطرف کردن ضعف‌هام روی اون مباحث می‌کنم.

مجموع این موارد باهم دیگه باعث میشه؛ کمتر پست بذارم هرچند به نظر خودم بیشتر چیزهای مهم و اساسی رو درموردش پست گذاشتم و اکثرا هم با جزئیات آموزش دادم.

در نهایت :

اگر این سوال براتون پیش میاد که ماهم بریم Rust یاد بگیریم باید به ۲ تا نکته توجه کنید :
۱- من برای پول درآوردن سراغ Rust نرفتم؛ هرچند پروژه‌هایی این مدت برام اومده ولی درآمدم از Python بیشتره.
۲- برای کارهایی که توی Python می‌تونم انجام بدم هم سراغ Rust نمیرم؛ یعنی اگر فیلد مورد علاقم Backend هست همون رو توی Python دنبال می‌کنم و نه Rust.
🔥34👍123
#سوال

دارم یک کتاب می‌خونم برای معرفی، یک سوال مصاحبه جالب از توش در اومد؛

کدی بنویسید که هر عدد دسیمال رو به عددی با پایه ۲ تا ۳۶ تبدیل کنه.

پایه ۲ همون باینتری هست، پایه ۸ و ۱۶ هم که شناس هستند، ولی کسی اگر اصول رو بدونه باقی پایه‌ها هم تبدیلش خیلی راحت هست.

سطح سوال جونیور هست.
👍67
#book

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

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

اون لحظه گفتم، باشه برات می‌فرستم بذار ببینم چی پیدا می‌شه ؟

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

چطوری یک منبع برای همه اینا معرفی کنم؟

این دوستمون دیپ لرنینگ کار نمی‌کنه، که خیلی راحت بگم، جبر و احتمال و دیفرانسیل و ... رو بخون و تمام.
فقط یک برنامه‌نویس پیگیر هست که براش یادگیری و درک مهمتر از سینتکس هست.
👍4211
Python Hints
#book این مدت که دارم مصاحبه انجام میدم (کار جوری هست که درک درست مفاهیم خیلی مهم هست) با فرمت مصاحبه‌های اینکار. مشکلی که خیلی زیاد می‌بینم، نبود سواد ریاضیات هست. با دوستان هم صحبت بودیم، که یکی از بچه‌ها پرسید منی که خودخوان شروع کردم همه‌ی این مشکلات…
تقریباً ۳-۴ هفته دارم می‌گردم دنبال یک منبع برای اینکار، چندین منبع رو هم بررسی کردم interactive, video, cheatsheet, blog, ...

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

پیش خودم گفتم ببین این دقیقاً اون کتابی هست که هر برنامه‌نویس برای ریاضیات باید بخونه.

من فقط ۵ فصل خوندم تا اینجا ولی کتاب فوق‌العاده نوشته شده
فقط اندازه‌ای که نیاز دارید و همه چیز با مثال و قابل درک.

اونقدر لذت بخش هست که تصمیم گرفتم خودمم کل کتاب رو بخونم تا آخرین صفحه.

بدون تعارف می‌گم هر دولوپری باید این کتاب رو بخونه؛ یا حداقل وقتی این کتاب رو می‌بینه با تمام مطالب سرفصل‌هاش آشنا و بلد باشه.

فرقی نداره تو چه زمینه‌ای کد می‌زنید.
52👍16
مثل fluent python که از معرفیش هیچوقت پشیمون نمی‌شید.
این کتاب هم دقیقاً همونطوری هست؛ با خیال راحت معرفیش کنید.

اضافه کنم شاید برای زیر ۱۸ سال کمی سنگین باشه؛ بخصوص اینکه ریاضیات دوران مدرسه کمی سبکتر هم شده نسبت به زمان ما.

ولی حتی برای شما نسل آینده هم، اطمینان می‌دم بهتون این کتاب ارزش وقت گذاشتن کامل رو داره اگر برنامه‌نویسی رو بعنوان شغل آینده می‌بینید.

پ.ن :
این کتاب خیلی ربطی به دیپ‌لرنینگ نداره ولی برای همه برنامه‌نویس‌ها لازمه
پایه‌ی ریاضیات برنامه‌نویسی هست.

فصل‌های آخرش مباحثی رو داره که بدرد دیپ‌لرنینگ هم میخوره ولی برای دیپ لرنینگ کتابهای مخصوص به خودش رو بخونید.
55👍10❤‍🔥3
کاش یک سالی هم بیاد که توش اصلاً لازم نشه بهم #تسلیت بگیم.

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

یعنی میشه؟ تا ما زنده‌ایم !
یک سال وقتی تموم میشه، بیام اینجا بزنم:

بچه‌ها دقت کردید، امسال لازم نشد بهم دیگه تسلیت بگیم !!

من واسه اون روز می‌جنگم.

#بندرعباس
86👍29🔥8❤‍🔥3
یادتونه واسه تروریست‌های لبنان هواپیما فرستادن واسه انتقال به تهران ؟

واسه بندرعباس می‌گن، تجهیزات نداریم.

#بندرعباس
👍13010❤‍🔥3👏3🔥2
Forwarded from RandRng
این ابزار خیلی باحال هست؛
بجای اینکه شما توی سورس کد دنبال این بگردید که چه خبر (معمولا کار زمانبری هست)

براتون سورس کد رو خلاصه می‌کنه و بهتون میگه داخلش چه خبره؛ چندتا سناریویی که خیلی بدرد میخوره :

۱- تازه وارد یک تیم شدید و سورس کد کاملا جدید هست.
۲- برای یادگیری میخوای سورس کد یک پروژه گیت‌هاب یا ... رو بخونید.
۳- میخواید شروع کنید روی یک پروژه اپن سورس فیچر اضافه کردن ولی قبلش نیاز دارید استانداردهای کد زدن و بخش‌های مختلف کدهای اون تیم رو درک کردن.

Turn Code Base into Easy Tutorial
33👍12❤‍🔥5
Forwarded from RandRng
#تجربه

از تجربیات دوستان :

قبل من یکی تو بود
بعدش من رفتم و مکالمه اونارو هم قبلش شنیده بودم.
خیلی از رزومه خوشش اومده بود و شروع کرد از یکی از نیروهاش که تو تیمشه هی تعریف کردن ولی
گفت یه تسک میدیدم ما خیلی راحتم هست ببینیم چجوری انجام میدین ۱۶ ساعت زمان دارین، همونجا هم گفت و راحت بود.
نکته بعدی اینکه دورکاری هستن کل تیمش.
بعد گفت یه پروژه انجام می‌دید و بعد از اون قرارداد میبندیم.
در نهایت گفت از لحاظ مالی مساله ای نیست و اگر بخواید بیمه و ... هم رد میشه؛ ازین حرفا که ما دنبال آدم درست هستیم که هم فنی و هم اخلاقی بتونیم کار کنیم.
زمینه های کاری هم ویژن و هم ان ال پی بود.

اینکه ریموت هست هم منو خوشحال میکنه
ولی اینکه شفاف نیست این قسمتش و اینکه راجب حقوق هیچی نگفت عجیبه


من عیناً متن رو گذاشتم، ایشون از من راهنمایی خواسته؛ اما چندتا چیز دیگه که توی صحبت مشخص شد :

۱- تسک براشون ایمیل نشده؛ یک اکانت تلگرام براشون فرستاده
۲- طرف حتی خودشم معرفی نکرده، فقط راجب یک نفر که اونجا وجود نداشته صحبت کرده (اسم برده و ...)


حالا تحلیل من :

قبلاً گفتم بازم می‌گم، تسک فرستادن هم حتی کار درستی نیست، مصاحبه کننده در ۲ حالت به شما تسک می‌ده :
۱- سواد نداره شمارو ارزیابی کنه؛ ۹۹٪ مواقع.
۲- شما شدیداً استرس و ... دارید و نمی‌تونید توانایی خودتون رو نشون بدید ولی مصاحبه کننده حس می‌کنه توانایی و سوادش رو دارید و بهتون یک شانس میده؛ ۱٪ مواقع.

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

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

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

موضوع بعدی، چرا نباید بعد از انجام تسک؛ با نیرو قرارداد بسته بشه ؟ توی قانون ما حتی قرارداد موقت و برای ارزیابی هم داریم که نیازی به پرداخت بیمه و مالیات و ... هم نداره
قرارداد ۳ ماهه هم هست و حتی میشه ۱۵ روز بعد هم کنسل کرد قرارداد رو.

درنهایت من به ایشون گفتم :

نه تسک رو انجام بده، نه سراغ پروژه بره؛ این بسیار بسیار شبیه به اون شرکت‌ها و قرارداد‌هایی هست که افراد توی لینکدین میزنند پولشون رو پرداخت نکرده و ...

همیشه گفتم بازم می‌گم؛
مجانی واسه هیچکس کار نکنید.
قرارداد رسمی و دقیق ببندید و دقت هم بکنید، که واسه پولتون التماس نکنید.
👍537👏2
RandRng
#تجربه از تجربیات دوستان : قبل من یکی تو بود بعدش من رفتم و مکالمه اونارو هم قبلش شنیده بودم. خیلی از رزومه خوشش اومده بود و شروع کرد از یکی از نیروهاش که تو تیمشه هی تعریف کردن ولی گفت یه تسک میدیدم ما خیلی راحتم هست ببینیم چجوری انجام میدین ۱۶ ساعت زمان…
فصل استخدام هست، بنظرم کفتن این موضوع واجب بود.

راستی سفته هم ندید؛ آخرین باری که این موضوع رو به من گفتند؛
از مدیر عامل شرکت ۱۲ تا چک به تاریخ توافق شده برای پرداخت حقوق و به مبلغ دستمزد خواستم.

بند سفته رو بطور کلی از استخدام شرکت حذف کردند.
👍83❤‍🔥144👏1
3rd edition
این کتاب معرفی شد؛ برای دوستانی که گفته بودند این نسخه 2nd ed قدیمی شده و ....

High Performance Python 3rd edition
24👍8
Python Hints
3rd edition این کتاب معرفی شد؛ برای دوستانی که گفته بودند این نسخه 2nd ed قدیمی شده و .... High Performance Python 3rd edition
بیشترین سوال:

ما امکان خرید کتاب‌های معرفی شده توی کانال رو نداریم، چاپ شده هم گرون هست.

۱- شخصاً مخالف خرید کتاب‌های چاپ شده هستم، چون هیچکدوم هیچ پولی به نویسنده نمی‌ده

چند مورد رو به نویسنده هم ایمیل زدم، تأیید کردند. (قدیم)

۲- کتاب به هیچ‌وجه توی گروه و کانال نمی‌ذارم، کسی هم نباید بذاره چون کانال یا گروه بسته می‌شه.
(موارد امنیتی هم حتی به کنار)

۳- سایت
libgen.is
رو دنبال کنید، اکثر کتاب‌های معرفی شده اینجا هستند.

۴- سایت ممکن هست از خارج از ایران دردسترس نباشه؛
اول سعی کنید کتاب رو بخرید
دوم ما قضاوت نمی‌کنیم، مسخره می‌کنیم سعی کنید دامنه‌های متفاوت سایت libgen رو پیدا کنید
سوم، اگر نشد مثل مهاجرت معکوس، vpn معکوس بزنید با ip ایران دانلود کنید.


قبلاً چندبار برای دیگران کتاب فرستادم توی گروهای قبلی، ریپورت و بن شدم.
دیگه اینکارو نکردم، با اینکه فقط شماره‌های ایران اجازه ورود داشتند.
پس دیگه اینکار رو نمی‌کنم.
👍459
داشتم تغییرات مربوط به Pi Python یا همون Python 3.14 رو می‌خوندم (پروژه‌های خودم رو میخوام منتقل کنم روی این نسخه) از این لینک:
What's new in Python 3.14

یک مورد جالب دیدم Pep 765 که :
Disallow return/break/continue that exit a finally block


داستان چیه؟ قطعا شما هم توی کدهای جنگو یا fastapi دیدید وقتایی که یک نفر try/except رو استفاده کرده و ارور‌ها رو لاگ میندازه و بعدش finally داره که یک return خاص انجام بده مثلا مقدار پیش‌فرض رو بفرسته.
تا اینجا هیچ مشکلی وجود نداره و برای همین هم خیلی‌ها نمی‌دونند که اینکار باعث مشکل میشه.

حالا فرض کنید توی اون exception شما بجای نوشتن لاگ raise انجام میدید تا توی بخش دیگری از پروژه اون Exception رو بتونید بهتر هندل کنید؛ اما وقتی Finally رو دارید که توش Return هم انجام میشه؛ چیزی که کد شما می‌بینه بعنوان response مربوط به اون try/except بلاک هیچوقت نمی‌تونه raise باشه (همیشه finally آخر از همه اجرا میشه)

پس هیچوقت کد شما raise ایی که نوشتید رو نشون نخواهد داد.

توی این نسخه چیکار کردن ؟
Syntax warning
اضافه کردند که اگر اینطوری کد زدید بهتون نشون بده که این مشکل وجود داره؛ ولی همچنان backward compatible بمونه.

خیلی هم عالی.
47👍28🔥1
این داستان که کنسرت؛
گلزار، مدیری و ...

بیش از ۲هزارتا بلیط می‌فروشه و ویدئو‌های fluent python ما کمتر از ۵۰۰ تا view خورده تازه تو بازه‌ی ۱ ساله

غمگین کننده‌اس؛ 😂😂
Youtube Playlist

تا فصل ۱۲ آپلود شده؛ فکر کنم تا فصل ۱۵ رو لایو رفتیم ولی هیچوقت فرصت نشد تا آخر ادامه بدیم.

البته اینم مطمئنم اگر دوره پولی بود، قطعاً چندین برابر فروش داشت؛ پیش قراردادی که چندتا از سایت‌های معروف بهم دادند این رو نشون میداد.

شایدم امسال اینکار رو کردم.
👍8732❤‍🔥14🔥2