وقتی صحبت از ارسال و دریافت دیتا میشود یکی از مواردی از همون ابتدا به ذهن میرسه انتخاب
درست هست؛ اگر توسعه دهنده وب باشید قطعا همون اول یاد
میوفتید (امن و مناسب) اما گزینههای دیگری هم هست که توی پروژههای مختلف استفاده میشه مثل
مشکل اصلی که با
بصورت دیفالت
اما مشکل اینجاس که
تصویر پیوست شده؛ اگر قرار هست از
GitHub issues
Serializer
درست هست؛ اگر توسعه دهنده وب باشید قطعا همون اول یاد
JSON
میوفتید (امن و مناسب) اما گزینههای دیگری هم هست که توی پروژههای مختلف استفاده میشه مثل
YAML
که بیشتر دوستان DevOps کار یا برنامهنویسهای اون سمت باهاش کار میکنند؛ و یا مثلا: Pickle
که توی AI و DataScience خیلی طرفدار داره متاسفانه (استفادهاش توی تیم من ممنوع هست)مشکل اصلی که با
YAML, Pickle
وجود داره بخصوص Pickle
امنیت هست.بصورت دیفالت
YAML
, Pickle وقتی باهاش Serialized Data
رو باز میکنید اگر حاوی دستورات سیستمی هم باشه اونهارو بصورت کامل اجرا میکنه برای همین هست که توی PyYaml
وقتی کدی قرار هست برای Production
استفاده بشه باید از yaml.safe_load
استفاده کنید.اما مشکل اینجاس که
safe_load
کلاسهای کاستوم رو نمیشناسه راه حل :تصویر پیوست شده؛ اگر قرار هست از
YAML
توی پروژه استفاده کنید حتما از safe_loader
استفاده کنید load
, full_loader
, ... امن نیست و این مورد یک باگ کاملا شناخته شده هست.GitHub issues
🧑💻PythonDev🧑💻
این کد که احتمالاً بسیار هم میبینید و استفاده میکنید ۲ تا باگ داره، که ۱ مورد میتونه حتی شمارو توی مصاحبه رد کنه میتونید باگهارو پیدا کنید ؟
اول راجب خود
نحوه نمایش پارامترهای ورودی هست که مشخص نیست از چه تایپی هست و شما نمیتونید با کپی کردن خروجی یک object جدید بسازید که خب خود
پس برای رفع این باگ کاری که باید بکنید استفاده از :
repr
بگم
برای دوستان تازهکار، در صورتیکه وجود نداشته باشه توی خط 11 و بعد از اجرای کد چیزی که برای شما توی کنسول نمایش داده میشه آدرس حافظه اون object هست مثلاً: <main.Person object at 0x7f894c576650>
که خب اصلا چیز خوبی نیست، به لطفrepr
شما
میتونید خروجی بهتری داشته باشید مثلاً توی این تصویر خروجی بصورت زیر هست : Person(name=Mo Abbasi, age=60)
حالا بریم سراغ باگها؛ باگ اول که خب سادهتر هست :نحوه نمایش پارامترهای ورودی هست که مشخص نیست از چه تایپی هست و شما نمیتونید با کپی کردن خروجی یک object جدید بسازید که خب خود
repr رو
میبره زیر سوالMo Abbasi
استرینگ نیست اینجا.پس برای رفع این باگ کاری که باید بکنید استفاده از :
!r
هست ینی خط 7 میشه: return f"Person(name={self.name!r}, age={self.age!r})"
اگر تا به حال اینطوری تعریف نمیکردید، تعریف repr شما
طبق استاندارد نبوده.
🧑💻PythonDev🧑💻
بنظرتون باگ این سورس کد کجاست ؟
این یک باگ کاملا شناخته شده و کاملا تکراری هست؛ ممکنه توی مصاحبههای مختلف هم تجربهاش کرده باشید یا دیده باشید.
یک نمونه مصاحبه Amazon بوده برای پایتون (طرف از یک زبان برنامه نویسی دیگه اومده بود سمت پایتون و دنبال کار بود)
اول برای دوستان تازه کار:
و
البته اینجا نه بخاطر باگی که وجود داره
اگر بخوام خیلی ساده توضیح بدم :
مسئله اصلی اینجاس که نسخه پایتونی که بصورت دیفالت از سایت پایتون دانلود میشه روی
به همین دلیل وقتی از dict ارث بری بکنید احترامی برای متدهای builtin قائل نمیشه (چون توی
راه حل :
یک نمونه مصاحبه Amazon بوده برای پایتون (طرف از یک زبان برنامه نویسی دیگه اومده بود سمت پایتون و دنبال کار بود)
اول برای دوستان تازه کار:
setitem
وقتی
اجرا میشه که میخواهید یک key - value رو داخل dictionary بریزیدو
getitem
وقتی
اجرا میشه که میخواهید یک مقدار رو از دیکشری بخونید. البته اینجا نه بخاطر باگی که وجود داره
اگر بخوام خیلی ساده توضیح بدم :
مسئله اصلی اینجاس که نسخه پایتونی که بصورت دیفالت از سایت پایتون دانلود میشه روی
C
کد زده شده و مواردی مثل str, dict, list
از کدهای C
برای اجرا استفاده میکنند. به همین دلیل وقتی از dict ارث بری بکنید احترامی برای متدهای builtin قائل نمیشه (چون توی
C
پیاده سازی شده و کد پایتون شما قابلیت overwrite شدن روی کد C
رو نداره) پس درنهایت چیزی رو میگیرید که توی C
و برای خود پایتون دیکشنری پیاده سازی شدهراه حل :
__mro__
یکی ازون موارد جذاب هست؛ پیادهسازی و الگوریتم جالبی هم داره برای دیباگ هم خیلی خیلی کمک کننده هست (مخصوصا وقتی دیباگر در درسترس نیست) که مخفف :
Method Resolution Order
معمولا توی ۹۰٪ پروژهها نیازی بهش ندارید اما توی مصاحبههای فنی ممکن هست بهش برخورد کنید مخصوصا اگر شرکت تولید کننده ابزار برای برنامهنویسها هست (مثلا
تیم Micro
soft Vs
code ) همونجوری که توی خروجی یا حتی از اسم متد پیداس اولویت اجرای متد رو بهتون نشون میده؛ و یک اثبات دیگه ازین موضوع هست که همه چیز توی پای
تون Ob
ject هست.
🧑💻PythonDev🧑💻
__mro__ یکی ازون موارد جذاب هست؛ پیادهسازی و الگوریتم جالبی هم داره برای دیباگ هم خیلی خیلی کمک کننده هست (مخصوصا وقتی دیباگر در درسترس نیست) که مخفف : Method Resolution Order معمولا توی ۹۰٪ پروژهها نیازی بهش ندارید اما توی مصاحبههای فنی ممکن هست بهش…
یک نکته که شاید لازم باشه بهش اشاره کنم در این تصویر (مخصوصا برای دوستان تازهکار)
استفاده از
یکی از کاربردهاش زمانی هست که ی بخش از کد رو هنوز پیاده سازی نکردید.
توی این کاربرد مثل
استفاده از
...
هست (اصطلاحا بهش Ellipsis
گفته میشه توی پایتون اگر خواستید بیشتر بخونید)یکی از کاربردهاش زمانی هست که ی بخش از کد رو هنوز پیاده سازی نکردید.
توی این کاربرد مثل
pass
میمونه#موقت
درحال بررسی یک منبع فوقالعاده هستم.
۳-۴ ساعت طول میکشه ولی اگر به همون خوبی باشه که از یکی از کانتریبیوترهای جنگو شنیدم (دارم همین موضوع رو بررسی میکنم؛ چون تازه با این شخص آشنا شدم.)
واقعا نمیدونم چرا توی کانالهای توسعه وب با پایتون این رو پیدا نکردم :/
اگر ندیدید که خب چرا ؟
اگر دیدید و نذاشتید؛ اینارو واسه خودتون نگه میدارید ؟
بذارید خدایی این مباحث رو.
متأسفانه فرصت نکردم تکمیل کنم (چندتا تسک بهم خورد این وسط)
به محض خلوت شدن، ادامه میدم و تکمیل میکنم
درحال بررسی یک منبع فوقالعاده هستم.
۳-۴ ساعت طول میکشه ولی اگر به همون خوبی باشه که از یکی از کانتریبیوترهای جنگو شنیدم (دارم همین موضوع رو بررسی میکنم؛ چون تازه با این شخص آشنا شدم.)
واقعا نمیدونم چرا توی کانالهای توسعه وب با پایتون این رو پیدا نکردم :/
اگر ندیدید که خب چرا ؟
اگر دیدید و نذاشتید؛ اینارو واسه خودتون نگه میدارید ؟
بذارید خدایی این مباحث رو.
متأسفانه فرصت نکردم تکمیل کنم (چندتا تسک بهم خورد این وسط)
به محض خلوت شدن، ادامه میدم و تکمیل میکنم
🧑💻PythonDev🧑💻
#موقت درحال بررسی یک منبع فوقالعاده هستم. ۳-۴ ساعت طول میکشه ولی اگر به همون خوبی باشه که از یکی از کانتریبیوترهای جنگو شنیدم (دارم همین موضوع رو بررسی میکنم؛ چون تازه با این شخص آشنا شدم.) واقعا نمیدونم چرا توی کانالهای توسعه وب با پایتون این رو پیدا…
این ویدئو در راستای همون صحبتی هست که داشتم :
وب رو فارغ از فریمورک یاد بگیرید
متأسفانه خیلی از بچههایی که با پایتون وب رو یاد گرفتند بخصوص جنگو، اگر فریمورک عوض بشه باید از صفر شروع کنند برای همین جابجایی بین فریمورکهای مختلف بسیار براشون سخت هست
YouTube Video
توی این ویدئو که از
از توسعه دهندههای اصلی django بهتون وب رو فارغ از فریمورک آموزش میده و شاید مقدماتی رو میگه از اینکه چطور وب فریمورک بعدی رو خودتون بنویسید.
شخصاً با خیلی از مباحث آشنا بودم ولی بازم خیلی چیز جدید داشت برام؛ اگر بخوام بگم چطوری بخونید پیشنهادم این هست :
۱- ویدئو رو ببینید و تمریناتش رو انجام بدید
۲- تمرینات رو برای کار خودتون بسط بدید (برای من
۳- تمرینات بالا و منابع معرفی شده رو برای
۴- تمرینات رو خودتون انجام بدید، حتی اگر هر تمرین بیش از زمان پیشنهادی توی ویدیو وقت بگیره (اگر با مباحث هیچ آشنایی دقیقی ندارید ممکنه هر تمرین بیش از چندین ساعت وقت بگیره ولی شک نکنید هزاران بار ارزشش رو داره)
بازم میگم؛ برای منی که با تمامی این مباحث آشنایی داشتم نکات ریز و
و حتماً به کار دوستان سطح بالاتر هم خواهد اومد.
وب رو فارغ از فریمورک یاد بگیرید
متأسفانه خیلی از بچههایی که با پایتون وب رو یاد گرفتند بخصوص جنگو، اگر فریمورک عوض بشه باید از صفر شروع کنند برای همین جابجایی بین فریمورکهای مختلف بسیار براشون سخت هست
YouTube Video
توی این ویدئو که از
PyCon
سال 2017 هست Jacob Kaplan
از توسعه دهندههای اصلی django بهتون وب رو فارغ از فریمورک آموزش میده و شاید مقدماتی رو میگه از اینکه چطور وب فریمورک بعدی رو خودتون بنویسید.
شخصاً با خیلی از مباحث آشنا بودم ولی بازم خیلی چیز جدید داشت برام؛ اگر بخوام بگم چطوری بخونید پیشنهادم این هست :
۱- ویدئو رو ببینید و تمریناتش رو انجام بدید
۲- تمرینات رو برای کار خودتون بسط بدید (برای من
RestApi
)۳- تمرینات بالا و منابع معرفی شده رو برای
ASGI
هم دنبال کنید.۴- تمرینات رو خودتون انجام بدید، حتی اگر هر تمرین بیش از زمان پیشنهادی توی ویدیو وقت بگیره (اگر با مباحث هیچ آشنایی دقیقی ندارید ممکنه هر تمرین بیش از چندین ساعت وقت بگیره ولی شک نکنید هزاران بار ارزشش رو داره)
بازم میگم؛ برای منی که با تمامی این مباحث آشنایی داشتم نکات ریز و
roadmap
خوبی بود برای پیشرفت؛ قطعاً برای عزیزانی که تازه آموزش مقدماتی جنگو یا ... رو تموم کردند فوقالعاده خواهد بود.و حتماً به کار دوستان سطح بالاتر هم خواهد اومد.
YouTube
Jacob Kaplan Moss Let's build a web framework! PyCon 2017
"Speaker: Jacob Kaplan-Moss
"Reinventing the wheel is great if your goal is to learn more about wheels."
-- James Tauber
If you're building a web app, you probably reach for your favorite framework -- Django, Flask, Pyramid, etc. But we rarely stop to…
"Reinventing the wheel is great if your goal is to learn more about wheels."
-- James Tauber
If you're building a web app, you probably reach for your favorite framework -- Django, Flask, Pyramid, etc. But we rarely stop to…
🧑💻PythonDev🧑💻
این ویدئو در راستای همون صحبتی هست که داشتم : وب رو فارغ از فریمورک یاد بگیرید متأسفانه خیلی از بچههایی که با پایتون وب رو یاد گرفتند بخصوص جنگو، اگر فریمورک عوض بشه باید از صفر شروع کنند برای همین جابجایی بین فریمورکهای مختلف بسیار براشون سخت هست YouTube…
#موقت
آماری ترکوند این پست :
روی ۴۰۰ تا بازدید
۱۰۰ تا share خورد، که خب دفعه اول بود توی کانال
ولی خدایی نفرستید توی save message که هیچوقت نبینید، حتماً برای این یکی وقت بذارید
پ.ن : چیکار کنم، ی بخشی از شغلم، دیتاساینس هست دیگه 🥲
آماری ترکوند این پست :
روی ۴۰۰ تا بازدید
۱۰۰ تا share خورد، که خب دفعه اول بود توی کانال
ولی خدایی نفرستید توی save message که هیچوقت نبینید، حتماً برای این یکی وقت بذارید
پ.ن : چیکار کنم، ی بخشی از شغلم، دیتاساینس هست دیگه 🥲
#django_roadmap #roadmap
امروز یک دوستی، گفت بهش یک roadmap برای شروع جنگو بدم با این بکگراند :
۱- پایتون رو تا سطح خوبی بلد هست
۲- ساختمان داده و الگوریتم رو میشناسه
۳- لینوکس، گیت و داکر رو هم بلده
یک بخش دیگه که باعث میشه این Roadmap رو بنویسم، همین موضوع هست که خیلی از بچهها بهم گفتند چطوری تونستی بعد از ۲ هفته یادگیری جنگو شروع به کار کنی ؟
اول باید بگم که من ۲ هفتهای فهمیدن جنگو رو مدیون زحماتی هستم که روی پایتون کشیدم، بر عکس خیلیها که شروع میکنند فریمورک یادگرفتن من فارغ از فریمورک توسعه وب رو یاد گرفتم و بعد اومدم سراغ جنگو (هرچند توی جنگو خیلی جا برای پیشرفت دارم و باید زحمتش رو بکشم هنوز)
برای همین هست که وقتی کسی بهم میگه roadmap بده میگم ۳-۶ ماه اول فقط پایتون، من به خیلیها گفتم کتاب
رو جلوت بذار و سرفصلهاش رو بخون، اگر مفهومی رو بلد نیستی یعنی هنوز آماده نیستی که بری سراغ فریمورک (حالا اینکه این موضوع برای نسل آینده برنامهنویسی توسعه میشه، خودش یک داستان هست. یعنی این نسخه رو نمیشه برای همه پیچید ولی قطعاً این بهترین راه هست)
تکنیکی که شخصاً باهاش فریمورک و ... رو یاد میگیرم، مختص خودم هست و اسمش رو منبع سوزی میذارم، چطوری هست ؟
۱- اول مطمئن میشم با اون فریمورک ارتباط برقرار میکنم و جوگیر شدن و ... درکار نیست
برای مثال روی همین جنگو :
اول رفتم سراغ این پلی لیست :
Youtube Playlist
دفعهی اول با سرعت 3x نگاهش کردم کامل که تقریباً ۱ روز جمعهام رو گرفت، بعد یک سری تحقیق کردم و مطمئن شدم ازین فریمورک خوشم اومده
دفعهی دوم همین پلی لیست رو با دقت بیشتر و روی سرعت 1.5x نگاه کردم.
توی این تکنیک برای قدم اول هیچ نیازی به کد زدن نیست، شما تکیه میدی و از دیدن فیلم لذت میبری، توی دفعهی دوم دیدن ویدئو منابع مهم رو روی یک مرورگر دیگه باز میکنید مثلاً: من متوجه شدم چیزهایی به اسم :
وجود داره و همینجا متوجه شدم نیاز من یادگیری با جزئیات
هست و نه
2- یادگیری از یک منبع مناسب، من کتابهای زیادی رو خوندم چون منبع جامع و مناسبی پیدا نکردم برای
ولی دیروز شروع کردم به خوندن یک کتابی که سرفصلهای جالبی داشت و ۳ فصل اول رو خوندم و تموم شد که بنظرم منبع خیلی خوبی اومد نسبت به کتابهای دیگری که خوندم :
Becoming an Enterprise Django Developer
By Michael Dinder (Packt pub)
دقت کنید من هنوز کل این کتاب رو نخوندم ولی تا اینجا خیلی خوب توضیح داده برای شروع.
توی این قدم معمولاً اینطوری عمل میکنم که وقتی ۱ فصل رو خوندم و تموم شد، چند ساعتی به کارهام میرسم و بعد بر میگردم سراغ کتاب اما قبل از شروع فصل جدید بدون اینکه به کتاب رجوع کنم سعی میکنم کل نیازمندی و چیزی که توی اون فصل یادگرفتم و نیاز هست برای فصل بعدی رو بر اساس یادگیریم پیادهسازی کنم.
وقفه بین کتاب و کد برای این هست که مطمئن بشم چیزی رو از حفظ نمیزنم و موضوع رو درک کردم تنها منبعی که میشه توی این بخش ازش استفاده کرد : گوگل + داکیومنت رسمی جنگو هست
۳- هرکتابی که انتخاب کنید، وقتی یک مفهوم رو توضیح میده برای موارد بیشتر و دقیقتر به منبع اصلی
وقتی یک فصل رو تموم میکنید، بعد از اینکه اون فصل رو کدهاش رو زدید و تموم شد
باید برگردید روی کتاب و همون فصل و منابعی که برای خوندن بیشتر بهتون معرفی کرده رو بخونید.
این قدم بسیار بسیار مهم هست، چون هم با اصطلاحات آشنا میشید، هم با اکو سیستم اون فریمورک و هم یاد میگیرید چطور باید از داکیومنت فریمورک استفاده کنید بدون اینکه وقت تلف کنید.
قدم ۴ - یادگیری هیچوقت متوقف نمیشه، نیاز شما هم هیچوقت یکسان و ثابت نیست، بر اساس نیاز منابع جدید پیدا میکنید، سورس کد باقی افراد رو میخونید که به سمت یک نویسنده یا مدرس بایاس نشید، توی این قدم هرجوری که حال میکنید ادامه بدید.
پس اگر از نحوه خوندن من و البته بخش اول که پیشنیاز هست بگذریم ۴ تا منبع معرفی میشه کرد :
1- YouTube PlayList
نسخه
2- Becoming an Enterprise Django Developer By Michael Dinder (Packt pub)
3- Django documentation
4- Django Rest Framework
و در نهایتاً نمیشه توسعه دهنده جنگو باشید و عضو بزرگترین کامیونیتی جنگو فارسی نباشید :
@DjangoEx
صاحب کانال رو میشناسم و به هدفش ایمان دارم، از روز اول هم دنبال کنندهاش هستم و خواهم بود.
امروز یک دوستی، گفت بهش یک roadmap برای شروع جنگو بدم با این بکگراند :
۱- پایتون رو تا سطح خوبی بلد هست
۲- ساختمان داده و الگوریتم رو میشناسه
۳- لینوکس، گیت و داکر رو هم بلده
یک بخش دیگه که باعث میشه این Roadmap رو بنویسم، همین موضوع هست که خیلی از بچهها بهم گفتند چطوری تونستی بعد از ۲ هفته یادگیری جنگو شروع به کار کنی ؟
اول باید بگم که من ۲ هفتهای فهمیدن جنگو رو مدیون زحماتی هستم که روی پایتون کشیدم، بر عکس خیلیها که شروع میکنند فریمورک یادگرفتن من فارغ از فریمورک توسعه وب رو یاد گرفتم و بعد اومدم سراغ جنگو (هرچند توی جنگو خیلی جا برای پیشرفت دارم و باید زحمتش رو بکشم هنوز)
برای همین هست که وقتی کسی بهم میگه roadmap بده میگم ۳-۶ ماه اول فقط پایتون، من به خیلیها گفتم کتاب
Fluent Python
رو جلوت بذار و سرفصلهاش رو بخون، اگر مفهومی رو بلد نیستی یعنی هنوز آماده نیستی که بری سراغ فریمورک (حالا اینکه این موضوع برای نسل آینده برنامهنویسی توسعه میشه، خودش یک داستان هست. یعنی این نسخه رو نمیشه برای همه پیچید ولی قطعاً این بهترین راه هست)
تکنیکی که شخصاً باهاش فریمورک و ... رو یاد میگیرم، مختص خودم هست و اسمش رو منبع سوزی میذارم، چطوری هست ؟
۱- اول مطمئن میشم با اون فریمورک ارتباط برقرار میکنم و جوگیر شدن و ... درکار نیست
برای مثال روی همین جنگو :
اول رفتم سراغ این پلی لیست :
Youtube Playlist
دفعهی اول با سرعت 3x نگاهش کردم کامل که تقریباً ۱ روز جمعهام رو گرفت، بعد یک سری تحقیق کردم و مطمئن شدم ازین فریمورک خوشم اومده
دفعهی دوم همین پلی لیست رو با دقت بیشتر و روی سرعت 1.5x نگاه کردم.
توی این تکنیک برای قدم اول هیچ نیازی به کد زدن نیست، شما تکیه میدی و از دیدن فیلم لذت میبری، توی دفعهی دوم دیدن ویدئو منابع مهم رو روی یک مرورگر دیگه باز میکنید مثلاً: من متوجه شدم چیزهایی به اسم :
Redis, Celery, Flower, django rest framework, ...
وجود داره و همینجا متوجه شدم نیاز من یادگیری با جزئیات
DRF
هست و نه
Django forms
یا template
نویسی پس این دو مورد رو خیلی کم روش وقت گذاشتم.2- یادگیری از یک منبع مناسب، من کتابهای زیادی رو خوندم چون منبع جامع و مناسبی پیدا نکردم برای
DRF
ولی دیروز شروع کردم به خوندن یک کتابی که سرفصلهای جالبی داشت و ۳ فصل اول رو خوندم و تموم شد که بنظرم منبع خیلی خوبی اومد نسبت به کتابهای دیگری که خوندم :
Becoming an Enterprise Django Developer
By Michael Dinder (Packt pub)
دقت کنید من هنوز کل این کتاب رو نخوندم ولی تا اینجا خیلی خوب توضیح داده برای شروع.
توی این قدم معمولاً اینطوری عمل میکنم که وقتی ۱ فصل رو خوندم و تموم شد، چند ساعتی به کارهام میرسم و بعد بر میگردم سراغ کتاب اما قبل از شروع فصل جدید بدون اینکه به کتاب رجوع کنم سعی میکنم کل نیازمندی و چیزی که توی اون فصل یادگرفتم و نیاز هست برای فصل بعدی رو بر اساس یادگیریم پیادهسازی کنم.
وقفه بین کتاب و کد برای این هست که مطمئن بشم چیزی رو از حفظ نمیزنم و موضوع رو درک کردم تنها منبعی که میشه توی این بخش ازش استفاده کرد : گوگل + داکیومنت رسمی جنگو هست
۳- هرکتابی که انتخاب کنید، وقتی یک مفهوم رو توضیح میده برای موارد بیشتر و دقیقتر به منبع اصلی
reference
میده، مثلاً کتاب بالاوقتی یک فصل رو تموم میکنید، بعد از اینکه اون فصل رو کدهاش رو زدید و تموم شد
باید برگردید روی کتاب و همون فصل و منابعی که برای خوندن بیشتر بهتون معرفی کرده رو بخونید.
این قدم بسیار بسیار مهم هست، چون هم با اصطلاحات آشنا میشید، هم با اکو سیستم اون فریمورک و هم یاد میگیرید چطور باید از داکیومنت فریمورک استفاده کنید بدون اینکه وقت تلف کنید.
قدم ۴ - یادگیری هیچوقت متوقف نمیشه، نیاز شما هم هیچوقت یکسان و ثابت نیست، بر اساس نیاز منابع جدید پیدا میکنید، سورس کد باقی افراد رو میخونید که به سمت یک نویسنده یا مدرس بایاس نشید، توی این قدم هرجوری که حال میکنید ادامه بدید.
پس اگر از نحوه خوندن من و البته بخش اول که پیشنیاز هست بگذریم ۴ تا منبع معرفی میشه کرد :
1- YouTube PlayList
نسخه
DRF
هم هست (اگر دوست داشتید توی همون کانال ببینید) 2- Becoming an Enterprise Django Developer By Michael Dinder (Packt pub)
3- Django documentation
4- Django Rest Framework
و در نهایتاً نمیشه توسعه دهنده جنگو باشید و عضو بزرگترین کامیونیتی جنگو فارسی نباشید :
@DjangoEx
صاحب کانال رو میشناسم و به هدفش ایمان دارم، از روز اول هم دنبال کنندهاش هستم و خواهم بود.
🧑💻PythonDev🧑💻 pinned «#django_roadmap #roadmap امروز یک دوستی، گفت بهش یک roadmap برای شروع جنگو بدم با این بکگراند : ۱- پایتون رو تا سطح خوبی بلد هست ۲- ساختمان داده و الگوریتم رو میشناسه ۳- لینوکس، گیت و داکر رو هم بلده یک بخش دیگه که باعث میشه این Roadmap رو بنویسم، همین…»