محمدرضا حقیری | Muhammadreza Haghiri
محمدرضا حقیری | Muhammadreza Haghiri
خواندن ۶ دقیقه·۶ سال پیش

برنامه نویسی یا تاریخ؟ مساله این است!

شما یادتونه در ابتدایی یا راهنمایی، تاریخ رو چطور میخوندیم؟ به این شکل که «ناصر الدین شاه که بود و چه کرد؟» یا «سه مورد از اقدامات امیرکبیر را توضیح دهید». تبدیل کردن کتاب به یک مشت سوال و جواب که باعث می‌شد هم درس خواندن سریعتر بشه و هم «لذت تاریخ» به صفر میل کنه. در این پست، قصد دارم این روند رو تعمیم بدم به دروس تخصصی رشته کامپیوتر.

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

هیتلر در سال ۱۹۳۹ به بهانه به قتل رسیدن کارمندان رادیوی آلمان در لهستان، به این کشور لشکرکشی کرد و به این ترتیب جنگ دوم جهانی آغاز شد.

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



شاید پیش خودتون بگید «ربطش به کامپیوتر چیه؟» اول این مطلب رو بخونید :

https://virgool.io/@ashkantaravati/tablet-engineers-pbonw8mwvgq7

اشکان خوب توضیح داده! «مهندس تبلتی ها». اما من میخوام کمی از این بُعد فراتر برم. افرادی که قصد دارم در موردشون صحبت کنم «تبلتی» نیستن که اتفاقا «شاگرد زرنگ» هم هستن. ولی به چه قیمت؟ به چه طریق؟

سال ۹۳ که وارد دانشگاه شده بودم، درس «مبانی کامپیوتر و برنامه‌نویسی» رو داشتم. برای من کلاس حوصله سربری بود! چون قبلا خیلی از چیزایی که در کلاس مطرح می‌شد رو خونده بودم (اینم در نوع خودش یک اشتباه محسوب میشه!) ولی در عین حال نکات ریز و جالبتری مطرح بود برام. «دانشجویانی که هنوز دوست دارند کل منابع رو به یک مجموعه سوال و جواب تبدیل کنند!» و متاسفانه این تیپ دانشجوها، خیلی هم محبوبن. چون اونا گنجینه‌ای از سوالات و جوابها دارند.

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

آیا تاریخ وار خوندن دروس تخصصی، کار درستی‌ست؟
آیا تاریخ وار خوندن دروس تخصصی، کار درستی‌ست؟



کلاس شبکه (و ایضا سیستم عامل)

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

اما بچه ها چه کار کردن؟ بچه ها در هر دو کلاس کم‌لطف بودند. مدام از این دست جملات شنیده می‌شد «استاد بلد نیست چرا باید درس بده؟» یا «استاد داره حفظی درس میده و خودش الکی حفظ کرده» و این چیزها. یک عده هم بودن که میرفتن دنبال نمونه سوال (یا از انتشاراتی ها، یا دانشجویان ترم های پیش یا وبسایت شخصی استاد) و اون رو حل می‌کردن. حدس میزنید چی‌شد؟ اون دانشجوها بین باقی دانشجوها محبوب بودن چون «گنجینه سوال و جواب» دستشون بود. میدونستن که بدون مشکل مقدار زیادی اطلاعات در دسترسشونه (با ایدئولوژی هلو برو تو گلو).

کلاس ریزپردازنده

کلاس ریزپردازنده اوضاعش فرق داشت! چند جلسه اول استاد صرفا ما رو با AVR آشنا کرد (و اطمینان داد مباحث تئوری مثل تاریخچه و یا حتی معماری AVR در امتحان نمیان) از جلسه چهارم استاد سوالات امتحانی رو در قالب سرفصل ها تدریس می‌کرد. مثلا «مداری طراحی کنید که چهار LED را در زمانی مشخص روشن و سپس خاموش کند»، بعد مدار رو در پرتئوس می‌کشید و کدش رو در کدویژن می‌نوشت و اجرا می‌کرد.

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

کلاس معماری

این کلاس اوضاعش فرق داشت. چند جلسه صرف این شد که مدارهای منطقی دوره بشه (بدون کوچکترین رویکرد امتحانی و فقط با رویکرد یادآوری!) و چندین جلسه هم صرف این که «اصلا کامپیوتر چیه؟» و بعد وارد فازهای معماری شدیم. تازه چالشهای طراحی کامپیوتر و ... پیش روی ما گذاشته می‌شد. اما آیا سوالی هم طرح می‌شد؟ خیر! اما هر دو سه جلسه، استاد مجموعه‌ای تمرین می‌داد (که پیدا کردن جوابشون از عهده حضرت فیل هم خارج بود) و بعد از دو هفته، انتظار پاسخ درست از ما داشت. به نظر من از مفیدترین کلاسهای کل دوران کارشناسی بود، چون خیلی چیزها رو با همین سیر تئوری-تمرین یاد گرفتم!

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



و الان وقتشه که به این سوال پاسخ بدیم ...

آیا تاریخ وار خواندن دروس تخصصی کار درستی‌ست؟

قاعدتا خیر. چون باعث میشه شما از چارچوب اون سوالات و سناریوها، خارج نشید و مدام اونجا درجا بزنید. در بهترین حالت میتونید «استاد دانشگاه» اون موضوع باشید و نه «مهندس» یا «متخصص». فکر می‌کنید چرا هر کدوم از ما (منظورم بچه های کامپیوتره) در یک زمینه، کارمون بهتر از زمینه دیگریه؟ چون اون زمینه های تخصصی رو خودمون دنبالش رفتیم و مدام به دنبال یک سری سوال و جواب الکی و از پیش تعیین‌شده، نبودیم!

این مطلب حس می‌کنم زیادی طولانی شد، شما به بزرگواری خودتون ببخشید ولی لازم دونستم که بنویسمش :)

برنامه نویسیمهندسیدانشگاه
مهندس سخت افزاری که آهنگسازی میکنه و عاشق ادبیاته :) وبگاه شخصی : haghiri75.com
شاید از این پست‌ها خوشتان بیاید