بهترین راه یادگیری پایتون ( راهنمای گام به گام ٢٠٢٠ )
پایتون یک زبان بسیار محبوب است. همچنین یکی از زبان هایی است که برای شروع کار مبتدیان مناسب است. بهترین راه یادگیری پایتون درک تصویر کلی از همه آنچه در مسیر کار با پایتون نیاز دارید است.در این مقاله، مراحل یادگیری پایتون را به ٤ سطح تقسیم می کنیم. هر سطح شامل...
ما در دوره ۴۰ ساعتی آموزش پایتون مقدماتی تا پیشرفته، از صفر وارد مبانی برنامه نویسی پایتون خواهیم شد، متغیرها، شرط ها و حلقهها را یاد میگیریم؛ به توابع و فایلها در پایتون مسلط میشویم و بعد وارد مباحث پیشرفته در پایتون خواهیم شد. شی گرایی را فراخواهیم گرفت. در کنار تمامی موارد اشارهشده، استفاده از مفاهیم تحلیل داده و انجام پروژه با دادههای واقعی در این بخش از جذابترین موارد این دوره به شمار خواهد آمد.
مراحل یادگیری پایتون
سطح ٠ : مبتدی ها
متغیرها
متغیرها اساسا برای داده های برنامه شما ذخیره می شوند. در واقع، این راهی برای نامگذاری داده ها برای استفاده های بعدی است. به مثال زیر توجه کنید:
انواع داده در پایتون
ما از متغیرها به عنوان ذخیره ساز داده ها یاد کردیم. اکنون اجازه دهید در مورد داده ها صحبت کنیم. در پایتون، داده ها انواع مختلفی دارند. به عنوان مثال، در کد قطعه بالا، داده هایی نظیر Hello World نوع خاصی دارد که پایتون (و سایر زبان های برنامه نویسی) آن ها را رشته (string) می نامند.یک رشته دنباله ای از کاراکترهاست. اما رشته ها تنها نوع داده در پایتون نیستند؛ اعداد صحیح، شماره های شناور، لیست ها و فرهنگ لغات نیز وجود دارد. تا پایان سطح ٠ ، شما باید این نوع داده ها را شناخته و درک کنید که چگونه از آن ها در برنامه خود استفاده کنید.
عملیات
عملیات در واقع چگونگی دستکاری و تغییر داده ها در برنامه هاست. به عبارت دیگر، برنامه های شما باید تا زمان رسیدن به نتیجه نهایی، روی داده ها کار کرده و داده های بیشتری را تولید کنند. شما نیز روی داده ها کار می کنید. در پایتون و تمام زبان های برنامه نویسی، حداقل عملیات حساب، مقایسه و منطق وجود دارد.شرط ها
توابع
یک تابع مجموعه کدی در پایتون است که فقط در هنگام فراخوانی اجرا می شود. می توانید پارامترها را به عنوان ورودی به یک تابع منتقل کنید و تابع می تواند داده ها را به عنوان خروجی بازگرداند. در پایتون با استفاده از کلمه کلیدی def یک تابع را تعریف می کنند.در اینجا مثالی از برنامه hello world با استفاده از یک تابع say_hello آورده شده است:
سطح ١: برنامه نویسی شی گرا
همه چیز در پایتون یک شی است. شی دقیقا چیست؟ برای نوشتن برنامه های کامپیوتری روش ها، مدل ها یا الگوی مختلفی وجود دارد. یکی از محبوب ترین روش های برنامه نویسی، برنامه نویسی شی گرا (OOP) نامیده می شود. در برنامه نویسی شی گرا، یک شی به یک نمونه خاص از یک کلاس اشاره دارد؛ و کلاس مانند نقشه ای از وضعیت و اقداماتی است که یک شی می تواند انجام دهد. به عنوان مثال، در پایتون، "کلاس فرد" (Person Class) ممکن است چیزی شبیه به این باشد.
مرحله ١: مفاهیم OOP را بیاموزید
همانطور که قبلا نیز اشاره کردیم، OOP یک الگوی برنامه نویسی است، روشی برای ساختن و طراحی کد شما. مفاهیم OOP منحصر به پایتون نیستند؛ بنابراین مفاهیمی که یمی آموزید به راحتی در هر زبان برنامه نویسی دیگری کاربرد خواهند داشت.
مرحله ٢: در مورد کلاس ها و شی های پایتون بیاموزید
در این مرحله شما باید مفاهیم انتزاعی را که در مرحله قبل آموخته اید بطور خاص در پایتون بکار بگیرید. ویژگی ها و روش های شی های ایجاد شده را بررسی کنید.
مرحله ٣: مسائل پایتون را با استفاده از OOP حل کنید
این یک مرحله مهم است. در این مرحله نحوه استفاده از OOP را برای طراحی و ساختن کد خود بیاموزید. در واقع، این مرحله بیشتر یک هنر است تا یک علم. این بدان معنی است که تنها راه برای بهتر شدن، تمرین، تمرین و تمرین بیشتر است. مجددا با استفاده از پایتون، مسائل بیشتری را حل کنید، اما سعی کنید راه حل های خود را به روشی شی گرا ساختار دهید. هرچه بیشتر تمرین کنید، حرفه ای تر خواهید شد.
سطح ٢: برنامه نویسی همزمان و موازی
انحصار متقابل
وقتی داده هایی در چندین موضوع به اشتراک گذاشته اید، همگام سازی دسترسی به این منابع مشترک مهم است. انحصار متقابل الگوریتمی است که در برنامهنویسی موازی برای جلوگیری از استفاده همزمان از منابع مشترک مانند متغیرهای سراسری توسط قسمتی از کد رایانه که به آن بخش بحرانی گفته میشود به کار میرود.
قفل (Locks)
قفل یکی از پیاده سازی های انحصار متقابل است. برای درک اینکه قفل چیست، می توانید از منظر مفهومی به آن نگاه کنید. اگر یک رشته می خواهد به یک منبع اشتراکی دسترسی پیدا کند، این رشته باید قبل از دسترسی به آن منبع، قفل ایجاد کند.و پس از اتمام کار با این منبع، این قفل را آزاد می کند. اگر قفل به دلیل اشغال بودن توسط رشته ای دیگر در دسترس نباشد، رشته باید صبر کند تا قفل آزاد شود. این مفهوم ساده تضمین می کند که حداکثر یک رشته می تواند به یک منبع مشترک دسترسی داشته باشد.
بن بست (Deadlocks)
بن بست زمانی اتفاق می افتد که برنامه شما متوقف می شود؛ زیرا برخی از رشته ها به دلیل دست نیافتن به قفل نمی توانند پیشرفت کنند.به عنوان مثال تصور کنید که رشته الف منتظر است تا رشته ب یک قفل ار آزاد کند؛ در حالی که به طور همزمان رشته ب نیز منتظر است تا رشته الف یک قفل را آزاد کند. در این شرایط وخیم، نه رشته الف و نه رشته ب نمی توانند پیشرفت کنند. این همان بن بست است و بیشتر از آنچه فکر می کنید اتفاق می افتد. اشکال زدایی آن نیز یکی از سخت ترین مشکلات است.
وضعیت رقابتی (Race condition)
یک وضعیت رقابتی یک نقص درسیستم رایانهای است که به موجب آن نتیجه خروجی بهطور غیرمنتظرهای به زمان بندی و ترتیب رویدادهای دیگر بستگی دارد. این اصطلاح در اصل به حالتی گفته میشود که دوسیگنال با هم رقابت میکنند تا هر یک زودتر بر خروجی تأثیر بگذارند.فقط بعد از اینکه با مفاهیم بالا آشنا شدید می توانید یاد بگیرید که چگونه برنامه های موازی را در پایتون بنویسید.
سطح ٣ : برنامه نویسی سوکت (Socket Programming)
مرحله اول : یک برنامه Echo بنویسید
در این مرحله از ماژول سوکت پایتون برای نوشتن یک سرور TCP ساده روی یک دستگاه و TCP مشتری روی دیگری استفاده کنید. اطمینان حاصل کنید هر دوکامپیوتر به شبکه خانگی شما متصل هستند. ایده برنامه Echo ساده است. طرف مشتری پیامی را از کاربر می خواند و این پیام را به سرور از طریق شبکه ارسال می کند.در سمت سرور، هنگامی که این پیام دریافت می شود، سرور همان پیام را به مشتری ارسال می کند. برنامه Echo را مانند برنامه Hello World اما برای برنامه نویسی سوکت در نظر بگیرید. پس از آن می توانید به برنامه های پیچیده تری بروید.
مرحله دوم: با HTTP بازی کنید
هنگامی که در نوشتن برنامه های TCP روان شدید، می توانید از ماژول درخواست پایتون برای ارسال و دریافت پیام های HTTP استفاده کنید.این بسیار مفید است زیرا اکثر سرویس های وب این روزها رابط HTTP API را ارائه می دهند که می توانید با برنامه ارتباط برقرار کنید. به عنوان مثال ، نقشه های فیس بوک ، توییتر و گوگل همه دارای رابط های HTTP API هستند که کد شما می تواند با آن ها ارتباط برقرار کند.
مرحله سوم : ابزارهای خود را بشناسید
مانند هر برنامه دیگری، گاهی اوقات هنگام نوشتن برنامه شبکه، اولین تلاش شما موفق نخواهد شد. با این حال، اشکال زدایی در برنامه های شبکه کمی متفاوت از اشکال زدایی در برنامه های معمولی است. به همین دلیل باید خود را به ابزارهای لازم برای عیب یابی آنچه در جریان است، مجهز کنید. در این جا برخی از محبوب ترین ابزارهای شبکه ای که به آن ها نیاز دارید آورده شده است.ping برای بررسی ارتباط بین دستگاه شما و دستگاه دیگر استفاده می شود.سطح ٤: ساختار داده ها و الگوریتم های پایتون
دانشی که تاکنون در سطوح قبلی آموخته اید برای درک کاملی عملکرد کامل نیست. به این کد ساده ای که شماره نهم فیبوناچی را محاسبه می کند، نگاه کنید.با گذراندن این مراحل یادگیری پایتون ، شما آماده اجرای مسائل مختلف در پایتون هستید. هر چه بیشتر راجع به برنامه نویسی شی گرا ، الگوریتم های پایتون ، برنامه نویسی همزمان و موازی اطلاعات کسب کرده و تمرین کنید، حرفه ای تر خواهید شد.