Python BackendHub – Telegram
Python BackendHub
7.51K subscribers
314 photos
46 videos
11 files
432 links
Learning python & Backend Engineering, with Mani!

Youtube: https://www.youtube.com/@GitOverHere
Github: https://github.com/ManiMozaffar
Linkedin: https://www.linkedin.com/in/manimozaffar

تبلیغات نداریم

Admin: @Mani_nikou
Download Telegram
سلام!

مانی هستم, فاندر دو تا استارت آپ, از سال 2020 برنامه نویسی میکنم, از همون روز اول, از اولین تابعی که نوشتم برای پروژه استارت آپم بوده تا 2023. اواسط سال 2023 تصمیم گرفتم که کار شرکتی انجام بدم, برای همین الان تحت پوزیشن software engineer مشغول هستم.


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

تجربه پایتون خیلی زیادی ندارم, شاید خیلیا تجربه پایتونشون بیشتر باشه, اما تصمیم گرفتم همین تجارب کمم رو هم به اشتراک بذارم, امیدوارم مطالب کانال براتون مفید باشه و سمی نباشه 😅 کنار پایتون به web scraping و تست نویسی و اصول توسعه نرم افزار و بقیه بحث ها هم میپردازم, پس کانال فقط مربوط به پایتون نخواهد بود.

یوتیوب من:
https://www.youtube.com/@GitOverHere

لینکدین من:
https://www.linkedin.com/in/manimozaffar/

گیت هاب من:
https://github.com/manimozaffar


@ManifoldsPython
👏10👍6👎32😁1
Python BackendHub pinned «سلام! مانی هستم, فاندر دو تا استارت آپ, از سال 2020 برنامه نویسی میکنم, از همون روز اول, از اولین تابعی که نوشتم برای پروژه استارت آپم بوده تا 2023. اواسط سال 2023 تصمیم گرفتم که کار شرکتی انجام بدم, برای همین الان تحت پوزیشن software engineer مشغول هستم.…»
Forwarded from Django Expert (Boby Cloud)
سلام روزتون بخیر

یه پروژه جدید و اوپن سورس شروع کردم که با استفاده از Playwright و ChatGPT آگهی‌های LinkedIn رو آنالیز می‌کنه و در کانال تلگرامی به صورت مرتب و قابل فهم قرار می‌ده. این پروژه چند ویژگی جذاب داره که به شرح زیر می‌باشند:

1. تحلیل وضعیت حمایت از ویزا: با استفاده از ChatGPT، می‌تونه بفهمه که شرکت حمایت از ویزا داره یا نه.

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

3. فیلتر منطقی تو در تو: این قسمت واقعا جالبه! برای مثال، شما می‌توانید فیلتری به شکل زیر بسازید:
(django or fastapi or python) and (netherlands or germany) and (backend or (fullstack and vuejs))
با این فیلتر, وقتی شغلی تو کانال میره که پایتون یا جنگو یا fastapi که در کشور آلمان یا هلنده و بک انده یا فول استک با vuejs داره رو براتون همون لحظه فروارد میکنه ✌️

4. قابلیت آنالیز و پیدا کردن شغل های مختلف مربوط به IT مثل backend, frontend, software, devops .

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

لینک کانال:
@Linkedin_python

لینک ربات:
@linkedin_python_bot

لینک پروژه:
https://github.com/ManiMozaffar/linkedIn-scraper/tree/main

جهت حمایت از پروژه, میتونید contribute داشته باشین یا داخل گیتهاب ستاره بدین 🙏
پی نوشت: سرویس کاملا رایگانه و رایگان خواهد موند. صرفا هدفم کمک به دوستان هست ❤️
👍61
این پروژه شخصا خیلی کمکم کرده, 8 تا پیام اومده از اخرین باری که اپلای کردم. یعنی به احتمال قوی حداقل 6 اپلای دیگه, بدون effort گذاشتن برای پیدا کردن اون آگهی

یک عادتی دارم و اونم اینه که هر تسکی که میبنیم میشه اتومیت کرد میرم که اتومیتش کنم.

هم بازدهی بهتری خواهم گرفت (اپلای بیشتر, تو پوزیشن های مناسب تر)


تو این مدت زیاد مصاحبه گرفتم, این یکی از trick هاش بود. بقیه اش هم تو یک پست به زودی قرار میدم, و جا داره از بابی هم تشکر کنم بابت راهنمایی که کرد ❤️
خیلی کارساز بود, خیلی قشنگه که تو این کامینیتی آدم هایی رو میبینیم که خالصانه به پیشرفت همدیگه کمک میکنن بدون اینکه فاز رقابتی بگیرن

@ManifoldsPython
8👍1
اولین موردی که بهش میپردازم از functools هست که میخوام یک سیستم کش رو براش بسازم
ولی با این تفاوت که بر اساس ورودی های تابع باشه.

اینو خیلی دوست دارم چون براتون ریزالتو کش میکنه ولی با این تفاوت که بر اساس args که بهش میدین این کش انجام میشه.

حالا یعنی چی, یعنی وقتی شما
fibonacci(50)
رو صدا میزنید 50امین عدد عدد fibonacci حساب میشه, و بار بعدی که
fibonacci(50)
رو صدا میزنید دیگه نمیره محاسبه کنه و تو کش ذخیره میکنه که
fibonacci(50)
مساوی با اون عدده.

نکته جالب تر و تمیزتر اینه که حتی
fibonacci(49)
و ... هم ذخیره میکنه. یعنی شما دیگه
fibonacci(51)
هم صدا بزنید خیلی سریعتر ران میشه.

یک arg هم داره که به اسم maxsize, که درواقع مشخص میکنه ماکسیموم کش اختصاص داده شده برای این تابع چقدر باشه.
به طور دیفالت هم 128 هست. حواستون باشه مثل مثال بالا اگه از None استفاده کنید ممکنه مشکل پر شدن حافظه براتون رخ بده.

مثال خیلی قشنگش میتونه اینطوری باشه, برای گرفتن 100 تا شماره اول fibonacci.
for num in range(1, 100):
print(fibonacci(num))

@ManifoldsPython
👍21❤‍🔥1
Snap.png
1.6 MB
Let's dig in a bit :) 🐕

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

@ManifoldsPython
👍2
fp.png
90.1 KB
براتون تاحالا سوال شده کمپانی ها و پروداکت های بزرگ مثل گوگل و یوتیوب کاربر guest رو identify میکنن؟ مثلا من اگه یک رباتی بنویسم که بیاد یوتیوب و کانتنمو 1 میلیون بار ببینه, چطور یوتیوب متوجه میشه؟ جدا از بحث آنالیز patternای که video هام ویو میخورن.
یا مثلا من در ازای تبلیغ یک سایتی که مبلغی میگیرم, اگه view سایتم رو فیک بزنم چطور سایت advertising agency متوجه میشه؟
یا چطور یک سایت vote counting متوجه میشه که شما دارین دوباره با یک session id دیگه vote میدین؟

اگه فکر میکنید با استفاده از incognito و پروکسی/وی پی ان, از دستشون فرار میکنید کاملا اشتباه میکنید.

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

تو پروداکت های ایرانی به شخصه ندیدم از همچین سرویسی استفاده شه, در صورتی که خیلی جاها میتونه بسیار به درد بخور باشه ✌️

@ManifoldsPython
👍4
fp.drawio
14 KB
عکس بالا به صورت فایل (با draw.io باید باز کنید)
@ManifoldsPython
Python BackendHub
سلام! مانی هستم, فاندر دو تا استارت آپ, از سال 2020 برنامه نویسی میکنم, از همون روز اول, از اولین تابعی که نوشتم برای پروژه استارت آپم بوده تا 2023. اواسط سال 2023 تصمیم گرفتم که کار شرکتی انجام بدم, برای همین الان تحت پوزیشن software engineer مشغول هستم.…
قول دادم که اگه گیت هاب این پروژه به 100 ستاره برسه چند تا سایت اضافه کنم
کامنت کنید کدوم سایتا اضافه شن

چند سایتی که تو نظر خودم بود:
glassdoor.com
Indeed.com
frgconsulting.com
quera.org
jobinja.com

البته رو quera یکم شک دارم چون بنظرم ارزش effort ای که میذارم روش رو نداره کلا 4-5 آگهی کل روز پست میشه...

سایت دیگه ای مد نظرتون هست کامنت کنید ✌️
@ManifoldsPython
2👍1
قضیه dry فقط به OOP ختم نمیشه و بنظرم باید هرجایی و تو هر بعدی که به نفعتونه انجام شه. تایم و زمان ما با ارزش ترین داراییمون هست.

میخواد حالا این برای job seeking باشه, یا هر چیز دیگه ای. هر تسکی که حساسیت خیلی بالای نداره و جنبه یادگیری نداره, اگه بیش از 3 بار دارین انجامش میدین و بیش از چند دقیقه هم هربار طول میکشه پس قطعا مسیر رو اشتباه رفتین.
این اصل زندگی من بوده همیشه و اگه کار هایی که 3 سال پیش میکردم رو امروز اتومیت شده نداشتم طی روز 1 ساعت وقتم نداشتم!
👍1
برای مهاجرت حتما دقت کردین که از هر 5 تا آگهی, 4 تاشون یا GCP میخوان یا AWS.
هر جفت سرویس ها تو ایران تحریمن, حالا راه حل چیه؟
یک سایتی هست به اسم
acloudguru.com

همه جور دوره ای داره, شما اشتراکش رو میخرین که قیمتش طی دو پلن یکی 30 دلار و یکی 40 دلاره. دوره هاش کاملا interactive هست و بهتون دسترسی کامل میده به سرویس AWS و سایتشم کاملا معتبره.

سایت های مختلفی هم هستند که براتون پرداخت های ارزی رو انجام میدن, که اگه اشتباه نکنم ایرانی کارت یکی از اون سایت هاست.
👍4
اگه پروداکتی نوشتین که میبینید gapای از مارکت رو پر میکنه و میخواین معرفیش کنید, به جز linkedin یکی از OP ترین سایت ها درواقع hackers new هست
ycombinator.com

کافیه یک کراولر بنویسید که پستتون رو هی repost کنه با تغییرات کم که اسپم شناسایی نشه و هر 10-15 مین یک دفعه ریپست شه.

شایدم خودم اینکارو کردم 😅
😁2👎1
من همیشه به یک چیزی اعتقاد دارم و آن، دید مهندسی است. از خصوصیات مفید و بزرگ دانشگاه خوب رفتنم، همین دید مهندسی است.

حالا این دید مهندسی یعنی چی؟

یعنی شما وقتی بدونید memory management چیست و GC چه کاری تو پایتون انجام می‌دهد، باعث می‌شود کدی که می‌نویسید، memory friendly‌تر باشد.

یا وقتی SQL بلدید و PostgreSQL هم بلدید، باعث می‌شود خیلی وقتا query بنویسید که به جای ۳ بار هیت، یک هیت به دیتابیس بزند. out of box ترش این است که اگر query که می‌زنید، read هست، چند تا read replication بسازید و horizentonal scaling انجام دهید تا سرعت query بهتر شود. اگر می‌بینید query که می‌زنید، مثلاً ۱۰ درصد ریزالت کل دیتابیستون است و حجیم است، از طرفی مثلاً ۲ تا column خیلی استفاده می‌شود توی آن query، آن وقت می‌توانید ترکیب آن دو تا column را ایندکس کنید تا پرفورمنس بهتری بگیرید. اما اگر ریزالت برگشتی ۷۰ درصد دیتابیستون باشد، آن موقع ایندکسها سربار دیتابیستون می‌شوند و نه تنها کمک نمی‌کنند بلکه سرعت شما را هم کاهش می‌دهند.

به این می‌گویند دید مهندسی. یعنی بدانید از چه چیزی کجا و به چه اندازه‌ای استفاده کنید.

همه اینها را گفتم تا برسم به این کتاب:
https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321

این کتاب به شما یک دید مهندسی فوق‌العاده می‌دهد. تازه شروع کردم و می‌تونم بگم محشره ✌️
👍5
Forwarded from 𝘤𝘢𝘭𝘭 𝘮𝘦 𝘵𝘰𝘳𝘪
This media is not supported in your browser
VIEW IN TELEGRAM
01 Refresh your resume in 30 minutes
Forwarded from 𝘤𝘢𝘭𝘭 𝘮𝘦 𝘵𝘰𝘳𝘪
This media is not supported in your browser
VIEW IN TELEGRAM
02 Purpose of a resume
Forwarded from 𝘤𝘢𝘭𝘭 𝘮𝘦 𝘵𝘰𝘳𝘪
This media is not supported in your browser
VIEW IN TELEGRAM
03 What recruiters are looking for
Forwarded from 𝘤𝘢𝘭𝘭 𝘮𝘦 𝘵𝘰𝘳𝘪
This media is not supported in your browser
VIEW IN TELEGRAM
04 Get past the ATS