دو راه عملی برای یادگیری تکنولوژی‌ها و ابزارهای جدید

رفع ادعا: این مقاله ترجمه‌ای از مقاله‌ی خودم به انگلیسی هست که ۲ سپتامبر در Medium منتشر کردم.

Under the Water

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

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

اما همیشه به این آسونی نیست و گاهی چیزهای پیچیده‌تری هستن که دوست دارید در موردشون بیشتر بدونید و یاد بگیرید استفاده از اون‌ها رو. مثلا یه فریم‌ورک MVC جاواسکریپتی مثل Backbone.js یا یه پردازشگر سی‌اس‌اس مقل SASS و یا چیزهای دیگه. شما دوست دارید بعضی از این چیزها رو تو پروژه‌های بعدیتون به کار ببرید یا شاید می‌خواید یاد بگیرید چون همه دارن ازش استفاده می‌کنن :)


خوندن مقاله‌های مختلف و بوک‌مارک کردن و بعد فراموش کردنشون هیچ کمکی بهتون در زمینه یادگیری نمی‌کنه. برای همین من از ۲ راه برای یادگیری و استفاده از ابزارها و تکنولوژی‌های جدیدی که دوست دارم استفاده می‌کنم که می‌خوام اینجا در موردشون بیشتر توضیح بدم:

راه یک: خودتون رو بندازید تو بخش عمیق استخر

Deep End

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

یک تکنولوژی یا ابزار که دوست دارید انتخاب کنید، مثلا من SASS رو سال گذشته انتخاب کردم، و شروع کنید به استفاده ازش تو یه پروژه واقعی که باید تحویل مشتری‌تون بدید و زمان مشخصی براش تعیین شده. این کار به نظر سخت و استرس‌زا میاد ولی اگه درست انجامش بدید استفاده ازش رو یاد می‌گیرید و زندگی‌تون خیلی آسون‌تر می‌شه و می‌تونید تو پروژه‌های آینده هم راحت‌تر ازش استفاده کنید.

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

راه دو: انجام یک پروژه آخر هفته‌ای

یه مدت پیش من واقعا دوست داشتم AngularJS رو یاد بگیرم و ازش توی پروژه‌هام استفاده کنم ولی هیچ‌وقت زمان مناسبش پیدا نمی‌شد. همش هم به برنامه‌نویس‌های دیگه که ازش استفاده می‌کردن حسودیم می‌شد و تلاش می‌کردم هرچی مقاله در مورد AngularJS هست رو ذخیره کنم تا بعدا بتونم بخونمشون. بعد با خودم فکر کردم که شاید بد نباشه یه پروژه تعریف کنم و توش از AngularJS استفاده کنم تا بتونم یاد بگیرمش تو وقت آزادم.

من تماشای سریال‌های خارجی رو خیلی دوست دارم. با شروع شدن سریال‌ها از اول پاییز حدود ۱۰ تا سریال رو باهم دنبال می‌کنم و خیلی هم برای شروع شدنشون ذوق دارم، برای همین تصمیم گرفتم یه اپلیکیشن آنلاین برای نمایش ساعت‌های پخش سریال‌ها به وقت محلی با AngularJS و بر اساس ایده این مقاله عالی از Tuts+ درست کنم.

سریال‌گرافی

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

پس،

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


به عنوان یه برنامه‌نویس (و یه انسان)، شما باید همیشه در حال مطالعه و یادگیری باشید که از دنیا عقب نمونید، چون با سرعت خیلی زیادی در حال حرکت هست؛ اگه حتی یه ماه دست از مطالعه بکشید شاید یک یا چند سال از همه چیز عقب بمونید. می‌دونم که این وضعیت عادلانه نیست ولی خب زندگی همینه که هست. همونطور که قبلا گفتم زیاد به خودتون فشار نیارید، ولی دست از مطالعه و یادگیری هم نکشید.

موقع یادگرفتن چیزهای جدید، بهتون خوش بگذره :)