خانه توسعهدهنده با کوئرا | توسعهدهنده داستانهای کوئرا پایتون یاد بگیر
پایتون یاد بگیر
تفاوتی نمیکنه که یک برنامهنویس تازهکار در ابتدای مسیر هستی یا رهبر یک تیم بزرگ و حرفهای. شاید حتی در حال حاضر با موضوع این مقاله موافق نباشی، اما تا حد زیادی مطمئنم که در انتهای خواندن این متن، حداقل چند دقیقه به فکر فرو میری!
اینجا نمیخوایم از امکانات فوقالعاده پایتون بگیم. اینجا نمیخوایم مقایسه کنیم و بگیم که پایتون بهترین زبان برنامهنویسیه (در حالی که هست :D) اینجا میخوایم از کارایی که با پایتون انجام دادیم و تو هم احتمالاً بهشون نیاز پیدا میکنی بگیم. تمام این کارها در چند سناریوی مختلف تعریف میشه که همشون واقعی هستند و تقریباً کار هرروزهی تیمهای ماست.
فهرست مطالب
Toggleبررسی آماری!
سناریوی اول:
در یکی از جلسات تیم آموزش کوئرا ، شاخص جدیدی برای بررسی سطح سلامت کالجها مطرح شد. شاخصی به نام کلیسا که در واقع نسبت کلر (سوالات خصوصی) به سابمیت (ارسال پاسخ یک سوال در کالج) بود. این شاخص (clisu) یکی از مهمترین شاخصهایی بود که ما برای پیدا کردن اشکالات درسنامهها و تمرینهای هر کالج بهش نیاز داشتیم. هر چهقدر این نسبت بالاتر باشه، به این معناست که اون سوال گیجکنندهتر است و نیاز به اصلاح داره و هر چهقدر کمتر باشه ، به معنای استانداردتر بودن اون درسنامه یا تمرین هست.
گزارش تمام سوالات خصوصی و تمام ارسالهای کاربران رو برای کالجها دریافت کردیم. برای هر کالج دو فایل دیتایی مختلف که شامل حدود ۱۰ ستون بودن و هر کدام شامل حداقل چند دههزار ردیف! تیم فنی سرش شلوغ بود و تیم محصول هم به خاطر شرایط کاری و زمانی نمیتونست این آمار رو به تفکیک بهمون بده و نیاز بود که خودمون این دیتای خام رو به اطلاعات تبدیل کنیم.
اینجا اولین کمک پایتون به ما بود. با یه جستجوی خیلی ساده در مورد خواندن فایلهای csv، با امکانات کتابخانه pandas در عرض چند دقیقه اسکریپتی نوشتیم که تمام این تحلیلها رو انجام میداد و به ما نسبت کلیسا رو بر اساس فرد، درسنامه، تمرین و حتی فصل و کالج ارائه میداد!
سناریوی دوم:
پاسخ به هر سوال خصوصی برای کوئرا هزینهی خاص خودش رو داره. بنابراین ما سعی میکنیم تا حد امکان توضیحات رو کاملتر بگیم و راهنمایی بیشتری در متن سوالات و درسنامهها ارائه بدیم تا کاربر نیاز زیادی به پرسیدن سوال خصوصی نداشته باشه.
اما جدای از این مورد ، یه وقتایی پیش میاد که یک کاربر ، به خاطر مسلط نبودن به مبانی برنامهنویسی ، سوالات خصوصی زیادی بپرسه و این باعث میشه که هزینهی آموزش این کاربر عزیزمون ، برای ما خیلی بالا بره. از طرفی، ممکنه علاقهی کاربر به توسعه و برنامهنویسی کم بشه و این حس که نمیتونم یادبگیرم باعث بشه که مسیر کاری و شخصیش تغییر کنه. پس شناسایی این کاربران برای ما خیلی مهمه و طبیعتا بین چند هزار مهارتجو ، پیدا کردنشون کار سادهای نیست. خیلی وقتها ، مربیها به ما منتقل میکنند اما باز همین مورد هم هزینه بسیار زیادی براشون داره و خیلی وقتها خستهکننده میشه. پس نیاز داریم که این مدل از کاربران رو خیلی زود پیداشون کنیم و باهاشون صحبت کنیم تا در مورد ادامهی مسیر مردد نباشن!
اینجا هم کارهای دیتایی کوچیک که نمیشه بهشون دیتا آنالیز گفت میتونه این نیاز رو برطرف کنه. اینجاست که باز هم حضرت پایتون به کمک ما میاد و با بررسی چند تا فایل csv حجیم، این کاربران رو خیلی زود پیداشون میکنیم و باهاشون به صورت تلفنی یا ایمیلی یا هر روش دیگهای صحبت میکنیم تا هم حس خوبی بهشون بدیم و هم در مورد ادامهی مسیر، راهنماییشون کنیم.
خلاصه ی کلام اینکه هر برنامهنویسی توی کارش ، ممکنه نیاز به بررسی حجم زیادی از دیتا داشته باشه. از بررسی میانگین زمان پاسخگویی یک وب سرویس گرفته تا تحلیل سادهای مثل سناریوهای بالا. پس اگر یک برنامهنویس جوان هستی و در ابتدای راه، یا رهبر یک تیم حرفهای ، احتمالا نیاز به بررسی دادههای مختلف توی کارت داشته باشی! پس، پایتون یاد بگیر:)
انجام کارهای تکراری
سناریوی اول:
من همیشه توی کلاسهام گفتم که تمام پیشرفت بشر حاصل تنبلی آدمهاست. دیگه از حوزهی برنامهنویسی نگم براتون که اگر ما برنامهنویسها تنبل نبودیم، هنوز داشتیم با کارتهای فیزیکی و لامپهای مختلف، صفر و یک تولید میکردیم! پس پیشرفت بشر، مدیون تنبلی ماست 🙂
در همین راستا، از انجام کارهای تکراری بدمون میاد! حال نداریم یه کار تکراری رو پشت هم انجام بدیم. تازه احتمال خطا هم داخلش زیاده بنابراین میریم سمت اتوماتیک کردن کارها. یکی از مواردی که برای تیم آموزش خیلی کار خستهکنندهای بود، آپلود کردن و قرار دادن فایلهای آموزش ویدئویی سمت کالجها بود. این کار مسیر خاصی داشت. اول باید توی سرویس vod آپلود میشد. بعد از آپلود باید ترتیبدهی میکردیم تا مشخص باشه که ترتیب قراردادن این ویدئوها چیه. بعد بایدلینک این ویدئوها رو به فرمت مناسب کالج تغییر میدادیم.
مثلا از https://testvideo.ir//quera/videoes/college/django/akjdsfaksdfhaksdfjh012103 تبدیل میکردیم به مثلا همچین چیزی:
%colege_video_akjdsfaksdfhaksdfjh012103%
این کار به سامانه کوئرا اعلام میکنه که باید ویدئوی akjdsfaksdfhaksdfjh012103 رواز vod دریافت کنی و نمایش بدی.
حالا این کار رو باید هر بار برای ۷۰-۱۰۰ آموزش ویدئویی انجام میدادیم! کلی تایم از ما میگرفت و واقع کاری بود که معمولا حوصله انجامش رو نداشتیم و سعی میکردیم که به شخص دیگه ای بسپاریم تا به جای ما انجام بده. اینجا هم پایتون عزیز به کمک ما اومد.
اول اسم ویدئو ها رو با اسم درسنامهها تنظیم کردیم. بعد از یکی شدن نام، با استفاده از امکانات خفن پایتون و سلنیوم تمام این مراحل از آپلود گرفته تا تغییر فرمت آدرس و قرار دادن روی درسنامهها رو انجام دادیم. یه بار دیگه هم پایتون مارو از انجام کلی کار خسته کننده نجات داد! خلاصهی کلام ، اگر مثل من تنبلی و حوصله انجام کارهای روتین مثل انتخاب واحد دانشگاه، ثبت نام خودرو و آپلود ویدئو و این چیزها رو نداری، پایتون یاد بگیر 🙂
انجام کارهای عجیب!
سناریوی اول:
خیلی از زبانهای برنامهنویسی، ساختار تستنویسی مشخصی دارن که ما هم برای تست کردن برنامههامون از اون استفاده میکنیم. اما یه وقتهایی ، ساختاری برای تست یک سری از زبانهای غیربرنامهنویسی! مثل SQL وجود نداره! پس در واقع ما باید یه روشی برای تست این زبان کار با دیتابیس پیدا میکردیم.
طبیعتا براتون قابل حدس هست که اینجا هم پایتون به کمک ما اومد و یه اسکریپت پایتونی بهمون کمک کرد که حتی کدهای نوشته شده به زبان SQL رو هم با اون تست کنیم. این کار باعث شد ما بتوانیم سیستم داوری بهتری برای تست کردن SQL و دیتابیس بنویسیم و کد کاربرانمون رو با دقت بیشتری بررسی کنیم!
سناریوی دوم:
همون طور که قبلا هم گفتم ، پیشرفت تکنولوژي مدیون تنبلی ما برنامه نویسهاست! من همیشه برام سخت بود که موقع خواب بلند بشم و چراغ رو خاموش کنم! خیلی کار سختیه وقتی رختخوابت تازه گرم شده و خودت هم انرژیت خالی شده و حال نداری بلند شی، یک مرتبه با چراغ روشن چشم تو چشم بشی و بهت بگه که منو یادت رفت! خیلی وقتها من از روی تنبلی ترجیح میدم با چراغ روشن بخوابم. بالاخره چه فرقی داره؟ چند ساعت دیگه روز میشه و من بازم میخوابم و دیگه متوجه روشن بودن چراغ نمیشم دیگه!
اما اینجا هم پایتون بود که منو از انجام این کار نجات داد. با خرید یه دیوایس کوچک آردوینو و یه کمک کدنویسی با پایتون و فریمورک firmata، این کار رو هم پایتون برامون انجام داد و من دیگه هر موقع خوابم بیاد با دو تا کلیک توی گوشی یا لپتاپم چراغهارو خاموش میکنم.
خلاصه اینکه ، هر کجا که به بنبست رسیدی و حس کردی دیگه باید بلند شی تا چراغ رو خاموش کنی یا در نهایت هیچ راهی برای تست کردن و انجام هر کار غیرمعمول دیگهای پیدا نکردی، مطمئن باش با یه سرچ کوچیک موضوع به اضافهی کلمه پایتون ، به روش سادهی انجامش میرسی و مشکلت رو حل میکنی! این پایتون معجزهی امروزه. پس بازم پایتون یاد بگیر!
یادگیری مفاهیم اولیه وب
این قسمت برای تازهکارها بیشتر جواب میده. اگر رهبر یا مدیر یک تیم هستی، طبیعتا مفاهیم رو نهتنها مسلطی که حتی میتونی در موردشون کتاب بنویسی :)
زمان ثبتنام بوتکمپهای کوئرا کالج بود. ما افراد رو به چند دسته تقسیم میکردیم. دسته اول کسایی بودن که رزومهشون کافی بود و میتونستن صرفاً به خاطر رزومهی خوبی که داشتن وارد فرایند جذب بوتکمپ بشن. اما خیلیها چون اول مسیر بودن یا رزومهشون به قدر کافی قوی نبود، باید وارد فرایند مهارتسنجی میشدن. این فرایند هم فرایند سادهای نیست. یک مسابقه که باید داخلش شرکت میکردن و چند سوال نسبتا سخت رو حل میکردن تا بتونن وارد فرایند یادگیری در بوتکمپ بشن. اما ما خیلی کاربرای زیادی داشتیم که نمیتونستن از پسش بر بیان و خیلی دوست داشتن که وارد بوتکمپهای آموزشی کوئرا کالج بشن. خب استانداردهای ما ثابت بود. فرد باید به یک زبان و فریمورک توی اون حوزه مسلط باشه تا بتونه وارد بوتکمپ بشه. استاندارد سختگیرانهای که باعث میشه بتونیم توی بوتکمپ عمیقتر وارد یک زبان یا تکنولوژي جدید بشیم. اما از طرفی ، کلی آدم که دوست داشتن یاد بگیرن رو حذف میکرد از چرخه. اینجا بود که باز هم پایتون به کمک ما اومد!
اول اینکه زبان پایتون بهشدت آسون بود برای یادگیری. دوم اینکه فریمورکهایی که برای توسعه یک محصول سادهی سمت سرور براش نوشته شده خیلی روان و ساده هستن و در واقع کاربر بدون اینکه وارد فرایند یادگیری مباحث سخت بشه، میتوه برای خودش یک سرویس api بنویسه و کلی باهاش حال کنه!
ما هم سریع دست به کار شدیم و دوره آموزش توسعه api با fastAPI رو روونهی کالج و مسیر بوتکمپ کردیم! کاربرای زیادی که علاقمند بودن وارد بوتکمپهای ما بشن اما آموزش خوبی برای یادگیری نداشتن، با استفاده از همین دوره، الان توی بوتکمپهای آموزشی ما هستند و اتفاقا خیلی خوب تونستن خودشون رو نشون بدن!
اگر پایتون نبود ، الان یه تعدادی از آدمای علاقمند و بااستعداد رو از دست داده بودیم و اونها هم درگیر آموزشهای غیراستاندارد میشدن و شاید کلا از مسیر برنامهنویسی خارج میشدن. پس ، حتی اگر ابتدای مسیر هستی، پایتون یاد بگیر!
راستی ، دوره آموزش fastapi هدیه کوئرا به کسایی هست که میخوان وارد بوتکمپهای مهندسی نرمافزار ما بشن. پس اگر دوست داری پایتون رو حرفه ای یاد بگیری ، حداقل این هدیه رو از دست نده 🙂