از همان ترم های اول با یکی از هم دورهای های خوبم بحث جدی در مورد کار در صنعت در دوران دانشجویی داشتیم، یادش به خیر نوشته زیر پاسخ من به ایشان در نشریه رایانش دانشکده کامپیوتر بود:
بعد از اندکی مقدمه غیر ضروری: ... ابتدا در همین جا میخواهم دو مقوله را از هم جدا کنم: کار صنعتیِ مربوط به رشتهی کامپیوتر در دوران دانشجویی و کارهای دیگر از قبیل تدریس و ... در همین دوران.
از این به بعد منظور ما از کار در این نوشته، کار صنعتی (مثلاً کار در یک شرکت کامپیوتری) در دوران دانشجوییِ یک دانشجوی کامپیوتر دانشگاه شریف است، که تحلیل کارهایی مثل تدریس و ... در این مطلب نمیگنجد.
برای شروع بگذارید پروژه درس برنامهنویسی پیشرفته را با یک پروژهی صنعتی مقایسه کنیم. در این پروژه به عنوان یک نمونه از پروژههای درسی، کافی است کد توسعه داده شده به ازای یک سری ورودی خاص و برای مدت محدودی نزد دستیار محترم آموزشی(!) کار کند؛ بعد از آن شما نمره کامل یا بخشی از نمره آن پروژه را میگیرید و قضیه تمام میشود. در حالی که در یک پروژه صنعتی، تحویل و نگهداری نرم افزار خودش بخش مهمی از قضیه است که مهارتهای خاص خود را میطلبد و در دانشگاه بسیاری از آن مهارتها به دست نمیآید. اصولاً توسعهی کدی که نوشته میشود تا به دستیار آموزشی نشان داده شود و فردای روز تحویل دیگر قرار نیست استفاده شود، با توسعهی کدی که نوشته میشود تا در فلان نرمافزار با هزاران کاربر به ازای هر ورودی و در هر شرایطی کار کند و بشود جزئی از برنامهای که نباید به هیچ وجه کرش کند، متفاوت است؛ بنابراین اگر دنبال مهارت فنی عمیق هستید، تکیه فقط روی دانشگاه، نمیتواند انتظار شما را برآورده کند.
این بیانِ بخشی از تفاوت کلی فضای فنی صنعتی با دانشگاه بود و اما نکات مثبت چیست؟
اولین حُسن این که کار صنعتی یک دانشجو به ویژه کارهای High-Tech یک فرصت استثنایی برای یادگیری عمیق و با شهودِ بالای درسهای کاربردی دانشگاه در فضای واقعی است. چرا میگوییم استثنایی؟ چون این فرصت برای دانشجویانی که کار نمیکنند پیش نمیآید و حتی برای آنان که بعد از فارغ التحصیلی سراغ صنعت میروند هم پیش نمیآید. بگذارید برای روشن شدن مطلب مثال بزنم، فرض کنید یک دانشجو همزمان با گذراندن درس ساختمان داده و الگوریتم در صنعت مشغول بهکار باشد. این دانشجو یک ترمِ کامل فرصت دارد که همزمان با فراگیری مبحث «اُردرِ الگوریتم» آن را در صنعت نیز به کار ببرد و در پروژه واقعی آن را تمرین کند. در صورتی که دانشجویان دیگر در حد تمرینهای همان درس با این مسئله آشنا میشوند.
یک مثال دیگر درس پایگاه داده، پایگاه داده جزء جدا نشدنی صنعت است و به قول معروف معمولاً هر جا سخن از یک نرمافزار صنعتی است نام پایگاه داده میدرخشد! خب! کسی که دو سال با پایگاه داده کار کرده و میآید سر کلاس مینشیند عیناً میفهمد قضیه کوئریها، طراحی پایگاه داده، پرفرمنس و ... چیست، اما کسی که میخواهد بعد از فارغالتحصیلی برود سراغ کار، فعلاً در یک فضای انتزاعی تلاش میکند بفهمد چیزهایی که استاد میگوید چیست، بعضی وقتها حتی این بیش از حد انتزاعی بودن باعث کم شدن علاقهمندی به آن درس میشود. همچنین در مواردی کار در صنعت به شما یک شهود از مسائل میدهد که میتواند به یادگیری درس شما و حتی نمرهی شما کمک کند، مثلاً کسی که زندگی کاریاش را در متدولوژی Agile گذرانده است، دهها جلسهی Sprint شرکتکرده و کاملاً با مفهوم Task و Backlog آشنایی دارد، اگر در کلاس درس مربوط کنار کسی بنشیند که بار اول یا دومی هست که این کلمات را میشنود، به وضوح میزان یادگیری، جنس و عمق سوالاتش سر کلاس بسیار متفاوت خواهد بود. رویکرد بسیاری از دانشجویان فعال در صنعت نسبت به درسهای کاربردی دانشگاه، تعمیق تجربههای صنعتی با پشتوانهی آکادمیک دانشگاه هست، و این بسیار متفاوت است با فضای یادگیری دانشجویانی که قبلاً هیچ حسی نسبت به آن مفاهیم نداشتهاند.
به طور کلی کار صنعتی در دوران دانشجویی فرصت تکرار نشدنی برای ترکیب مهارت صنعتی و دانش آکادمیک است، اگر کار صنعتی High-Tech باشد. (منظورم از کار High-Tech این است که کارهایی مثل صرفاً نوشتن یک اپلیکیشن ساده یا ساختن یک سایت معمولی نباشد و واقعا درگیر یک پروژه پیشرفته باشیم)
و اما چرا شرکتها دانشجو جذب میکنند؟ واقعیت این است که بسیاری از شرکتها اصلاً علاقهای به جذب دانشجو و نیروی پارهوقت ندارند، شرکتها در شرایط خاصی دانشجو جذب میکنند که بررسی دلایل آن در اینجا نمیگنجد، اما معمولاً از دانشجوی پارهوقت انتظارات بالایی (به خصوص در طول ترم) ندارند و به دانشجو فرصت تجربه فضای حرفهای و استفاده از دانش فنی موجود در شرکت را میدهند تا بتواند پتانسیلهای خودش را نشان دهد. همچنین بسیاری از شرکتهایی که میشناسم کاملاً ایام امتحانات میانترم و پایانترم دانشجویان را درک میکنند. مخصوصاً شرکتهایی که مدیران آنها دانشآموختهی دانشگاه شریف باشند، در این زمانها واقعاً همکاری میکنند.
در متن شماره قبل آشنایی با افراد با تجربه و خوشفکر، فرصت گفتوگو و بهرهمندی از نظرات آنها به عنوان مزایای دوران دانشجویی مطرح شدهبودند، که البته سخن درستی است؛ اما به عنوان یک نفر که هر دو فضای دانشگاه و صنعت را تا حدودی دیدهاست، میگویم این فرصت در شرکت هم وجود دارد. در شرکتهای موفق خصوصاً شرکتها بزرگ میتوانید تعداد قابل توجهی از افراد خوشفکر و بسیار باتجربه را پیدا کنید و با آنها در مسائل مختلف فنی و مدیریتی، مسیر زندگی، انتقال تجربه و ... تعامل داشته باشید. برای یک دانشجوی کامپیوتر شریف جلسات کاری و حتی استراحت وقت ناهار شرکت معمولاً هم جذابتر و هم مفیدتر و هم آموزندهتر از جلسات مشابه در دانشگاه و ناهار سلف هست! (البته این به معنی این نیست که اصلاً دانشگاه نباشیم، به نظر من حالت بهینه استفاده از هر دو در دوران دانشجویی است)
یک نکته هم در مورد تکبعدی شدن زندگی در صورت انجام کار و خواندن درس به صورت همزمان بگویم، بله این احتمال وجود دارد، اما اگر اراده کنید معمولاً به وجود نمیآید، بیشتر دوستانی که از نزدیک میشناسم و وارد صنعت شدهاند، تک بعدی نشدهاند، هم چنان مطالعهی بالایی دارند، تفریحات خوبی دارند و برنامههای مختلف زندگیشان خوب اما بهنیه و با راندمان بالا جلو میرود. مدیریت زمان و به قول یکی از دوستان توانایی Context-Switch بین مسائل مختلف بدون این که ذهن درگیر مسئلهی قبلی باشد، مهارتهایی هستند که میتواند ارمغان کار همزمان با تحصیل باشد.