Python BackendHub
7.38K subscribers
308 photos
46 videos
11 files
427 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
Forwarded from Python Hints
من فهمیدم، دلیل علاقه شدید بچه‌ها تو ایران به این سوالات رو میگم.

توی چندماه گذشته که خیلی درگیر مارکت ایران شدم، متوجه شدم ما توی ایران از هر ۱۰۰۰ برنامه‌نویس ۹۹۹ تا فیلسوف داریم، یعنی خودمون اینطوری تربیت کردیم

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

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

خلاصه خودمون مقصریم همه‌ی این رفتارها
باعث میشه نیروهای نسل بعدی (جونیور و ...) بجای رفتار برنامه‌نویسی، مثل فیلسوف عمل کنه

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

کدوم رفتار :
Fail Fast
محیط تست و develop رو برای همین گذاشتند برای اینکه وقتی یک ایده میاد سریع کد بزنید و توی ۲ روز اثبات کنید که خوب هست یا نه

اما توی ایران همه فیلسوف شدند، دورهم جمع می‌شوند و شروع می‌کنند راجب اینکه این کد چرا جواب میده یا نمی‌ده صحبت می‌کنند (توی تیم خودتون نگاه کنید قطعاً می‌بینید)

اینجوری می‌شه که چون بین فلاسفه اختلاف میوفته تستی که باید ۲ روزه انجام می‌شد و مطمئن می‌شدیم موضوع کار می‌کنه یا نه

۱ ماه طول می‌کشه تا یک گروه از فلاسفه گروه دوم رو متقاعد کنه که کار می‌کنه یا نه
اگر متقاعد کننده‌ها گروه کار نمی‌کنه باشند که اصلاً تستی گرفته نمی‌شه
اگر متقاعد کننده‌ها گروه کار می‌کنه باشند، بعد از ۱ ماه کدی که باید تو ۲ روز بررسی می‌شد تازه میره برای بررسی


توسعه استارتاپ و ایده برنامه‌نویسی تو ایران با این وضعیت صبر عیوب می‌خواد و عمر نوح.

برای همه‌ی 1.4k عضو کانال می‌نویسم:

ماها برنامه‌نویس هستیم نه فلاسفه، ما می‌تونیم ایده رو کد بزنیم و fail بشیم (محیط تست و توسعه برای همین هست) ما فیلسوف نیستیم که راجب مفاهیم انتزاعی فقط صحبت کنیم و چیزی جز همین بحث کردن در دست نداشته باشیم
بذارید fail fast رو برای ایران بومی سازی کنم :

Fail Fast, As Soon As Possible


@PyHints
👍6
این دید رو اخیرا پیدا کردم که هرچی یک کورسی گرونتر باشه بیشتر به نفع شماست تا به ضرر شما! و هرچی دسترسی بهش محدود تر باشه سریعتر و بهتر یاد میگیرین!

من کورس زیادی تو یودمی خریدم ولی چون واقعا مفتن خیلی مشتاق نمیشم همشو سریع ببینم و تمرین کنم.
همین موضوع هم راجب کورس های ماش هم بود.
از وقتی که اشتراک acloud رو گرفتم خیلی productive تر شدم.
چون هم اشتراکه ماهانست, پس pay as you go نیست و هرچی بیشتر ببینم بیشتر به نفعمه. هرچی بیشتر تمرین کنم از لحاظ مالی هم جلوتر میفتم.

درسته شاید 50 دلار ماهانه هزینه زیادی براتون باشه ولی اون passion ای که براتون درست میکنه که باعث شه بیشتر تمرین کنید ارزششو داره و چه بسا پروموشنی بگیرید که خیلی بیشتر از این 50 دلار ها براتون ایجاد سرمایه کنه 👌

پی نوشت: منظورم کلیه نه دوره فارسی یا شخص خاصی.

@ManiFoldsPython
👍8🤯1
Python BackendHub
این دید رو اخیرا پیدا کردم که هرچی یک کورسی گرونتر باشه بیشتر به نفع شماست تا به ضرر شما! و هرچی دسترسی بهش محدود تر باشه سریعتر و بهتر یاد میگیرین! من کورس زیادی تو یودمی خریدم ولی چون واقعا مفتن خیلی مشتاق نمیشم همشو سریع ببینم و تمرین کنم. همین موضوع هم…
یک صحنه ای تو فیلم batman The Dark Knight Rises بود
که بروس وین داشت از زندان فرار میکرد.
دفعه اول با طناب safety رفت جلو و افتاد.
دفعه دوم بدون طناب safety رفت و تونست بالا بره. (داستان بچه ای رو میشنوه که دقیقا همینطوری فرار کرده بود)

این دقیقا مصداق comfort zone هست. شما وقتی از یودمی یا جایی course ای میخرین که تاریخ انقضا نداره, یک کامفورت زون برای خودتون درست کردین و هیچوقت سراغش نمیرین.

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

خلاصه برای خودتون کامفورت زون یا safety zone درست نکنید😁 اون طناب ممکنه باعث شه نمیرین ولی جلوی پیشرفتتون رو قطعا میگیره.

@ManiFoldsPython
👍18👌2
اگه دنبال ipv4 هستین ارزون ترین جایی که ازش میتونید بخرین اینجاست.
https://www.ipxo.com

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

پروکسی پروایدر ها همشون دیدم از این میگیرن.
1
مواردی که به نظر من یک بک اند کار برای کار تو شرکت های مدرن خارجی و گرفتن جاب آفر داخلشون باید بلد باشه, طبق تجربه این چند وقتم داخل مصاحبه ها و جاب هایی که دیدم:

1. آشنایی با گیت
2. تست نویسی
3. آشنایی با github action برای نوشتن فایل work flow yaml
4. درک عمیق تر از پایتون (خوندن کتابی مثل fluent python یا python cook book)
تسلط به پترن دیزاین ها
5. آشنایی با paradigms های مختلف برنامه نویسی
6. الگوریتم
7. تسلط روی SQL
8. آشنایی با MySQL یا PostgreSQL.
9. آشنایی با داکر و داکر کامپوز
10. آشنایی با مفاهیم Event driven architecture, SOA, microservice و Monolithic
11. تسلط رو یک فریم ورک microservice friendly مثل FastAPI یا Flask
12. آشنایی با یک فریم ورک Monolithic مثل جنگو میتونه مزیت خوبی باشه.
13. آشنایی با یک سرویس کلاد (AWS/Azure/GCP) در حد نیاز بک اند. معمولا certificate های مشخصی دارن که میتونید راجبشون تحقیق کنید و تو اون مسیری که مربوط به بک اند دولوپر میشه برین.
14. آشنایی با دیتابیس های کلاد مثل amazon rds
15. آشنایی با serverless و نمونش داخل کلاد مثل AWS Lambda
16. آشنایی با k8s در حد نوشتن فایل yaml سرویستون
17. آشنایی با یک ابزار IAC مثل terraform
(از بین ترافورم یا k8s و داکر, معمولا رو یکیش تمرکز میکنن شرکتا. و تو اغلب آگهی ها هم دیدم وزن بیشتر سمت داکر و k8s بوده تا ترافورم)


@ManiFoldsPython
👍11👏21
آقا بیشتر بحث اینکه بیای ایده پروژه پیدا کنی و بزنی و استفاده کنی، سخته
مثلا یه دیزاین پترن رو تا تو یه پروژه استفاده نکنی، اون قدر درکش نمیکنی.
واس این نظری داری؟

یک سری مهارت هستن که اگه hands on نداشته باشین اشکالی نداره یعنی خیلی تسلط دیپ و عمیق نمیخوان. ولی یک سری مهارت هستند که باید hands on داشته باشین. و این پروژه تمرینی هم که میزنید بنظر من خیلی مهمه. میخوام راجب این بیشتر حرف بزنم

99 درصد مواقع (و اشتباهی که خودمم اوایل میکردم) این بود که کورس میدیدم یا کتاب پروژه محور میخوندم بعد همون کد یا پروژه ای که طرف میزنه رو منم پشتش میزدم.
اصلا اینکارو نکنید

سعی کنید یک پروژه پیچیده برای خودتون تعریف کنید. من یک کدینگ چلنجی که انجام میدادم 90درصد سختیش رو درک خود بیزنس بود. صرفا هارد اسکیل مهم نیست. مثلا پروژه های B2B خیلی میتونن پیچیده باشن. از کجا میتونید همچین پروژه هایی پیدا کنید؟

1. خوندن سرویسی که شرکت ها میدن و پیاده سازی MVP مشابهش. مثلا یک سایتی میاد پروکسی میفروشه, خب شما بیاین یک سرویس بنویسید که پروکسی بفروشه و وقتی کاربر پروکسی سفارش میده on demand سریع اون پروکسی رو بسازه و با یوزرنیم و پسوورد کاستومایز شده بهش بده.
2. دیدن فیلم مصاحبه ها. خیلی وقتا شرکت هاتو مصاحبه میگن چیکار میکنن و چه هدفی دارن. اگه نمیتونید مصاحبه بگیرین, پس حداقل فیلماشو تماشا کنید و سعی کنید اون چالش هایی که اونا بهش اشاره میکنن یا راه حل هایی که اونا گفتن انجام دادن رو پیاده سازی کنید.

مثلا یک شرکت دیدم database لارجی داشت و تعداد یوزراش کم بود. دیتا هر یوزر مربوط به خودش بود یعنی خیلی وابسته نبودن دیتا ها. به جای index کردن اومده بود برای بهتر شدن پرفومنس برای هرکاربری تو دیتابیس یک یوزر میساخت و موقع query زدن فقط داکیومنت های اون کاربر رو بهش نشون میداد از کل دیتابیسش. حتی قابلیت export هم گذاشته بود که کاربر میتونست SQL export بگیره و عینه همون تیبل رو تو اپلیکشن خودش بسازه.

@ManiFoldsPython
🔥7👍2
من پست interactive خیلی دوست دارم, که ذهن مخاطب رو به چالش بکشه و صرفا نخونه و رد شه. برای همین ذهنتون رو به چالش میکنم.
تو ذن پایتون داریم
There should be one-- and preferably only one --obvious way to do it.
ولی از طرفی داریم
there is no solution only trade offs

این دو تا چه فرقی باهم دارن تو software development؟ یعنی یکیشون غلطه؟ در تضادن؟ یا نیستن؟
کامنت کنید, بهترین کامنت رو تا فردا پست میکنم 😁
@ManiFoldsPython
ابزاری که تو جنگو استفاده میشه برای پیدا کردن bottleneck

Silk

Django Tool Bar

RunProfileSaver

فصل 26 کتاب Two scopes of django رو حتما مطالعه کنید 👍
@ManiFoldsPython
👍1
الان دیدم دوره csx هاروارد رو گذاشتن 2.500 هم میفروشن. 40 ساعت دوره هست که به صورت آنلاین ضبط میشه.
تا اینجا مشکلی نداره, مشکل از جایی شروع میشه که

1. مدرس این دوره تاحالا تو شرکتی بالای 5 نفر کارمند کار نکرده
2. کد هایی که تو ریپو مدرس هست واقعا سمن. ساده ترین قواعد پایتونی هم توش رعایت نشده.
https://github.com/ahforoughi/shopping_site_flask/blob/master/main.py

یک خط کدو تو فایل 200 خطی 22 بار تکرار کرده
من ادعایی ندارم, ولی با دانش کمم تشخیص میدم که این ایرادات هست:
clean code
flake8
snake_case
sql injection
DRY
multiple connections overhead


وقتی یک دوره تهیه میکنید, اگه خارجی هست حتما تو سایت trustpilot چکش کنید که ایا اونجایی که دوره میخرین سایت سرویس دهندش خوبه یا نه. نمرش پایینتر از 3 بود یعنی پلتفورم جالبی نیست و قطعا بهترش هست.

trustpilot.com

مثلا
datacamp 4.6
udacity 4.8
codecademy 4.0

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

@ManiFoldsPython
👍9👀1
Data+Structures+and+Algorithms+Bootcamp+in+Python+slides+Remaster.pdf
40.9 MB
یک دوره خوب برای algorithm از یودمی:
https://git.ir/udemy-the-complete-data-structures-and-algorithms-course-in-python/

کل pdf دوره هم براتون آپلود کردم. خود PDF به تنهایی خوندنش کافی نیست چون instructor از روش درس میده و توضیح اضافی میده.
من خودم جدا از این تو گوگل سرچ میکنم و بیشتر در موردش میخونم. و به chatgpt میگم بهم با مثال پایتونی توضیح بده تا بهتر متوجه شم.

سوالات interview رو اول خودتون حل کنید بعد فیلمشو ببینید که اون چطور حل کرده.

@ManiFoldsPython
5
Python BackendHub
من پست interactive خیلی دوست دارم, که ذهن مخاطب رو به چالش بکشه و صرفا نخونه و رد شه. برای همین ذهنتون رو به چالش میکنم. تو ذن پایتون داریم There should be one-- and preferably only one --obvious way to do it. ولی از طرفی داریم there is no solution only…
تو کامنتا جواب خیلی کاملی پیدا نکردم,

پاسخ این موضوع:
درواقع باهم درتضاد نیستن و مختلفن
ذن پایتون به readability و maintainability بودن یک کد اشاره میکنه. میگه شما موقع نوشتن کد فقط یک راه حل منطقی دارین و بهتره فقط از همون راه حل استفاده کنید و الکی کدتون رو پیچیده و غیرقابل فهم نکنید. مثل مثالی که از لینکدین چند وقت پیش زده بودم.

اما دومی بیشتر تو بحث software design و pattern design مطرحه که میگه شما سولوشن های زیادی دارین, هیچکدوم خوب و بد نیستن. اما هرکدوم trade off خودشون رو دارن, و با توجه به منطقی که برای خودتون تعریف کردین باید یکیشو انتخاب کنید. یعنی برخلاف باینری, سولوشن ها 1 و 0 نیستند و این منطق پشت بیزنس و سایز اون بیزنس هست که باعث میشه وزن trade off های یک سولوشن سنگین تر یا سبک تر شه نسبت به هم دیگه.


همین موضوع هم راجب package installer هایی که تو کامنت اشاره شد میکنه مثل pypi و pipenv.
@ManiFoldsPython
👍2
سایت QuillBot اومده یک AI ساخته برای Paraphrase کردن متن chatgpt و کلا AI که دیگه شناسایی نشن 👌
واقعا عالیه

Paraphrasing Tool - QuillBot AI

@ManiFoldsPython
داشتم quora میخوندم که به یک بحث جالب
با chatgpt ترجمه کردم. انگلیسیش رو میتونید از لینک زیر بخونید
لینک

میگفت دولوپر جاوا و پایتون زیاد شده و چه زمانی میرسه که supply بیشتر از demand میشه
شما نمی توانید به شدت بین تجربه 15 ساله و 10 ساله تمایز قائل شوید. به عبارت دیگر، هیچ کس نمی خواهد یک فرد با تجربه 15 ساله استخدام کند زمانی که فکر می کند که کار می تواند توسط فرد با تجربه 10 ساله انجام شود. شما باید با گذشت زمان قابلیت انجام کارهای بسیار بیشتری را داشته باشید و برای این منظور باید با مسائل حل مسئله، سیستم ها، طراحی، پلتفرم ها، چارچوب ها، زبان های برنامه نویسی، ابزارها و البته دامنه آشنایی کامل داشته باشید. مهارت نرم به جای خود، همچنین باید یک سیستم پیچیده رو تو ۵ مین توضیح بدید و تو ۵۰ صفحه ببندیدش. تنها تعداد کمی از "برنامه نویسان" به این سطح می رسند و اینجاست که کمبود واقعی وجود دارد.


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


من با فرض شما مخالفت می‌کنم. من از اوایل سال 1984 برنامه‌نویسی می‌کنم و افرادی مانند من به دنبال کار هستند. من برنامه‌نویسی دستگاه‌های تعبیه شده برای سیستم‌های پیچیده مانند دستگاه‌های پزشکی انجام می‌دهم. اگر 10 نفر مانند من پیدا کنم، می‌توانم در عرض دو هفته برای آنان شغل دائم و با درآمد بالا پیدا کنم. چرا دو هفته؟ چون من به واقعیت نمی‌پردازم که چندین پیشنهاد کار از مشتریان یا تماس‌های سرد وجود دارد، به دلیل اینکه همیشه فرصت‌های بیشتری وجود دارد.

من دارای مدرک BSEE از دانشگاه عمومی قابل قبول میدوستی است. من به زبان برنامه‌نویسی 'C' برنامه‌نویسی می‌کنم و کمی هم C++ (در حال حاضر نه زیاد) و به نیاز نیز کمی C# استفاده می‌کنم اما در آن خیلی خوب نیستم. من درآمد قابل توجهی با شش رقمی دارم و اگر مایل به جا به جایی در شغل باشم می‌توانم بیشتر درآمد داشته باشم.

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

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

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



@ManiFoldsPython
👍8💩1
یکیم تو جوابش اینو نوشته بود اینم خیلی جالب بود 😄
"People just aren't curious" this times 10. I'm not a coder but data and Analytics, the number of professional accountants, engineers etc that use Excel all day but still come to me to do pretty rudimentary stuff, because they have no curiosity. My problem is having too much, I waste time reading about a dozen things at the same time

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

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

ادم از quora و ردیت میتونه خیلی درس زندگی بگیره 👌

@ManiFoldsPython
👍6
Forwarded from Django Expert (Mehran Tarif)
‏متاسفانه صابر راستی‌کردار، خالق فونت‌های وزیر‌ متن (همون فونت زیبایی که روی تلگرام دسکتاپ و گوگل‌داکز و... به رایگان ازش استفاده می‌کنیم) و گندم و شبنم و کلی فونت دیگه، به سرطان مبتلا شده و در وبلاگش در این مورد مطلبی نوشته:
مشاهده مطلب در وبلاگ راستی‌کردار

اگر از فونت‌هاش استفاده می‌کنیم، شاید الان دونیت (حمایت مالی) ما بیشتر از قبل به کارش بیاد.
لینک دونیت:
payping.ir/@saber

🌱 صابر راستی کردار، از جمله بچه های گل روزگار هست که وب فارسی مدیونشه، تنهاش نمیذاریم.

@DjangoIR
〰️〰️〰️〰️〰️〰️〰️
© @DjangoEx |
😢8👍1
این کوییز برای درک پایتونه و فرش نگه داشتن ذهن 😅

درجه سختی: آسان
@ManiFoldsPython
👎6👍2