پیش آگهی(precaution): این نوشته نظر شخصی اینجانب بوده و از نظر بیان نیز دارای مقادیر زیادی زبان غیر علمی است. بنابراین ادعای این را ندارم که مطالبش به صورت تمام وکمال با حقیقت رشته مهندسی نرمافزار و علوم کامپوتر همخوانی داشته باشد. همچنین برای نوشتن این مطلب من ترجیح دادهام تا وقایع تاریخی و تجربه شخصی خودم را بیان کنم که این موضوع باعث شده تا این مطلب داستانوارهای باشد که ممکن است برای کسانی که تنها به دنبال دانستن مطالب علمی هستند ملال آور باشد.
خیلی از ماها وقتی برای کنکور درس میخونیم دوست داریم دانشجوی کامپیوتر بشیم و به دنیای پر هیاهو و پر رمز و راز کامپیوتری ها وارد بشیم. برای خود من این دنیا با خرید کامپیوتر شخصی در سال دوم دبیرستان آغاز شد. پیش از رفتن به دانشگاه زبان برنامه نویسی C رو یاد گرفتم و با اون شروع به برنامه نویسی کردم. اون وقت ها تازه اینترنت داشت جای خودش رو با خط های ۳۳۶۰۰ بیتی با مودم های dial up تو خونه های ایرانی ها باز میکرد.
خوب یادم هست که چقدر شور و شوق یاد گرفتن هرچه بیشتر و بیشتر درباره کامپیوتر داشتم. همه خیالات و رویاهام پر بود از اینکه بالاخره یک روز من یک هکر معروف و بزرگ میشم و میتونم به هر کامپیوتری در جهان نفوذ کنم. از سمت دیگه خیلی دوست داشتم ویروس بنویسم و بدونم که ویروس های کامپیوتری چطور کار میکنند. یادم نمیره که یک شب برای خرید کارت اینترنت به یک کافی نت رفته بودم؛ مسئول کافی نت داشت با یکی از دوستانش در مورد اینکه چطور یک شخص رو disconnect کرده و از اینترنت یا چت روم -یادم نمیآد کدوم بود- انداخته بیرون صحبت میکرد. چقدر اون موقع دلم خواست تا من هم میتونستم همین کار رو بکنم و هروقت که خواستم بتونم آدم ها رو از چت روم بیرون کنم یا اینکه اینترنتشون رو قطع کنم.
این شور و شوق ادامه داشت و با خوندن من در مورد روشهای crack کردن نرمافزار به اوج خودش رسید. بالاخره وقت کنکور کارشناسی رسید و من بعد از کنکور پاهام رو کردم تو یِ کفش که الا و لابد من میخوام کامپیوتر بخونم، حالا هر کجای جهان که باشه. اون وقت ها خیلی هم درگیر این موضوع بودم که نرمافزار بخونم یا سختافزار. با بعضی دوستان که صحبت میکردم بحث به اینجا کشیده میشد که هرکس مهندسی سختافزار بخونه مجبور میشه که نرمافزار هم بخونه اما کسی که مهندسی نرمافزار بخونه بیسواد بار میآد چون نیازی به خوندن سخت افزار نداره پس کلا سخت افزار بهتره.
خلاصه زد و من مهندسی نرمافزار قبول شدم. خیلی خوشحال بودم و خودم رو بالقوه یک هکر، یک ویروس نویس خوش جنس و یک آدم حرفه ای در دنیای کامپیوتر میدیدم. ترم اول که مبانی برنامه نویسی داشتیم و من با خوندن برنامه نویسی از زمان دبیرستان اصلا مشکلی تو اون درس نداشتم. درسهای عمومی هم که مثل همه رشتهها فراوان بودند. فیزیک ۱، ریاضی ۱ و قِس علی هذا. اصلا حال و حوصلهی عمومی خوندن نداشتم چون فکر میکردم که من باید درباره هک کردن بخونم، درباره ویروس نوشتن و روشهای نوشتن آنتی ویروس، باید در مورد ام پی ۳ بخونم و این فیزیک و ریاضی خیلی از فضای ذهنی من دور بود.
بیصبرانه منتظر ترم های بعدی بودم و اینکه ممکن هست چه روزهای خوبی در انتظار من باشه. ترم دو برنامه سازی پیشرفته با جاوا شروع شد. واقعا تا اواسط اردیبهشت اصلا نمیدونستم که ما داریم چیکار میکنیم، کجای برنامه هستیم، نمیفهمیدم اگر قراره Interface هم برای method پیاده سازی نداشته باشه و Abstract Class هم پیاده سازی method نداشته باشه، پس چرا دو تا مفهوم براشون داریم.
ترم دوم ریاضی گسسته هم داشتیم. خیلی ازش خوشم نمیاومد اما خب بد هم نبود. باز هم تو دلم به خودم وعده میدادم که :
دور گردون گر دو روزی بر مراد ما نرفت
دائماً یکسان نباشد حال دوران غم مخور
ترم دوم رسید به سوم. مدار الکتریکی؛ وای چه کابوسی! از این بدتر نمیشد. آخه من دانشجوی مهندسی نرمافزار بودم، این چه ربطی داشت به خوندن مدار الکتریکی؟ سرتون رو درد نیارم؛ ترمهای بعدی هم رسید با مدار الکترونیکی، مدار منطقی، اسمبلی و چه و چه و چه. فهمیدم که خبری تو این درسها نیست و من از این مزخرفات چیزی عایدم نمیشه. البته باید اذعان کنم حالا که دست کم یک دهه از اون وقت گذشته تمام اون درسها رو بد نمیدونم اما واقعا فکر میکنم که بعضیهاش از جمله مدار الکتریکی و الکترونیکی به همراه آزمایشگاههاش واقعاً هیچ دردی از مهندس نرمافزار دوا نمیکنه. این حس نسبت به درسها باعث شد تا خودم شروع به مطالعه درباره کامپیوتر کنم. جاوا میخوندم و همچنین دات نت که چون تازه اومده بود خیلی اون وقت ها تو بورس بود. اون وقتها یک منبع خوب برای یاد گرفتن ebook ها بودند و من که تازه تونسته بودم به سایتهایی دست پیدا کنم که توش پر بود از کتاب بال در آورده بودم و فکر میکردم حالا که از دانشگاه نمیتونم به جایی برسم باید با خوندن کتابهایی که دانلود میکنم برای خودم آدمی بشم. از بحث های جالبی که در اون موقع نظر من رو به خودش جلب کرد بحث تولید نرم افزار به روش چابک یا agile بود.
من رو ببخشید که الان نمیتونم بحث رو تموم کنم سعی میکنم که کم کم مطالب رو تکمیل کنم تا تجربیاتم بتونه کمکی باشه برای کسانی که حالا در آستانه انتخاب رشته هستند و میخوان بدونند که آیا تحصیل در رشته مهندسی کامپیوتر گرایش نرمافزار همون چیزی هست که به دنبالشاند یا که نه.