چندتا توضیح بدم راجب کد بالا و مسائل دیگه :
۱- کد بالا ربطی به django نداره، هرچند توی یک خط من برای مسیر فایل از django استفاده کردم. Logging مربوط به core python هست.
۲- بیش از ۳۰ نفر سوالاتشون راجب همین موضوع بود، تماماً هم مشترک (دوستان گروه برای همین منظور ساخته شده و بخش کامنت) ازین به بعد این سوالات رو فقط توی گروه بپرسید.
۳- توی پیامها ویس ندید، مخصوصاً قبل از هماهنگ کردن ۹۹.۹٪ اصلا پیام رو باز نمیکنم اگر اینطور باش
۴- احوال پرسی و خبر پرسیدن رو نمیفهمم، بعد حالا اگر پرسیدید چرا منتظر جواب نمیمونید ؟
بجای خوب هستی و چه خبر، همون سلام کفایت میکنه و یا اگر عادت کردید برای غریبه از
امیدوارم سلامت باشید استفاده کنید بخدا قشنگتر هم هست
۵- قبل از سوال پرسیدن نیازی به تاریخچه نویسی نداره، کی بودید و چیکار کردید و چرا به من ربطی نداره واقعاً و اگر برای راهنمایی لازم باشه قطعاً خودم میپرسم از شما (بعضیها ۲۰ تا پیام میذارند آخر سوال از یکی از پستهای کانال میپرسند)
۶- نهایتاً، خواهش میکنم
خواهش میکنم
اصلی ترین رفتار برنامهنویسی رو رعایت کنید
پیامها رو مختصر بنویسید همهی موارد رو داخل یک پیام ارسال کنید بریده بریده پیام دادن اسپم حساب میشه
بدتر از بریده بریده پیام دادن ۷-۸ تا پیام فرستادن و در نهایت گفتن این هست که بگید، میتونم سوال بپرسم ؟!
بجای اسپم کردن، اصل سوال رو بپرسید لطفاً این خیلی خیلی مهم هست.
دوستانی که این موارد رو رعایت نمیکنند، حداقلش اینه که اجازه نمیدهند من وقت داشته باشم به باقی دوستان هم کمک کنم.
مرسی از همگی دوستانی که رعایت میکنند یا خواهند کرد 🌹
۱- کد بالا ربطی به django نداره، هرچند توی یک خط من برای مسیر فایل از django استفاده کردم. Logging مربوط به core python هست.
۲- بیش از ۳۰ نفر سوالاتشون راجب همین موضوع بود، تماماً هم مشترک (دوستان گروه برای همین منظور ساخته شده و بخش کامنت) ازین به بعد این سوالات رو فقط توی گروه بپرسید.
۳- توی پیامها ویس ندید، مخصوصاً قبل از هماهنگ کردن ۹۹.۹٪ اصلا پیام رو باز نمیکنم اگر اینطور باش
۴- احوال پرسی و خبر پرسیدن رو نمیفهمم، بعد حالا اگر پرسیدید چرا منتظر جواب نمیمونید ؟
بجای خوب هستی و چه خبر، همون سلام کفایت میکنه و یا اگر عادت کردید برای غریبه از
امیدوارم سلامت باشید استفاده کنید بخدا قشنگتر هم هست
۵- قبل از سوال پرسیدن نیازی به تاریخچه نویسی نداره، کی بودید و چیکار کردید و چرا به من ربطی نداره واقعاً و اگر برای راهنمایی لازم باشه قطعاً خودم میپرسم از شما (بعضیها ۲۰ تا پیام میذارند آخر سوال از یکی از پستهای کانال میپرسند)
۶- نهایتاً، خواهش میکنم
خواهش میکنم
اصلی ترین رفتار برنامهنویسی رو رعایت کنید
پیامها رو مختصر بنویسید همهی موارد رو داخل یک پیام ارسال کنید بریده بریده پیام دادن اسپم حساب میشه
بدتر از بریده بریده پیام دادن ۷-۸ تا پیام فرستادن و در نهایت گفتن این هست که بگید، میتونم سوال بپرسم ؟!
بجای اسپم کردن، اصل سوال رو بپرسید لطفاً این خیلی خیلی مهم هست.
دوستانی که این موارد رو رعایت نمیکنند، حداقلش اینه که اجازه نمیدهند من وقت داشته باشم به باقی دوستان هم کمک کنم.
مرسی از همگی دوستانی که رعایت میکنند یا خواهند کرد 🌹
ازین مدل کد توی سورس کد پکیجها زیاد دیدید همون استاندارد
ارور فریمورک هم واقعا نامشخص نبود و چیزی ازش دستمون رو نمیگرفت (زمانی که
توی سورس اگر کدهارو بخونید یک ساختاری شبیه عکس وجود داره که باعث میشه در نهایت ارور خاص فریمورک برگرده؛ البته با یک تغییر کوچیک توی خط 10 :
پاک کردن همین ۲ کلمه باعث شد توی ۵ دقیقه مشکل حل بشه.
دیدم نیروی خودم بلد نبود گفتم شاید بهتر باشه اینجا هم بذارم بدرد کسی بخوره.
EAFP
امروز یکی از نیروهای junior که باهاشون کار میکنم روی یکی از کدها به اروری میخورد و کار پیش نمیرفت.ارور فریمورک هم واقعا نامشخص نبود و چیزی ازش دستمون رو نمیگرفت (زمانی که
tensorflow 0.7
اومده بود قشنگ یادم هست ازین چالشها زیاد داشتیم)توی سورس اگر کدهارو بخونید یک ساختاری شبیه عکس وجود داره که باعث میشه در نهایت ارور خاص فریمورک برگرده؛ البته با یک تغییر کوچیک توی خط 10 :
raise CustomException('Finally we raise our custom error in framework.')
from None
همین from None
باعث میشه exception
های قبلی چاپ نشه.پاک کردن همین ۲ کلمه باعث شد توی ۵ دقیقه مشکل حل بشه.
دیدم نیروی خودم بلد نبود گفتم شاید بهتر باشه اینجا هم بذارم بدرد کسی بخوره.
🧑💻PythonDev🧑💻
ازین مدل کد توی سورس کد پکیجها زیاد دیدید همون استاندارد EAFP امروز یکی از نیروهای junior که باهاشون کار میکنم روی یکی از کدها به اروری میخورد و کار پیش نمیرفت. ارور فریمورک هم واقعا نامشخص نبود و چیزی ازش دستمون رو نمیگرفت (زمانی که tensorflow 0.7 اومده…
مثال بالا در صورت وجود
from None
حتما شما هم با
همین که دیگه لازم نیست یادتون بمونه فایل رو ببیند یا اینکه کد درست رو بزنید
بستن فایل باید توی بخش finally باشه و ...
یک کلاس داخل تعریف پروتوکل
پس توی این بین میشه کارهای زیادی انجام داد
کد بالا مربوط به یکی از پروژههای بزرگ هست که توضیح میدم بدها
ی hot-fix که زدم و از
توجه کنید خارج از with خروجی print مثل قبل چاپ میشه و دیگه توی فایلی نوشته نمیشه چون توی
with open
توی پایتون کار کردید فوقالعاده کمک کننده و مفید هست همین که دیگه لازم نیست یادتون بمونه فایل رو ببیند یا اینکه کد درست رو بزنید
بستن فایل باید توی بخش finally باشه و ...
try:همین شرایط برای connection به دیتابیس هم هست.
excpet:
finally:
with openاز یک راه حل تمیز و زیبا استفاده میکنه که بهش
Context Manager Protocol
گفته میشه یک کلاس داخل تعریف پروتوکل
context managerقرار میگیره اگر ۲ تا متد رو داشته باشه
__enter__, __exit__دقیقا وقتی وارد بلوک
__enter__
with .... :میشیه اجرا میشه و
pass
__exit__
وقتی از with
خارج میشه پس توی این بین میشه کارهای زیادی انجام داد
کد بالا مربوط به یکی از پروژههای بزرگ هست که توضیح میدم بدها
ی hot-fix که زدم و از
print
رو بجای logger
استفاده کردم توجه کنید خارج از with خروجی print مثل قبل چاپ میشه و دیگه توی فایلی نوشته نمیشه چون توی
__exit__
sys.stdout
به مقدار قبلی برمیگرده.فایل بعدی که باید داشته باشید
۱- دیلی شرکت نکردن بدون اطلاع قبلی؛ دستمزد اون روز رو حذف میکنه
۲- پروژه تحویل دادن بدون
اما توی تیم من حداقل ۳ نکته هم باید رعایت بشه :
۱- بجای یک فایل باید ۳ تا فایل برای
تصویر بالا برای فایل
requirements.txt
نبودش توی تیم ما خطای بزرگی هست :۱- دیلی شرکت نکردن بدون اطلاع قبلی؛ دستمزد اون روز رو حذف میکنه
۲- پروژه تحویل دادن بدون
requirements.txt
درست بین ۲ تا ۷ روز کسر از دستمزد داره (اهمیت رو ببینید)اما توی تیم من حداقل ۳ نکته هم باید رعایت بشه :
۱- بجای یک فایل باید ۳ تا فایل برای
requirements
داشته باشید base.txt- local.txt - product.txt
یک پوشه به این اسم میسازید و این ۳ فایل داخلش قرار میگیره تصویر بالا برای فایل
base.txt
هست؛ این فایل شامل پکیجهایی میشه که چه توی محیط توسعه چه توی پروداکشن باید وجود داشته باشه local.txt
برای محیط توسعه هست خط اول این فایل همیشه باید -r base.txt
باشه که بصورت اتومات پکیجهای داخل base
رو هم شامل بشه موقع نصب و باقی خطهای فایل شامل پکیجهایی میشه که فقط توی محیط توسعه لازم هست :black, isort, flake8, pre-commit, ...
و در نهایت prod.txt
مواردی که فقط روی پروداکشن لازم هست بازم خط اول باید-r base.txt
باشه حتما و قطعا چیزی که توی local
هست نباید اینجا باشه.
🧑💻PythonDev🧑💻
فایل بعدی که باید داشته باشید requirements.txt نبودش توی تیم ما خطای بزرگی هست : ۱- دیلی شرکت نکردن بدون اطلاع قبلی؛ دستمزد اون روز رو حذف میکنه ۲- پروژه تحویل دادن بدون requirements.txt درست بین ۲ تا ۷ روز کسر از دستمزد داره (اهمیت رو ببینید) اما توی…
۲- تمامی پکیجها باید ورژن داشته باشند اما استفاده از
استفاده میکنیم دلیلش هم این هست که آپدیتهای پچ رو بتونیم دانلود و نصب کنیم (چه امنیتی باشه چه رفع باگهای ساده) بدون اینکه نیازی به تغییر حتی ۱ خط کد باشه
۳- تا جایی که امکان داره موارد رو بصورت دستی بنویسید و از
این مواردی هست که توی تیم بنده رعایت میشه و تجربه بهم نشون داده کار خوبی هست (جاهای دیگه هم دیدم این مورد رو)
برخی از
بازم میگم ما ترجیح میدیم راجب انتخاب ابزار هیچ فشاری روی باقی تیم نداشته باشیم.
==
برای ورژن زدن پکیجها ریکامند نمیشه بجاش از ~=
استفاده میکنیم دلیلش هم این هست که آپدیتهای پچ رو بتونیم دانلود و نصب کنیم (چه امنیتی باشه چه رفع باگهای ساده) بدون اینکه نیازی به تغییر حتی ۱ خط کد باشه
۳- تا جایی که امکان داره موارد رو بصورت دستی بنویسید و از
pip freeze
دوری کنید؛ که فقط پکیجهای اصلی ذکر بشه و فایل تمیزتری برای بررسی وجود داشته باشه.این مواردی هست که توی تیم بنده رعایت میشه و تجربه بهم نشون داده کار خوبی هست (جاهای دیگه هم دیدم این مورد رو)
برخی از
toml , ...
استفاده میکنند که من برای پروژه تیمی تایید نمیکنم چون هرکسی ممکن ازین ابزارها استفاده نکنه ولی اگر کل تیم شما با اون فرمول پیش میره شما هم همون کار رو بکنید.بازم میگم ما ترجیح میدیم راجب انتخاب ابزار هیچ فشاری روی باقی تیم نداشته باشیم.
قبل از اینکه خروجی
همیشه و تحت همه شرایط؛ خروجی Profiling رو ذخیره کنید اونم ۲ بار :
۱- قبل از اینکه کدی رو تغییر بدید (همیشه هم به اسمی ذخیره کنید که یادتون بمونه + تاریخ)
۲- بعد از اینکه تغییرات رو اعمال کردید (اسم تغییرات + تاریخ یا
شاید شما ندونید برای چی ذخیره میکنیم ولی ی روزی نجاتتون میده.
برای گرفتن خروجی بالا توی ترمینال این دستور رو اجرا میکنیم با توجه به این نکته که اسکریپت مثال (توی عکس قبلی رو به اسم
cProfile
رو تفسیر کنم میخوام مهمترین نکته توی زندگیتون موقع استفاده از ابزارهای profiling
رو بگم.همیشه و تحت همه شرایط؛ خروجی Profiling رو ذخیره کنید اونم ۲ بار :
۱- قبل از اینکه کدی رو تغییر بدید (همیشه هم به اسمی ذخیره کنید که یادتون بمونه + تاریخ)
۲- بعد از اینکه تغییرات رو اعمال کردید (اسم تغییرات + تاریخ یا
git commit
)شاید شما ندونید برای چی ذخیره میکنیم ولی ی روزی نجاتتون میده.
برای گرفتن خروجی بالا توی ترمینال این دستور رو اجرا میکنیم با توجه به این نکته که اسکریپت مثال (توی عکس قبلی رو به اسم
example.py
ذخیره کردیم)python -m cProfile -s cumulative example.py
و درصورتی که بخوایم خروجی رو ذخیره کنیم که برای آنالیزش از snakeviz, pstats
استفاده بشه و مهمتر از همه داکیومنتش کرده باشیم میتونیم از دستور python -m cProfile -s cumulative -o compare_bubble_vs_builtin_sort_$(date +'%Y_%m_%dT%H_%M_%S').prof example.py
استفاده کنیم؛ حتما پسوند رو .prof
بذارید که راحت شناسایی بشه.
🧑💻PythonDev🧑💻
قبل از اینکه خروجی cProfile رو تفسیر کنم میخوام مهمترین نکته توی زندگیتون موقع استفاده از ابزارهای profiling رو بگم. همیشه و تحت همه شرایط؛ خروجی Profiling رو ذخیره کنید اونم ۲ بار : ۱- قبل از اینکه کدی رو تغییر بدید (همیشه هم به اسمی ذخیره کنید که یادتون…
توی دستور بالا :
تفسیر خروجیش هم خیلی سادهتر از اون چیزی هست که فکر میکنید فقط چندتا نکته داره :
وقتی دوتا عدد هست مثل خط اول خروجی توی عکس قبلی
عدد کوچیکتر تعداد فراخوانی غیر بازگشتی یا
مجموع زمان مورد نیاز از لحظه فراخونی اون خط یا تابع تا خروج از اون خط یا تابع + زمان مورد نیاز برای اجرای توایعی که داخل این تابع یا خط فراخوانی شدند + زمان اجرا بصورت
اسم اسکریپت : شماره خطی که اون کد اجرا شده (اسم تابع)
اسم تابع برای شرایطی مهم هست که داخل تابع اصلی توابع دیگری هم فراخوانی بشه
توی خروجی بالا مواردی مثل
همینجا بگم که تصویر قبلی خروجی کامل
-m:
برای استفاده از یک ماژول خاص استفاده میشه-s:
ترتیب نمایش هست که گفتیم بر اساس cumulative time
باشه همیشه هم همین رو استفاده خواهید کرد-o:
برای اینکه خروجی رو توی یک فایل بریزه و توی ترمینال نمایش نده (اول در تاریخ ثبت میکنیم بعد ی بار هم بدون این option
برای راحتی خودمون اجرا میکنیم)تفسیر خروجیش هم خیلی سادهتر از اون چیزی هست که فکر میکنید فقط چندتا نکته داره :
ncalls:
تعداد فراخوانی اون خط از کد (ستون آخر کمی جلوتر توضیح میدم دقیق)وقتی دوتا عدد هست مثل خط اول خروجی توی عکس قبلی
3/1
:عدد کوچیکتر تعداد فراخوانی غیر بازگشتی یا
primitive
هست و عدد بزرگتر تعداد کل فراخوانی به هر شکلی که بوده (بازگشتی و غیر بازگشتی و ...) یعنی بصورت کلی اون builtin method
توی مثال قبل ۳ بار فراخوانی شده.tottime:
مجموع زمان مورد نیاز جهت اجرای اون تایع؛ به غیر از زمان اجرای توابعی که داخل این تابع فراخوانی شدهاند.percall:
زمان اجرای مورد نیاز برای هربار اجرای اون خط یا اون تابع معمولا حدودی برابر هست با :tottime / ncalls
cumtime:
مهمترین ستون همینه و اون مرتب سازی که توی دستور انجام دادیم (منظورم s cumulative-
هست) بر اساس همین ستون بود.مجموع زمان مورد نیاز از لحظه فراخونی اون خط یا تابع تا خروج از اون خط یا تابع + زمان مورد نیاز برای اجرای توایعی که داخل این تابع یا خط فراخوانی شدند + زمان اجرا بصورت
recursive , ...
خلاصه همه چیز اینجاس و از همه ستونها هم دقیقتر هست filename:lineno(function)
اینم که بسیار واضح هست از سمت چپ به راست :اسم اسکریپت : شماره خطی که اون کد اجرا شده (اسم تابع)
اسم تابع برای شرایطی مهم هست که داخل تابع اصلی توابع دیگری هم فراخوانی بشه
توی خروجی بالا مواردی مثل
builtin.exec
(از توابع مورد علاقه من هست اصن ی وضعی) و برخی موارد دیگر برای import random
هست همینجا بگم که تصویر قبلی خروجی کامل
cProfile
نیست و بنده این خروجی رو بریدم تا خواناتر باشهخوب از کجا شروع کنم براتون توضیح بدم همین چند دقیقه پیش داشتم با یه سری دوستان گفتگو میکردم در مورد بازار کار و اینکه برای بازار کار اماده هستن یا نه یه سری از دوستان میدونم پایتون کار کردن و جنگو هم خیلی کار کردن کلس داکیومنت خوندن و دوره مختلف دیدن و پروژه های مختلف زدن و کتاب های مختلفی هم خوندن ولی مثلا ویدیو وقتی میبینن مثل یوتیوب میکرو فرانت بر میخورن خیلی مباحث جدید می بینن مصاحبه هم که میرن رد میشن
🧑💻PythonDev🧑💻
خوب از کجا شروع کنم براتون توضیح بدم همین چند دقیقه پیش داشتم با یه سری دوستان گفتگو میکردم در مورد بازار کار و اینکه برای بازار کار اماده هستن یا نه یه سری از دوستان میدونم پایتون کار کردن و جنگو هم خیلی کار کردن کلس داکیومنت خوندن و دوره مختلف دیدن و…
در ادامه این باید بهتون بگم که اول بررسی که دوره ها رو پروژه ها ور کتاب های که خوندی نرو سطح مهارت های خودت رو ارزیابی کنید ببینید میتونید مفاهیم پیچیده رو درک کنی و تو کاربرد عملی ازشون استفاده کنید اگهی های استخدامی رو مطالعه کنید تو همون حوزه جنگو تحلیل کنید نیاز های موجود تو بازار ر و بهتون کمک میکنه که کدوم موضوع ها کمی ناکافی هستن و چه مهارت های رو هم باید بهبود بدین مهارت های جدید رو بررسی کنید ویدیو ها و منابع اموزش میکرو فرانت اند رو بررسی کنید یا هر موضوع جدید دیگه ای رو یا هر موضوعی که بهش برخورد میکنید رو ببینید اینکه میتونید این موضوع ها رو یاد بگیرید یا نه که این بستگی به نیاز شغلی خودتون داره از مصاحبه ها بازخورد بگیرین اگه خدای نکرده تو مصاحبه رد شدین سعی کنید از مصاحبه کننده یه بازخورد بگیرید این بهتون کمک میکنه نقطه ضعف خودتون روپیدا کنید مهارت های جدید رو توسعه بدین برنامه ریزی واسه توسعه دادن یه مهارت جدید و پیشرفت تو حوزه های که الان نیاز مند بازار کار هستن این هم ممکن هستش که یه سری مهارت های اضاف مثل فرانت اند یا مدیریت پروژه هم براتون مفید باشه تمام مورادی که براتون بهش گفته هم بر گرفته از تجریات کاری خودم هستش و بهتون گفتم که تو مسیر کار و یادگیری به مشکل برنخورید
خیلی وقتا بهم میگن، اشتباه میکنی و وقتت رو الکی تلف میکنی که بجای خوندن فقط آموزش و یادگیری میری سورس کد رو میخونی ؛
هیچوقت این موضوع رو جواب نمیدم و همیشه میگم حق با شماست، ولی به این آدما باید گفت :
خیلی باید رشد کنی، تا بفهمی چرا حتماً باید بعضی سورس کدها رو خوند.
حداقلش : کمک واضح به
هست.
مثلاً میدونستید
توی پایتون 3.5 کلا ۳۵۰ خط کد بوده، و پیاده سازیش با
برای همین میتونستیم خیلی راحت بهش فیچر اضافه کنیم (کاری که توی پروژه انجام دادیم)
تصویر مربوط به سورس کد
هیچوقت این موضوع رو جواب نمیدم و همیشه میگم حق با شماست، ولی به این آدما باید گفت :
خیلی باید رشد کنی، تا بفهمی چرا حتماً باید بعضی سورس کدها رو خوند.
حداقلش : کمک واضح به
System design, Optimization
هست.
مثلاً میدونستید
Coroutine
توی پایتون 3.5 کلا ۳۵۰ خط کد بوده، و پیاده سازیش با
generator
های پایتون بود ؟برای همین میتونستیم خیلی راحت بهش فیچر اضافه کنیم (کاری که توی پروژه انجام دادیم)
تصویر مربوط به سورس کد
coroutine
روی python3.5
🧑💻PythonDev🧑💻
خیلی وقتا بهم میگن، اشتباه میکنی و وقتت رو الکی تلف میکنی که بجای خوندن فقط آموزش و یادگیری میری سورس کد رو میخونی ؛ هیچوقت این موضوع رو جواب نمیدم و همیشه میگم حق با شماست، ولی به این آدما باید گفت : خیلی باید رشد کنی، تا بفهمی چرا حتماً باید بعضی سورس…
حالا ی بحثی که پیش میاد این هست که چقدر باید سورس کد خوند و تا کجا ؟
اینکه هر پکیجی که دستمون میاد رو بریم سورس کدش رو بخونیم که عملاً واقعی نیست، کاش سرعت خوندن انقدر زیاد بود یا زمان زیادی داشتیم که خب اینطوری نیست و همین شاید زندگی رو ارزشمند کرده 🤔
ولی شخصاً مطالب و فیچرهای خیلی مهم پایتون رو حتماً سورس کداش رو میخونم (قرار نیست خط به خط دیباگ کنید)
باقی پکیجها هم فقط مواردی که میدونم ازون روزی که یاد میگیرم به بعد قرار هست توی تموم پروژههام ازش استفاده کنم و پول در بیارم
پکیجهایی که قراره فقط ۶ ماه باهاش کار کنم یا در حد ۱ پروژه هست رو هیچوقت اینکارو نمیکنم مگر اینکه مجبور بشم یا شرکت بخواد داخلش تغییرات ایجاد کنه.
این مرز بندی بسیار بسیار مهم هست که درست و بهینه باشه
اینکه هر پکیجی که دستمون میاد رو بریم سورس کدش رو بخونیم که عملاً واقعی نیست، کاش سرعت خوندن انقدر زیاد بود یا زمان زیادی داشتیم که خب اینطوری نیست و همین شاید زندگی رو ارزشمند کرده 🤔
ولی شخصاً مطالب و فیچرهای خیلی مهم پایتون رو حتماً سورس کداش رو میخونم (قرار نیست خط به خط دیباگ کنید)
باقی پکیجها هم فقط مواردی که میدونم ازون روزی که یاد میگیرم به بعد قرار هست توی تموم پروژههام ازش استفاده کنم و پول در بیارم
پکیجهایی که قراره فقط ۶ ماه باهاش کار کنم یا در حد ۱ پروژه هست رو هیچوقت اینکارو نمیکنم مگر اینکه مجبور بشم یا شرکت بخواد داخلش تغییرات ایجاد کنه.
این مرز بندی بسیار بسیار مهم هست که درست و بهینه باشه
دوستان که تازه کار هستن یه آمار بهم بدین بینم چی به چیه تا بنده براتون در مورد دوره های آموزشی و بازار کار براتون توضیح بدم
Anonymous Poll
62%
مبتدی(تازه کار)
24%
متوسط (کارآموزی)
14%
پیشرفته
یه سری از دوستان از من خواستن که در مورد یادگیر پایتون و اینکه مسیر اموزش پایتون و بازار کارش بگم خوب من سعی میکنم خیلی کامل توضیح بدم که کم گذاشته نباشم واستون و بهتون تو مسیر یادگیری کمک کنه خوب اول که باید بهتون بگم که واسه یادگیری پایتون مفاهیم اولیه رو اول یاد بگیرید مفاهیم اولیه شامل همون متغییر ها لیست حلقه و توابع میشه می تونید از منابع اموزشی انلاین استفاده کنید و یا کتاب های مانند learn python the hard way که نویسنده اون zed shaw هست استفاده کنید در مرحله دوم یادگیری ساختار داده ها و الگوریتم ها خیلی مهم هست که توی حل مسائل پیچیده خیلی به کارتون میاد از کتاب های که میتونم معرفی کنم میتونم به کتاب data structures and algorithms in python که اثر michael استفاده کنید و اینکه باید بگم که پروژه های عملی هم خیلی بهتون کمک میکنه بهترین روش برای تقویت مهارت های پایتون انجام داده پروژه های عملی هستش شروع به پیاده سازی پروژه های کوچک کنید مثل یک برنامه ماشین حساب یا یک برنامه تحت وب ساده و پس از این ها پروژه های پیشرفته تر مثل مدیریت سیستم داده ها بپردازین
🧑💻PythonDev🧑💻
یه سری از دوستان از من خواستن که در مورد یادگیر پایتون و اینکه مسیر اموزش پایتون و بازار کارش بگم خوب من سعی میکنم خیلی کامل توضیح بدم که کم گذاشته نباشم واستون و بهتون تو مسیر یادگیری کمک کنه خوب اول که باید بهتون بگم که واسه یادگیری پایتون مفاهیم اولیه…
و اموزش مفاهیم پیشرفته شما هر چه بیشتر مسیر اموزشتون جلو بره به مفاهیم پیشرفته تری تو پایتون مثل خطا ها و استثنا ها نخ ها و همزمانی و برنامه نویسی شی گرا بپردازین برا این کار میتونید از منابع اموزشی انلانی مانند سایت python.org , real python استفاده کنید یه سری چارچوب ها و پروژه های واقعی هستند که شما با یادگیری این چهارچوب های پایتون مثل Django , Flask میتونید برنامه های تحت وب قدرتمندی رو بسازید شروع به ساخت پروزه های واقعی و تجاری کنید و با کار تیمی و مشارکت تو گروه های توسعه دهنده ها پیشرفت کنید و گام بعدی به روز رسانی هستش پایتون یه زبان برنامه نویسی پویا هستش بنابراین باید بهتون بگم که روزانه از طریق منابع اموزشی انلاین کتاب ها و وبلاگ ها و و جامعه برنامه نویسی پایتون خودتون رو بروز کنید میتونید در دروه های انلاین و دوره های حضوی هم شرکت کنید و مهارت خودتون رو بالا ببرید من در ادامه دوره ای رو معرفی میکنم براتون و یه سری نکته های اصولی هم میگم واستون
🧑💻PythonDev🧑💻
و اموزش مفاهیم پیشرفته شما هر چه بیشتر مسیر اموزشتون جلو بره به مفاهیم پیشرفته تری تو پایتون مثل خطا ها و استثنا ها نخ ها و همزمانی و برنامه نویسی شی گرا بپردازین برا این کار میتونید از منابع اموزشی انلانی مانند سایت python.org , real python استفاده کنید…
تا جایی که میتونید از دیدن دور های با ساعت اموزش خیلی بالا پرهیز کنید این طور تایم که دارید به شدت گرفته میشه در هنگام یادگیری حتما نت برداری بشه و لطفا اگه نت برداری میکنید روزانه مطالع داشته باشید نت برداری کردن و نخوندن باعث میشه مطالب که نوشتید ارشیو بشن و بهشون مراجعه نکنید پس تا جایی که میتونید حتما روزانه ساعت مشخصی رو واسه خوندن مطالب که برداشت کردین بزارین سعی کنید داکیومنت خونی هم داشته باشین با رفرنس ها کتاب خونه های پایتون اشنایی داشته باشید که میتونید به سایت رسمی خود پایتون مراجعه کنید و یا از سایت های دیگر استفاده کنید یادگیری زبان انگلبسی در برنامه نویسی به شدت مهم و تاثیر گذار هستش حتما زبان انگلیسی خودتون رو تقویت کنید از حفظ کردن کد و کد زنی که فقط کد بزنید به شدت پرهیز کنید همه میتونن کد بزنن بیشتر در کنار کد زنی توسعه دادن یه پروژه رو هم یاد بگیرید
🧑💻PythonDev🧑💻 pinned «یه سری از دوستان از من خواستن که در مورد یادگیر پایتون و اینکه مسیر اموزش پایتون و بازار کارش بگم خوب من سعی میکنم خیلی کامل توضیح بدم که کم گذاشته نباشم واستون و بهتون تو مسیر یادگیری کمک کنه خوب اول که باید بهتون بگم که واسه یادگیری پایتون مفاهیم اولیه…»
🧑💻PythonDev🧑💻 pinned «و اموزش مفاهیم پیشرفته شما هر چه بیشتر مسیر اموزشتون جلو بره به مفاهیم پیشرفته تری تو پایتون مثل خطا ها و استثنا ها نخ ها و همزمانی و برنامه نویسی شی گرا بپردازین برا این کار میتونید از منابع اموزشی انلانی مانند سایت python.org , real python استفاده کنید…»
🧑💻PythonDev🧑💻 pinned «تا جایی که میتونید از دیدن دور های با ساعت اموزش خیلی بالا پرهیز کنید این طور تایم که دارید به شدت گرفته میشه در هنگام یادگیری حتما نت برداری بشه و لطفا اگه نت برداری میکنید روزانه مطالع داشته باشید نت برداری کردن و نخوندن باعث میشه مطالب که نوشتید ارشیو بشن…»