گذشته از بحث مدرک محوری که متاسفانه کشور رو به جهت نامناسبی کشونده و باعث خیلی بی عدالتیها و عقب ماندگیها و ... در کشور شده (به خصوص در سیستم هایی که مستقیم یا غیر مستقیم دولتی هستند!)، ماهیت دانشگاه بسیار مهم است.
در دانشگاه چیزهایی مثل نحوه یادگیری، کارگروهی، بالا بردن انگیزه، حس رقابت، حس پیشرفت، اعتماد به نفس و خیلی چیزهای دیگه به طور عادی یا اجباری یاد داده میشود که کسی که دانشگاه نرفته قطعا این موارد رو هم تجربه نخواهد کرد بنابراین دیدگاه یک شخص تحصیل کرده از زمین تا آسمان با نمونه دانشگاه نرفته آن تفاوت دارد. (صد البته رتبه دانشگاه نیز در یادگیری و میزان این تجربیات تاثیر فراوان دارد یعنی نمیشه دو تا فارغ التحصیل دانشگاه رو که مثلا یکی در صنعتی اصفهان درس خونده رو با دانشگاه غیر انتفاعی فلان شهرستان(!) مقایسه کرد که از لحاظ وسعت اندازه یک مدرسه هم نیست و هر دو هم کارشناس تربیت میکنند.)
اما برای بچههای نرمافزار به نظرم قضیه حتی مهمتر از مابقی رشتهها هم هست. یعنی عقیده دارم دانشگاه رفتن برای کسایی که دوست دارند تو حوزه نرمافزار کارآفرین، کارشناس، یا هرچیزه دیگه ای بشن خیلی مهمه. چرا؟
(برای مثال) تو دانشگاه اسمبلی به شما یاد میدهند به همراه ریزپردازنده و معماری کامپیوتر که با ترکیب نظریه زبانها و کامپایلر دانشجو میفهمه از زمانی که یک خط در کامپیوتر به عنوان برنامه در هر زبانی نوشته میشه این یک خط چطور توسط کامپایلر از لحاظ نحو، دستور بررسی میشه و چطور کد معادل سطح پایین ایجاد میشه و کد رو پردازنده چطوری با کمک چه ثباتهایی و چه دستوراتی در سطح ماشین اجرا میکنه.
یا درسی مثل طراحی الگوریتمهاست که انواع و اقسام الگوریتمهای مختلف که تا الان ارائه شدند بررسی میکنه و از لحاظ سرعت و زمان (Order) مورد تحلیل قرار میده که مثلا الگوریتم Quick Sort در چه زمانی یک لیست رو مرتب میکنه و Bubble Sort در چه زمانی و یا اینکه ضرب یک ماتریس n*n در حالت تک پردازنده و یا بصورت موازی چطور انجام میشه و چقدر زمان نیاز داره؟
یا شبیه سازی پنجره ویندوز در مد گرافیک در زبان C چه کتابخانهها و سختافزارهایی رو درگیر میکنه و یا منظور از نرمال سازی در سطح 3NF در مفاهیم پایگاه داده رابطهای چی هست و چطور میشه به اون رو در واقعیت رسید. (که خیلی از مدعیان کار با MS SQL SERVER یا ... هستند که حتی اصول و مفاهیم ساده پایگاه داده رو هم نمیدونند.)
اینها چیزهایی هستند که کسانی که دانشگاه نرفتن و صرفا با یادگیری یک زبان برنامه نویسی وارد این حوزه شدند و حتی مدعی هم هستند(!)، نمیدانند.
ممکنه فکر کنید خوب دونستن اینها چه فایدهای داره؟
زمانی که سرباز بودم از مافوقم پرسیدم با وجود اینهمه سلاح اتوماتیک و سبک و کوچک و جدید چرا ما باید از کلاشینکف صد سال پیش روسی استفاده کنیم؟ جواب این بود که با یادگیری کامل این سلاح میتونید تقریبا با همه سلاحهای موجود کار کنید و کلیات ماجرای همه این سلاحها از همین کلاشینکف و ژ-۳ ارث بریمیکند(!) و یادگیری بقیه با دونستن اطلاعات پایه تنها یادگیری بخش جدیدی که به این سلاحها اضافه شده وگرنه پایه همان است.
شبیه همین جواب را زمانی شنیدم که از استادم پرسیدم یادگیری ساختار پردازنده 80X86 زمانی که الان پردازنده با ساختار چند هستهای توسط اینتل تولید میشه چه فایدهای داره؟
بنابراین کسی که واقعا این مسائل پایهای رو خوب یاد گرفته باشه توانایی فوقالعادهای در درک مسائل جدید در آینده خواهد داشت و قطعا محصول بسیار باکیفیتتر و بهینهتری تولید خواهد کرد و ذهن بسیار خلاقتری خواهد داشت و اگر شرایط اجتماعی برایش فراهم باشد موجب افتخار یک کشور نیز خواهد شد.
نکته آخر:
اگر فیلم The Social Network رو دیده باشید حتما اون بخشی رو که مارک زاکربرگ وارد کلاس دانشگاه هاروارد میشه و با بیحوصلگی تمام سرکلاس به مطالب استاد گوش میده و میخواد کلاس رو ترک کنه که استاد ازش یک سوال درسی میپرسه (برای مسخره کردنش!) و مارک ایستاده و روی پلهها جواب استاد رو میده که هیج ، کمی جلوتر از فکر استاد پیش میره و جواب میده که کلاس هنوز به اون بخش نرسیده و همه مات و مبهوت موندهاند...
بله، درسته خیلی از بزرگان این رشته دانشگاه نرفتهاند و یا ترک تحصیل کردهاند ولی علت این بوده که درسهای ارائه شده در دانشگاه اونها رو سیراب نمیکرده و اونها نیاز به چیزی فرای درسهای ساده دانشگاه داشتند که در دانشگاه هیچ وقت به اون نمیرسیدند.
این افراد رو نمیشه با کسانی که در دانشگاه برای پاس کردن فلان درس به هر دری میزنند تا به مدرک برسن یا ذهنشون توانایی حل یک معادله ساده درجه ۲ رو نداره که بخوان براش برنامه بنویسن، یکی کرد.
بنابراین امثال جابز و گیتس نوابغ بشری بودند و هستند که تونستند در جامعهای که زمینه براشون مهیا بوده بدون نیاز به دانشگاه موفق بشن و شهرت جهانی پیدا کنند.
موفق باشید.