اشتباهات دوران دانشگاه

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

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

۲- شبکه اجتماعی ضعیف
آن وقت‌ها فکر می‌کردم رابطه با بقیه همکلاسی‌ها و هم دانشگاهی‌ها یک دوستی صرف است. اما بعدها که دیدم هیچ لینک درست و حسابی برای پیدا کردن کار مناسب، گذراندن سربازی، انتخاب پروژه فارغ‌التحصیلی و خیلی مسائل دیگر نداشته‌ام فهمیدم که سخت در اشتباه بوده‌ام. البته نه این که دوستی‌ها فقط باید بر اساس منفعت باشد اما باید کمی هم به آینده فکر کرد.

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

۴- انتخاب C#‎ به جای جاوا.
آن اوایل دانشگاه همه ما با هم دلفی کار بودیم اما کمی بعد سر و کله دات‌نت و جاوا پیدا شد و خیلی‌ها از جمله خود من دلفی را فراموش و به سمت یکی از این دو سکو رفتیم. آن زمان خیلی با بحث Open Source و… آشنا نبودم و فکر می‌کردم چون جاوا کد باز است ممکن است خیلی رشد نکند. ولی چون مایکروسافت یک شرکت تجاری خیلی بزرگ است حتماً دات‌نت‎ موفق‌تر خواهد بود. البته گذر زمان نشان داد هر چند که دات‌نت‎ چندان شکست نخورد اما آنهایی که به سمت جاوا رفتند موفق‌تر بودند خصوصاً آنها که در ایران بودند. به عنوان مدرک می‌توانید تعداد پروژه‌های موفق در جاوا را مقایسه کنید با پروژه‌های موفق C#‎. به عنوان مثال Hibernate را. اگر نمونه کدها یا سواد آدم‌های جاوا کار را مقایسه کنید با نمونه کدهای C#‎ یا آدم‌های C#‎ کار متوجه می‌شوید که به طور نسبی جاوا کارها با سوادتر و کدهایی که می‌نویسند دقیق‌تر و اصولی‌تر است. در بازار کار هم برنامه‌نویس‌های جاوا محبوبیت بیشتری داشته و حتی میانگین حقوقی بالاتری هم دارند. به طور کلی به نظر می‌رسد در ایران شرکت‌های جاوایی تیم‌های قوی‌تر و برنامه‌نویس‌های بهتری داشته باشند تا شرکت‌های دات‌نتی.

۵- عدم استفاده مفید از سربازی
هر چند که سربازی را باید رفت چون همه می‌روند اما بنده به خاطری کوتاهی‌هایی که در بعضی زمینه‌ها و شبکه اجتماعی (در اینجا آشنا و پارتی) در طول دوران تحصیل کرده بودم نتوانستم امریه پیدا کنم. حتی نتوانستم در شهر یا نیروی دلخواه به سربازی بروم. در نتیجه دو سال از وقت با ارزشم را در تبریز و کوه‌های لرستان سپری کردم. طی این مدت تنها ارتباطم با کامپیوتر مجموعه Microsoft Office و خواندن یک کتاب ASP بود.

۶- عدم اصرار بر کار شرکتی در حین تحصیل
هر چند که حین تحصیل و خصوصاً اواخر آن چندتایی کار پروژه‌ای به تورم خورد. اما اگر همان کارها را به صورت شرکتی انجام می‌دادم هم موفق‌تر عمل می‌کردم، هم با بازار کار رسمی آشنایی بیشتری پیدا می‌کردم و هم می‌توانستم شبکه اجتماعی‌ام را بیشتر گسترش دهم. این موضوع را بعداً وقتی که با تعداد زیادی از دانشجویان شاغل به صورت پاره وقت مواجه شدم بیشتر درک کردم.

۷- دیگر موارد متفرقه مثل عدم کار روی پروژه‌های کد باز معروف، عدم حضور جدی و موثر در المپیادها، مسابقات و همایش‌های دانشجویی، دوست‌یابی نادرست و…

امتحان ورود کارشناسی ارشد

روز جمعه ۲۹ مرداد ۸۹ امتحان ورودی کارشناسی ارشد ناپیوسته مهندسی فن‌آوری اطلاعات دانشکده آموزش‌های الکترونیک دانشگاه شیراز در محل موسسه آیین زندگی حوالی آریاشهر برگزار شد. امتحان گرایش طراحی و تولید نرم‌افزار شامل سوالاتی از دروس زبان، ریاضی، برنامه‌سازی و مهندسی نرم‌افزار بود. صرف نظر از ایردات معمول امتحان، می‌توان ایراداتی را هم به سولات دو درس برنامه‌سازی پیشرفته و مهندسی نرم‌افزار وارد کرد.

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

۲- سوال ۳۳ کاملاً اشتباه بود. کد داده شده وارد حلقه بی‌نهایت می‌شد و البته هیچ کدام از خروجی‌های داده شده در گزینه‌های داده شده را تولید نمی‌کرد. به اصل سوال و گزینه‌های آن دقت کنید:

Public class test {
Public static void main(String[] args)
{
for (int j=1; j<=5; j++) {
for (int k=1; j<=j; k++)
System.out.print('*');
System.out.println();
}
}
}

گزینه اول
*****
****
***
**
*
گزینه دوم
*****
****
***
**
*
گزینه سوم
*
**
***
****
*****
گزینه چهارم
*
**
***
****
*****

البته اگر شرط حلقه دوم را با k<=j عوض کنیم مشکل حل شده و گزینه چهار صحیح خواهد بود.

۳- یک سوال سه بار تکرار شده بود! سوالات ۵۰ و ۵۴ کاملاً یکی بودند و سوال ۵۶ هم همان سوال ۵۰ و ۵۴ بود که فقط کمی متن آن عوض شده و جای دو تا از گزینه‌ها عوض شده بود. سوال عبارت بود از «کدام یک از موارد زیر در طراحی مورد بررسی قرار نمی‌گیرد.»

۴- در بعض از سوال‌ها از معادل‌های فارسی نامأنوسی استفاده بود که جواب دادن به سوالات را بی‌دلیل سخت می‌کرد. از جمله «واسط» به جای interface در سوال ۵۶، «تغییر دهنده» به معنی کلمات public و private که در ابتدای تعریف متودها و دیگر اعضای کلاس‌ها می‌آید.

۵- اشتباهات تایپی و گرامری هم که نایاب نبودند. مثلاً به گنگی سوال ۵۷ دقت کنید: «همبستگی (cohesion) یک نمایان کیفی است از میزان درجه این که یک ماژول …» گزینه اول: بتواند به صورت فشرده‌تر نوشته شود. گزینه دوم…

من البته هیچ وقت به جاوا برنامه ننوشته‌ام ولی حدس می‌زنم اگر یک برنامه‌نویس جاوا در این امتحان شرکت می‌کرد سوتی‌های دیگری هم را پیدا می‌کرد.