Site icon آکادمی آمانج

بهترین راه یادگیری پایتون ( راهنمای گام به گام ٢٠٢٠ )

بهترین راه یادگیری پایتون

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

 


ما در دوره ۴۰ ساعتی آموزش پایتون مقدماتی تا پیشرفته، از صفر وارد مبانی برنامه نویسی پایتون خواهیم شد، متغیرها، شرط ها و حلقه‌ها را یاد می‌گیریم؛ به توابع و فایل‌ها در پایتون مسلط می‌شویم و بعد وارد مباحث پیشرفته در پایتون خواهیم شد. شی‌ گرایی را فراخواهیم گرفت. در کنار تمامی موارد اشاره‌شده، استفاده از مفاهیم تحلیل داده و انجام پروژه با داده‌های واقعی در این بخش از جذاب‌ترین موارد این دوره به شمار خواهد آمد. 


مراحل یادگیری پایتون

سطح ٠ : مبتدی ها

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

 

متغیرها

متغیرها اساسا برای داده های برنامه شما ذخیره می شوند. در واقع، این راهی برای نامگذاری داده ها برای استفاده های بعدی است. به مثال زیر توجه کنید:

در این مثال ، ما یک متغیر msg را تعریف می کنیم که مقدار Hello World را ذخیره می کند! این به ما امکان می دهد تا بعدها Hello World را فقط با استفاده از نام متغیری که این مقدار را ذخیره می کند (به جای نیاز به تایپ کردن Hello World) چاپ کنیم.

 

انواع داده در پایتون

ما از متغیرها به عنوان ذخیره ساز داده ها یاد کردیم. اکنون اجازه دهید در مورد داده ها صحبت کنیم. در پایتون، داده ها انواع مختلفی دارند. به عنوان مثال، در کد قطعه بالا، داده هایی نظیر Hello World نوع خاصی دارد که پایتون (و سایر زبان های برنامه نویسی) آن ها را رشته (string) می نامند.
یک رشته دنباله ای از کاراکترهاست. اما رشته ها تنها نوع داده در پایتون نیستند؛ اعداد صحیح، شماره های شناور، لیست ها و فرهنگ لغات نیز وجود دارد. تا پایان سطح ٠ ، شما باید این نوع داده ها را شناخته و درک کنید که چگونه از آن ها در برنامه خود استفاده کنید.

 

عملیات

عملیات در واقع چگونگی دستکاری و تغییر داده ها در برنامه هاست. به عبارت دیگر، برنامه های شما باید تا زمان رسیدن به نتیجه نهایی، روی داده ها کار کرده و داده های بیشتری را تولید کنند. شما نیز روی داده ها کار می کنید.
در پایتون و تمام زبان های برنامه نویسی، حداقل عملیات حساب، مقایسه و منطق وجود دارد.

شرط ها


برای نوشتن هر برنامه، همیشه به توانایی بررسی شرایط و تغییر رفتار برنامه براساس شرایط نیاز خواهید داشت. عبارات شرطی با استفاده از “اگر”، “در غیر این صورت” ، یا موارد دیگر این توانایی را به شما می دهند. در اینجا مثالی از عبارات if-other در پایتون آورده شده است.

توابع

یک تابع مجموعه کدی در پایتون است که فقط در هنگام فراخوانی اجرا می شود. می توانید پارامترها را به عنوان ورودی به یک تابع منتقل کنید و تابع می تواند داده ها را به عنوان خروجی بازگرداند. در پایتون با استفاده از کلمه کلیدی def یک تابع را تعریف می کنند.
در اینجا مثالی از برنامه hello world با استفاده از یک تابع say_hello آورده شده است:

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

 

سطح ١: برنامه نویسی شی گرا

همه چیز در پایتون یک شی است. شی دقیقا چیست؟
برای نوشتن برنامه های کامپیوتری روش ها، مدل ها یا الگوی مختلفی وجود دارد. یکی از محبوب ترین روش های برنامه نویسی، برنامه نویسی شی گرا (OOP) نامیده می شود. در برنامه نویسی شی گرا، یک شی به یک نمونه خاص از یک کلاس اشاره دارد؛ و کلاس مانند نقشه ای از وضعیت و اقداماتی است که یک شی می تواند انجام دهد. به عنوان مثال، در پایتون، “کلاس فرد” (Person Class) ممکن است چیزی شبیه به این باشد.


کلاس بالا وضعیت و اقدامات هر شخص را توصیف می کند. به عنوان مثال، هر شخص دارای یک نام و سن خواهد بود. این دو زمینه همان چیزی است که وضعیت شی را تعیین می کند. در اصطلاحات OOP ، نام و سن “صفات شی” نامیده می شوند.
برای یادگیری OOP در پایتون، باید چند مرجله را پشت سر بگذارید.

 

مرحله ١: مفاهیم OOP را بیاموزید

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

 

مرحله ٢: در مورد کلاس ها و شی های پایتون بیاموزید

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

 

مرحله ٣: مسائل پایتون را با استفاده از OOP حل کنید

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

 

سطح ٢: برنامه نویسی همزمان و موازی

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

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

انحصار متقابل

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

 

قفل (Locks)

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

 

بن بست (Deadlocks)

بن بست زمانی اتفاق می افتد که برنامه شما متوقف می شود؛ زیرا برخی از رشته ها به دلیل دست نیافتن به قفل نمی توانند پیشرفت کنند.
به عنوان مثال تصور کنید که رشته الف منتظر است تا رشته ب یک قفل ار آزاد کند؛ در حالی که به طور همزمان رشته ب نیز منتظر است تا رشته الف یک قفل را آزاد کند. در این شرایط وخیم، نه رشته الف و نه رشته ب نمی توانند پیشرفت کنند. این همان بن بست است و بیشتر از آنچه فکر می کنید اتفاق می افتد. اشکال زدایی آن نیز یکی از سخت ترین مشکلات است.

 

وضعیت رقابتی (Race condition)

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

 

 

سطح ٣ : برنامه نویسی سوکت (Socket Programming)

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

 

مرحله اول : یک برنامه Echo بنویسید

در این مرحله از ماژول سوکت پایتون برای نوشتن یک سرور TCP ساده روی یک دستگاه و TCP مشتری روی دیگری استفاده کنید. اطمینان حاصل کنید هر دوکامپیوتر به شبکه خانگی شما متصل هستند. ایده برنامه Echo ساده است. طرف مشتری پیامی را از کاربر می خواند و این پیام را به سرور از طریق شبکه ارسال می کند.
در سمت سرور، هنگامی که این پیام دریافت می شود، سرور همان پیام را به مشتری ارسال می کند. برنامه Echo را مانند برنامه Hello World اما برای برنامه نویسی سوکت در نظر بگیرید. پس از آن می توانید به برنامه های پیچیده تری بروید.

 

مرحله دوم: با HTTP بازی کنید

هنگامی که در نوشتن برنامه های TCP روان شدید، می توانید از ماژول درخواست پایتون برای ارسال و دریافت پیام های HTTP استفاده کنید.
این بسیار مفید است زیرا اکثر سرویس های وب این روزها رابط HTTP API را ارائه می دهند که می توانید با برنامه ارتباط برقرار کنید. به عنوان مثال ، نقشه های فیس بوک ، توییتر و گوگل همه دارای رابط های HTTP API هستند که کد شما می تواند با آن ها ارتباط برقرار کند.

 

مرحله سوم : ابزارهای خود را بشناسید

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

netstat ابزاری شبکه ای همه کاره است که به شما امکان می دهد اتصالات شبکه را بر روی ورودی و خروجی نظارت کنید.
tcpdump به شما امکان می دهد بسته های واقعی که از طریق هر رابط شبکه وارد رایانه و یا از آن خارج می شوند را، ضبط و تجزیه و تحلیل کنید.
Wireshark یک رابط کاربری گرافیکی خوب است که تقریبا هر کاری که tcpdump می تواند انجام دهد را انجام می دهد. توصیه می کنیم قبل از کار با tcpdump، با Wireshark شروع به کار کنید کنید زیرا کاربرپسند تر است.

سطح ۴: ساختار داده ها و الگوریتم های پایتون

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


کد ساده ای به نظر می رسد. برای محاسبه (fib(100 از این کد استفاده کنید.(SPOILER ALERT: مدت زمان طولانی طول خواهد کشید). اکنون اجازه دهید یک تغییر ساده در کد ایجاد کنیم.


برای حل این مشکل و سریع تر کردن حل آن از برنامه نویسی پویا استفاده کردیم. مهارت هایی که در این سطح فرا می گیرید، برخی از اصلی ترین تفاوت های بین برنامه نویسان متوسط و برنامه نویسان حرفه ای است. شما باید در این مرحله linked lists, trees, stacks, queues, graphs, hash tables, recursion, dynamic programming, searching and sorting algorithms را بیاموزید.

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

 

مشاهده نسخه گرافیکی و کامل