بهترین مسیر یادگیری پایتون چیست؟ — راهنمای شروع آموزش
پایتون یک زبان برنامه نویسی بسیار مهم است و یادگیری پایتون در زمینههایی مثل علم داده، برنامه نویسی وب، مهندسی نرم افزار، ساخت بازی و اتوماسیون (خودکارسازی فرآیندها) کاربرد دارد. اما بهترین مسیر یادگیری پایتون چیست؟ یافتن پاسخ این سوال میتواند بسیار دشوار و چالش برانگیز باشد. بنابراین در این مقاله با گردآوری تجربیات برنامه نویسان حرفهای پایتون سعی شده است تا کلیه نکات و موارد مهم در خصوص یادگیری پایتون جمعآوری و ارائه شوند.
این مقاله شامل دو بخش اصلی «بهترین مسیر یادگیری پایتون» و «نحوه یادگیری پایتون در سال ۱۴۰۱» است. در بخش اول بیشتر روی مباحث و موضوعاتی تاکید شده است که باید فرا گرفته شوند. اما در بخش دوم بیشتر نکات و توصیههایی برای یادگیری پایتون ارائه شده است. هر دو بخش شامل گامهایی هستند که هر مرحله از مسیر یادگیری پایتون در آنها تشریح شدهاند. در خلال شرح هر یک از گامهای مسیر یادگیری پایتون نیز معرفی دورههای آموزشی مرتبط ارائه شده است.
پایتون چیست ؟
در اصطلاح فنی، پایتون یک زبان برنامه نویسی شیگرا و سطح بالا به حساب میآید که دارای معناشناسی پویا و منسجمی برای برنامه نویسی وب و توسعه اپلیکیشن است. پایتون در حوزه توسعه سریع بسیار جذابیت دارد، چرا که امکانات و گزینههای «نوع پویا» (Dynamic Typing) و «مقیدسازی پویا» (Dynamic Binding) در آن گنجانده شده است. به دلیل اینکه سینتکس (نحو) پایتون به طور خاص بر خوانایی مطلوب تمرکز دارد، یادگیری پایتون نسبتاً ساده است. برنامه نویسان و توسعه دهندگان میتوانند کدهای پایتون را نسبت به سایر زبانها با راحتی بسیار بیشتری بخوانند و درک کنند. قابل درک بودن و سادگی کدها و سینتکس پایتون هزینه نگهداری برنامه و توسعه آن را به میزان زیادی کاهش میدهد. این سادگی باعث میشود تیمهای برنامه نویسی بتوانند بدون وجود مانع خاصی در ارتباط با زبان برنامه نویسی به صورت گروهی با یکدیگر تعامل داشته باشند.
علاوه بر آن، امکان استفاده از ماژولها و بستههای توسعه در پایتون پشتیبانی میشود. این یعنی میتوان برنامهها را در یک سبک و قالب ماژولار (پیمانهای) پیادهسازی کرد و همچنین کدها در پروژههای مختلف قابل استفاده مجدد هستند. پس از ساخت یک ماژول یا بسته مورد نیاز، میتوان با تغییرات جزئی (تنظیم مقیاس) از آن بسته یا ماژول در سایر پروژهها نیز استفاده کرد. در پایتون، وارد کردن (Import) و خارج کردن (Export) این بستهها هم بسیار ساده است. یکی از امیدوار کنندهترین مزایای پایتون این است که هم کتابخانه استاندارد و هم مفسر آن به صورت رایگان در دسترس هستند. هیچ گونه انحصاری هم در خصوص بستر ارائه وجود ندارد و پایتون در تمام بسترهای اصلی (ویندوز، لینوکس، مک و سایر موارد) قابل استفاده است. بنابراین، این گزینهای جذاب برای توسعه دهندگانی است که نمیخواهند نگران پرداخت هزینههای بالای توسعه باشند.
بهترین مسیر یادگیری پایتون
پایتون یک زبان بسیار محبوب و پرطرفدار است که یادگیری آن به افراد تازه کار در حوزه برنامه نویسی توصیه میشود. اما بهترین مسیر یادگیری پایتون چیست؟ در این بخش، مسیر یادگیری پایتون به هفت سطح مختلف تقسیم شده و نحوه عبور از این هفت مرحله به صورت گام به گام تا رسیدن به سطح مهارت تخصصی پایتون شرح داده شده است. در هر مرحله بخشی از سرفصلها و مباحث مسیر یادگیری پایتون پوشش داده شدهاند که باید تسلط کافی در مورد آنها پیش از شروع مرحله بعد به طور کامل به دست آید. در این مقاله تمرکز اصلی بر این موضوع قرار داده شده است که افراد بتوانند به یک برنامه نویس پایتون ماهر و حرفهای تبدیل و در شرکت دلخواه خود مشغول به کار شوند.
بهترین مسیر یادگیری پایتون چیست؟
بهترین مسیر یادگیری پایتون و بهترین روش این است که افراد هر یک از شش سطح یادگیری پایتون را به نوبت فرا بگیرند و در آنها حرفهای شوند. باید اطمینان حاصل شود که مباحث به طور کامل درک میشوند و پیش از شروع مرحله بعدی، تجربیات عملی در هر سطح به دست آید. این یعنی، باید به صورت عملی کدنویسی را آغاز و پروژههایی را پیادهسازی کرد. با تمرین و انجام پروژههای عملی میتوان به یک متخصص پایتون تبدیل شد.
مرحله اول: یادگیری پایتون از صفر
یادگیری پایتون از صفر زمانی انجام میشود که فرد در زمینه برنامه نویسی کاملاً مبتدی و تازهکار باشد. یک فرد کاملاً تازهکار به فردی گفته میشود که تا کنون هرگز با پایتون یا هیچ زبان برنامه نویسی دیگری کدنویسی نکرده باشد. اما در صورتی که فردی پیش از این با زبان برنامه نویسی دیگری کار کرده است، میتواند از این مرحله عبور کند و به مرحله بعدی برود.
در مرحله یادگیری پایتون از صفر ، اکثر مفاهیمی که باید فرا گرفته شوند، مفاهیم کلی و عمومی برنامه نویسی هستند؛ مفاهیمی بنیادی که جای پای افراد را در حوزه برنامه نویسی محکم میکنند. یعنی این مفاهیم تنها مختص پایتون نیستند و میتوان آنها را به سایر زبانهای برنامه نویسی هم بسط داد. در واقع بسیاری از زبانهای برنامه نویسی شبیه به هم هستند و کسب دانش در خصوص اینکه چه مواردی بین زبانهای برنامه نویسی مختلف مشترک هستند (و چه چیزیهایی مشترک نیستند) در آینده میتواند به جابهجایی و روی آوردن به زبانهای برنامه نویسی دیگر کمک کند.
مفاهیم عمومی و بنیادی برنامه نویسی چه هستند؟
برخی از مفاهیم و موضوعات بنیادی مشترک در همه زبانهای برنامه نویسی موارد زیر را شامل میشوند:
- متغیرها و انواع داده
- عملیات (عملگرها)
- تابع
- دستورات شرطی
- حلقهها
اگر درک کافی در خصوص این مفاهیم وجود دارد، میتوان به مرحله بعدی رفت و از ادامه این بخش عبور کرد. در غیر این صورت، شرح و معرفی مختصری پیرامون هر یک از این مفاهیم در ادامه این بخش ارائه شده است.
متغیر در برنامه نویسی چیست؟
متغیرها اصولاً محل ذخیرهسازی دادهها به حساب میآیند. به بیان دقیقتر، متغیر راهی برای تخصیص یک نام به دادهها برای استفاده در آینده است. برای درک بهتر اینکه متغیر در برنامه نویسی چیست در ادامه از یک مثال استفاده شده است:
1# variables
2msg = "Hello World!"
3print(msg)
4# this code outputs Hello World! on the screen
در قطعه کد پایتون فوق، متغیری به نام «msg» تعریف شده که مقدار «Hello World!» را در خود ذخیره کرده است. این کار باعث میشود که بتوان بعداً تنها با استفاده از نام متغیر (یعنی msg) که این مقدار را ذخیره کرده است آن را چاپ کرد و دیگر برای استفاده از مقدار «Hello World!» هر بار نیاز به تایپ کردن آن وجود نخواهد داشت.
انواع داده در برنامه نویسی چیست؟
در پایتون دادهها دارای انواع مختلفی هستند. برای مثال، در قطعه کدی که پیشتر ملاحظه شد، مقدار داده «Hello World!» دارای یک نوع مشخص است که در پایتون (و سایر زبانهای برنامه نویسی) به آن «string» یا نوع داده رشته گفته میشود. به بیان ساده، یک رشته تنها توالی از کاراکترها به حساب میآید. اما رشتهها تنها نوع داده در پایتون نیست و علاوه بر آن، انواع دیگری هم وجود دارند که اکثر آنها در ادامه فهرست شدهاند:
- نوع داده عدد صحیح (Integer)
- اعداد ممیز اعشاری (Floating-Point Numbers)
- نوع داده دودویی (بولی | Boolean)
- نوع داده لیست (List)
- نوع داده تاپل (Tuples)
- نوع داده دیکشنری (Dictionary)
در پایان اولین مرحله از مسیر یادگیری پایتون باید بتوان به راحتی با این انواع داده کار کرد و درکی از زمان و چگونگی استفاده از آنها به دست آورد.
- مقاله پیشنهادی: نوع داده عددی در پایتون — به زبان ساده
عملیات در برنامه نویسی پایتون به چه چیزی گفته میشود؟
عملیات (Operations) به نحوه کار با دادهها و تغییر آنها در برنامه گفته میشود. به بیان دیگر، برنامه نوشته شده باید روی دادهها عملیات انجام دهد و دادههای جدیدی را تولید کند. ممکن است نیاز باشد روی دادههای جدید هم عملیات انجام شود و این کار تا زمان حصول نتیجه نهایی ادامه داشته باشد. این در واقع چرخه حیات یک برنامه به حساب میآید. در پایتون و سایر زبانهای برنامه نویسی عملیاتی شامل موارد زیر وجود دارند:
- عملیات حسابی
- عملیات مقایسه
- عملیات منطقی
در قطعه کد زیر برای هر یک از عملیات بالا یک مثال ساده ارائه شده است:
1# an example of an arithmetic operation
2x = 5 + 2
3
4# an example of a comparison operation
5y = 3 > 4
6
7# an example of a logic operation
8z = True or False
دستورهای شرطی در برنامه نویسی پایتون به چه صورت هستند؟
برای کدنویسی یک برنامه مناسب و مفید، تقریباً همیشه نیاز به امکان بررسی برخی شرطها و تغییر رفتار برنامه بر اساس آن شرطها وجود دارد. گزارههای شرطی نظیر if else ،if یا if elsif else این امکان را در پایتون و تقریباً همه زبانهای برنامه نویسی فراهم میسازند. در ادامه این بخش مثالی برای گزاره if-else در پایتون ارائه شده است.
1>>> if 3 > 5:
2... print('3 is greater than 5')
3... else:
4... print('3 is not greater than 5')
5...
63 is not greater than 5
تابع در برنامه نویسی پایتون چیست؟
تابع در برنامه نویسی پایتون اساساً یک قطعه کد است که تنها در صورت فراخوانی اجرا خواهد شد. میتوان پارامترهایی را به عنوان ورودی به یک تابع ارجاع داد و همچنین یک تابع میتواند دادههایی را به عنوان خروجی بازگرداند. در پایتون یک تابع با استفاده از کلمه کلیدی def تعریف میشود. در ادامه مثالی از یک برنامه Hello World (سادهترین برنامه ممکن) با استفاده از تابعی به نام «say_hello» آمده است:
1def say_hello(msg):
2 # this is the function
3 # msg is the input parameter
4 print(f'hello {msg}')
5
6# calling the say_hello function
7say_hello('world')
8
9# output:
10# hello world
به این ترتیب تا اینجا مفاهیم بنیادی پایتون و مثالهایی برای هر یک در اولین سطح یادگیری پایتون شرح داده شدند. اما مهمتر از همه، کاری که واقعاً برای حرفهای شدن در این مرحله باید انجام شود، استفاده از مفاهیم فوق برای «حل مسئله» است. اگر فقط به مطالعه کتاب یا استفاده از دورههای آموزش پایتون بسنده شود، هیچگاه نمیتوان به یک برنامه نویس خوب تبدیل شد. بلکه، باید پایتون را با کدنویسی و تمرین عملی پایتون یاد گرفت و در آن حرفهای شد.
هر چه در خصوص یادگیری مفاهیم اساسی در این مرحله از یادگیری پایتون تاکید شود باز هم کم است. دلیلش این است که یادگیری این مفاهیم پایهای و اساسی نه تنها برای حرفهای شدن در پایتون، بلکه برای حرفهای شدن در هر زبان برنامه نویسی دیگری هم بسیار ضروری هستند. بنابراین، با وجود اینکه این اولین و سادهترین مرحله یادگیری پایتون است، باید آن را بسیار جدی گرفت.
فیلم آموزش اصول و مبانی برنامه نویسی - (رایگان)
استفاده از دوره آموزش اصول و مبانی برنامه نویسی به عنوان یک منبع جامع برای یادگیری کلیه مفاهیم و اصول اولیه برنامه نویسی پیشنهاد میشود. این دوره آموزشی رایگان و مدت زمان آن نزدیک به ۳ ساعت است. مدرس این دوره دکتر مصطفی کلامی هریس هستند. در دوره آموزش مبانی برنامه نویسی سعی بر این بوده است که با یک دید جامع، موضوعات اساسی و پایهای در برنامه نویسی کامپیوتر، زبانهای برنامه نویسی مختلف، ساختار برنامههای کامپیوتری، انواع داده گوناگون در برنامه نویسی و ساختارهای اطلاعاتی مورد بررسی قرار گیرند و چشماندازی فراگیر در ذهن مخاطبان و علاقهمندان به یادگیری مهارت برنامه نویسی ایجاد شود. در واقع میتوان گفت که این دوره به عنوان درس صفرم در آموزش هر زبان برنامه نویسی میتواند مورد استفاده قرار گیرد.
- برای مشاهده فیلم آموزش رایگان اصول و مبانی برنامه نویسی + اینجا کلیک کنید.
گام دوم: یادگیری برنامه نویسی شی گرا با پایتون
همه چیز در پایتون یک شی (Object) به حساب میآید. ممکن است افراد در خصوص شیگرایی و مفهوم شی چیزهایی شنیده باشند. اما به راستی شی در برنامه نویسی به چه چیزی گفته میشود؟
شی در برنامه نویسی پایتون چیست؟
راههای مختلف، مدلها یا الگوهای مختلفی برای کدنویسی برنامههای کامپیوتری وجود دارند. یکی از محبوبترین الگوها یا پارادایمهای برنامه نویسی، «Object-Oriented Programming» یا برنامه نویسی شیگرا است که به اختصار OOP هم خطاب میشود. در برنامه نویسی شی گرا به نمونه خاصی از یک کلاس (Class)، شی گفته میشود. یک کلاس هم درست مثل نقشه ساخت وضعیتی است که یک شی میتواند در آن قرار داشته و همچنین کارهایی شی میتواند آنها را انجام دهد. برای مثال در پایتون یک کلاس به نام Person میتواند به صورت زیر پیادهسازی شود:
1class Person:
2 def __init__(self, name, age):
3 self.name = name
4 self.age = age
5
6 def get_name(self):
7 return self.name
- مقاله پیشنهادی: مفهوم کلاس در برنامه نویسی — همراه با نمونه مثال عملی
کلاس تعریف شده در کدهای فوق، وضعیت و کارهای مربوط به هر شی از نوع کلاس Person را توصیف میکند. برای مثال، هر شی از نوع Person یک نام (name) و یک سن (age) خواهد داشت. در برنامه نویسی شی گرا name و age «صفتهای» (Attribute) شی Person به حساب میآیند. علاوه بر این، میتوان get_name() را برای بازگرداندن نام هر شخص روی هر شی Person فراخوانی کرد. به get_name یک متُد (Method) گفته میشود. این متد به همراه هر متد دیگری که تعریف شودش، عملها و رفتار شی را تعیین میکند. به بیان دیگر، یک شی پایتون دارای صفتها و متدهایی است که در رده یا همان کلاس آن شی تعریف شداند. نحوه ایجاد یک شی از نوع Person در ادامه ملاحظه میشود:
1>>> p = Person('Alice', 22)
2>>> p.get_name()
3'Alice'
برنامه نویسی شی گرا اساساً یکی از راههای ساختاردهی و طراحی کدها به حساب میآید. اگر چه، باید توجه داشت که این تنها روش ساختاردهی نیست و لزوماً بهترین راه هم به حساب نمیآید. برای یادگیری برنامه نویسی شی گرا در پایتون باید گامهایی پیمایش شوند که در ادامه به شرح هر یک از آنها پرداخته شده است.
گام اول یادگیری برنامه نویسی شی گرا در پایتون : آشنایی با مفاهیم شی گرایی
همانطور که پیشتر به آن اشاره شد، برنامه نویسی شی گرا یک الگو یا پارادایم برنامه نویسی و روشی برای ساختاردهی و طراحی کدها به حساب میآید. مفاهیم شی گرایی تنها مختص پایتون نیستند و در همه زبانهای برنامه نویسی مشترک هستند. برخی از مفاهیم شی گرایی شامل ارثبری (Inheritance)، کپسولهسازی (Encapsulation) و چندریختی (Polymorphism) میشوند. بنابراین پیش از شروع یادگیری برنامه نویسی شی گرا در پایتون باید در خصوص درک و یادگیری این مفاهیم در سطح انتزاعی اطمینان حاصل شود.
- مقاله پیشنهادی: برنامه نویسی شی گرا (OOP) چیست؟ — به زبان ساده
- مقاله پیشنهادی: ارث بری در پایتون — به زبان ساده
گام دوم یادگیری برنامه نویسی شی گرا در پایتون : آشنایی با کلاسها و اشیاء در پایتون
در این مرحله، افراد باید مفاهیم انتزاعی فرا گرفته شده در مرحله قبل را به طور خاص در پایتون به کار بگیرند. باید آشنایی کافی با نحوه تعریف کلاسها و ایجاد اشیاء در پایتون به دست آید. باید کلاسهایی را نوشت که از کلاسهای دیگر ارثبری میکنند و صفتها و متُدهای شی ایجاد شده نیز باید آزمایش شوند.
- مقاله پیشنهادی: شی و کلاس در پایتون | به زبان ساده
گام سوم یادگیری برنامه نویسی شی گرا در پایتون : حل مسئله به زبان پایتون با استفاده از OOP
این گام بسیار مهمی به شمار میرود. در این مرحله، باید نحوه استفاده از برنامه نویسی شی گرا برای طراحی و ساختاردهی کدها فرا گرفته شود. در حقیقت، این گام بیشتر از آنکه یک علم باشد، یک هنر به حساب میآید. این یعنی تنها راه برای بهتر شدن، تمرین، تمرین و باز هم تمرین است. بنابراین، باید به حل مسئله با استفاده از پایتون ادامه داد؛ اما باید سعی شود تا راهکارهای پیادهسازی شده به صورت شی گرا ساختاردهی شوند. هر چه تمرین بیشتری انجام شود، افراد احساس راحتی بیشتری با شی گرایی یا همان OOP در پایتون خواهند داشت.
فیلم آموزش برنامه نویسی شی گرا در Python (پایتون)
طول مدت این آموزش بیش از ۷ ساعت و مدرس آن مهندس فرشید شیرافکن است. در این دوره آموزشی، مباحث مربوط به شی گرایی در پایتون از جمله کلاسها، چندریختی، ارثبری و سایر مفاهیم مهم در زمینه شی گرایی آموزش داده شدهاند. برخی از سرفصلهای این دوره آموزشی، مباحثی از قبیل مروری بر پایتون، مفاهیم اولیه شی گرایی، متدهای Dunder، ارثبری و سایر مباحث مربوط به شی گرایی در پایتون را شامل میشوند.
- برای مشاهده فیلم آموزش برنامه نویسی شی گرا در Python (پایتون) + اینجا کلیک کنید.
گام سوم: یادگیری برنامه نویسی همزمان و موازی با پایتون
دوران پردازندههای تک هستهای به سر آمده است. این روزها چه یک لپتاپ معمولی و چه یک سرور رده بالا خریداری شود، پردازنده اکثر دستگاهها چندهستهای است. گاهی نیاز است تا برنامه نوشته شده از این تعداد هسته در پردازنده استفاده کند تا برخی فرآیندها به صورت موازی اجرا شوند. این امکان به احتمال زیاد منجر به توان عملیاتی بیشتر، عملکرد بهتر و پاسخدهی بالاتری میشود. البته یک نکته باید در اینجا مشخص شود.
در صورتی که عملکرد بالا و توان عملیاتی افزوده در کاربرد مربوطه ضروری و حیاتی باشند، احتمالاً پایتون بهترین زبان برنامه نویسی برای پشتیبانی از موازیسازی نخواهد بود. در چنین شرایطی، برخی از افراد زبان برنامه نویسی Go یا زبان قدیمی C را ترجیح میدهند. اما به هر حال این مقاله راجع به پایتون است و تمرکز اصلی باید روی پایتون باشد. پیش از آنکه افراد سریعاً نوشتن اولین برنامه موازی خود را شروع کنند، برخی از مفاهیم پردازش موازی وجود دارند که باید آنها را یاد گرفت. در ادامه به برخی از این مفاهیم اولیه موازیسازی اشاره شده است.
Mutual Exclusion یا انحصار متقابل چیست؟
وقتی دادههایی وجود دارند که در میان چند نخ (رشته | Thread) یا پردازه (Process) به اشتراک گذاشته شدهاند، همگامسازی دسترسی به این منابع به اشتراکگذاری شده دارای اهمیت است. در صورتی که این کار انجام نشود، ممکن است یک وضعیت رقابتی (Race Condition) رخ بدهد که احتمالاً به شرایط غیر منتظره یا حتی مهلک منجر خواهد شد. در ادامه، راجع به وضعیتهای رقابتی بیشتر توضیح داده شده است. انحصار متقابل به این معنی است که یک نخ پیشرفت بیشتر سایر نخهای موازیای را مسدود میکند که نیاز به استفاده از منابع مشترک دارند.
مفهوم Lock یا قفل به چه معناست؟
قفل یکی از انواع پیادهسازی انحصار متقابل است. برای درک بهتر چیستی Lockها، میتوان از دیدگاه مفهومی به آن پرداخت. در صورتی که یک نخ بخواهد به یک منبع به اشتراکگذاری شده دسترسی پیدا کند، این نخ پیش از آنکه اجازه دسترسی به آن منبع را دریافت کند، باید قفل را در اختیار بگیرد. پس از اتمام کار با آن منبع، نخ این قفل را آزاد خواهد کرد. در صورتی که قفل به دلیل برداشته شدن توسط یک نخ دیگر در دسترس نباشد، آنگاه نخ مربوطه ابتدا باید صبر کند تا قفل آزاد شود. این مضمون ساده تضمین میکند که در هر لحظه بیش از یک نخ امکان دسترسی به یک منبع مشترک را نخواهد داشت.
مفهوم Deadlock یا بنبست چیست؟
بُنبست زمانی رخ میدهد که برنامه دچار مکث کامل شود. چرا که برخی از نخها به دلیل عدم امکان دریافت قفل نمیتوانند بیشتر پیش بروند و اجرا شوند. برای مثال، فرض میشود که نخ A منتظر نخ B است تا قفل را آزاد کند. در همان لحظه، نخ B هم منتظر نخ A است تا قفل دیگری را رها کند که در اشغال خود دارد. در این شرایط بغرنج، هیچ یک از نخهای A و B نمیتوانند پیشرفتی داشته باشند و برنامه هیچ شانسی برای نجات نخواهد داشت. به چنین شرایطی، «بنبست» یا Deadlock گفته میشود. بنبست بیشتر از حد تصور اتفاق میافتد. برای اینکه شرایط از این هم بدتر شود، باید گفت که بنبست یکی از دشوارترین مسائل و چالشها برای خطایابی (دیباگ کردن) به شمار میرود.
مفهوم Race condition یا وضعیت رقابتی در محاسبات موازی چیست؟
همانطور که پیشتر هم به آن اشاره شد، یک شرط رقابتی وضعیتی است که زمانی بروز میکند که دسترسی به یک منبع به اشتراکگذاری شده، تحت محافظت (مثلاً به وسیله قفلها) نباشد. این وضعیت میتواند به عواقب مهلک و غیرمنتظرهای منجر شود. برای درک بهتر این شرایط، مثالی در ادامه آمده است:
1import threading
2# x is a shared value
3x = 0
4COUNT = 1000000
5
6def inc():
7 global x
8 for _ in range(COUNT):
9 x += 1
10
11def dec():
12 global x
13 for _ in range(COUNT):
14 x -= 1
15
16t1 = threading.Thread(target=inc)
17t2 = threading.Thread(target=dec)
18t1.start()
19t2.start()
20t1.join()
21t2.join()
22
23print(x)
در کدهای فوق یک متغیر سراسری بهاشتراکگذاری شده با نام x وجود دارد که با عدد صفر مقداردهی اولیه شده است. دو تابع inc و dec به طور موازی اجرا میشوند. تابع inc() مقدار متغیر x را یک میلیون بار افزایش میدهد. همچنین، تابع dec() نیز مقدار x را یک میلیون بار افزایش میدهد. وقتی کدهای فوق اجرا میشوند، آنچه در خروجی دریافت میشود به صورت زیر است:
1 $ python3 race.py
2158120
3 $ python3 race.py
4137791
5 $ python3 race.py
6-150265
7 $ python3 race.py
871564
دلیل رخ دادن چنین اتفاقی این است که منبع بهاشتراکگذاری شده یعنی همان x (برای مثال به وسیله Lockها) تحت محافظت نیست.
یادگیری برنامه نویسی موازی با پایتون
تنها پس از آنکه آشنایی و مهارت کافی در مورد مفاهیم مورد بحث حاصل شود میتوان نحوه کدنویسی و ایجاد برنامههای همزمان یا موازی با پایتون را فرا گرفت. پیش از هر چیز، ابتدا باید یاد گرفت که مفهوم پردازش چندگانه (Multiprocessing) چه تفاوتی با چندنخی (Multithreading) دارد. لازم به ذکر است که این مفاهیم با نخها و پردازهها از منظر سیستم عامل هیچ ارتباطی ندارند. برای درک این تفاوت میان پردازش چندگانه و چندنخی از منظر پایتون، باید با مفهوم «قفل مفسر سراسری» (Global Interpreter Lock | GIL) آشنا شد. همچنین باید مباحث نخبندی (Threading)، صف (Queue) و پردازش چندگانه ماژولهای پایتون را نیز آموخت.
گام چهارم: یادگیری برنامه نویسی سوکت با پایتون
تا این مرحله آشنایی کافی با پایتون به دست آمده و فرد میتواند به راحتی با پایتون کدهایی را بنویسد که تنها روی یک ماشین (سیستم) قابل اجرا هستند. اما اگر نیاز به نوشتن کدهایی وجود داشته باشد که با یک ماشین دیگر روی شبکه ارتباط برقرار میکنند چطور؟ اگر قصد انجام چنین کاری وجود داشته باشد، آنوقت باید برنامه نویسی سوکت با پایتون را آموخت. برای این منظور، پیشنهاد میشود ابتدا به یادگیری مفاهیم بنیادی شبکههای کامپیوتری پرداخته شود. پس از یادگیری مفاهیم اساسی شبکههای کامپیوتری، میتوان از کتابخانههای پایتون برای کدنویسی روی ماشینی استفاده کرد که با کدهای ماشین دیگر ارتباط برقرار میکند. برای شروع یادگیری برنامه نویسی سوکت با پایتون باید گامهای زیر را طی کرد.
گام اول یادگیری برنامه نویسی سوکت با پایتون : نوشتن یک برنامه Echo
در این گام، از ماژول سوکت پایتون برای نوشتن یک سرور TCP (پروتکل کنترل انتقال) ساده روی یک ماشین و یک کلاینت TCP روی یک ماشین دیگر استفاده خواهد شد. باید اطمینان حاصل شود که دو کامپیوتر متفاوت وجود دارند و هر دوی آنها به یک شبکه یکسان متصل هستند. ایده برنامه Echo ساده است. این برنامه در سمت کلاینت پیامی را از کاربر میخواند و این پیام را از طریق شبکه به سرور ارسال میکند. در سمت سرور، وقتی این پیام دریافت میشود، سرور نیز همان پیام را بازتاب میدهد (Echo میکند) و آن را به کلاینت بازمیگرداند. میتوان برنامه Hello World را مشابه برنامه Echo اما برای برنامه نویسی سوکت در نظر گرفت. پس از آن، میتوان به سراغ نوشتن برنامههای پیچیدهتر رفت.
گام دوم یادگیری برنامه نویسی سوکت با پایتون : کار با HTTP
پس از آنکه مهارت کافی در زمینه نوشتن اپلیکیشنهای ساده کلاینت-سروری TCP به دست آمد، میتوان استفاده از ماژول درخواستهای پایتون (Python's Requests) را برای ارسال و دریافت پیامهای HTTP آغاز کرد. این کار مخصوصاً به این دلیل مفید است که این روزها تعداد زیادی از سرویسهای وب یا همان وبسرویسها یک رابط API اچتیتیپی ارائه میدهند که میتوان از طریق برنامه نویسی با آن به تعامل پرداخت. برای مثال، فیسبوک، توئیتر و Google Maps همگی دارای رابطهای API اچتیتیپی هستند که کدهای برنامه میتوانند از آنها استفاده کنند. در صورتی که احساس ماجراجویی بیشتری در این زمینه وجود داشته باشد و فردی بخواهد بیشتر در این حوزه پیش برود، میتوان بیرون کشیدن اطلاعات از وب (Web Scarpping) با BeautifulSoup را هم تجربه کرد.
فیلم آموزش طراحی خزشگر وب (Web Crawler) با پایتون
به ابزارها و روشهای قدرتمندی که برای جمعآوری و ذخیرهسازی دادههای وب توسعه داده میشوند خزش در وب (Web Crawling) گفته میشود. با استفاده از این ابزارها، دادهها و اطلاعات وب سایتها بیرون کشیده میشوند و در قالبهای رایج و قابل استفاده در تجزیه و تحلیل به کار گرفته میشوند. همچنین، موتورهای جستجو هم برای شاخصگذاری (Indexing) صفحات وب از Web Crawling استفاده میکنند. برای آشنایی با مفهوم خزشگر وب و نحوه طراحی آن میتوان از دوره آموزشی مرتبط با این موضوع در سایت فرادرس استفاده کرد. طول مدت این دوره آموزشی جامع تقریباً ۱۳ ساعت و مدرس آن محمد آذری جعفری است. برخی از سرفصلهای اصلی این دوره شامل مقدمهای بر بازیابی اطلاعات از محیط وب، آشنایی با ساختار صفحات وب، معرفی ابزارهای مورد نیاز و نصب و راهاندازی و سایر موارد است.
- برای مشاهده فیلم آموزش طراحی خزشگر وب (Web Crawler) با پایتون + اینجا کلیک کنید.
گام سوم یادگیری برنامه نویسی سوکت با پایتون : شناخت ابزارها
مثل هر برنامه دیگر، گاهی وقتی که یک برنامه تحت شبکه نوشته میشود، برنامه در اولین تلاش به درستی کار نخواهد کرد. اما، اشکالزدایی (دیباگ کردن) برنامههای تحت شبکه کمی نسبت به خطایابی برنامههای معمولی متفاوت است. به همین سبب، شخص باید خودش را با ابزارهای لازم برای عیبیابی آنچه رخ میدهد آشنا کند. در ادامه این بخش برخی از محبوبترین ابزارهای شبکه معرفی شدهاند که در برنامه نویسی سوکت کاربرد دارند.
- Ping : این ابزار برای بررسی اتصال بین ماشین مربوطه با ماشین دیگر استفاده میشود.
- Netstat : یک ابزار شبکه است که در کنار کارهای دیگر این امکان را فراهم میسازد تا بتوان هم بر اتصالهای ورودی و هم اتصالهای خروجی شبکه نظارت داشت.
- tcpdump : این ابزار امکان گوش دادن، دریافت و تجزیه-تحلیل بستههای واقعی که از طریق هر رابطی وارد کامپیوتر میشوند یا از آن خارج میشوند را فراهم میکند.
- Wireshark : ابزاری با رابط کاربری گرافیکی مناسب برای یادگیری شبکههای کامپیوتری به حساب میآید که میتوان با آن تقریباً همه کارهایی را انجام داد که با tcpdump قابل انجام هستند. تنها به این دلیل که رابط گرافیکی وایرشارک کمی کاربرپسندانهتر است، توصیه میشود پیش از یادگیری tcpdump، کار با وایرشارک فرا گرفته شود.
رابط کاربری وایرشارک در تصویر زیر مشاهده میشود:
همانطور که بیان شد، برای درک اصطلاحاتی مثل ACK ،SYN ،Get و FIN باید مباحث زیربنایی شبکههای کامپیوتری را یاد گرفت. بنابراین در ادامه به معرفی فیلم آموزش نتورک پلاس پرداخته شده است.
فیلم آموزش نتورک پلاس (+Network)
دوره آموزش ویدئویی +CompTIA Network یکی از دورههای مقدماتی بسیار رایج در حوزه شبکه به حساب میآید و برای آشنایی با مفاهیم پایه شبکههای کامپیوتری مناسب است. طول مدت این آموزش ۱۰ ساعت و مدرس آن مهندس عباس ولی زاده است. از جمله مباحثی که در این دوره مطرح میشوند، میتوان به معرفی دوره نتورک پلاس، انواع بسترهای ارتباطی، مدل OSI و لایههای شبکه، کلاسهای آیپی، امنیت و مجازیسازی اشاره کرد.
- برای دیدن فیلم آموزش نتورک پلاس (+Network) + اینجا کلیک کنید.
فیلم آموزش مقدماتی وایرشارک برای آنالیز ترافیک و پروتکل های شبکه
جهت یادگیری نحوه کار با وایرشارک برای تجزیه و تحلیل ترافیک و پروتکلهای شبکه میتوان از دوره آموزشی تهیه شده در این خصوص در سایت فرادرس استفاده کرد. طول مدت این دوره آموزشی بیش از ۴ ساعت و مدرس آن مهندس آرزو صبری است. این دوره شامل پنج فصل است که برخی از مباحث پوشش داده شده در آنها شامل آشنایی مقدماتی با نرمافزار وایرشارک، نصب کردن نرمافزار بر روی سیستمعامل ویندوز، آشنایی با محیط نرمافزار وایرشارک، نحوه دریافت کردن و ضبط بستهها و سایر موارد است.
- برای مشاهده فیلم آموزش مقدماتی وایرشارک برای آنالیز ترافیک و پروتکل های شبکه + اینجا کلیک کنید.
گام پنجم: یادگیری ساختمان دادهها و الگوریتمها در پایتون
رسیدن به این مرحله بسیار جای امیدواری دارد. چرا که تا این سطح مهارتهایی به دست آمدهاند که فرد را قادر میسازند تا مسائل گوناگونی را حل کند. اگرچه یک کاستی وجود دارد؛ هنوز مهارت کافی برای نوشتن کدهای بهینه کسب نشده است. منظور از کدهای بهینه یا Efficient چیست؟ برای مثال تا این مرحله هنوز مهارت ویرایش کدها برای اجرای سریعتر آنها به دست نیامده است. حتی توانایی تجزیه و تحلیل علت کندی اجرای کدها هم تا این مرحله از مسیر یادگیری پایتون وجود ندارد. البته این عدم توانایی امری طبیعی است و جای نگرانی نیست. چرا که دانش کسب شده در مراحل قبلی تا به اینجا برای داشتن درک درستی از چیستی عملکرد برنامه و چگونگی ویرایش کدهای فعلی برای اجرای سریعتر آنها کافی نیست. برای مثال و درک بهتر این موضوع، در اپامه قطعه کد سادهای آمده که nامین عدد فیبوناتچی در آن محاسبه شده است:
1def fib(n):
2 if n < 2:
3 return n
4 return fib(n-2) + fib(n-1)
5
6print(fib(100))
همانطور که ملاحظه میشود، کدهای فوق به اندازه کافی ساده و قابل درک هستند. حالا اگر سعی در محاسبه fib[100] با استفاده از قطعه کد فوق وجود داشته باشد، ملاحظه خواهد شد که زمان اجرای برنامه و دریافت خروجی بسیار بالا خواهد بود. اکنون یک ویرایش ساده در کدهای فوق به صورت زیر انجام میشود:
1def fib(n, d):
2 if n < 2:
3 return n
4 if n not in d:
5 d[n] = fib(n-2, d) + fib(n-1, d)
6 return d[n]
7
8print(fib(100, {}))
این بار کل زمان اجرای برنامه برای رسیدن به جواب و نمایش خروجی (عدد 354224848179261915075) تنها چند میلیثانیه است. در قطعه کد ویرایش شده فوق از روشی به نام «برنامه ریزی پویا» (Dynamic Programming) برای رفع مشکل زمان اجرای طولانی برنامه استفاده شد. تا اینجا دلیل یادگیری ساختمان دادهها و الگوریتمها تا حد زیادی واضح به نظر میرسد. مهارتهایی که در این مرحله باید فرا گرفته شوند، برخی از متمایز کنندههای کلیدی میان برنامه نویس متوسط و برنامه نویس خبره به حساب میآیند. در گام پنجم مسیر یادگیری پایتون ، مهارتهای زیر باید آموخته شوند:
- لیست پیوندی
- درخت
- پشته
- صف
- گراف
- جدول Hash
- بازگشت
- برنامه ریزی پویا
- الگوریتمهای جستجو و مرتبسازی
- سایر مباحث الگوریتمها
پس از یادگیری کامل و دقیق مفاهیم فوق، تنها چند گام اندک تا اشتغال در موقعیت شغلی مهندسی نرم افزار در هر یک از شرکتهای دلخواه فعال در حوزه فناوری باقی مانده است.
- مقالات پیشنهادی:
- لیست پیوندی یک طرفه، دو طرفه و حلقوی — ساختمان داده و الگوریتم ها
- پشته (Stack)، صف (Queue) و تجزیه عبارت — ساختار داده و الگوریتم ها
- پیاده سازی پشته با استفاده از صف — به زبان ساده
- انواع الگوریتم های جستجو و Hash Table — راهنمای جامع
- معرفی تکنیک های مرتب سازی (Sorting Techniques) — ساختار داده و الگوریتم ها
فیلم آموزش ساختمان داده ها
برای یادگیری ساختمان دادهها میتوان از دوره فرادرس در این خصوص استفاده کرد. طول مدت این دوره آموزشی نزدیک به ۱۱ ساعت و مدرس آن دکتر فرشید شیرافکن است. برخی از سرفصلهای اصلی و رئوس مطالب این دوره آموزشی شامل مرتبه اجرایی، زیربرنامه های بازگشتی، آرایه، صف و پشته، لیست پیوندی، درخت، گراف، مرتب سازی و سایر موارد است.
- برای دیدن فیلم آموزش ساختمان داده ها + اینجا کلیک کنید.
فیلم آموزش طراحی الگوریتم فرادرس
برای یادگیری الگوریتمها هم میتوان از دوره آموزش طراحی الگوریتم فرادرس استفاده کرد. طول مدت این دوره، تقریباً ۱۵ ساعت و مدرس آن، دکتر فرشید شیرافکن است. در این دوره آموزشی، مفاهیم درس طراحی الگوریتم به بیان ساده و به طور جامع ارائه شدهاند. این دوره بر مبنای دو منبع مهم طراحی الگوریتم یعنی کتابهای کرمن و نیپولیتان تهیه شده است. برخی از سرفصلها و مطالب مطرح شده در این دوره شامل مرتبه اجرایی، رابطه های بازگشتی، روش تقسیم و حل، روش برنامهنویسی پویا، روش حریصانه، روش شاخه و قید، الگوریتم های گراف و سایر موارد است.
- برای دیدن فیلم آموزش طراحی الگوریتم + اینجا کلیک کنید.
گام ششم: آمادهسازی برای شرکت در مصاحبه کاری برنامه نویس پایتون
در این مرحله از مسیر یادگیری پایتون ، مهارتها و تجربه کافی برای ارسال درخواست مصاحبه موقعیت شغلی مهندس نرم افزار در هر یک از شرکتهای مورد نظر حوزه فناوری در سراسر دنیا به دست آمده است. در یک مصاحبه برنامه نویسی معمول، مهارتهای حل مسئله، مهارتهای ارتباطی، دانش ساختمان دادهها و الگوریتمها مورد ارزیابی قرار میگیرند. همچنین، سطح مهارت و میزان کارآمدی کارجو در ترجمه افکار و ایدهها به کدهای پایتون نیز سنجیده میشود.
بهترین راه برای موفقیت در مصاحبههای برنامه نویسی، اختصاص دادن زمان کافی برای کسب آمادگی در مصاحبه است. هر چه فرد آمادهتر باشد، مصاحبه موفقیتآمیزتر و احتمال پذیرفته شدن در موقعیت شغلی دلخواه بسیار بیشتر خواهد بود. پس از شروع فعالیت شغلی، فرآیند یادگیری در حین کار نیز ادامه خواهد داشت و تجربه بسیار ارزشمند و وسیعی حاصل خواهد شد. اینجاست که آخرین گام در مسیر یادگیری پایتون آغاز میشود.
- مقالات پیشنهادی:
گام هفتم: یادگیری پایتون پیشرفته
در صورتی که افراد بخواهند به حوزه تسلط بر زبان پایتون وارد شوند، یادگیری پایتون را در سطح پیشرفته دنبال کنند و در تقویت مهارتهای برنامه نویسی پایتون یک گام فراتر بروند، مطالعه کتاب «Fluent Python» قویاً توصیه میشود. در این کتاب فرض بر آن قرار داده میشود که درک اصول اولیه پایتون پیش از شروع کتاب به دست آمده است. برخی از مفاهیم ارائه شده در کتابهای مبتدی در کتاب Fluent Python از زاویه دیگری با جزئیات بیشتر و سطح عمیقتری پوشش داده شدهاند. علاوه بر آن، با مطالعه این کتاب، میتوان برخی از مفاهیم جدید را هم یاد گرفت. برای مثال، برخی از مفاهیم جدیدی که در این کتاب به آنها پرداخته شده است در ادامه فهرست شدهاند:
- تابع مرتبه بالاتر (Higher-order Function): اینکه چگونه میتوان توابع را به صورت درجه اول استفاده کرد.
- شی This در پایتون
- جریان کنترل (Control Flow): مباحث Generatorها، Context Managerها، همروالها (Coroutines) و همزمانی پوشش داده شدهاند.
- فرا برنامه نویسی (Metaprogramming): اساساً فرا برنامه نویسی به معنی نوشتن کدهایی است که با کدها کار میکند و آنها را تغییر میدهد. برخی از مفاهیمی که در این بخش مورد بحث قرار گرفتهاند شامل Decoratorها و کلاسهای متا است.
فیلم آموزش Metaprogramming (برنامه نویسی متا) در پایتون
به طور خلاصه، فرا برنامه نویسی یا Metaprogramming یک تکنیک برنامه نویسی است که در آن برنامههای کامپیتوری این قابلیت را دارند که با برنامههای دیگر به عنوان دادههای خود رفتار کنند. یعنی یک برنامه میتواند به گونهای طراحی شود که بتواند دیگر برنامهها را بخواند، تولید یا تجزیه و تحلیل کند. برای یادگیری فرا برنامه نویسی در پایتون میتوان از دوره آموزش Metaprogramming فرادرس استفاده کرد. طول مدت این دوره تقریباً ۲ ساعت و مدرس ان مهندس پژمان اقبالی است.
- برای مشاهده فیلم آموزش Metaprogramming (برنامه نویسی متا) در پایتون + اینجا کلیک کنید.
فیلم آموزش برنامه نویسی پایتون - تکمیلی
آشنایی و یادگیری پایتون در این فرادرس در سطح پیشرفته ارائه شده است. در دوره تکمیلی پایتون، جنبههای مختلفی از برنامه نویسی پایتون شامل ساختار دادهها، الگوریتمها، رشته و متن و سایر موارد آموزش داده شده است. کار با رشتهها و فایلهای متنی و آموزش روشهای بهینه برای عملیات پر استفاده و پر تکرار با رشتهها و متنها از جمله دیگر مواردی است که در این دوره به آنها پرداخته میشود.
- برای مشاهده فیلم آموزش برنامه نویسی پایتون - تکمیلی + اینجا کلیک کنید.
گامهای تکمیلی یادگیری پایتون
تا این مرحله از مسیر یادگیری پایتون ، تمام مباحث پایه و اساسی پایتون پوشش داده شدهاند و میتوان فردی که به این سطح رسیده است را یک برنامه نویسی حرفهای پایتون خطاب کرد. اما حتی در این مرحله هم مسیر یادگیری پایتون به انتها نمیرسد. در این بخش به شرح گامهای تکمیلی یادگیری پایتون پرداخته شده است.
گام اختیاری یادگیری پایتون: کتابخانهها و فریم ورکهای پایتون
پایتون دارای کتابخانههای بسیار زیادی است که یادگیری آنها میتواند بسیار کاربردی باشد. با دانستن اینکه بهتر است از چه کتابخانهای و در چه زمانی استفاده شود، میتوان به میزان زیادی در وقت و انرژی صرفهجویی کرد و همچنین وسعت دانش لازم برای انتخاب ابزارهای درست به دست خواهد آمد. بنابراین، در این بخش از مقاله بهترین مسیر یادگیری پایتون به معرفی برخی از مهمترین کتابخانهها و فریمورکهای پایتون پرداخته شده است.
کتابخانهها و فریم ورکهای پایتون : یادگیری ساخت خدمات API با پایتون : Flask
این روزها کاربردهای وب (وب اپلیکیشنهای) بزرگ و گسترشپذیر به روش ایجاد تعدادی اپلیکیشن کوچکتر ساخته میشوند که با یکدیگر در ارتباط هستند. به این روش «معماری ریز خدمات» (معماری میکروسرویس) گفته میشود. به هر یک از این اپلیکیشنهای کوچکتر یک سرویس یا میکروسرویس میگویند. این میکروسرویسها میتوانند به روشهای مختلفی ارتباط برقرار کنند که یکی از رایجترین و محبوبترین آنها استفاده از پروتکل HTTP است.
به بیان دیگر، هر یک از این سرویسها یک HTTP API ارائه میدهند که سایر سرویسها میتوانند از طریق آن با سرویس مربوطه ارتباط برقرار کنند. به این ترتیب، یادگیری نحوه ایجاد سرویسهای API با پایتون میتواند سرمایهگذاری خوبی باشد. یکی از کتابخانههای پایتون که انجام این کار را بسیار ساده کرده است، فلسک (Flask) نام دارد که یادگیری آن به علاقهمندان به این حوزه توصیه میشود.
کتابخانهها و فریم ورکهای پایتون : یادگیری ساخت APIهای وب با جنگو
جنگو یک فریم ورک توسعه وب تمام و کمال به حساب میآید که به طور کامل امکان ایجاد یک وب اپلیکیشن را در پایتون (هم در back end و هم در front end) فراهم میکند. با یادگیری جنگو میتوان با برخی از مفاهیم رایج و پراستفاده در سایر فریم ورکهای توسعه وب به زبانهای دیگر و الگوهایی مثل MVC (مدل نما کنترلر) و ORM (نگاشت شی رابطهای) نیز آشنایی لازم را به دست آورد. MVC الگویی برای ساختاردهی و سازماندهی وب اپلیکیشن و ORM نیز روشی است که با استفاده از آن فاصله (گپ) بین برنامه نویسی شی گرا و دسترسی به دادهها در بانک اطلاعاتی پُر میشود. در خصوص ORM بهتر است اشاره شود که SQLAlchemy یک کتابخانه ORM محبوب و پر استفاده در پایتون به حساب میآید که یادگیری آن میتواند بسیار مفید و کاربردی باشد.
فیلم آموزش جنگو (Django) - فریمورک تحت وب با پایتون (Python)
جنگو یکی از محبوبترین فریمورکهای توسعه بکاند در سال ۱۴۰۱ به حساب میآید که مبتنی بر پایتون است. برای یادگیری Django میتوان از دوره آموزش جنگو فرادرس استفاده کرد. زمان این دوره آموزشی تقریباً هشت ساعت و مدرس آن، مهندس پدرام شاه صفی است. دوره آموزش جنگو برای علاقهمندان به توسعه سریع و آسان وب با جنگو و پایتون یک دوره جامع و مطلوب به حساب میآید. این دوره به صورت پروژه محور ارائه شده است. به طوری که پس از ارائه آموزشهای تئوری، برای درک و یادگیری بهتر، آموزشهای ارائه شده به صورت عملی و در قالب پروژههای نمونه، پیادهسازی شدهاند. از جمله سرفصلها و عناوین دوره آموزش جنگو میتوان به نصب و آمادهسازی جنگو، پایگاهداده و مدلها، URLها، صفحه ادمین، قالبها و سایر مباحث اصلی و مهم در جنگو اشاره کرد.
- برای مشاهده فیلم آموزش آموزش جنگو (Django) – فریمورک تحت وب با پایتون (Python) + اینجا کلیک کنید.
کتابخانهها و فریم ورکهای پایتون : یادگیری کتابخانههای یادگیری ماشین با پایتون
با وجود کتابخانههای جامع یادگیری ماشین در پایتون تعجبی ندارد که پایتون عملاً به زبان برنامه نویسی مخصوص یادگیری ماشین و علم داده بدل شده است. اگر قصد تبدیل شدن به یک دانشمند داده وجود داشته باشد، قویاً توصیه میشود تا افراد پیش از شروع آموزش کتابخانههای یادگیری ماشین پایتون ، ابتدا مباحث پایه ریاضی و آمار و احتمال مورد نیاز را فرا بگیرند.
- مقالات پیشنهادی:
مطالعه کتاب درآمدی بر یادگیری آماری (Introduction to Statistical Learning) میتواند در این خصوص بسیار مفید واقع شود. همچنین، در صورتی که ترجیح بر استفاده از دورههای آموزش ویدیویی باشد، دوره یادگیری ماشین اندرو انجی (Andrew NG) در این زمینه بسیار محبوب و پرطرفدار است. پس از آنکه یادگیری مباحث پایه و ابتدایی به اتمام رسیدند، میتوان کار با کتابخانههای یادگیری ماشین و آموزش آنها را آغاز کرد. سه کتابخانه محبوب پایتون در این زمینه شامل موارد زیر است:
- scikit-learn : این کتابخانه در خصوص الگوریتمهای یادگیری ماشین بسیار جامع و کامل است.
- Tensorflow : یکی دیگر از فریم ورکهای محبوب و متن باز یادگیری ماشین به زبان پایتون محسوب میشود.
- pandas : یک کتابخانه تجزیه و تحلیل داده بسیار محبوب و پرطرفدار به حساب میآید.
فیلم آموزش یادگیری ماشین (Machine Learning) با پایتون (Python)
طول مدت این دوره ده ساعت و مدرس آن مهندس سعید مظلومی راد است. این دوره برای علاقهمندان و فعالین حوزه هوش مصنوعی و آن دسته از افرادی مناسب است که قصد دارند به تازگی در زمینه یادگیری ماشین مهارت کسب کنند و به فعالیت بپردازند. از جمله سرفصلها و رئوس مطالب مطرح شده در این دوره آموزشی میتوان به مقدمه یادگیری ماشین، آشنایی با NumPy، آشنایی با Pandas، ترسیم دادهها، آشنایی با مباحث آماری و سایر موارد اشاره کرد.
- برای دیدن فیلم آموزش یادگیری ماشین آموزش یادگیری ماشین (Machine Learning) با پایتون (Python) + اینجا کلیک کنید.
گام اختیاری یادگیری پایتون: یک پیادهسازی پایتون : CPython
پایتون یک زبان تفسیری (Interpreted) است. این یعنی کدهای پایتون مستقیماً به کدهای ماشین کامپایل نمیشوند. بلکه، کدهای پایتون ابتدا به یک زبان سطح میانی (Intermediate Language) به نام «بایت کد» (Byte Code) کامپایل میشوند. پس از آن بایت کد به وسیله یک قطعه نرم افزاری دیگر به نام «مفسر» (Interpreter) تفسیر میشود.
- مقاله پیشنهادی: بهترین مفسر پایتون برای برنامه نویسی — راهنمای کاربردی
برای درک بهتر چیستی بایت کد، مثالی در ادامه آمده است. ابتدا باید یک فایل منبع به نام helloworld.py ایجاد شود:
1# helloworld.py
2print("hello world")
نحوه مشاهده بایت کد برای کدهای منبع فوق به صورت زیر است:
1$ python3 -m dis helloworld.py
22 0 LOAD_NAME 0 (print)
3 2 LOAD_CONST 0 ('hello world')
4 4 CALL_FUNCTION 1
5 6 POP_TOP
6 8 LOAD_CONST 1 (None)
7 10 RETURN_VALUE
بایت کد فوق بعداً توسط یک مفسر به کدهای ماشین تفسیر میشود. به این ترتیب کدها اجرا شده و در نهایت عبارت «Hello World» به عنوان خروجی نمایش داده خواهد شد. پیادهسازیهای گوناگونی از پایتون برای کامپایلر و مفسر وجود دارد. اگرچه، CPython به طور پیشفرض استفاده میشود و بسیار رایج است. CPython به طور کامل با زبان C نوشته شده است. CPython هم یک مفسر و هم یک کامپایلر به حساب میآید، چرا که کدهای پایتون را به بایت کد کامپایل و سپس بایت کد را به زبان ماشین تفسیر میکند.
یادگیری پیاده سازی پایتون و CPython چه اهمیتی دارد؟
حالا چرا در این بخش پیرامون پیادهسازی پایتون بحث شده است؟ آیا برای تبدیل شدن به یک استاد پایتون واقعاً نیاز به یادگیری چنین مباحث جزئی و ریزی وجود دارد؟ صادقانه باید گفت خیر. اما در صورتی که فردی به نحوه پیادهسازی لیستها، تاپلها، توابع و سایر موجودیتهای پایتون علاقهمند و به یادگیری یک زبان جدید یعنی C هم تمایل داشته باشد، آنگاه شاید لازم باشد تا مشارکت در CPython را مد نظر قرار دهد.
تا اینجا بیشتر به مباحث و موضوعاتی پرداخته شد که باید در مسیر یادگیری پایتون فرا گرفته شوند. حال در ادامه این مقاله به ارائه گامهایی در خصوص چگونگی و نحوه یادگیری پایتون پرداخته شده است. به بیان دیگر در بخش بعدی این نوشتار، مسیر یادگیری پایتون از جنبه دیگری ارائه و بیشتر به نکات و ترفندهای کلی در خصوص یادگیری پایتون پرداخته شده است. علاوه بر آن، دورههای آموزشی مرتبط با هر یک از این گامها نیز به علاقهمندان معرفی شدهاند.
نحوه یادگیری پایتون در سال ۱۴۰۱ — راهنمای گام به گام
یکی از مواردی که میتواند در خصوص یادگیری پایتون آزار دهنده باشد این است که دورههای آموزشی پایتون در بسیاری از منابع به صورت بسیار کلی ارائه شدهاند. برای مثال، ممکن است فردی قصد یادگیری پایتون را برای برنامه نویسی وب داشته باشد. اما در اکثر منابع آموزشی پایتون پیش از پرداختن به مباحث مورد علاقه فرد، زمان زیادی صرف آموزش سینتکس پایتون و مفاهیم مقدماتی میشود. این عدم تناسب میتواند باعث شود که افراد در آغاز مسیر یادگیری پایتون دچار تردید و اضطراب شوند و کار را نیمه کاره رها کنند. از طرف دیگر، درک نحوه عملکرد پایتون بدون یادگیری پایتون از صفر میتواند بسیار دشوار باشد. مشکل اینجاست که برای یادگیری پایتون به گونهای که بتوان با آن برنامه کاربردی مطلوبی ایجاد کرد، باید ابتدا درکی از اجزای سازنده زبان برنامه نویسی پایتون وجود داشته باشد.
اکثر دورههای آموزشی پایتون با این فرض ارائه میشوند که قبل از به کارگیری پایتون در کاربردهای مختلفی مثل برنامه نویسی وب، تمام سینتکس آن باید آموزش داده شود. به این ترتیب، ماهها زمان برای آموزش سینتکس پایتون سپری میشود، در حالی که هدف اصلی، برای مثال، تحلیل دادهها، ایجاد یک وب سایت یا ساخت یک پهباد خودکار است. میتوان مباحث مقدماتی یادگیری پایتون شامل سینتکس آن را همانند یک «صخره ملال» در نظر گرفت. بنابراین، بهترین مسیر یادگیری پایتون از آنجایی آغاز میشود که افراد از صخره ملال بالا روند و از آن عبور کنند تا بتوانند به سرزمین کارهای هیجانانگیزی برسند که همیشه آرزوی انجام آنها را با پایتون داشتهاند. اما لزومی ندارد که ماهها با صخره ملال دست و پنجه نرم شود. در ادامه این مقاله، بهترین راه برای مقابله با صخره ملال و بهترین مسیر یادگیری پایتون از صفر ارائه شده است.
بهترین راه برای یادگیری پایتون چیست؟
بهترین راه برای یادگیری پایتون این است که مباحث مقدماتی با آموزش برنامه نویسی و ساخت برنامههای جذاب و کاربردی ادغام شوند. بنابراین، بهتر است تا حد امکان زمان کمتری را برای یادگیری مباحث پایه و مقدماتی پایتون اختصاص داده و بلافاصله یادگیری ایجاد برنامههایی آغاز شود که سرگرم کننده هستند و علاقه فرد را تحریک میکنند. در ادامه این بخش، فارق از دلیل نیاز به یادگیری پایتون به هر یک از گامها و مراحل مورد نیاز برای طی کردن بهترین مسیر یادگیری پایتون از صفر پرداخته شده است.
گام اول: درک اینکه چه چیزی انگیزه یادگیری پایتون را در فرد ایجاد میکند؟
پیش از شروع یادگیری آنلاین پایتون ، ارزشش را دارد که افراد از خود بپرسند چرا می خواهند پایتون را یاد بگیرند؟ این سوال به این دلیل باید پرسیده شود که مسیر یادگیری پایتون بسیار طولانی و گاهی دشوار خواهد بود. به احتمال زیاد بدون انگیزه کافی نمیتوان به نتیجه رسید. برای مثال در اکثر کلاسهای درسی دبیرستان و دانشگاهها با توجه به اینکه الزام به حفظ کردن و به خاطر سپردن سینتکس پایتون وجود دارد، بسیاری از افراد علاقه و انگیزه خود را از دست میدهند و شرکت در این کلاسها برای آنها بسیار کسل کننده است.
از طرف دیگر وقتی مثلاً از پایتون برای ساخت یک وب سایت با کاربردی خاص مثل نمره دادن خودکار به انشاء استفاده میشود، ممکن است علاقه و انگیزه در افراد تا حدی ایجاد شود که برای پیادهسازی پروژه تا صبح بیدار بمانند. بنابراین، درک اینکه چه چیزی انگیزه لازم را در فرد به وجود میآورد و همچنین پیدا کردن یک مسیر درست و به دور از کسالت و ملالت میتواند در هدفگذاری نهایی بسیار موثر و مفید واقع شود. نیازی به تعیین یک پروژه مشخص وجود ندارد و تنها کافی است زمینه و کاربرد مورد علاقه برای یادگیری پایتون به صورت کلی مشخص شود.
کاربردهای پایتون چه هستند؟
زمینههایی که پایتون در آنها استفاده میشود، به شرح زیرند:
- علم داده / یادگیری ماشین
- توسعه اپلیکیشن موبایل
- برنامه نویسی وب
- ساخت بازی
- پردازش و تجزیه-تحلیل داده
- سختافزار / حسگرها / رباتها
- اسکریپتهایی برای خودکارسازی برخی از وظایف
برای مثال، میتوان به کمک دستورالعملهای کتاب «Raspberry Pi Cookbook» رباتی مشابه تصویر زیر ساخت:
- مقاله پیشنهادی: کاربرد پایتون چیست و با آن چه می توان کرد؟ | راهنمای کاربردی
بنابراین، افراد باید یک یا دو حوزهای را بیابند که علاقه و انگیزه لازم را در آنها به وجود میآورد و باید تمایل به ادامه فعالیت در این حوزهها وجود داشته باشد. با وجود چنین شرایطی مسیر یادگیری پایتون و رسیدن به اهداف مورد نظر به سرعت انجام خواهد شد و در نهایت میتوان پروژههای مطرحی را در زمینههای مورد علاقه پیادهسازی کرد.
گام دوم: یادگیری اساس سینتکس پایتون
با وجود ملالآور بودن یادگیری سینتکس، متاسفانه راهی برای دور زدن این مرحله از یادگیری پایتون وجود ندارد. پیش از ورود به برنامه نویسی پایتون در حوزه مورد علاقه، حتماً باید مباحث پایهای و اساس سینتکس پایتون را آموخت. اگرچه، با توجه به اینکه این مرحله چندان انگیزهبخش نیست، بهتر است به سرعت از آن عبور کرد. باز هم لازم است تاکید شود که باید کمترین زمان ممکن را روی مباحث پایه سینتکس پایتون صرف کرد. هر چه قدر فرد بتواند سریعتر به سراغ کار بر روی پروژهها برود، فرآیند یادگیری پایتون سریعتر انجام خواهد شد. همیشه میتوان در صورت برخورد به مشکل، به عقب بازگشت و به مستندات سینتکس پایتون مراجعه کرد.
در حالت ایدهآل، بهتر است تنها چند هفته و نه بیشتر از یک ماه روی مباحث مقدماتی سینتکس پایتون وقت گذاشته شود. یک نکته دیگر اینکه در حال حاضر دو نسخه متفاوت از پایتون با نام نسخههای ۲ و ۳ وجود دارد که بهتر است پایتون ۳ را یاد گرفت. متاسفانه بسیاری از منابع آنلاین آموزش پایتون همچنان در حال آموزش نسخه دوم پایتون هستند. اما یادگیری پایتون ۳ اکیداً توصیه میشود، چرا که پایتون ۲ دیگر تحت پشتیبانی نیست و باگها و رخنههای امنیتی در نسخه ۲ پایتون دیگر برطرف نخواهند شد. در ادامه این بخش، برخی از منابع آموزشی برای یادگیری مفاهیم مقدماتی پایتون ارائه شده است.
فیلم آموزش پایتون (Python) مقدماتی
برای شروع یادگیری برنامه نویسی پایتون میتوان از دوره مقدماتی آموزش پایتون فرادرس استفاده کرد. طول مدت این دوره آموزشی، نزدیک به ۲۰ ساعت و مدرس آن مهندس پژمان اقبالی شمس آبادی است. این دوره آموزشی پیشنیازی ندارد و برای علاقهمندان به برنامهنویسی در تمامی زمینهها مثلاً علم داده و هوش مصنوعی مناسب است. از جمله سرفصلها و موضوعاتی که در این دوره ارائه شدهاند، میتوان به نصب پایتون، کتابخانه استاندارد پایتون، ساختمان داده در پایتون، توابع و ماژولها، کلاس، خواندن و نوشتن فایلها و سایر مباحث مقدماتی پایتون اشاره کرد.
- برای دیدن فیلم آموزش برنامه نویسی پایتون (Python) – مقدماتی + اینجا کلیک کنید.
مقالات آموزش مقدماتی پایتون
در این بخش از مقاله بهترین مسیر یادگیری پایتون ، آن دسته از مقالاتی از مجله فرادرس فهرست شدهاند که مطالعه آنها میتواند برای شروع آموزش مقدماتی پایتون مفید واقع شود:
- زبان برنامهنویسی پایتون (Python) چیست ؟ — از صفر تا صد و به زبان ساده
- چرا پایتون یاد بگیریم ؟ | دلایل یادگیری پایتون
- بازار کار پایتون | درآمد برنامه نویس پایتون در ایران و جهان
- بازار کار پایتون | درآمد برنامه نویس پایتون در ایران و جهان
- یادگیری پایتون چقدر زمان میبرد ؟ | مدت زمان حرفهای شدن در پایتون
- ۲۰ سایت آموزش آنلاین پایتون | راهنمای شروع یادگیری
- آموزش پایتون برای کودکان — راهنمای جامع
- آموزشهای رایگان جادی — لیست جامع و کامل
- کاربرد پایتون چیست و با آن چه میتوان کرد؟ | راهنمای کاربردی
- برنامه نویسی پایتون برای مبتدیان — به زبان ساده
- بهترین محیط برنامه نویسی پایتون در ۲۰۲۴ – معرفی ۲۰ IDE برتر
گام سوم: ایجاد پروژههای ساختارمند
پس از یادگیری مقدمات سینتکس پایتون، میتوان انجام پروژههایی را به تنهایی آغاز کرد. انجام پروژه روش عالی برای یادگیری به حساب میآید، چرا که به فرد اجازه میدهد تا دانش خود را به صورت عملی به کار بگیرد. در واقع حفظ و تثبیت دانش محقق نخواهد شد، مگر اینکه به صورت عملی به کار گرفته شود. پروژهها، توانمندیها و قابلیتهای فرد را مورد ارزیابی قرار میدهند و به یادگیری نکتههای جدید کمک میکنند. همچنین، پیادهسازی پروژههای عملی به زبان پایتون در تقویت رزومه و ایجاد نمونهکارهایی برای ارائه به کارفرمایان بالقوه بسیار تاثیرگذار خواهد بود. بسیاری از منابع یادگیری پایتون ، پروژههای ساختارمندی را ارائه میدهند و این پروژهها به افراد کمک میکنند تا چیزهای جالبی در حوزههای مورد علاقه خود بسازند و در عین حال از گرفتار شدن و برخورد به مشکل در پروژه جلوگیری میکنند. در ادامه برخی از دورههای آموزش پروژه محور پایتون معرفی شدهاند.
فیلم های آموزش پروژه محور پایتون
در مجموعه فرادرس دورههای مختلفی با محوریت زبان برنامه نویسی پایتون در زمینهها و کاربردهای مختلف تهیه شده است. در این بخش تعدادی از دورههای پروژه محور پایتون به طور مختصر معرفی شدهاند. از این دورههای آموزشی میتوان در سومین گام مسیر یادگیری پایتون یعنی در مرحله پیادهسازی پروژههای ساختارمند استفاده کرد.
- فیلم آموزش پروژه محور Python - ساخت Music Player (طول مدت: ۳۹ دقیقه، مدرس: محمد جباری): در این دوره آموزش پروژه محور پایتون با ایجاد یک برنامه پخش موسیقی ساده ارائه شده است که امکان بارگذاری، پخش، توقف و کم و زیاد کردن صدا در آن پیادهسازی میشود. برای مشاهده فیلم آموزش پروژه محور Python - ساخت Music Player + کلیک کنید.
- فیلم آموزش پروژه محور پایتون (Python) - ساخت برنامه هواشناسی آنلاین (طول مدت: ۱ ساعت و ۲۰ دقیقه، مدرس: محمد جباری): در این دوره آموزش پروژه محور پایتون نحوه ساخت یک برنامه هواشناسی آنلاین ساده شرح داده شده است که وضعیت آب و هوای یک شهر را در لحظه نشان میدهد. برای مشاهده فیلم آموزش پروژه محور پایتون (Python) - ساخت برنامه هواشناسی آنلاین + کلیک کنید.
- فیلم آموزش پروژه محور پایتون - ساخت بازی با کتابخانه Turtle (طول مدت: ۲ ساعت و ۱۸ دقیقه، مدرس: علی دژبرد): کتابخانه لاکپشت پایتون به برنامهنویسان جدید کمک میکند تا درک کنند که برنامهنویسی با پایتون به روشی سرگرم کننده و تعاملی چگونه است. برای مشاهده فیلم آموزش پروژه محور پایتون - ساخت بازی با کتابخانه Turtle + کلیک کنید.
- فیلم آموزش مقدماتی ساخت ربات تلگرام با پایتون (Python) (طول مدت: ۱ ساعت و ۱۷ دقیقه، مدرس: پویا جمالی): یکی دیگر از کاربردهای پایتون ساخت ربات تلگرام است که در این دوره به صورت پروژه محور آموزش داده شده است و روش مناسبی برای تقویت مهارت برنامه نویسی پایتون به حساب میآید. برای مشاهده فیلم آموزش مقدماتی ساخت ربات تلگرام با پایتون (Python) + کلیک کنید.
آموزش پروژه محور پایتون بسته به زمینه مورد علاقه انتخاب میشود. برای مثال در صورتی که فرد به حوزه هوش مصنوعی، یادگیری ماشین و علم داده علاقهمند باشد، باید در این مرحله پروژههای ساختارمند و دورههای پروژه محور در حوزه علم داده را دنبال کند. بنابراین در ادامه این مقاله، دورهها و منابع آموزشی در هر یک از حوزههای مختلف برنامه نویسی پایتون به صورت مجزا در بخشهای مختلف معرفی شدهاند.
معرفی منابع آموزشی پروژه محور یادگیری پایتون برای علم داده و یادگیری ماشین
یکی از محبوبترین زمینههای برنامه نویسی پایتون ، کاربرد آن در علم داده و یادگیری ماشین است. علم داده و یادگیری ماشین و به طور کلی هوش مصنوعی از جمله حوزههای مهم و آیندهساز دنیای فناوری به حساب میآیند و تا کنون تحولات عظیمی را در این عرصه پدید آوردهاند. در این بخش تعدادی از دورههای آموزشی پروژه محور پایتون در زمینه علم داده و یادگیری ماشین معرفی شده است.
فیلم آموزش تجزیه و تحلیل و آماده سازی داده ها با پایتون
تجزیه و تحلیل و آماده سازی دادهها در حوزه علم داده کاربرد دارد. آماده سازی دادهها به معنی تبدیل دادههای خام به ساختاری با ارزشتر است. تجسم دادهها، تجمیع دادهها و آموزش مدل آماری از جمله مواردی است که در آمادهسازی دادهها انجام میشود. برای آموزش تجزیه و تحلیل و آمادهسازی دادهها با پایتون میتوان از دوره آموزشی تهیه شده با همین عنوان در سایت فرادرس استفاده کرد. طول مدت این دوره آموزشی نزدیک به ۱۰ ساعت و مدرس آن دکتر فرشید شیرافکن است.
اصول اولیه تجزیه و تحلیل و آمادهسازی دادهها، نحوه وارد کردن فایلهایی مثل XML ،JSON و CSV آموزش داده شده است. همچنین، چگونگی تجزیه و تحلیل دادهها، گروهبندی و اتصال دادهها با استفاده از کتابخانه Pandas در این دوره آموزش داده میشود. علاوه بر این، نحوه استخراج دادهها از وب، شیوههای شناسایی و پاکسازی دادهها و همچنین مصورسازی دادهها با Matplotlib نیز از جمله سایر مواردی است که در این دوره پوشش داده شده است.
- برای دیدن فیلم آموزش تجزیه و تحلیل و آماده سازی داده ها با پایتون + اینجا کلیک کنید.
فیلم آموزش یادگیری ماشین با پیاده سازی در Python – بخش اول
طول مدت این دوره ۱۶ ساعت و ۵۰ دقیقه و مدرس آن دکتر فرشید شیرافکن است. دوره آموزش یادگیری ماشین با پیاده سازی در Python بخش اول آموزش یادگیری ماشین را شامل میشود که مباحثی از جمله مفاهیم اولیه، داده، رگرسیون و چهار روش طبقه بندی، رگرسیون لجستیک، ماشین بردار پشتیبان، شبکه عصبی و درخت تصمیم مورد بررسی قرار گرفتهاند. بخش دوم آموزش یادگیری ماشین در دوره آموزشی دیگری قرار دارد که در ادامه معرفی شده است.
- برای دیدن فیلم آموزش یادگیری ماشین با پیاده سازی در Python – بخش اول + اینجا کلیک کنید.
فیلم آموزش یادگیری ماشین با پیاده سازی در Python – بخش دوم
طول مدت بخش دوم دوره آموزش یادگیری ماشین با پیاده سازی در Python ده ساعت و ۳۳ دقیقه است و مدرس آن نیز دکتر فرشید شیرافکن است. ادامه مباحث اساسی و مهم یادگیری ماشین شامل سایر روشهای طبقه بندی از جمله دستهبندی بیز، k-نزدیک ترین همسایه و یادگیری جمعی و سایر مباحث یادگیری ماشین به طور کامل در این دوره پوشش داده شدهاند.
- برای دیدن فیلم آموزش یادگیری ماشین با پیاده سازی در Python – بخش دوم + اینجا کلیک کنید.
معرفی مقالات آموزشی پروژه محور یادگیری پایتون برای علم داده و یادگیری ماشین
علاوه بر دورههای آموزشی ارائه شده در سایت فرادرس، تا کنون مقالات آموزشی مختلفی در زمینه علم داده و یادگیری ماشین با پایتون در مجله فرادرس نیز منتشر شدهاند. در این بخش فهرستی از این مقالات با هدف یادگیری بیشتر ارائه شده است:
- علم داده چیست؟
- علم داده، تحلیل داده، دادهکاوی و یادگیری ماشین ــ تفاوتها و شباهتها
- چگونه یک دانشمند داده شوید؟ — راهنمای گامبهگام به همراه معرفی منابع
- مبانی پایتون برای علم داده — یک راهنمای مقدماتی و جامع
- یادگیری علم داده (Data Science) با پایتون — از صفر تا صد
- گردآوری داده ها برای علم داده در پایتون — راهنمای کاربردی
- ۱۰ کتابخانه پایتون علم داده — راهنمای کاربردی
- آموزش نصب کتابخانه های پایتون علم داده — راهنمای کاربردی
- آموزش داده کاوی با پایتون — راهنمای شروع به کار و یادگیری
- نوشتن اپلیکیشن وب با پایتون برای علم داده — راهنمای کاربردی
- تقلبنامه (Cheat Sheet) پایتون برای علم داده (کتابخانه NumPy)
- بوت استرپ در علم داده به زبان پایتون | راهنمای کاربردی
- ابزارهای پایتون برای استخراج، تبدیل و بارگذاری داده ها — راهنمای کاربردی
- مهندسی داده با پایتون و Django — راهنمای کاربردی
- آموزش کتابخانه پانداس (Pandas) در پایتون — رایگان و از صفر تا صد
- آموزش رسم نمودار در پایتون — راهنمای گام به گام
- پاکسازی داده (Data Cleaning) در پایتون با استفاده از NumPy و Pandas — راهنمای جامع
- پردازش کلان داده در پایتون — راهنمای جامع
یادگیری پایتون برای ساخت اپلیکیشن موبایل
کیوی (Kivy) ابزاری برای ایجاد اپلیکیشنهای موبایل با پایتون به حساب میآید. در زمان انتشار این مقاله یک دوره آموزش برنامه نویسی اندروید با Kivy در حالت آماده سازی است و در صورت انتشار این دوره، میتوان با جستجو در سایت فرادرس به آن دسترسی پیدا کرد. برای اطلاعات بیشتر در زمینه ساخت اپلیکیشن موبایل با پایتون میتوان از مقاله زیر در مجله فرادرس استفاده کرد:
معرفی منابع آموزشی پروژه محور یادگیری پایتون برای برنامه نویسی وب
استفاده از پایتون در برنامه نویسی وب یا همان توسعه وب روز به روز محبوبیت بیشتری پیدا میکند. از پایتون در برنامه نویسی وب برای بک اند استفاده میشود. به طور خلاصه، برای برنامه نویسی بک اند با پایتون و تبدیل شدن به یک برنامه نویس Back End پایتون باید توسعه بک اند را با استفاده از جنگو (Django) یا فلَسک (Flask) یاد گرفت. جنگو و فلسک فریم ورکهای برنامه نویسی وب مبتنی بر پایتون محسوب میشوند. علاوه بر این، باید به میزان کافی مفاهیم مدیریت پایگاه داده را هم فرا گرفت. همچنین، نیاز به درک مقدماتی و پایهای از فناوریهای Front End هم وجود دارد. در این بخش از مقاله معرفی بهترین مسیر یادگیری پایتون ، منابع آموزشی پروژه محور یادگیری پایتون برای برنامه نویسی وب معرفی شدهاند. دوره آموزش جنگو فرادرس نیز پیش از این در بخش «کتابخانهها و فریم ورکهای پایتون» معرفی شده است.
فیلم آموزش مقدماتی کار با پایگاه های داده در Python
همانطور که اشاره شد، برای یادگیری برنامه نویسی وب با پایتون باید نحوه کار با پایگاه داده و مفاهیم بانک اطلاعاتی را هم یاد گرفت. در این خصوص میتوان از دوره آموزش مقدماتی کار با پایگاههای داده در پایتون استفاده کرد. طول مدت این دوره تقریباً یک ساعت و مدرس آن مهندس محمد جباری است. در این فرادرس نحوه اتصال و کار با برخی از پایگاه دادههای مهم از قبیل SQLite ،MySQL و سایر موارد با پایتون آموزش داده شده است. این دوره شامل چهار درس است که سرفصلهایی نظیر کار با پایگاه داده MySQL، کار با پایگاه داده SQLite، کار با پایگاه داده Access و سایر موارد در آنها پوشش داده شده است.
- برای مشاهده فیلم آموزش مقدماتی کار با پایگاه های داده در Python + اینجا کلیک کنید.
مقالات آموزشی پروژه محور برنامه نویسی وب با پایتون
در این بخش از مقاله بهترین مسیر یادگیری پایتون ، مقالات مرتبط با آموزش برنامه نویسی وب با پایتون فهرست شدهاند:
- برنامه نویسی وب با پایتون — راهنمای کاربردی
- جنگو (Django) چیست؟ — از صفر تا صد
- آموزش جنگو (Django) | راهنمای کامل و رایگان جنگو برای شروع
- آموزش فلسک رایگان | راهنمای شروع با Flask — به زبان ساده
- استفاده از مدل های پایگاه داده در پایتون و جنگو | به زبان ساده
- ارسال پوش نوتیفیکیشن از اپلیکیشن های جنگو (Django) — از صفر تا صد
- ساخت یک CRM مقدماتی با Django و React روی اوبونتو ۱۸.۰۴ — از صفر تا صد
معرفی منابع آموزشی پروژه محور یادگیری پایتون برای بازی سازی
برای بازی سازی با پایتون ، یک کتابخانه داخلی و توکار به نام Pygame ارائه شده است. پس از یادگیری مباحث پایه برنامه نویسی پایتون میتوان از کتابخانه Pygame برای ساخت بازیهایی با گرافیک جذاب و انیمیشن و صدای مناسب استفاده کرد. Pygame میتواند در ساخت بازی برای پلتفرمهای مختلفی از جمله ویندوز و اندروید به کار گرفته شود. در این بخش از مقاله بهترین مسیر یادگیری پایتون به معرفی منابع آموزش ساخت بازی با پایتون پرداخته شده است. برای آموزش پروژه محور ساخت بازی در پایتون ، تا کنون یک مقاله در مجله فرادرس منتشر شده است که میتوان از طریق لینک زیر به آن دسترسی پیدا کرد:
- مقاله پیشنهادی: ساخت بازی سنگ کاغذ قیچی در پایتون — راهنمای کاربردی
مثالی از یک بازی که میتوان با استفاده از کتابخانه Pygame در پایتون ساخت در تصویر زیر مشاهده میشود:
حال در ادامه به معرفی دورههای آموزشی پروژه محور یادگیری ساخت بازی با پایتون پرداخته میشود.
فیلم آموزش بازی سازی در پایتون با کتابخانه Pygame
برای یادگیری ساخت بازی با کتابخانه Pygame در پایتون میتوان از دوره آموزش Pygame فرادرس استفاده کرد. طول مدت این دوره نزدیک به ۴ ساعت و مدرس آن مهندس محمد جباری است. در این فرادرس نحوه کار با کتابخانه Pygame برای ساخت بازی در سیستم عامل ویندوز آموزش داده شده است. این دوره آموزشی شامل سیزده درس است که از جمله سرفصلهای این دورس میتوان به نحوه نصب کتابخانه Pygame با pip، نحوه رسم خط و شکلهای مختلف، نحوه ایجاد یک شکل متحرک، تنظیم سرعت بازی و سایر موارد اشاره کرد.
- برای مشاهده فیلم آموزش بازی سازی در پایتون با کتابخانه Pygame + اینجا کلیک کنید.
فیلم آموزش پروژه محور پایتون - ساخت بازی با کتابخانه Turtle
Turtle هم یکی دیگر از کتابخانههای پایتون است که علاوه بر ساخت بازیهای دو بعدی ساده میتوان از آن برای رسم اشکال هندسی، رسم نمودار و سایر موارد نیز استفاده کرد. در دوره پروژه محور ساخت بازی با کتابخانه Turtle در پایتون ، نحوه ساخت بازیهای ابتدایی با ماژول Turtle یا همان لاکپشت آموزش داده شده است. این دوره شش فصل را شامل میشود که از جمله سرفصلهای آن میتوان به کار با Turtle، مسابقه رسم مربع بین دو لاکپشت، لاکپشت گرسنه، بازی Ping Pong و سایر موارد است.
- برای مشاهده فیلم آموزش پروژه محور پایتون - ساخت بازی با کتابخانه Turtle + اینجا کلیک کنید.
معرفی منابع آموزشی پروژه محور یادگیری پایتون برای سختافزار، حسگر و ربات
از زبان برنامه نویسی پایتون میتوان در کنترل حسگرهای متصل به یک بُرد آردینو (Arduino) استفاده کرد. آردینو یک پلتفرم الکترونیک بر اساس سختافزار و نرم افزار با کاربری آسان است. بُردهای آردینو میتوانند ورودیهایی مثل چراغ روی یک سنسور، فشار انگشت روی یک دکمه یا یک پیام توییتری را بخوانند و آنها را به خروجی تبدیل کنند. خروجی میتواند فعال کردن یک موتور، روشن کردن یک چراغ LED و سایر موارد باشد. علاوه بر آن، برای پیادهسازی پروژههای سختافزاری مختلف نیز از پایتون و رزبری پای (RaspberryPi) استفاده میشود.
RaspberryPi یک کامپیوتر بسیار کوچک و ارزان قیمت است که میتوان آن را به یک مانیتور یا تلویزیون متصل و به وسیله یک ماوس و صفحه کلید از آن استفاده کرد. طراحی ربات هوشمند (رباتیک) یکی دیگر از کاربردهای رایج و محبوب پایتون به حساب میآید و علاقهمندان به این حوزه میتوانند برای شروع از دورههای آموزش ساخت ربات با پایتون و رزبری پای استفاده کنند. در ادامه این بخش به معرفی منابع آموزشی پروژه محور یادگیری پایتون در حوزههای سختافزار، حسگرها و رباتها پرداخته شده است.
فیلم آموزش ارتباط Arduino (آردوینو) با Python (پایتون)
برای یادگیری نحوه برقراری ارتباط با پورت سریال از طریق پایتون، راه اندازی ماژولهای مختلف با آردوینو و ایجاد محیطهای گرافیکی و واقعیت مجازی با پایتون میتوان از دوره آموزش ارتباط Arduino (آردوینو) با Python (پایتون) فرادرس استفاده کرد. طول مدت این دوره آموزشی نزدیک به پنج ساعت و مدرس آن مهندس نوید ضرابی است. دوره آموزش ارتباط آردینو با پایتون از پنج بخش تشکیل شده است. برخی از سرفصلهای این دوره عبارتند از: آشنایی با قابلیتهای ترکیب آردوینو با پایتون، راهاندازی سختافزاری و نرم افزاری پروژه، دریافت اطلاعات Live در پایتون و سایر موارد.
- برای مشاهده فیلم آموزش ارتباط Arduino (آردوینو) با Python (پایتون) + اینجا کلیک کنید.
فیلم آموزش برنامه نویسی رزبری پای (Raspberry Pi) با پایتون
برای یادگیری برنامه نویسی برد رزبری پای با پایتون میتوان از این فرادرس استفاده کرد. طول مدت دوره برنامه نویسی RaspberryPi با پایتون نزدیک به ۱۳ ساعت و مدرس آن مهندس مجتبی شادریان است. این دوره سه درس را با عنوانهای مروری بر پایتون، راه اندازی رزبری پای و برنامه نویسی رزبری پای شامل میشود.
- برای مشاهده فیلم آموزش برنامه نویسی رزبری پای (Raspberry Pi) با پایتون + اینجا کلیک کنید.
معرفی منابع آموزشی پروژه محور یادگیری پایتون برای خودکارسازی کارها
میتوان وظایف و کارهای روزمره و تکراری را به وسیله برنامه نویسی پایتون خودکارسازی و پروژههایی را در این زمینه با پایتون پیادهسازی کرد. این میتواند روش مناسبی برای یادگیری بهتر پایتون به حساب آید. یکی از کاربردهای خودکارسازی کارهای روزمره میتواند جمعآوری خودکار اطلاعات از یک وب سایت باشد که اصطلاحاً به آن Web Scraping گفته میشود.
فیلم آموزش Web Scraping برای استخراج داده های وب سایت با پایتون
کسب و کارهای مختلف بر اساس زمینه فعالیت معمولاً نیاز به جمعآوری دادههای مختلف دارند. امروزه برای بیرون کشیدن خودکار دادههای یک وب سایت از Web Scraping استفاده میشود. استفاده از دوره آموزش Web Scraping با پایتون برای یادگیری این مهارت به علاقهمندان پیشنهاد میشود. طول مدت این دوره آموزشی بیش از دو ساعت و مدرس آن محمد سعید است. از جمله سرفصلهای این دوره میتوان به کتابخانه Requests، ساختار کدهای HTML، کتابخانه Beautiful Soup و سایر موارد اشاره کرد.
- جهت مشاهده فیلم آموزش Web Scraping برای استخراج داده های وب سایت با پایتون + اینجا کلیک کنید.
گام چهارم: کار روی پروژههای پایتون به تنهایی
پس از تکمیل تعدادی پروژه ساختارمند، زمان آن فرا رسیده است تا برای یادگیری بهتر پایتون ، فرد خودش به تنهایی کار روی یک پروژه را آغاز کند. با وجود اینکه همچنان مشورت و کمک گرفتن در خصوص منابع و یادگیری مفاهیم جدید ادامه خواهد داشت، اما فرد روی چیزی کار خواهد کرد که خودش به آن تمایل دارد. پیش از شروع به کار روی پروژههای دلخواه، فرد باید با خطایابی (Debugging) و رفع مشکلات برنامه آشنایی و احساس راحتی داشته باشد. برخی از منابعی که باید در این خصوص با آنها آشنایی داشت در ادامه فهرست شدهاند:
- StackOverflow : یک سایت انجمن پرسش و پاسخ است که افراد در آن پیرامون مشکلات برنامه نویسی خود به بحث میپردازند.
- گوگل : رایجترین ابزار مورد استفاده برای هر برنامه نویس با تجربهای گوگل است. گوگل برای رفع مشکلات و خطاها در برنامه نویسی پایتون کاربرد وسیعی دارد و بنابراین افراد باید برای یادگیری بهتر پایتون با ترفندهای جستجو در گوگل آشنایی کافی داشته باشند.
- مستندات پایتون : منبع مناسبی برای پیدا کردن مطالب مرجع در خصوص پایتون به حساب میآید.
پس از یادگیری مهارت خطایابی و رفع مشکلات برنامه در پایتون ، میتوان به تنهایی کار روی پروژههای مربوط به خود را آغاز کرد. فرد باید پروژههایی را انجام دهد که به آنها علاقه دارد. برای مثال اگر شخصی به معاملات رمزارزها علاقهمند باشد، میتواند روی پروژههایی برای ایجاد ابزارهایی جهت خودکارسازی معاملات تمرکز داشته باشد. در ادامه ترفندهایی برای یافتن پروژههای جذاب ارائه شده است.
ترفندهایی برای یافتن پروژههای جذاب پایتون
در این بخش از مقاله بهترین مسیر یادگیری پایتون ، برخی از ترفندهای کاربردی پیرامون نحوه پیدا کردن پروژههای جالب و جذاب فهرست شدهاند:
- میتوان پروژههای قبلی را بسط و گسترش داد و قابلیتهای جدیدی را به آنها اضافه کرد.
- میتوان از عنوانهای دورههای آموزشی پروژه محور یادگیری پایتون فرادرس الهام گرفت و از آنها استفاده کرد.
- مراجعه به گردهماییهای پایتون و الهام گرفتن از پروژهایی که سایر افراد انجام دادهاند.
- پیدا کردن بستههای متن باز و مشارکت در توسعه آنها
- میتوان در موسسههای غیرانتفاعی محلی به عنوان برنامه نویس داوطلب فعالیت کرد.
- پیدا کردن پروژههای سایرین و گسترش یا اقتباس گرفتن از آنها نیز یک ترفند دیگر به حساب میآید. گیتهاب (Github) میتواند محل مناسبی برای پیدا کردن این نوع پروژهها باشد.
- میتوان با جستجو در اینترنت از مقالههای مجلات آنلاین یا پستهای وبلاگهای شخصی برای ایده گرفتن راجع به موضوع پروژه استفاده کرد.
- برای پیدا کردن یک موضوع پروژه خوب، باید به فکر ابزارهایی بود که زندگی روزمره را سادهتر میکنند و باعث آسایش و راحتی بیشتر میشوند.
لازم است علاقهمندان به یاد داشته باشند که یادگیری پایتون از طریق انجام پروژه باید با پیادهسازی پروژههای کوچک آغاز شود. اغلب برای تقویت اعتماد به نفس، بهتر است کار را با پروژههای آسان شروع کرد. یک پروژه کوچک را میتوان به اتمام رساند اما در صورت وسیع بودن مقیاس پروژه، ممکن است کار هیچگاه به سرانجام نرسد. علاوه بر این، جهت تقویت انگیزه میتوان افراد دیگری را هم برای همکاری در پروژه یافت و به صورت گروهی کار کرد.
ایده برای پروژه برنامه نویسی پایتون
با وجود اینکه ترفندهایی در خصوص ایده گرفتن برای انتخاب موضوع پروژه در این بخش ارائه شدند، ممکن است همچنان پیدا کردن موضوع مناسب پروژه برای یادگیری بهتر پایتون برای برخی از افراد دشوار باشد. بنابراین در ادامه این بخش از مقاله بهترین مسیر یادگیری پایتون به معرفی پروژههایی در هر یک از حوزههای مختلفی پرداخته شده است که پایتون در آنها کاربرد دارد.
ایده برای پروژه علم داده و یادگیری ماشین با پایتون
- نقشهای که آمار انتخابات را در استانهای مختلف تصویرسازی میکند.
- الگوریتمی که وضعیت آب و هوای منطقه را پیشبینی میکند.
- ابزاری برای پیشبینی قیمت سهام
- الگوریتمی که به طور خودکار چکیدهای از مقالههای خبری را تولید میکند.
برای مثال، خروجی نمونه پروژه پیادهسازی نقشه آمار انتخابات در تصویر زیر ملاحظه میشود:
ایده برای پروژه ساخت اپلیکیشن موبایل با پایتون
- اپلیکیشنی برای ردیابی مسافت پیمایش شده در طول روز
- اپلیکیشن موبایلی که اعلانهایی در خصوص وضعیت آب و هوا به کاربر نمایش میدهد.
- یک پیامرسان مبتنی بر موقعیت مکانی
ایده برای پروژه برنامه نویسی وب با پایتون
- ساخت وبسایتی که در برنامه ریزی برای آماده کردن وعدههای غذایی سالم به کاربر کمک میکند.
- سایتی که به کاربران امکان میدهد تا به بازیهای کامپیوتری امتیاز داده و خلاصه آنها را شرح دهند.
- یک دفترچه یادداشت آنلاین
- ایجاد یک فروشگاه اینترنتی
ایده برای پروژه ساخت بازی با پایتون
- ساخت بازی موبایل مبتنی بر موقعیت مکانی که در آن بازیکنان به فتح قلمرو میپردازند.
- پروژه بازی حل معما
- ایجاد بازی ماجراجویی مبتنی بر متن
- ساخت بازی هنگمن (Hangman)
ایده برای پروژههای سختافزاری، حسگرها و رباتها با پایتون
- برنامه نویسی حسگرهایی برای پایش دمای ساختمان و فراهم کردن امکان نظارت از راه دور
- ساعت هوشمند
- ساخت یک ربات خودران برای شناسایی موانع
ایده برای پروژههای خودکارسازی کارها
- اسکریپتی برای وارد کردن خودکار دادهها
- ابزاری برای بیرون کشیدن دادهها از وب
نکته کلیدی این است که باید به سرعت یک پروژه را انتخاب و انجام آن را آغاز کرد. نباید زمان زیادی برای انتخاب موضوع پروژه صرف شود و در خصوص بینقص بودن موضوع پروژه بیش از حد وسواس به خرج داد.
گام پنجم: کار روی پروژههای دشوارتر
رفته رفته باید میزان دشواری و محدوده پروژهها گسترش داده شوند. وقتی که فرد با پروژههای فعلی احساس راحتی میکند و به سادگی آنها را انجام میدهد، یعنی زمان کار روی پروژههای دشوارتر فرا رسیده است. در ادامه ایدههایی برای انجام پروژههای سختتر فهرست شدهاند:
- میتوان نحوه ساخت یکی از پروژههای پیادهسازی شده را به یک فرد مبتدی آموزش داد.
- آیا امکان گسترش مقیاس ابزار توسعه داده شده وجود دارد؟ آیا این پروژه میتواند با دادههای بیشتر کار کند؟ یا اینکه آیا توان تحمل ترافیک بیشتر را دارد؟
- آیا میتوان تغییراتی را اعمال کرد تا برنامه سریعتر عمل کند؟
- آیا میتوان تغییراتی داد تا پروژه برای افراد بیشتر قابل استفاده باشد؟
- چطور میتوان آنچه که ساخته شده است را تجاریسازی کرد؟
تا اینجا هر یک از گامهای یادگیری پایتون از صفر به طور جامع ارائه و دورههای آموزشی مرتبط در خلال شرح هر یک از این مراحل معرفی شدند. حال در ادامه مقاله بهترین مسیر یادگیری پایتون به اکثر سوالات رایج پیرامون یادگیری زبان برنامه نویسی پایتون پرداخته شده است.
پرسشهای متداول یادگیری پایتون
با توجه به محبوبیت و اهمیت زبان برنامه نویسی پایتون، سوالات و پرسشهای متداول بسیاری پیرامون آن وجود دارد. به همین سبب، این بخش از مقاله بهترین مسیر یادگیری پایتون به پاسخ پرسشهای متداول یادگیری پایتون اختصاص داده شده است.
یادگیری پایتون چقدر طول میکشد؟
تحقیقات انجام شده در مورد کاربران پلتفرم آموزشی Dataquest نشان میدهد که افراد در کمتر از یک سال به اهداف خود برای یادگیری پایتون رسیدهاند. بسیاری از کاربران دیگر این پلتفرم نیز در کمتر از شش ماه و تنها با کمتر از ۱۰ ساعت در هفته توانستهاند به سطح مطلوبی در مهارت برنامه نویسی پایتون دست پیدا کنند. اما باید توجه داشت که یادگیری یک زبان برنامه نویسی بسیار مشابه یادگیری یک زبان گفتاری مثل زبان انگلیسی است. یعنی فرآیند یادگیری هیچ وقت تمام نمیشود و همیشه چیز جدیدی برای یادگیری وجود خواهد داشت. اگرچه، میتوان خیلی سریع به نقطهای رسید که توانایی مهارت کدنویسی ساده اما تابع محور به دست آمده باشد.
اینکه یادگیری پایتون برای استخدام چقدر طول میکشد در واقع بستگی به اهداف فردی دارد و اینکه شخص به دنبال چه چیزی است. همچنین، زمان روزانهای که هر فرد میتواند به یادگیری پایتون اختصاص دهد نیز در مدت طول مدت یادگیری پایتون بسیار تاثیرگذار است. برای کسب اطلاعات بیشتر در خصوص اینکه یادگیری پایتون چقدر طول میکشد و چطور میتوان پایتون را سریعتر یاد گرفت، مطالعه مقاله زیر پیشنهاد میشود:
آیا یادگیری پایتون سخت است؟
قطعاً یادگیری پایتون میتواند چالشبرانگیز باشد و به احتمال زیاد در طول مسیر ، لحظات دشواری پیشرو خواهد بود. حفظ انگیزه برای ادامه یادگیری یکی از بزرگترین چالشها به حساب میآید. اگرچه با دنبال کردن رویکرد گام به گامی که در این مقاله ترسیم شده است، میتوان حد الامکان از قرار گرفتن در لحظات ناامید کننده دوری جست. چرا که در این مسیر برای یادگیری پایتون ، روی انجام پروژههای مورد علاقه تاکید شده است.
آیا یادگیری پایتون از صفر و بدون داشتن تجربه قبلی برنامه نویسی امکانپذیر است؟
بله، افراد بسیاری بدون هیچ گونه تجربه برنامه نویسی و با استفاده از دورههای آموزش پایتون فرادرس توانستهاند در عناوین شغلی نظیر تحلیلگر داده، دانشمند داده، برنامه نویس و توسعه دهنده وب و موارد دیگر مشغول به کار شوند. پایتون زبان برنامه نویسی بسیار مناسبی برای برنامه نویسان مبتدی و شروع یادگیری مهارت برنامه نویسی به حساب میآيد و نیازی به هیچ گونه تجربه قبلی برنامه نویسی پیش از شروع یادگیری پایتون وجود ندارد.
چطور میتوان پایتون را سریعتر یاد گرفت؟
در واقع هیچ راه میانبر اسرارآمیزی برای یادگیری پایتون وجود ندارد. بهترین راه، یافتن یک دوره آموزشی پایتون مناسب است. این دوره باید به طور خاص با موضوعی ارائه شده باشد که فرد قصد یادگیری پایتون را برای آن زمینه دارد. برای مثال، در صورت علاقه به بازیسازی، باید دورهای با عنوان «آموزش پایتون برای بازیسازی» انتخاب شود. این کار باعث میشود تا از اتلاف وقت برای یادگیری چیزهایی جلوگیری شود که عملاً نیازی به آنها در بازار کار و زمینه فعالیت فرد وجود ندارد. اما در هر صورت، یادگیری پایتون برای هر کاربرد و زمینهای زمانبر است.
آیا برای کاریابی نیاز به مدرک پایتون وجود دارد؟
احتمالاً خیر. شرکتها و صنایع گوناگون استانداردهای متفاوتی دارند. اما در حوزه علم داده داشتن گواهینامه و مدرک پایتون چندان اهمیتی ندارد. در واقع، کارفرمایان بیشتر به مهارتها و تواناییهای افراد بها میدهند. به جای ارائه مدرک و گواهینامه دورههای پایتون، «ارائه پروژههای انجام شده با پایتون» در گیتهاب میتواند تاثیر بیشتری در کارفرمایان ایجاد کند.
یادگیری پایتون ۳ بهتر است یا نسخه ۲ ؟
با اطمینان بالا میتوان گفت که یادگیری پایتون ۳ ارزش بیشتری دارد. این موضوع در چند سال گذشته همچنان مورد بحث بوده است. در برخی از پیشبینیهای افراطی ادعا میشد که پایتون ۳ باعث مرگ پایتون خواهد شد. اما این روزها نه تنها چنین اتفاقی رخ نداده، بلکه پایتون ۳ در سطح وسیعی استفاده و در همه جا دیده میشود.
آیا پایتون زبان مناسبی برای یادگیری در سال ۱۴۰۱ است؟
بله، پایتون زبانی محبوب و انعطافپذیر است که به طور حرفهای در محدوده وسیعی از زمینهها و کاربردهای مختلف مورد استفاده قرار میگیرد. دورههای آموزشی مختلف و متعددی با محوریت زبان پایتون در مجموعه فرادرس ارائه شده است. پایتون در بازارهای مالی، برنامه نویسی وب، مهندسی نرم افزار، توسعه بازی و دیگر موارد به کار گرفته میشود. در زمینه کار با دادهها، پایتون پرتقاضاترین زبان برنامه نویسی به حساب میآید که میتوان آموخت. میزان تقاضا برای مهارت پایتون در مشاغل مرتبط با علم داده در تصویر زیر، نشان دهنده اهمیت این زبان برنامه نویسی است.
همانطور که ملاحظه میشود، پایتون یک مهارت بسیار مهم در زمینه کار با دادهها به حساب میآید. میزان تقاضا برای مهارت برنامه نویسی پایتون در دو زمینه کاری دانشمند داده و مهندس داده فراتر از هر مهارت دیگری است. تنها در زمینه آگهیهای مربوط به شغل تحلیلگر داده، زبان SQL در جایگاه نخست و پایتون در رتبه دوم قرار میگیرد. بسیاری از مشاغل در هر کدام از این سه عنوان شغلی هم به مهارتهای پایتون و هم SQL نیاز دارند. اما SQL یک زبان پرس و جو (کوئری) است و زبان برنامه نویسی به حساب نمیآید. بنابراین، میتوان گفت پایتون در خصوص مهارتهای برنامه نویسی پرتقاضاترین مهارت تلقی میشود.
به این ترتیب، شرح بهترین مسیر یادگیری پایتون در این مقاله تا حد امکان به طور جامع پوشش داده شد. حال پیش از ارائه یک جمعبندی مختصر، مجموعه دورههای آموزش پایتون فرادرس به علاقهمندان معرفی شده است.
معرفی فیلم های آموزش برنامه نویسی پایتون فراردس
دورههای آموزشی فرادرس در قالب مجموعههای آموزشی بر اساس موضوع دستهبندی شدهاند. در این بخش پایانی ، مجموعه دورههای آموزش پایتون فراردس معرفی شده است. در مجموعه دورههای آموزشی پایتون، بیش از ۱۲ هزار دقیقه فیلم آموزشی وجود دارد که در ۳۶ دوره مختلف دستهبندی شدهاند. در این مجموعه آموزشی، فیلمهای آموزش پایتون از سطح مقدماتی تا پیشرفته به همراه آموزشهای پروژه محور پایتون و همچنین دورههای آموزشی برای کتابخانهها و فریمورکهای مختلف پایتون ارائه شده است. در ادامه این بخش، برخی از دورههای شاخص مجموعه دورههای آموزش پایتون فرادرس فهرست شدهاند:
- آموزش برنامه نویسی پایتون (Python) – مقدماتی: طول مدت این دوره ۱۹ ساعت و ۵۳ دقیقه و مدرس آن مهندس پژمان قبالی شمس آبادی است. در این دوره آموزشی، زبان برنامهنویسی پایتون در سطح مقدماتی و از پایه آموزش داده شده است. برای دیدن فیلم آموزش برنامهنویسی پایتون (Python) – مقدماتی + کلیک کنید.
- آموزش برنامه نویسی پایتون – تکمیلی – بخش اول: طول مدت این دوره آموزشی ۱۳ ساعت و ۹ دقیقه و مدرس آن مهندس پژمان اقبالی شمس آبادی است. در این دوره آموزشی، زبان برنامهنویسی پایتون به صورت تکمیلی آموزش داده شده است و نسبت به دوره مقدماتی سرفصلها و موضوعات دیگری نیز در این دوره ارائه شده است. برای دسترسی به صفحه دوره آموزش برنامهنویسی پایتون – تکمیلی – بخش اول + کلیک کنید.
- آموزش زبان برنامه نویسی پایتون (Python) همراه با مثال های عملی: طول مدت این آموزش ۱۳ ساعت و ۲۰ دقیقه و مدرس آن دکتر فرشید شیرافکن است. این دوره آموزشی با این فرض ارائه شده که فراگیر هیچ دانش و تجربه قبلی پیرامون زبان پایتون ندارد. مفاهیم این دوره با تشریح اصول نظری و پس از آن، با پیادهسازی مثالها به صورت عملی آموزش داده شده است. برای دسترسی به صفحه آموزش زبان برنامه نویسی پایتون (Python) همراه با مثالهای عملی + کلیک کنید.
- برای دسترسی به صفحه مجموعه دورههای آموزش پایتون فرادرس + کلیک کنید.
جمعبندی
در مجموع باید به این مسئله اشاره شود که پایتون و بسیاری از زبانهای برنامه نویسی دیگر دائماً در حال تحول و بهروزرسانی هستند. افراد انگشتشماری هستند که میتوانند به حق این ادعا را داشته باشند که یادگیری پایتون را به حد اعلا رساندهاند و همه چیز را راجع به آن میدانند. بنابراین، فرآیند یادگیری پایتون هیچگاه به انتها نمیرسد و باید انجام پروژههای تمرینی را ادامه داد.
اگر یادگیری پایتون به درستی انجام شود، افراد به حدی در برنامه نویسی پایتون مهارت پیدا خواهند کرد که با دیدن کدهای شش ماه قبل خود بلافاصله به افتضاح بودن آنها اذعان خواهند داشت. این خود گواهی بر این حقیقت است که مسیر یادگیری پایتون به درستی پیموده شده و فرد در جایگاه مطلوبی قرار دارد. نکته کلیدی این است که با کار کردن روی آنچه فرد به آن علاقهمند است میتوان از دلزدگی و خستگی مفرط اجتناب کرد و فرآیند یادگیری را به سرانجام رساند.
سلام وقتتون بخیر خیلی ممنونم از توضیحاتتون
من میخواهم فاصله بین 1000تا گره بدست بیاورم که بین اینها مسیر جاده ای وجود داشته باشه و لوکیشن این نقاط هم دارم. و بعدش توزیع انجام بدهم که مثلا 60تن بار در ظرفیت 3تن کامیون ها چطور مسیر یابی و تخصیص داده بشوند.
از کدوم آموزش و کتابخانه هایی باید استفاده بکنم؟
سلام من برای پیاده کردن کد شبکه عصبی با پایتون برای پایان نامم نیاز به کمک دارم لطفا راهنمایی کنید
سلام خسته نباشید
ببخشید من دوره آموزش مقدماتی و تکمیلی رو گذروندم
میخواستم تو توسعه وب فعالیت کنم
از کدوم آموزش ها باید شروع کنم ؟؟؟
با سلام و احترام؛
صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاسگزاریم.
برای فعالیت در حوزه توسعه وب با پایتون لازم است با زبانهای فرانتاند یعنی CSS ،HTML و جاوا اسکریپت هم آشنایی داشته باشید. پس از آن هم مهمترین چیزی که حتماً باید به دقت یاد بگیرید، فریمورک جنگو مخصوص توسعه وب با پایتون است. برای دسترسی به دورههای آموزش جنگو میتوانید عبارت «آموزش جنگو» را در سایت فرادرس جستجو کنید. در حال حاضر ۳ دوره آموزشی برای جنگو وجود دارد که بهتر است با دوره زیر شروع کنید:
همچنین برای کسب اطلاعات بیشتر در خصوص توسعه وب با پایتون پیشنهاد میکنیم مطلب زیر را هم مطالعه بفرمایید.
برای شما آرزوی سلامتی و موفقیت داریم.
با سلام و احترام؛
صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاسگزاریم.
برای یادگیری پیادهسازی و کار با شبکههای عصبی با پایتون هم مطالب آموزشی جامعی در مجله فرادرس موجود است و هم دورههای آموزشی کاربردی در این خصوص در سایت فرادرس ارائه شده است. در ادامه ابتدا مطالب مرتبط و سپس دورههای آموزشی معرفی شدهاند.
همچنین میتوانید با جستجوی بیشتر در وبسایت مجله فرادرس مطالب بیشتری را هم در این خصوص پیدا کنید. در ادامه دورههای آموزشی مرتبط با این مبحث معرفی شدهاند:
در سایت فرادرس هم قسمت جستجو وجود دارد و میتوانید هر موضوعی را که میخواهید یاد بگیرید جستجو کنید و دورههای آموزشی مرتبط با آن موضوع برای شما فهرست میشوند.
برای شما آرزوی سلامتی و موفقیت داریم.
سلام
خسته نباشید
مطلب خیلی خوبی بود
یه سوال داشتم اگر جواب بدین ممنون میشم
اول باید دوره مقدماتی بعد تکمیلی بعد پایتون با مثال رو یاد بگیرم بعد برم سراغ اون ۶ تا گامی که گفتین ؟
منظورم اینه که لازمه فیلم های ساختمان داده یا الگوریتم رو ببینم .
دقیقا باید کدوم آموزش ها رو باید دید؟.
با سلام و احترام؛
صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاسگزاریم.
بله، برای اینکه بتوان به توسعهدهندهای زبده و ماهر تبدیل شد، لازم است افراد حتماً ساختمان داده و طراحی الگوریتم را به خوبی بیاموزند. این دو مبحث در برنامهنویسی بسیار مهم هستند.
برای شما آرزوی سلامتی و موفقیت داریم.
با سلام و احترام؛
صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاسگزاریم.
نحوه شروع یادگیری پایتون بستگی به سطح و میزان آشنایی شما با برنامه نویسی دارد. در صورتی که هیچ پیشزمینهای از برنامه نویسی ندارید، توصیه میشود پیش از شروع یادگیری پایتون از دوره اصول و مبانی برنامه نویسی فرادرس استفاده کنید که رایگان هم هست. پس از آن باید دوره مقدماتی آموزش پایتون را بگذرانید و سپس استفاده از دوره آموزش شیگرایی در پایتون پیشنهاد میشود. در ادامه هم میتوانید دوره تکمیلی پایتون را شروع کنید. در این مرحله باید هدف از یادگیری پایتون مشخص و بر اساس آن نسبت به انتخاب دورههای بعدی اقدام شود. مثلاً اگر به حوزه هوش مصنوعی و یادگیری ماشین علاقهمند هستید، میتوانید دوره یادگیری ماشین با پایتون را شروع کنید. همچنین در صورت علاقهمندی به حوزه توسعه و برنامه نویسی وب، استفاده از دوره Django پیشنهاد میشود.
برای شما آرزوی سلامتی و موفقیت داریم.