اپیوئید

در تلاش برای رهایی از این گرداب

درس‌هایی که من از دوران لیسانس گرفتم

۶ تیر ۹۷

مقدمه

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

جشن فارغ‌التحصیلی

خب من سعی می‌کنم موضوعات مختلفی که تو ذهنم هست رو تاپیک وار راجع بهشون صحبت کنم و تجربیاتم رو بگم.

انتخاب رشته

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

به صورت خلاصه، یا میرید رشته‌ای که دوست دارید که در این صورت خوشحال خواهید بود حالا ممکنه پولدار بشید یا نشید، یا میرید رشته‌ای که دوست ندارید که در این صورت یا تا آخر عمر باید به زور تحملش کنید یا یه روزی با فکر اینکه تا الان داشتید زندگی‌تون رو تلف می‌کنید ولش می‌کنید میرید سراغ یه کار دیگه حالا فارغ از اینکه پولدار هستید یا نیستید.

اپلای

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

برای کار کردن باید برم دانشگاه؟ (برای کامپیوتری‌ها)

نمی‌خوام حکم کلی راجع به اهمیت دانشگاه بدم و کلا هم بحث‌های زیادی پیرامون دانشگاه یا self learning هستش و انتقادهای زیادی هم روی سیستم formal education فعلی وجود داره ولی راجع به کامپیوتر یه چیزی رو می‌دونم. برای اینکه تو زمینه‌ی کامپیوتر کار کنید و خفن‌ هم باشید، ممکنه حتی به دانشگاه احتیاج نداشته باشید. الان تو شرکت ما کسی هستش که از من خیلی خفن‌تره و حقوق‌ش هم از من بیشتره و می‌دونم که دانشگاه نرفته. یا یه نفر دیگه رو می‌شناختم که دانشگاه نرفته و erlang خفن بود و remote کار می‌کرد و خب طبعا ده برابر من بود حقوقش.
خب اول باید ببینیم دانشگاه چه آورده‌ای داره که ممکنه تو کار استفاده بشه. دو تا آورده داره، یکی مدرک هستش یکی هم خود محتوای CS-related. بحث مدرک چند سالی هست که حل شده و الان خیلی از شرکت‌های خوب (کافه بازار، تپسی، …) هیچ اهمیتی نمیدن شما دانشگاه رفتین نرفتین یا چه رشته‌ای درس خوندین. به خاطر اینکه چیزی که برای همه اهمیت داره توانایی هستش. مدرک شما نیست که شرکت رو جلو می‌بره و برای شرکت پول می‌سازه. توانایی شما هستش. لذا از لحاظ منطقی مدرک هیچ اهمیتی نداره. حالا در بحث توانایی، یه مقدار بحث tricky می‌شه. ببینید، هدف دانشگاه تدریس برنامه‌نویسی نیست و کلا ما تو کل دوران ۴ سال تحصیل‌مون، از ۱۴۱ واحد دو تا درس آموزش برنامه‌نویسی بیشتر نداشتیم (۷ واحد). یکی مبانی کامپیوتر و برنامه‌سازی و یکی هم برنامه‌سازی پیشرفته. اینا هم هدفشون این بود که بتونید پروژه‌ی درس‌ها رو بزنید و مفاهیم رو یاد بگیرید و گرنه من تضمین می‌کنم با گذروندن درس برنامه‌نویسی پیشرفته حتی وقتی استادش رامتین خسروی باشه، برنامه‌نویس خفنی نمی‌شید. تو رشته‌ی مهندسی نرم‌افزار تو دوره‌ی لیسانس، بسیاری از مفاهیم و مسائل و پارادیم‌های حل‌شون در حوزه‌ی مهندسی کامپیوتر تدریس می‌شه و شما تبدیل به یه مهندس مساله‌حل کن تو حوزه‌ی کامپیوتر می‌شید و خب بعد از اینکه شما یه مساله رو حل کردید، می‌تونید بدید به یه تکنسین که زبان برنامه‌نویسی بلده و اون رو پیاده‌سازی کنه. (مثال‌ها: راجع به ساختمان داده و الگوریتم و شبکه و سیستم‌عامل و دیتابیس و … یاد می‌گیرید‌‌. ). حالا دو تا بحث من مطرح می‌کنم. یکی اینکه دیدن اینجور چیزها، به شما دید می‌ده و شما رو پخته می‌کنه و تبدیل به یه آدم مساله‌حل کن می‌کنه. در واقع تز من این هستش: درسته که احتمالا تا آخر عمرم قرار نیست من کامپایلر بنویسم، ولی گذروندن درس طراحی کامپایلر، من رو مهندس کامپیوتر پخته‌تری کرد چون با مسائل و راه‌حل‌هایی آشنا شدم که ممکنه طرز نگاه‌ راه حل رو بتونم تو یه مساله‌ی نامربوط استفاده کنم.
حالا یه بحث دیگه اینجاست: تقریبا خیلی از کارهایی که تو صنعت می‌بینید، مسائل تئوری پیچیده‌ای نیستن و برای حل کردن شون نیازی نیست درس کامپایلر گذرونده باشین یا مثلا الگوریتم max flow رو بلد باشید یا بدونید red black tree چیه. با یه دانش بیسیک در حوزه‌ی الگوریتم و ساختمان داده که قابل یادگیری در اینترنت هست و با استفاده از ابزارهای موجود (زبان و libraryها) می‌تونید خیلی مسائل رو حل کنید.

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

به صورت خلاصه، بدون دانشگاه رفتن هم می‌تونید خیلی از جاهای خوب مشغول به کار بشید منتها باید معادلش زحمت بکشید دیگه. ینی مثلا اگر دانشگاه نمیرید، به جاش باید بشینید برای خودتون پروژه بزنید و یه رزومه‌ای جمع کنید و یه سری کتاب‌های لازم رو بخونید و مسائلش رو حل کنید. مثلا من واقعا بعید می‌دونم اگر دانشگاه نمی‌رفتم حالش رو داشته بودم باشم که بشینم مثلا کتاب‌های دیتابیس و شبکه و … بخونم و مسائلش رو حل کنم. لذا دانشگاه رفتن با اینکه effort بیشتری می‌ذارید که بخشی‌ش به دردتون ممکنه نخوره در عمل، ولی خب به نتیجه می‌رسوندتون.

این هم بگم که با دانشگاه رفتن هم نمی‌تونید جای خوبی مشغول به کار بشید. ‌حتی اگر نرم‌افزار شریف یا تهران باشید، ولی پشتکار یا توانایی حل مساله نداشته باشید، نمی‌تونید مثلا بیاین شرکت‌های خوب.

لذا در هر صورت چه دانشگاه برید چه دانشگاه نرید، باید زحمت بکشید، پروژه بزنید و محتوا یاد بگیرید و تمرین کنید و این‌ها :)

دانشگاه چه فایده‌ای داره؟

در قسمت “برای کار کردن باید برم دانشگاه”، توضیح دادم که یه فایده‌ی دانشگاه رفتن اینه که خب به صورت ساختارمند، کلی محتوای خوب و مفید یاد میگیرید و مثلا برای رشته‌ی کامپیوتر، میرید برای “مهندس کامپیوتر شدن”، کسی که قابلیت حل مسائل مختلف رو داره و می‌تونه براشون ایده بزنه.

ولی دانشگاه رفتن مزایای دیگه‌ای هم داره که دونستن و خودآگاهی‌ش باعث می‌شه که بهتر بتونید از این فایده‌هاش بهره‌مند شید.

فکر کنم اولین شبی بود که مونده بودم سایت دانشگاه. ترم یک بود. بازی می‌کردیم

آخرین کلاس من با دکتر رامتین خسروی : طراحی شی گرا

بهنام بهرک فوق‌العاده‌ترین شخصیتی هست که تو زندگی‌م دیدم. توصیف این آدم با کلمات امکان‌پذیر نیست و باید یکبار حضوری برید پیشش. من باهاش درس نظریه‌ی گراف و استنتاج آماری رو باهاش داشتم و متاسفانه قسمت نبود درس آمار و احتمال مهندسی رو باهاش داشته باشه و از ترم‌های بعد از ما اومد ارائه کرد. شخصیتی فوق‌العاده، قدرت تدریس به شدت بالا. تنها کلاسی تو دوره‌ی لیسانس که توش گذر زمان رو حس نمی‌کردم، ینی به ساعت دیواری کلاس نگاه نمی‌کردم، کلاس نظریه‌ی گراف بهرک بود. اون ترم تموم شد، ولی من با بهرک رفیق شدم. با هم راجع به game of thrones یا ریچارد فاینمن صحبت می‌کردیم. هر هفته میرفتم پیشش و باهاش گپ می‌زدم. حتی راجع به افسردگی‌هامون و مشکلات existential ی که بهشون برخورده بودم. ازش کلی راهنمایی و مشورت می‌گرفتم. که اپلای کنم نکنم. فلان کار رو بکنم نکنم. و هنوزم باهاش در ارتباط هستش. الان که دارم از ایران میرم، تصمیم گرفتم براش یه یادگاری بگیرم. از اونجایی که یه کتابخوان خیلی خیلی خفن هستش (۸۰۰ تا کتاب خونده تو goodreads)، به نوید زحمت دادم برام از آمریکا کتاب the man who loved only numbers راجع به پل اردوش رو اورد و می‌خوام پشت‌نویسی کنم هدیه ببرم برای بهرک.

یادگاری‌ی که می‌خوام بدم دکتر بهرک قبل از اینکه از ایران برم

موقع تحصیل سر کار/ریسرچ بریم؟

کاملا بستگی به رشته، دانشگاه، برنامه‌تون بعد از لیسانس، توانایی‌های خودتون داره. من داستان خودم رو می‌گم و دیگه خودتون شرایط خودتون رو ارزیابی کنید. من از فردای کنکور تا انتهای تابستون ترم دوم، سر کار میرفتم. بعد تصمیم گرفتم از کار بیام بیرون و برم ریسرچ رو به صورت جدی تجربه کنم تا هم بفهمم بعد از لیسانس می‌خوام چیکار کنم و هم رزومه‌ی خوبی تکمیل کنم (این کار این مزیت رو داره که می‌تونید مطمئن‌تر راجع به آینده‌تون تصمیم بگیرید و رزومه‌ی خوبی دست و پا کنید و این عیب رو داره که زیر فشار ریسرچ و درس له می‌شید. من چون خودم می‌خواستم واقعا درگیر ریسرچ بشم فشار روم زیاد بود ولی صرفا اگر بخواین چیزی که دانشجوی بالا سرتون می‌گه رو پیاده‌سازی کنید و یه ریکامی بگیرید خیلی نکته‌ی خاصی نداره). دو سالی تو یه آزمایشگاهی کار می‌کردم و واقعا راضی بودم از این تجربه. من اینقدر تو آزمایشگاه بودم که یه بار یکی از بچه‌های سال بالایی فکر می‌کرد من دانشجوی ارشدم اینقدر که آزمایشگاهم! خود خاطرات آزمایشگاه هم یک بخش فراموش نشدنی از خاطرات خوبم شد و بهترین دوستا رو اونجا پیدا کردم که هر کدوم الان یه دانشگاه/شرکت خوب دارن کار می‌کنند. آورده‌ای که این تجربه برام داشت این بود که کلی خفن شدم در زمینه‌ی هوش مصنوعی، سیستم‌های پیشنهاددهنده، پردازش زبان‌های طبیعی و بازیابی هوشمند اطلاعات. نه صرفا در سطح کاربردی و آشنایی، بلکه در سطح نظری. مثل یک دانشجوی ارشد هر روزی کلی پیپر از کنفرانس‌های معروف می‌خوندم. اینطوری بود که بهم می‌گفتی مثلا nlp کار تو فلان دانشگاه، می‌دونستم دقیقا کیه و حتما یه پیپر ازش خونده بودم. یک دختری تو شرکت ما بود به اسم نازنین که اپلای کرد رفت از ایران. اولین بار که بهم گفت دارم میرم USC، گفتم میری پیش Christina Lerman؟ و کلی تعجب کرد. بعد راجع به IR صحبت کردیم گفت یه استاده بود تو Maryland بوده ولی الان رفته یه جا دیگه. گفتم Jimmy lin رو میگی؟ Maryland بوده و الان رفته Waterloo :)).
جدا از اینکه الان برم ارشد، احتمالا سریع‌تر از بقیه راه بیفتم، این مزیت رو داشت که الان می‌دونم ارشد می‌خوام برم چی می‌خونم و همینطوری شخمی شخمی اپلای نکردم. حتی دانشگاه‌ها رو سرچ نکردم. از قبل می‌دونستم پیش کیا تو کدوم دانشگاه می‌خوام اپلای کنم. مزیت دیگه‌ش هم این بود که دو تا پیپر تو دو تا کنفرانس تاپ خارجی دادیم. ولی خب من کلی خسته و له و اورده شدم و دیگه آخرش توانایی multi taskingم رو از دست دادم. این خودش رو بعدا نشون داد که البته فشارهای ترم ۵ و ۶ دانشگاه هم رو تشدیدش خیلی موثر بود. بعد از ترم ۶ که دوران فشار رو گذروندیم، دلم برای سر کار رفتن تنگ شده بود و خیلی دوست داشتم کار کنم و از طرفی اپلای هم کرده بودم و دیگه معدل نکته‌ی خاصی نداشت. گفتم خب الان برم سر کار. تو کافه بازار مشغول کار شدم. اوایل می‌تونستم دانشگاه رو با کار هندل کنم. ولی در ادامه نتونستم و پروژ‌ه‌ها و تمرین‌ها رو همینطوری رد می‌دادم. خسته شده بودم. دیگه کشش و استقامت گذشته رو نداشتم. افسردگی گرفتم و کلی حالم بد بود و از اینجا شد که الان دو سال هستش پیش روان‌شناس میرم. نتیجتا معدلم همینطوری نزولی شد و حتی پروژه‌ی کارشناسی‌م هم که با استاد عزیزم بهنام بهرک بود رو متاسفانه به شکل خیلی بدی انجام دادم که واقعا سرش عذاب وجدان گرفتم.

حس می‌کنم استراتژی ترکیبی من استراتژی خوبی بود. هم کار کردن رو تجربه کردم، هم ریسرچ رو به صورت جدی تجربه کردم، هم معدل‌م رو خوب نگه داشتم (من در انتهای رنک ۴ یا ۵ دوره‌مون شدم فکر کنم با همه‌ی این multi taskingها و درگیری‌ها) ولی خب هزینه‌ش این بود که فشار زیادی رو تحمل کردم ولی در کل راضیم :)

اینکه چیزهای مختلف رو تجربه کنید تا بفهمید تو آینده می‌خواین چیکار کنید مهمه. کسایی که کارآموزی‌شون رو یه چیز چرت برمی‌دارن و نه فضای ریسرچ رو تجربه می‌کنند نه فضای کار رو، ممکنه بعد از لیسانس برن ارشد و حالشون از ریسرچ بهم بخوره و انصراف بدن. ممکنه هم برن سر کار و حالشون از کار بهم بخوره و بفهمن دوست داشتن scientist بشن.

اینکه تو دوران لیسانس همه چیز رو تجربه کنید تا علاقه‌تون رو پیدا کنید خیلی مهمه و اکیدا توصیه‌ش میکنم ولو اینکه بهتون فشار بیاد.

نکات جسته و گریخته

دلم میگیره می‌بینم این همه سال گذشته. پیر شدیم رفت.

comments powered by Disqus