تا به حال فکر کردهاید چرا افراد کمی به سراغ یادگیری زبان چینی یا ژاپنی میروند؟ و در مقابل یادگرفتن زبان انگلیسی این روزها کلی طرفدار دارد؟ صرف نظر از هزار و یک دلیل کوچک و بزرگ، یکی از مهمترین دلایل محبوبیت زبان انگلیسی، ساده بودن آن است، قطعا یادگرفتن چند حرف و چندین آوا، خیلی راحتتر از یادگرفتن چندصد نقاشی و طرح است که تازه اگر یکی از آنها جابهجا شود، معنی کل جمله کاملاً به هم میریزد.
زبانهای برنامهنویسی هم دقیقا مثل همین زبانهای کاربردی و روزمره هستند. بعضیهایشان تا دلتان بخواهد پیچیده هستند و برخی دیگر هم حسابی هوای برنامهنویسها را دارند و سعی میکنند اوضاع را از آن چیزی که هست، پیچیدهتر نکنند.
زبان برنامهنویسی پایتون یا python یکی از همین زبانها است که اصلا ًاز پیچ و تاب اضافی خوشش نمیآید و مثل یک بچهی خوب، همان اول ماجرا میرود سر اصل مطلب و سعی میکند کارش را به بهترین شکل انجام بدهد. پایتون چهطور این کار را میکند؟ و اصلا این جناب پایتون چه کاربردهایی دارد؟ خب اجازه بدهید ما هم بحث را زیاد پیچیده نکنیم و ببینیم این پایتون، پایتون که میگویند چیست و از کجا آمدهاست؟
پایتون python چیست؟
بر خلاف همیشه که همهی راهها به رم ختم میشود، داستان پایتون اینبار از هلند آغاز شد. جناب خیدو فان روسوم، یک روز همانطور که در دفترش مشغول کار با کامپیوترش بود. با خودش گفت:«ای بابا! اینطوری که نمیشود، چرا باید برای هر کار کوچک و هر فرمان سادهای، یک کد جدید تعریف کنم؟» خلاصه نشست و با خودش فکر کرد چهطور میشود از دست این همه کدنویسی اضافه راحت شد؟ از آنجایی که آدمیزاد همیشه عاشق آسانتر کردن کارهاست، آقای خیدو هم دست به کار شد و خیلی زود از دل آن دفتر در کشور هلند، زبان پایتون متولد شد.
زبانیکه بر خلاف سایر زبانهای برنامهنویسی به راحتی قابل خواندن بود و کدهایش به زبان انگلیسی نوشته میشدند، در نتیجه یک آدم معمولی هم میتوانست از آن همه خط و کد چیزهایی بفهمد. نکتهی بعدی که باعث محبوبیت پایتون شد، قابلیت استفاده از آن در فعالیتها و سیستمهای مختلف بود.
زبانهای قبل از پایتون معمولا برای پروژههای کم دیتا کاربرد داشتند، اما پایتون یک دفعه آمد و فریاد زد: «آهای دیتاهای زیاد، آماده باشید که آمدم» و به این ترتیب این روزها ردپای پایتون را میتوانیم در همهجا از ساخت هوش مصنوعی گرفته تا همین گوگل خودمان پیدا کنیم. البته این همهی ماجرا نیست، پایتون هزار و یک مزیت ریز و درشت دیگر هم دارد که در بخش بعد بیشتر از آنها صحبت میکنیم.
پیشنهاد مقاله: بهترین زبان برنامه نویسی
زبان برنامه نویسی پایتون چه مزایایی دارد؟
داستان سیب و حوا را حتماً تا به حال چندصد باری شنیدهاید. راستش کوچ کردن از یک زبان برنامهنویسی به زبانی دیگر هم دست کمی از همین کوچ تاریخی آدم از بهشت ندارد، اما چه شد که ناگهان و در عرض چند سال تعداد زیادی از برنامهنویسها به سوی سرزمین پایتون حرکت کردند؟ اگر دوست دارید بدانید python با کدام سیبها برنامهنویسها را وسوسه میکند و چه مزیتهایی دارد، بهتر است خواندن این بخش را از دست ندهید.
1.کتابخانهای به وسعت کتابخانهی هاگوارتز
فرض کنید با چند برنامهنویس دیگر در یک هزارتوی بزرگ گیر کردهاید و البته مثل همیشه کسی برندهاست که زودتر به در خروجی برسد. شما با نقشه و کلی اصول سعی میکنید زودتر به خط پایان برسید، اما سربزنگاه رفیقتان زنگ در خروجی را فشار میدهد و برنده میشود. چه اتفاقی افتادهاست؟ رفیق شفیقتان برای برنده شدن به سراغ میانبرها رفته است. کتابخانهها، همان میانبرهایی هستند که هر برنامهنویسی به دنبالشان میگردد.
در هر کتابخانه تعدادی کد کاربدی وجود دارد و برنامهنویس میتواند به جای اینکه چرخ را از نوع اختراع کند، خیلی راحت به سراغ چرخ نفر قبلی برود و از کدهای دستوریای که قبلا نوشتهشدهاند، استفاده کند.
از آنجایی که پایتون یک زبان محبوب و کارآمد است، کلی کاربر از گوشه و کنار دنیا با آن کد مینویسند، و البته انقدر سخاوت دارند که این کدها را در کتابخانههای مختلف با سایر برنامهنویسها به شکل اسکریپت شده به اشتراک بگذارند و کمک کنند که برنامهنویس به جای ده خط کدنویسی، راحت بتواند با نوشتن چند کد و استفاده از کدهای موجود در library کار خودش و یک جماعت عظیم را راه بیندازد.
خلاصه اگر حوصلهی سر و کله زدن با یک کد تفریق کوچولو را ندارید، یا دنبال یک راه میانبر سادهتر برای زودتر نوشتن برنامههایتان میگردید، پایتون و کتابخانههایش میتوانند رفقای خوبی برایتان باشند.
2. اشیای کوچک و بزرگ:
پایتون و واژهی شیگرایی، دو یار جدانشدنی هستند و امکان ندارد شما در یک مقاله راجع به پایتون، به این واژهی عجیب برنخورید. از آنجایی که ما هم در مقالههای بامداد حسابی حواسمان به پوشش همهی مطالب هست، میخواهیم خیلی ساده بگوییم اصلا این شیگرایی چی هست؟
تصور کنید شما قرار است یک دنیای خیالی ایجاد کنید، دقیقا مثل همان کاری که نویسندهها میکنند. اول از همه شما باید یک دنیا با مختصات و دادههای مشخص تعریف کنید. چیزی شبیه به همان وستروس معروف بازی تاج و تخت، در برنامهنویسی به این دنیا، کلاس میگویند.
این دنیای شما به تعدادی موجود افسانهای هم نیاز دارد که هر کدام از آنها خصوصیات خودشان را دارند. این آدمها با خصوصیت منحصر به فردشان میشوند شی یا object. شیها به برنامهنویسها اجازه میدهند که سریعتر کد بنویسند و هربار مجبور نباشند یک داده و یک کلاس جدید تعریف کنند. زبانهایی که از این مدل کدنویسی استفاده میکنند به زبانهای شیگرا معروف هستند.
پیشنهاد مقاله: روش های یادگیری برنامه نویسی (ایده هایتان را با کدها عملی کنید)
3.بازی با متنها:
تا حالا سعی کردهاید پایان یک داستان را تغییر بدهید یا اصطلاحا فن فیکشن بنویسید؟ فن فیکشن، داستانی است که توسط هواداران یک شخصیت نوشته میشود و با تغییر در جزییات، ماجراها عوض میشوند و یا کلا یک داستان جدید خلق میشود.
پایتون هم عاشق تغییر جزییات است؛ بنابراین به برنامهنویسها اجازه دادهاست که هر وقت دوست داشتند دستی در جزییات objectها ببرند و به جای اینکه کلاس را از اول بنویسند در همان کلاسی که نفر قبلی تعریف کردهاست، بعضی از خصوصیات شی را تغییر بدهند.
مثلا اگر نفر قبل در همان دنیای وستروس، جفری را یک آدم بد تعریف کرده، شما میتوانید یکی دو تا کد را تغییر بدهید و جفری را تبدیل به آدم خوب ماجرا کنید. به این ویژگی جالب و جذاب پایتون، متنباز میگویند. برنامههای متنباز را میتوان به راحتی ادامه داد و یکجورایی پایان قصهها را تغییر داد.
در نهایت خوب است بدانید برنامههای متن باز یا open source این روزها حسابی طرفدار دارند و روز به روز به تعدادشان اضافه میشود.
4.آچار فرانسهای برای پروژههای بزرگ:
هر کسی در عمرش، حداقل یکی دو فیلم با موضوع جنگهای جهانی دیدهاست، نکتهی جالب در این فیلمها این است که همه با یک زبان واحد صحبت میکنند یا حداقل یکی دو مترجم دارند.
کار کردن با اطلاعات زیاد هم، دست کمی از یک جنگ بینالمللی ندارد در یک پروژهی بزرگ، حداقل چند صد برنامهنویس مشغول به کار هستند، حالا تصور کنید هر برنامهنویس بخواهد تنها با زبانی که بلد است بخشی از پروژه را جلو ببرد. قطعا اوضاع خوب پیش نمیرود و کل پروژه تبدیل به یک شکست بزرگ میشود.
اینجاست که فرماندهان پروژههای بزرگ به سراغ پایتون میروند. پایتون هم کم نمیگذارد و به خاطر تفسیرپذیری زیادی که دارد، مثل یک ناجی حرفهای به کمک پروژههای بزرگ میآید.
Python به برنامهنویسها این امکان را میدهد که با وجود داده و اطلاعات بزرگ، باز هم بتوانند بدون دردسر کار را از همان بخش قبلی ادامه بدهند. زبان پایتون قابل فهم استو نیاز به تفسیر ندارد. حالا اینها یعنی چه؟ مثلا شما اگر شما بخواهید بخشی از برنامه به صورت اتوماتیک پرینت گرفته بشود کافی است درمیان کدها بنویسید:print. همین کار ساده باعث میشود ادامه دادن کدهای برنامهنویس قبلی برای نفر بعد آسانتر باشد، و تازه در جلسهها و یا هنگام بازبینی پروژههای بزرگ، تمام فعالیتها با سرعت بیشتری پیش برود.
5.شناور در میان پلتفرمها:
پایتون کلا زبان آرامی نیست و عاشق ماجراجویی است، برای همین بدش نمیآید که همهی پلتفرمها را امتحان کند. برنامهنویسها هم که سرشان برای ماجراجویی درد میکند عاشق این خاصیت python شدند و کاری کردند که پایتون به راحتی بتواند بدون تغییر در پلتفرمهایی مثل ios، android، solaris، macintosh و … اجرا بشود. به این ترتیب مثلا اگر شما یک برنامه را در ویندوز بنویسید میتوانید به راحتی یا با کمی تغییر، همان برنامه را در پلتفرمی دیگر مثل اندروید اجرا کنید.
6.جمع رفقای خوب:
پایتون در میان زبانهای برنامهنویسی بچهی اجتماعی خانواده بود و خیلی زود توانست در میان غولهای فناوری و ارتباطات، دوستهای خوبی برای خودش دست و پا کند. اگر سری به دفتر خاطرات پایتون بزنیم، میبینیم که python با بزرگانی مثل یوتیوب، ناسا، یاهو، گوگل، دراپباکس، موزیلا، اینستاگرام و … حسابی رفیق است؛ بنابراین اگر رویای کار کردن در میان بزرگان را دارید، شاید بد نباشد سری به پایتون بزنید و قابلیتهای این برنامه را بسنجید.
پیشنهاد مقاله: 8 آموزشگاه برنامه نویسی برتر در تهران
صفر تا صد نرمافزار پایتون
حالا که فهمیدید پایتون چه قابلیتها و مزایایی دارد، شاید دوست داشتهباشید سری به نرمافزارش بزنید تا با قابلیتهایش بیشتر آشنا بشوید.
نسخهی اولیهی پایتون دیگر به خاطرهها پیوسته و خود خیدو هم به سراغش نمیرود، در عوض این روزها دونسخهی x.2 و x.3 از پایتون وجود دارد که هر کدام قابلیتها و کاربردهای خودشان را دارند.
نسخهی دوم پایتون نسبتا قدیمیتر است و هر روز هم از تعداد کاربرانش کم میشود، اما در عوض با بیشتر کتابخانهها ارتباط دارد و میتوانید از شبکهی کدهای از پیش نوشتهشدهی گستردهتری استفادهکنید؛ در مقابل نسخهی سوم سرعت بهتری دارد و خیلی سریعتر به روز میشود.
جعبه ابزار پایتون
در این بخش میخواهیم به یکی از ابزارها محبوب پایتون نگاهی بیندازیم. و این ابزار چیزی نیست جز فریمورک. حالا بیایید ببینیم فریمورک چیست؟ ماجرای آن دنیای خیالی که خلق کردیم، یادتان هست؟ خب دوباره به همان قالب نویسنده برگردید و فکر کنید تالکین هستید و کلی دنیا یا همان کلاس با کلی شی یا object تعریفکردهاید.
این دنیاهای ارزشمند را کجا میگذارید؟ قطعا برای ساخت هر کدام از این دنیاها و نوشتن این کدها کلی وقت صرف کردهاید، پس دوست دارید آنها را به بهترین شکل حفظ کنید، بنابراین به بازار میروید و یک صندوقچه میخرید و این دنیاها یا کلاسهایی که خلق کردهاید را در این صندوقچه میگذارید.
البته گاهی هم سخاوتتان گل میکند و صندوقچهها را در یک کتابخانه میگذارید تا دیگران هم از این همه کد استفاده کنند و زحمت کمتری بکشند. به مجموعه این ابزارها، صندوقچهها و کتابخانهها فریمورک میگویند.
تقریبا حدود شانزده فریمورک برای پایتون در دنیای برنامهنویسی وجود دارد. جنگو، باتل، فلسک از بچه معروفهای کلاس فریمورکها هستند. جنگو عصای دست توسعهدهندهگان وب اپلیکیشن است و با ابزارهایی مثل ,uri ,Authentication Routing و … دل بسیاری از پایتونبازها را به دست آوردهاست.
فلسک هم فریمورک دیگر خانوادهی پایتون است که حسابی حواسش به وقت برنامهنویسها است و با وجود کاهش خطوط کدنویسی، باعث میشود که نوشتن کدها و دستورها وقت کمتری بگیرد.
البته وقتی پای صرفهجویی در وقت، به میان میآید فریم ورک توربوگیرز هم یکی از مدعیان اصلی است. این فریمورک با استفاده از تجربههای فریمورکهای محبوبی مثل جنگو، آن ریلز، روبی طراحی شدهاست، و به خاطر قابلیتهای ویرایشی ساده و منحصر به فردی که دارد، توانسته قلب برنامهنویسهای زیادی را فتح کند.
اهالی سرعت و پروژههای مینیمالیستی اما خیلی زود فریمورک محبوبشان را کشف کردند. و آن فریمورک، چیز جز فریمورک پریمید نبود. این فریمورک بسیار سریع است و برای طراحی پروژههایی مثل سی ام سی و … کاربرد دارد.
باتل اما فریمورک محبوب پایتون3 است. این میکروفریمورک، تقریبا تمام کتابخانههایی که برای توسعهی یک وب نیاز است، در اختیار کاربر قرار میدهد، و به این ترتیب کاربر نیاز به استفاده از libraryهای اضافه ندارد و میتواند با منابع موجود به راحتی پروژه را پیش ببرد.
کاربردهای پایتون (این مار خوش خط و خال)
پایتون از آن بچههای فوق بیشفعال خانوادهی برنامهنویسی است و تقریبا به همهی کارها و مشاغل سرک کشیدهاست. ما در این بخش با پایتون همراه شدیم و سری به چند کاربرد مهمترش زدیم.
1.پایتون و قلمروی وب:
پایتون یک مار زرنگ است که دوست دارد تا میتواند قلمرواش را بزرگتر کند. حالا به نظرتان پایتون برای توسعهی قلمرواش که همان صفحات وب هستند، از چه سلاحی استفاده میکند؟ فریمورکها همان سلاحهای معروف پایتون برای گسترش صفحات وب و طراحی سایت هستند.
یک برنامهنویس تازهکار به راحتی میتواند به سراغ فریمورکهایی مثل جنگو، پیرامید، چریپای و … برود، و در چهارچوب این فریمورکها، با زحمت کمتری کارش را ادامه بدهد؛ از طرف دیگر از چهارچوبها و میکروفریمورکهای پایتون به راحتی میتوان برای توسعهی سیستمهای مدیریت محتوای پیشرفته مثل پلون و … و یا برنامهنویسی شبکهی ناهمگام و … استفاده کرد.
2.پایتون و کلاس ریاضی:
پایتون از همان اول بچهی درسخوانی بود و مثل روز روشن بود که سر از تحلیل داده و انواع رشتههای مهندسی درمیآورد. این روزها برنامهنویسی پایتون میان مهندسهایی که با سیستمهای اطلاعات بزرگ سر و کاردارند، حسابی طرفدار دارد.
مثلا یک شرکت چند ملیتی را تصور کنید که میخواهد آمار فروشش و میزان محبوبیت محصولش را در چند کشور و بر اساس چند متغیر مختلف، بسنجد. این شرکت چه کار میکند؟ اگر قبلترها بود آنها باید با هزاران تختهی سیاه و کلی اطلاعات و عدد و رقم، ماهها سرگرم میشدند، اما حالا به لطف python کارها از همیشه سادهتر شدهاست.
پایتون قابلیت پردازش سریعی دارد و به راحتی میتواند هزاران داده را که از هزارن پایگاه مختلف به سمتش هجوم میآورند مدیریت و پردازش کند، و بعد مثل آب خوردن، همهی دادهها را با هم ترکیب کند و آنها را به شکل نمودارهای خوانا تحویل بدهد.
3.سایر فعالیتهای پایتون:
راستش از آنجایی که پایتون یک برنامهی کاربردی است، در بازیسازی، هوش مصنوعی، ساخت انواع اپلیکیشنها، اسکریپت نویسی، شبکه و امنیت و … کاربرد دارد؛ در واقع شاید به عنوان حسن ختام این بخش، باید از خودمان بپرسیم:پایتون دقیقا در چه کارهایی کاربرد ندارد؟
زبان پایتون برای چه کسانی مناسب است؟
پایتون به خاطر قابلیتهای زیادی که دارد و البته یادگیری آسان، تقریبا در همهجا طرفدار دارد. بنابراین میشود مطمئن بود که با یادگیری این زبان برنامهنویسی، قطعا بیکار نمیمانید.
از طرف دیگر اگر با زبانهای برنامهنویسیای مثل جاوا یا c یا سی پلاس قبلا کار کردهاید، و حالا به دنبال راهی هستید که کمی از تعداد کدهای ورودی کم کنید و به کارتان سرعت بدهید، میتوانید روی پایتون حساب کنید.
همانطور که گفتیم پایتون در بحث امنیت و شبکه هم حرفهای زیادی برای گفتن دارد، و اگر دوست دارید وارد هر یک از این حوزهها بشوید، میتوانید روی شانهی پایتون بزنید و بگویید:«رفیق! با من میآیی؟» و البته که python با شما همراه میشود.
در نهایت اگر با دادههای بزرگ سر و کار دارید، یا برای طراحی وبسایت خودتان لحظهشماری میکنید یا حتی دوست دارید کمی در حوزهی هک وارد بشوید و به مستر روبات درونتان بله بگویید، قطعا یادگرفتن پایتون میتواند برایتان بسیار مفید باشد.
پیشنهاد مقاله: بوت کمپ آموزش برنامه نویسی
از دورههای آموزشی پایتون چه خبر؟
عبور از سراشیبی مقدماتی:
برنامهنویسی ازآن کارهای پردردسر اما جذابی است که نیاز به حوصله دارد، و البته در مراحل اولیه قطعا ذهنتان با هزار و یک سوال بی جواب مواجه میشود، بنابراین خوب است که برای قدم اول، از یک کلاس کوچک شروع کنید. در دورههای مقدماتی آموزش پایتون معمولا مباحثی مثل چگونگی نصب پایتون در ویندوز، معرفی انواع ویرایشگرهای متنی پایتون، کار با متغیرها در پایتون، استایل کدنویسی در پایتون و … آموزش داده میشود. بعد از پایان این دورهها، برنامهنویس تازهکار ما میتواند یک نمونهی سادهی کد پایتون را بنویسد و حتی با استفاده از فریمورکها یک وبسایت ساده را طراحی کند.
با آموزش پایتون پیشرفته، سرزمین کدهای خودتان را بسازید:
اگر دورهی مقدماتی را گذراندید و از پایتون خوشتان آمد، میتوانید به سراغ دورههای پیشرفتهی آموزش پایتون بروید و بعد از مدتی وارد جمع حرفهایها شوید. در دورههای پیشرفته معمولا مواردی مثل مفهوم شیگرایی در پایتون، چگونگی اتصال پایتون به دیتابیسها، ذخیرهی اطلاعات در پایتون، استخراج اطلاعات از یک وبسایت و … به برنامهنویس آموزش داده میشود. در پایان این دورهها هم معمولا باید به عنوان یک تازهکار، پروژهای را انجام بدهید تا مشخص بشود در طول دوره چقدر با پایتون صمیمی شدهاید.
حرف آخر
حتما شما هم در طول عمرتان، یکی دو باری داستان زندگی قهرمانهای بزرگ را خواندهاید. حتی همین بتمن خودمان هم که حسابی کاربلد از آب درآمد، چند وقتی در یک معبد در ناکجاآباد مشغول آموزش دیدن و یادگرفتن فنون رزمی بود.
البته در موسسهی بامداد خبری از فنون رزمی نیست، اما اگر دلتان یک آموزش درست و درمان از نوع برنامهنویسی میخواهد، یا با خواندن این متن هوس کردهاید یک شانس دیگر به خودتان بدهید و استعدادتان را برای کدنویسی و یادگیری زبان پایتون امتحان کنید. ما در موسسهی بامداد منتظرتان هستیم جایی که فکر میکنیم یک طلوع جدید در عرصهی برنامهنویسی و python در انتظارتان است. خب حالا نظرتان چیست؟!