کمالگرایی در یادگیری، یا چگونه یک توسعه دهنده‌ی آماتور باقی بمانیم

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

 

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

 

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

 

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

 

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

 

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

 

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