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

مقاله جالبی خواندم درباره شخصیت برنامه نویسان ، که خانم " نلی بولز " در نیویورک تایمز نوشته است . همچنین وب سایت خوب ترجمان آن را ترجمه کرده است (اینجا) . نویسنده مطلب(نلی بولز) ، در این مقاله به شرح کتابی به نام coders که توسط یه بابایی به نام Clive Thompson نوشته شده پرداخته . نویسنده کتاب که از قضا روزنامه نگار سمجی هم هست و دوست دارد سر از کار آدم ها در بیاورد این دفعه رفته سراغ برنامه نویسان و با دیدی انسان شناسانه قصد دارد شخصیت این قشر از انسان ها را موشکافانه بررسی کند .

Clive Thompson - برنامه نویسان (coders) کتاب
Clive Thompson - برنامه نویسان (coders) کتاب

نویسنده کتاب وارد دنیا و زندگی برنامه نویسان می شود و حتی شروع به یادگیری برنامه نویسی می کند تا به این پرسش پاسخ دهد که واقعا انقدر که برنامه نویسان پز می دهند ، برنامه نویسی کاری جادویی و سخت است و هر کسی از آن سر در نمی آورد ؟ بعد از آن تجربه خود را با خوانندگان کتابش این گونه به اشتراک می گذارد :

" برنامه نویسان می گویند فلان برنامه باگ دارد ! نگو منظورشان همان علامت : است که بعد از دستور if یادشان رفته بگذارند ! "

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

و در ادامه توصیف خود از برنامه نویسان آمریکایی که دیده می گوید : با آن که آنها خود را بسیار باهوش می بینند ولی ضعف های انسانی شان در برنامه هایی که تولید کرده اند نفوذ پیدا کرده است .

تا اینجا بحث این کتاب بود . حالا من (احمدرضا ماهوش) که در هنرستان رشته کامپیوتر و پس از آن کاردانی رشته کامپیوتر گرایش نرم افزار را در دانشکده فنی شهید مهاجر اصفهان گذرانده ام و وارد برنامه نویسی تحت وب شده ام تجربه خودم را برای شما شرح می دهم .

گفته نویسنده کتاب را تایید میکنم . برنامه نویسی کاری جادویی نیست که کسی نتواند انجام دهد .

فرمول موفقیت در برنامه نویسی این است : علاقه + یادگیری + تمرین + تمرین

اعتراف می کنم که قبل از این که وارد دنیای برنامه نویسی شوم ، برنامه نویسان را آدم هایی با ضریب هوشی بالا ، بدون اشتباه و بسیار کامل می دانستم ولی سخت در اشتباه بودم .

14 سالم بود (سال 1387) . به خانواده ام گفتم به کامپیوتر علاقه دارم و باید وارد این رشته شوم . سال تحصیلی شروع شد. یک معلم ریشی و لاغر اندام آمد سر کلاس برنامه نویسی . شروع کرد از برنامه نویسی گفتن و این که باید ریاضیات تان قوی باشد و قدرت تحلیل بالایی داشته باشید و گرنه موفق نمی شوید و سریع رفت روی تخته و شروع به نوشتن یک مسئله ریاضی کرد و آن را با شیوه ای به نام "فلوچارت" حل کرد !

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

روزها گذشت و معلم جدیدی برای کتاب دیگرمان که آن موقع نامش " برنامه سازی 3 " بود انتخاب شد . مردی آمد سر کلاس ... به جای این که ما را از برنامه نویسی بترساند نمونه کار های خودش را نشان ما داد . با زبان سی شارپ برای یک قرض الحسنه برنامه ای نوشته بود که دکمه start ویندوز را از جا کنده بود و دکمه خودش را به جای آن گذاشته بود (هنوز هم ایده اش شگفت انگیز است) ... شخصیت متین و باوقاری داشت . از او سوال کردیم برنامه نویسی به چه چیز نیاز دارد ؟ گفت علاقه و تمرین و کمی کار روی قدرت تحلیل مسئله !

گفتیم ضریب هوشی مهم نیست ؟ گفت علاقه جای همه چیز را می گیرد . به ما یاد داد در دنیای برنامه نویسی برای هر آدمی جا هست ! حتی برای هنرمندان !...

آدم هایی که مثل من علوم انسانی شان خوب بود باید وارد مدیریت پروژه می شدند .

آدم های هنری و نازک نارنجی در طراحی رابط کاربری برنامه بی نظیر بودند و هیچکس به گرد پایشان نمی رسید.

و آدم های درون گرا و کم حرف به درد حل مسائل پیچیده میخوردند !

برای همه جا بود ...

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

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

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

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