یادگیری زبان و چارچوب جدید در ۸ دقیقه

اگرچه عنوان، به شدت گول‌زننده‌ست اما حقیقت هم داره :) شاید نه در ۸ دقیقه اما در حدود یک هفته، امکانش واقعا وجود داره. در این پست، در مورد تجربه خودم در این زمینه قراره براتون توضیح بدم. در مورد این که چطور به یک زبان جدید آمدم و چطور در مدت کوتاهی تونستم با شرایط جدید آداپته بشم. اول از همه یک سلب ادعا بکنم که : من سالهاست در حال یادگیری، تمرین و انجام پروژه برنامه‌نویسی هستم. طبیعتا اگر خیلی تجربه ندارید، چنین تغییری میتونه اذیتتون کنه. با این حال، خوندن این پست رو به همه کسایی که برنامه‌نویسی رو دوست دارند توصیه می‌کنم. شروع داستانمدتی پیش، من بعد از چند ماه شاغل نبودن، به دنبال شغلی می‌گشتم و خب دوست عزیزی با من تماس گرفت و ازم دعوت به همکاری کرد. بعد از گذروندن روتین استخدام - که به طرز عجیبی کوتاه‌تر از حد انتظارم بود - بالاخره به عنوان توسعه‌دهنده بکند در ایسمینار مشغول به کار شدم. اینجا چالش‌های زیادی پیش روی من بود. نخستین چالش این که زبان مورد استفاده PHP بود و من هم آنچنان PHP کار نبودم. دقیق و درست بگم، اصلا php کار نبودم :)) خلاصه، رفتیم و مشغول شدیم و مدیر فنی مجموعه که از دوستان خوب من هم هستند، کدبیس رو به من دادن و کمی راهنمایی بابت این که چطور میتونم درکش کنم. یک روزی طول کشید تا من بتونم سینتکس php رو درک کنم. اما موضوع php صرف نبود. چون من با php آشنا بودم. لازمه اینجا کمی از تجربیات قبلی بگم.آشنایی خیلی اولیه با php شاید باورتون نشه ولی زمانی بود که پایتون، روبی، گو و ... انقدر در وب کاربرد نداشتن و عمده نرم‌افزارهای تحت وب (اگر نگیم همشون) با php نوشته می‌شدند. هاست‌های اشتراکی هم عمدتا php رو پیشفرض پشتیبانی می‌کردند و این خیلی خوب بود. یادمه اولین برخورد جدی من با php موقعی بود که یک فروم داشتم و نرم‌افزار مدیریتیش MyBB بود. یادمه که یک سری افزونه‌ها وجود داشتند که با نسخه‌های جدید سازگاری زیادی نداشتن و با کمی php زدن می‌شد سازگارشون کرد. یه جورایی هک کردن افزونه‌های MyBB اولین جایی بود که من مجبور شدم PHP بزنم. در مرداد سال ۱۳۹۱ هم، وبلاگ شخصیم رو از بلاگفا بردم روی هاست و دامنه خودم (لینک) و اینجا هم ترجیحم استفاده از وردپرس بود. خب وردپرس هم شاید گل سرسبد محصولاتیه که با php ساخته شدند (البته اگر فیسبوک رو ندید بگیریم) و اینجا هم اهمیت دونستن این زبان تا حد خوبی خودش رو نشون داد. اما خب پس از مدتی، کلا از php و phpجات زدم بیرون و رفتم سراغ روبی و پایتون و ... :) تا دی‌ماه امسال، نیاز شد که چارچوب لاراول رو یاد بگیرم... یادگیری لاراولخب بخش شیرین مهاجرت به php چی بود؟ یادگیری فرمورک لاراول. لاراول برای من اول یکم غیرقابل درک بود. شاید چون مقابل php جبهه داشتم و شاید چون به هلو بودن چیزی مثل جنگو عادت کرده بودم. از طرفی، سینتکس php به حد قابل قبولی سخت‌تر از سینتکس روبی یا پایتونه. دلیل این امر هم مشخصه، این بزرگوار ابتدائا طوری طراحی شده که C دنیای وب باشه و خب سینتکسش هم بیشتر شبیه C در نظر گرفته شده تا مثلا پرل. خلاصه، من اولین اقدامم دیدن آموزش کانال Traversy Media بود. چیزی در حدود ۳ ساعت ویدئو که توضیح میده چطور میشه یه بلاگ ساده با لاراول ساخت. بعدش دو تا وبینار در مورد Rest API در لاراول دیدم و تا حد خوبی پیش رفتم. در واقع «فقط ویدئو دیدن» من رو به این پروژه رسوند: https://github.com/prp-e/blog-api خب، یه نکته مهم که باید بگم اینه که لاراول عزیز ما، خیلی خیلی شبیه ریلز طراحی شده. شاید به این دلیل که خود تیلور هم معترفه به این موضوع که از ریلز ایده گرفته. حقیقتا اگر ریلز بلدید، با این دید برید جلو که همون ریلز رو دارید ولی زبونش عوض شده. خلاصه که کمی بازی بازی کردم تا این که تسک‌های جدی لاراول شروع شدند. درگیر با پروژه شدم و خب به حدی رسیدم که الان میتونم باگهای شاخدار پروژه رو هم حدودی پیدا کنم و حتی رفعشون کنم :)) در نهایت، برای بار چندم بهم اثبات شد که نباید از یادگیری چیزای جدید ترسید. حالا میخوان برای تفریح باشن میخوان برای کار باشن. یادگیری به پویایی مغز و ذهن کمک می‌کنه و در مجموع میتونه به بهبود حال روحی-روانی شما هم کمک کنه. پس دست‌کمش نگیرید :) حالا که این همه روضه خوندم، بهتره بیام و جمع‌بندیش کنم. این که چطور میشه از یه زبون و چارچوب به یه زبان و چارچوب دیگه مهاجرت کرد و کمترین هزینه اضافی رو داشت! زبان‌های برنامه‌نویسی هرقدر هم نسبت به هم متفاوت باشن یه سری کانسپتاشون یکیه. مثل شرط، مقایسه و ... . این مورد رو در نظر داشته باشید که ترستون کمتر بشه. خیلی از زبان‌های برنامه‌نویسی، راهنمایی برای توسعه دهندگان سایر زبانها دارند. حالا یا رسمی یا غیررسمی. نمونه‌ش برای روبی اینجاست (لینک). سعی کنید این راهنماها رو پیدا کنید و بخونید. ما یک دانشگاه بزرگ و رایگان داریم به اسم یوتوب. خیلی میتونه در درک ایده اولیه به شما کمک کنه. کانالهای زیادی هستن که به قولی «کرش کورس» دارند. کافیه اسم زبان و چارچوب مورد نظر رو به همراه عبارت crash course در یوتوب سرچ کنید و چند ساعت ویدئو ببینید. در گیتهاب و گیت‌لب چرخ بزنید. پروژه‌های دیگران رو بخونید. همیشه هم یادتون باشه که حتی چیزایی مثل Rocket Science و تئوری موسیقی هم راهنماهایی برای کسانی که در این حوزه تحصیل نکردند، دارند. برنامه‌نویسی که به ذات با تحصیلات مرتبط نیست جای خود! در نهایت، برنامه‌نویسی عین انتگرال گرفتن میمونه. شما سر کلاس می‌بینی، یاد میگیری و تو ذهنت می‌مونه. اما تا وقتی خودت ۴-۵ تا نمونه حل نکنی، نمی‌تونی توی ذهن تثبیتش کنی. پس دست به کار شید و یه پروژه هرچند کوچک ایجاد کنید. هم براتون رزومه میشه و هم به یادگیری بهتر کمک می‌کنه. در پایان، امیدوارم کلیت و تمامیت این مطلب به دردتون خورده باشه. مدت زیادی بود میخواستم بنویسمش و وقت نمی‌شد اما بالاخره طلسمش شکست. راستی، منتظر خوندن تجربیات مشابه هم هستم.