الان که فاصلهی زیادی با فارغالتحصیلی ندارم، جدا از این که ۴ ساله که خودم دانشجوی رشتهی مهندسی کامپیوتر هستم در مواقعی هم به اشکال گوناگون درگیر آموزش بچههای کامپیوتر بودم. از مشاهدهی همکلاسیهای خودم گرفته تا حل تمرین برای سالپایینیها و فعالیت گروهی در انجمن علمی مشاهدات جالبی داشتم که الان سعی دارم ازشون یک جور راهنما در بیارم. چیزایی که پایینتر میخونین کاملا میتونه برای هر رشتهی دیگهای هم درست باشه. اگه باشه که منم خوشحالترم.
چیزایی که نوشتم کاملا واقعی هستن و قصد تحقیر کسی رو ندارم. آرزوی من اینه که افراد با دید درست وارد رشته بشن و اشتباهات ما و همشاگردیهامون رو تکرار نکنن. بدیهیه که خیلی راجع به بچههای دانشگاههای تاپ سراسری صحبت نمیکنم. اگرچه اگه به درد اونا هم بخوره چه بهتر ولی خب احتمالش خیلی کمه. پس کسی به خودش نگیره!
هر کدوم از ما در طول تحصیل روشهایی رو در پیش میگیریم، برنامهریزیهایی میکنیم، تصمیمهایی میگیریم و در نهایت بعدا نتایج مثبت و منفیاش رو میبینیم. من در این موقعیت بودم که هم نتایج مثبت و منفی عملکرد خودم رو ببینم، هم دوستامو که در پایین براتون مینویسم. قبل از هر چیز لازمه تاکید کنم که قرار نیست شغل، شخصیت یا جنسیتی رو مورد تخریب قرار بدم اما بعضی چیزها معمولا بیشتر با هم رخ داده:
این یکی از مهلکترین مشکلات بچههای کامپیوتره چرا که بیشترین حجم یادگیری تو این حوزه با همین آزمون و خطا اتفاق میفته. بهتر بگم، این رشته آدم فضول میخواد! آدمی که سر از هر چیزی در بیاره و براش جالب باشه که بفهمه هر چیزی تو کامپیوتر (حالا چه نرمافزارش چه سختافزارش) چه جوری کار میکنه. البته نداشتن این ویژگی لزوما باعث شکست شما تو بازار کار نمیشه ولی خب نمیذاره از یه حدی بیشتر پیشرفت کنین! چون به هر حال با حفظ کردن یه سری چیزای تکراری هم میشه پول در آورد ولی سردرنیاوردن ازش بعدا مشکل ایجاد میکنه.
اما اثر مهمتر این قضیه به جز در بازار کار توی دانشگاهه.
این یکی از مهلکترین اشتباهاته. اگه سماجت نکنین انتخاب طبیعی شما رو حذف میکنه و خیلی سریع اونایی که عقبتر بودن از شما میزنن جلو. از اون جایی که تکنولوژی زود به زود تغییر میکنه و لازمه که شما خودتون معلوماتتون رو بهروز کنین و گاهی با چند تا مانع موقع یادگیری مواجه میشین که خستهتون میکنه و ولش میکنین! نباید این جوری بشه.
حالا اونا مصادیق این اشتباه توی بازار کار بود. توی درس و دانشگاه هم خیلی این قضیه رو بین بچهها دیدم که مثالش رو پایینتر براتون میارم.
ولی به طور خلاصه گفتن «نمیشه»، «نمیتونم»، «نتونستم» اون هم در تمرینات روزمره که سر کلاس اساتید میگن کلاه بزرگیه که سر خودمون میذاریم! خوبی کلاس و درس به همین چالشهاست و گرنه همهی این درسها رو میشه تو خونه هم خوند.
ما قدیما برای راه انداختن یه بازی کامپیوتری ۲۴ ساعت جون میکندیم و آخر راهش مینداختیم. حالا طرف از نصب یه نرمافزار میترسه و اگه نصب نشه کلا قید داستانو میزنه. ما که هیچی نشدیم...
خیلی جالبه! طرف جزوهی برنامهنویسی رو میگیره ساعتها میشینه میخونه ولی یه خط کد نمیشینه بزنه!
خب ببخشید وقتی منطق برنامهنویسی رو یاد نگیری چه جور مهندس کامپیوتری هستی؟ وقتی نمیتونی یه الگوریتم بنویسی به چه دردی میخوری؟ مگه رمانه نشستی داری میخونی! لابد میخوای پاس هم بشی درس رو.
این جور وقتا میخوام به خدا بگم «خداوندا منو از رو کرهی زمین بردار یا به یه موجود دیگه تبدیل کن»
میدونین یاد اون موقع میفتم که برای کنکور کتابهای شیمی مبتکران و کتابهای حساب دیفرانسل مهندس مهربان رو میخوندم.
برنامهنویسی همهاش فکر کردنه. یه درصد خیلی کمی ازش مربوط به دستور زبان و این چیزاست. حالا تو برو کل سورس کد مربوط به آپولو ۱۱ رو حفظ کن.
جالبه حتی نامگذاریها رو از استادشون تقلید میکنن و وقتی اسم رو عوض میکنی نیم ساعت باید توضیح بدی که چرا مثلا به جای i نوشتی arrayIndex.
طرف اومده بود فکر میکرد کامنت تو منطق برنامه تاثیر داره! میخواستم خودمو بزنم ولی خب خونسردی خودمو حفظ کردم و بهش خیلی آهسته و پیوسته توضیح دادم.
چون این رفتار که تا طرف یه سوتی احمقانه تو فهمیدن چیزی داد ترورش کنیم و اگه کمک خواست بهش بگیرم برو خودت بخون به همون اندازه خطرناکه که جواب رو هلو برو تو گلو به طرف بدیم.
جا داره به یه نسخهی پیشرفتهتر این اشتباه هم اشاره کنم:
طرف میره ۲۰ ساعت فیلم آموزشی نگاه میکنه و یاد هم میگیره همون لحظه ولی فقط نگاه میکنه! نمیره چار تا خط کد بزنه.
یه سریا هستن نه تنها تنهایی تلاش کردنشون نمیاد بلکه گروهی هم تلاش نمیکنن. البته معمولا اصلا سراغ تیم نمیرن ترجیح میدن خودشون تو تنهایی خودشون بسوزن. خیلی وقتا اینا کلاس هم نمیرن چون نمیدونن باید کجا برن کلاس چی و میترسن کلاسش خوب نباشه. نهایتا به وضعیت خطری که میرسن ممکنه برن دنبال معلم خصوصی که البته خیلی از درسا معلم خصوصی نداره.
رشتهی کامپیوتر به شدت نیازمند اینه که شما آدم خودآموزی باشین و دائم خودتون رو ارتقا بدین و بهروز کنین. ولی یه عده اصلا خودآموز نیستن که هیچ تنها تنها کشش لازم رو ندارن. یه جور پشتیبان قلمچی میخوان. که واقعا انتظار بزرگیه و استاد هم چنین وظیفهای نداره! اگر هم بکنه لطف میکنه.
بهترین کاری که میشه کرد اینه که توی سالبالاییها دنبال دانشجوییهایی بگردن که دوست دارن راهنمای بقیه باشن که البته در حال حاضر تعدادشون خیلی کمه و کمتر هم خواهد شد.
البته این قضیهی خودآموز نبودن و نیازمند بودن به عامل خارجی همیشگی نیستا! معمولا دستشون که راه بیفته درست میشن. این قضیه به شدت مربوط به اعتماد به نفس میشه! البته خیلی از چیزایی که توی این مقاله میخونین مربوط به اعتماد به نفس میشه! و خب متاسفانه توی دانشجوهای خانم خیلی بیشتر دیده میشه.
بعضیا هم هستن که از ترم اول تا ترمهای آخر فقط دارن از این و اون میپرسن که:
و همهاش کلا دنبال بهترین انتخاب ممکن میگردن! آخرشم میرن سمت کارای غیر کامپیوتری. نمیدونم واقعا درک نمیکنم! چی کار داری کدوم بهترینه! اول و آخر که باید یه سری چیزا رو یاد بگیری و با یه زبان امتحانشون کنی دیگه! حالا فعلا با یه زبان برو جلو بعدش اگه لازم شد عوضش کن.
بالا بری پایین بیای همه باید با شبکه و لینوکس و پایگاه دادهها و یه سری چیزای دیگه آشنایی داشته باشن و توی همون برنامهنویسی هم مفاهیمی هست که در هر حال باید بلد باشی.
تازه این دسته از دوستان دائم غرغر این رو میزنن که دانشگاه هیچی به ما یاد نمیده و چرا داریم سی پلاس پلاس میخونیم.
خیلی کلیدی و مشخص بگم! موارد زیر اگه در مورد شما صدق میکنه مشخص میشه که در وجود شما خدمت کردن به علم و فناوری معنی پیدا نکرده و احتمالا خیلی اذیت خواهید شد در بلند مدت!
بعضیا هستن که کلا اهل کار گروهی نیستن به دلایل مختلف. مثلا:
من جای شما باشم به خودم اجازه نمیدم از نرمافزارهای آزاد و متنباز استفاده کنم چون لیاقتش رو ندارم.
علاوهبر اینها باید تاکید کنم که کمک کردن به هم تو یادگیری و یاد دادن چیزی که بلدیم به همکلاسیها و سالپایینیها کار بسیار بسیار پسندیدهایه که دو سر برده! یعنی هم باعث یادگیری و پیشرفت یک یا چند نفر دیگه میشین و هم خودتون مسلطتر میشین به اون مبحث و البته خیلی اتفاقهای خوب دیگه هم میفته! امتحان کنین تا ببینین زندگی چقدر شیرینتر میشه!
این مورد معمولا مخصوص بچههاییه که میخوان تاپ کلاس و تاپ دانشگاه باشن. مثلا میخوان جاوا یاد بگیرن میرن خفنترین منبع رو میخرن کتابش رو و برنامهریزی میکنن از اول اول تا آخر آخرش رو طی یک ترم بخونن. نتیجهاش اینه که هیچوقت این کارو نمیکنن چون وسط راه خسته میشن و میبینن این همه کتاب خوندن ولی هنوز هیچ خروجی نداشتن و در این مدت «هزینه بالا» و «بهرهوری صفر» بوده. تازه برنامهشون این بوده که اول «جاوا» رو قورت بدن بعد برن «اوراکل» رو یاد بگیرن و یه کتاب خیلی قول هم برای اون خریدن. بعد میخوان تازه برن اول یه کتاب بگیرن ۶۰۰ صفحه راجع به «HTML» و بعد یه کتاب کلفت دیگه راجع به «HTML5+CSS3» و ایشالا دو سال دیگه میخوان یه کتاب مرجع بگیرن و سیر تا پیاز «جاوااسکریپت» رو مطالعه کنن. حالا بگذریم که بعضیا فکر میکنن جاوا همون جاوااسکریپته...
در هر حال این روش غلطه! بهترین روش برای یادگیری به نظر من اینه که یه پروژهی ساده برای خودتون تعریف کنین و بعد نیت کنین هر جور که میشه با مثلا همون «جاوا» یا هر زبان و پلتفورم دیگه پیادهاش کنین و در این مسیر فقط و فقط بر حسب نیاز به کتابها و مقالهها و فیلمهای آموزشی و غیره و غیره مراجعه کنین. به هر حال دوست خوبمون stackoverflow هم هست. ولی اصلا به فکر این که تمام مفاهیم و امکانات موجود در یک زبان رو اول تمام و کمال یادبگیرین و بعد طراحی وب رو کامل یاد بگیرین و بعد تازه شروع کنین به خلاقیت یه تصمیم کاملا اشتباهه.
اولش سعی کنین فقط امتحان کنین و خلاق باشین. بعدا برای فهمیدن اعماق تکنولوژی و بهتر کردن پروژههاتون وقت زیاده! فقط انجامش بدین!
خب یه مسئلهی دیگه همیشه این بوده که ما فکر میکردیم فلان دروس خیلی به درد میخورن و فلان دروس اصلا خوندنشون توجیه نداره. البته اگه از اول با خودت بگی مثلا من میخوام فقط «طراحی وب» کار کنم احتمال زیادی داره که مثلا «معماری کامپیوتر» هیچوقت به دردت نخوره. ولی درسهایی که میخونیم چند تا دلیل داره وجودشون:
البته خیلی وقتا نهایتا ممکنه لازممون نشن یا در بدترین حالت بریم اون مبحث خاص رو یاد بگیریم. ولی یه وقتایی هم به این خوبی پیش نمیره و فرصتها از دست میرن...
خب وقتی میدونی تو یه چیزی مشکل داری همون موقع از استادت بپرس!
خجالت میکشی؟ خب از همکلاسیت بپرس!
اونم بلد نیست؟ از سالبالاییت بپرس!
گوگل کن!
خیلی ساده است! چیزی که مشکل داری رو سرچ کن تو گوگل. ولی خب انگلیسی سرچ کن
کلی سایت آموزشی برای هر چیزی تو اینترنت به طور رایگان هست
یه عالمه فیلم آموزشی هست
البته خب بیشترش انگلیسیه! گاهی هم هندی :-D
خلاصه که استادم خوب درست نداد یا غایب بودم یا خیلی بهونههای دیگه این روزا به هیچ وجه توجیه محسوب نمیشه!
این مورد معمولا وقتی اتفاق میفته که شما جزو بچههای خلاق هستین و دائم در حال ایده زدن هستین و ایدههای گنده گنده میزنین و خوشبختانه سراغ پیادهکردنش هم میرین ولی خیلی خیلی خیلی از معلومات لازم رو ندارین. حتی نمیدونین باید چه چیزایی رو قبلش یاد گرفته باشین و همینطور گیجتر میشین. یه روز یه چیز رو یاد میگیرین یه روز یه چیز دیگه. آخرش هم خسته میشین و میذارینش کنار.
یه نوع دیگهاش هم مال اوناییه که همهچیز رو دوست دارن و نمیتونن انتخاب کنن حوزهی تخصصیشون رو پس دائم همه چیز رو امتحان میکنن.
یه قانون سرانگشتی بهتون بگم. امتحان کردن یه چیز جدید هیچ عیبی نداره و خیلی هم خوبه اما نباید بیشتر از ۱۰ روز طول بکشه. اگه اومدین ۲ ماه از وقتتون رو روی یه چیز گذاشتن و بعد ولش کردین و بعد دوباره چند ماه رو یه چیز دیگه و چند هفته رو یه چیز دیگه. این دیگه داره از مدار خارج میشه!
در این مورد خیلی وارد نمیشم و همین قدر که تیترش باشه کافیه.
اینم در حد تیتر کافیه
یکی از بزرگترین مشکلات بچهها همیشه ضعف در زبان انگلیسی بوده!
از همون ترم اول واسه خودتون یه ایدهی خیلی ساده در حد پیادهسازی یه دادهساختار ساده یا یه الگوریتم جستجوی ساده بتراشین و پیادهاش کنین. با هر زبانی که دوست دارین بنویسین اصلا ولی تا به آخر نرسوندین بیخیال نشین! با همین شیوه برای یادگیری پایگاه داده و هوش مصنوعی و خیلی درسهای دیگه هم میتونین برین جلو. شاید یهو یه ایدهی خوبی ازش در اومد! شاید همون شد تز کارشناسیتون! شاید همون شد یه استارتآپ. حالا هی برو بگرد دنبال یه ایدهی خیلی خاص و عریض و طویل که خود کن تامسون هم نمیتونه پیاده کنه و پیاده بکنه هم توجیه اقتصادی نداره.
در انتها داستانک زیر رو بهتون تقدیم میکنم:
و همینطور این از دوست خوبم محمدرضا