آیا یادگیری برنامه نویسی واقعا سخت و طاقت فرسا است ؟

مقاله جالبی خواندم درباره شخصیت برنامه نویسان ، که خانم " نلی بولز " در نیویورک تایمز نوشته است . همچنین وب سایت خوب ترجمان آن را ترجمه کرده است (اینجا) . نویسنده مطلب(نلی بولز) ، در این مقاله به شرح کتابی به نام coders که توسط یه بابایی به نام Clive Thompson نوشته شده پرداخته . نویسنده کتاب که از قضا روزنامه نگار سمجی هم هست و دوست دارد سر از کار آدم ها در بیاورد این دفعه رفته سراغ برنامه نویسان و با دیدی انسان شناسانه قصد دارد شخصیت این قشر از انسان ها را موشکافانه بررسی کند .Clive Thompson - برنامه نویسان (coders) کتابنویسنده کتاب وارد دنیا و زندگی برنامه نویسان می شود و حتی شروع به یادگیری برنامه نویسی می کند تا به این پرسش پاسخ دهد که واقعا انقدر که برنامه نویسان پز می دهند ، برنامه نویسی کاری جادویی و سخت است و هر کسی از آن سر در نمی آورد ؟ بعد از آن تجربه خود را با خوانندگان کتابش این گونه به اشتراک می گذارد : " برنامه نویسان می گویند فلان برنامه باگ دارد ! نگو منظورشان همان علامت : است که بعد از دستور if یادشان رفته بگذارند ! "نویسنده کتاب در ادامه راه ، برنامه نویسی را کاری لذت بخش توصیف می کند که فقط نیاز به توجه و دقت بیشتر دارد نه هوشی به اندازه آلبرت انیشتن ! و توضیح میدهد که حتی در پیشرفته ترین شرکت های فناوری دنیا افرادی با تفکر پوسیده وجود دارند که هنوز مرد سالاری را ترویج می دهند و می گویند : برنامه نویسی به درد زنان نمی خورد چرا که نمی توانند از آن سر در بیاورند ! و در ادامه توصیف خود از برنامه نویسان آمریکایی که دیده می گوید : با آن که آنها خود را بسیار باهوش می بینند ولی ضعف های انسانی شان در برنامه هایی که تولید کرده اند نفوذ پیدا کرده است .تا اینجا بحث این کتاب بود . حالا من (احمدرضا ماهوش) که در هنرستان رشته کامپیوتر و پس از آن کاردانی رشته کامپیوتر گرایش نرم افزار را در دانشکده فنی شهید مهاجر اصفهان گذرانده ام و وارد برنامه نویسی تحت وب شده ام تجربه خودم را برای شما شرح می دهم .گفته نویسنده کتاب را تایید میکنم . برنامه نویسی کاری جادویی نیست که کسی نتواند انجام دهد .فرمول موفقیت در برنامه نویسی این است : علاقه + یادگیری + تمرین + تمریناعتراف می کنم که قبل از این که وارد دنیای برنامه نویسی شوم ، برنامه نویسان را آدم هایی با ضریب هوشی بالا ، بدون اشتباه و بسیار کامل می دانستم ولی سخت در اشتباه بودم .14 سالم بود (سال 1387) . به خانواده ام گفتم به کامپیوتر علاقه دارم و باید وارد این رشته شوم . سال تحصیلی شروع شد. یک معلم ریشی و لاغر اندام آمد سر کلاس برنامه نویسی . شروع کرد از برنامه نویسی گفتن و این که باید ریاضیات تان قوی باشد و قدرت تحلیل بالایی داشته باشید و گرنه موفق نمی شوید و سریع رفت روی تخته و شروع به نوشتن یک مسئله ریاضی کرد و آن را با شیوه ای به نام "فلوچارت" حل کرد !بچه ها به هم نگاه می کردند و فضای کلاس کاملا سنگین شد(یکسری دایره ، مربع و عدد روی تخته بود) . همه چشم به تخته دوخته بودیم و با کنجکاوی همراه با هنگی :) به تابلو نگاه می کردیم . انگار دنیا روی سرمان خراب شده بود ... تمام آن رویاها که مثل بیل گیتس برنامه نویس بشویم در ذهن مان نقش بر آب شد . چند روزی گذشت و ما واقعا به این نتیجه رسیدیم در برنامه نویسی استعدادی نداریم . بخصوص من که ریاضی ام زیاد قوی نبود بیش از پیش اعتماد به نفس ام را از دست دادم ... و افسوس خوردم چرا خداوند هوش بالای 140 به من نداده تا برنامه نویس شوم چون علاقه زیادی به آن داشتم .(حالا که فکرش را می کنم به حال خودم میخندم :)روزها گذشت و معلم جدیدی برای کتاب دیگرمان که آن موقع نامش " برنامه سازی 3 " بود انتخاب شد . مردی آمد سر کلاس ... به جای این که ما را از برنامه نویسی بترساند نمونه کار های خودش را نشان ما داد . با زبان سی شارپ برای یک قرض الحسنه برنامه ای نوشته بود که دکمه start ویندوز را از جا کنده بود و دکمه خودش را به جای آن گذاشته بود (هنوز هم ایده اش شگفت انگیز است) ... شخصیت متین و باوقاری داشت . از او سوال کردیم برنامه نویسی به چه چیز نیاز دارد ؟ گفت علاقه و تمرین و کمی کار روی قدرت تحلیل مسئله !گفتیم ضریب هوشی مهم نیست ؟ گفت علاقه جای همه چیز را می گیرد . به ما یاد داد در دنیای برنامه نویسی برای هر آدمی جا هست ! حتی برای هنرمندان !...آدم هایی که مثل من علوم انسانی شان خوب بود باید وارد مدیریت پروژه می شدند .آدم های هنری و نازک نارنجی در طراحی رابط کاربری برنامه بی نظیر بودند و هیچکس به گرد پایشان نمی رسید. و آدم های درون گرا و کم حرف به درد حل مسائل پیچیده میخوردند !برای همه جا بود ... راستش بعد از یکسال تمرین به جایی رسیدیم که برای خودمان ویروس کوچکی نوشتیم که مدام درب سی دی رام را باز و بسته کند و ریجستری ویندوز را دستکاری کند ... ! باید اعتراف کنم ما هم وقتی مبتدی ها را می دیدیم میخواستیم برنامه نویسی را کاری جادویی جلوه دهیم که هر کسی نمی تواند یاد بگیرد ! یه نوع کلاس گذاشتن بیخودی و احمقانه که بیشتر برنامه نویسان در تله آن می افتند و دوست دارند همه پشت سرشان بگویند وای طرف برنامه نویس است حتما خیلی باهوش است . کاری که اولین معلم مان با ما کرد و دوست داشت همه چیز را پیچیده جلوه دهد . البته منظور من این نیست که برنامه نویسی پیچیدگی ندارد ! ولی انسان ها پیچیده تر از آن هستند فقط اعتماد به نفس ندارند . و گرنه این موجود دوپا وقتی علاقه به انجام کاری داشته باشد از پس هر کاری بر می آید .می گویند در رزوگار قدیم آدمی بوده که دانش و هوش و استعداد خاصی نداشته . یکروز به جایی تکیه می دهد و خیلی اتفاقی مورچه ای را می بیند که شاید 100 بار یک مسیر را از دیوار بالا میرود و به پایین می افتد و انقدر این کار را تکرار می کند که موفق می شود . جرقه ای در ذهن مرد ایجاد می شود که من از این مورچه کوچک کمترم ؟ و میگویند آن مرد بعد از آن با تمرین و زحمت فراوان از دانشمندان و مشاهیر عصر خود می شود .کلام آخرم با مبتدی ها یا کسانی که میخواند برنامه نویسی را شروع کنند است :نترسید و اعتماد به نفس داشته باشید . یک معلم خوب پیدا کنید تا اصول اولیه را به خوبی به شما آموزش دهد . قدرت تحلیل و حل مسئله تان را با تمرین مداوم بالا ببرید . کد هایی که دیگران نوشته اند را بخوانید و تحلیل کنید . تمرین ، تمرین و تمرین کلید موفقیت است . و اگر روزی برنامه نویس بزرگی شدید بدانید کجا بوده اید و برای دیگران از کلمات قلمبه صلمبه استفاده نکنید . انگار پیچیده نمایی عادت بسیاری از ما شده !! مثل کسانی نباشید که درس فلسفه را می خوانند و فقط سعی در پیچیده جلوه دادن فلسفه دارند ... برنامه نویسی هم مثل فلسفه است ... اگر با ذوق و علاقه آن را یاد بگیرید ، برایتان آسان می شود .