فرآیند یادگیری یک زبان
توسعه‌دهندگان سیستم‌های نرم‌افزاری برای ایجاد برنامه‌های خود از ابزارهای گوناگونی استفاده می‌کنند. این ابزارها که بنا به زبان برنامه‌نویسی مورد استفاده می‌توانند بسیار متنوع باشند، اغلب یک هدف ساده را دنبال می‌کنند؛ کاهش زمان تولید نرم‌افزار در کنار افزایش سطح کیفی آن.

اما فارغ از زبان برنامه‌نویسی مورد استفاده،اغلب توسعه‌دهندگان از یک چهارچوب از پیش آماده یا Framework بهره می‌برند. در ساده‌ترین شکل ممکن این چهارچوب‌های نرم‌افزاری بستری را برای ایجاد یک ساختار متحد در برنامه فراهم می‌آورند و برای مثال برنامه‌نویس را به سمت ایجاد برنامه‌ای در معماری سه لایه و یا سرویس‌گرا هدایت می‌کنند. همچنین، در بسیاری از این چهارچوب‌های کاری یک لایه انتزاعی روی سطوح مختلف مانند پایگاه داده‌ها ایجاد می‌شود و این امکان را برای توسعه‌دهنده فراهم می‌آورد تا فارغ از سیستم مدیریت پایگاه داده متصل به برنامه نسبت به توسعه پرس‌و‌جوهای خود اقدام کند. همه این‌ها باعث می‌شود تا چهارچوب‌های کاری در اغلب موارد موجوداتی دوست‌داشتنی باشند که به انجام سریع‌تر و با کیفیت‌تر کار کمک می‌کنند.

 

تا آن‌جا که من اطلاع دارم و از گوشه و کنار نیز شنیده‌ام، این چارجوب‌های کاری در اغلب زبان‌ها توسعه داده شده و به‌صورت رایگان در اختیار توسعه‌دهندگان قرار می‌گیرد. اگرچه در پس بسیاری از توسعه‌دهندگان این رده از محصولات شرکت‌های قدرت‌مندی مانند Zend، مایکروسافت، اوراکل و مانند آن قرار دارند، اما هستند شرکت‌های دیگری که چهارچوب‌های خوبی را گسترش داده‌اند، اما به دلایل گوناگون که یکی ازجدی‌ترین آن‌ها مسائل مالی بوده است، دست از توسعه بیش‌تر آن برداشته‌اند. یکی از این چارچوب‌ها که من نیز یکی از کاربران آن هستم، چهارچوب کدایگنایتر (CodeIgniter) است که چند ماه پیش به همین دلایل طی اعلامیه‌ای در سایت خود به‌طور رسمی از توقف توسعه بیش‌تر این چهارچوب خبر داد. اما نکته جالب این خبر، آن بود که شرکت پشتیبان این چهارچوب موسوم به الیزلب (Ellislab) به‌جای توقف کامل و خاتمه پشتیبانی، فراخوانی را برای واگذاری این چهارچوب انجام داد تا هر شخص حقیقی یا حقوقی که قادر به نگهداری و توسعه این محصول است، به ایشان پیام دهد.

 

در حالی که نزدیک به یک ‌سال از این ماجرا گذشته بود و بسیاری از ما به دنبال خانه جدیدی برای بنا نهادن پروژه‌های جدید خود بودیم، خبر رسید که این شرکت سرانجام شخص منتخب خود را برگزیده است و نکته جالب انتخاب یک دانشگاه برای این واگذاری بود؛ دانشگاه فنی و مهندسی بریتیش کلمبیا، ونکور، کانادا! دلیل این انتخاب را مدیران الیزلب آموزش این چهارچوب کاری به بیش از 150 دانشجو در سال در این دانشگاه و همچنین در اختیار داشتن منابع و زیرساخت لازم برای توسعه و نگهداری چنین پروژه بزرگی عنوان کرده‌اند.

 

واقعیت این است که این خبر به‌خودی خود و از جهات گوناگونی جذاب و قابل بحث است. اما آن‌چه به‌نظر من بسیار جالب به‌نظر می‌رسید، نخست این موضوع بود که مدیران یکی از پرکاربردترین چارچوب‌های کاری زبان PHP در سطح وب به یک دانشگاه اعتماد کرده‌اند و دوم این‌که آن‌چه در کشوری مانند کانادا به دانشجویان تدریس می‌شود، تا چه اندازه کاربردی و متفاوت از نگاه خاک گرفته سیستم آموزشی آکادمیک کشورهای دیگری مانند کشور ما است. در واقع دست کم تمامی دانشجویانی که از دانشگاه بریتیش کلمبیا فارغ التحصیل می‌شوند زبان PHP را به‌همراه یک چارچوب کاری یا فریم‌ورک بسیار کاربردی آموخته‌اند و می‌توانند به راحتی در بازار کار برای خود کاری بیابند و در نتیجه مانند بخش قابل توجهی از دانشجویان و فارغ التحصیلان ما "نتوانند بگویند در دانشگاه که چیزی به ما یاد نمی‌دهند" و خود نیز تلاشی برای بهبود این شرایط نکنند.

 

اما نکته جالب دیگری که در همین حال و هوا به آن برخورد کردم، مطلبی بود که در آن نوشته شده بود که به‌عنوان یک برنامه‌نویس باید هر سال یک زبان برنامه‌نویسی جدید فرا بگیرید! اگرچه خود را در جایگاهی نمی‌دانم که بخواهم درباره این مسئله اظهارنظر کنم، اما نکته این است که تحقیقات بسیاری از جمله (Bloom (1985) ,Bryan & Harter (1899) ,Hayes (1989) ,Simmon & Chase (1973 نشان داده‌اند که برای به‌دست آوردن خبرگی در هر حرفه و مهارتی شخص باید 10 هزار ساعت زمان صرف کند تا بتواند ادعا کند که در آن زمینه به مهارت کافی دست یافته است.

این موضوع اگرچه تنها مختص برنامه‌نویسی نیست و درباره بسیاری از مهارت‌ها همچون نواختن موسیقی، پختن غذا و غیره صادق است اگر فرض کنیم که شخص روزی 12 ساعت را صرف کسب مهارت، که صدالبته خود مراحل و مراتبی دارد کند، بیش از دو سال زمان لازم است تا این مقدار زمان به‌دست آید و به‌طور واقع‌بینانه در بهترین حالت شما هر چهار یا پنج سال یک‌بار خواهید توانست که زبان جدیدی بیاموزید و در آن خبره شوید و این به ‌شرطی است که آن زبان نیز در این مدت تغییر ویژه و زیرساختی نداشته باشد.
 

به‌هرترتیب، سعی کنید که همواره در حال فراگرفتن باشید و هیچ‌گاه منتظر شرایط کاملاً مناسب برای این امر نمانید؛  زیرا همین حالا هم بسیار دیر شده است.

برچسب: