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

 
 
 
این مطلب بازنشر مطلب اصلی داخل بلاگ خودم هستش که میتونین از اینجا(+) بهش سر بزنین :)
 
این مطلب به درد چه کسانی میخوره؟!
تازه در حین انتخاب رشته هستین و دارین در مورد رشته‌های مهندسی تحقیق میکنین و یکی از گزینه‌هاتون مهندسی کامپیوتر هستش.
این رشته رو انتخاب کردین و ترم‌های اول دوم هستین و سردرگمین و نمیدونین قراره چی بشه.
وسطای این رشته هستین و هنوز هدف و راه خودتون رو پیدا نکردین.
اگر جز سه دسته بالا هستین، این مطلب ممکنه اطلاعات خوبی رو بهتون بده. اگرم نیستین بازم مطلب رو بخونین و نکات جدیدی رو بهش اضافه کنین تا شامل طیف وسیع‌تری از تجربیات بشه…
 
قبلش هم این نکته رو بگم که این مطلب صرفن نظرات و تجربیات شخصیم هستش و نه یک دستورالعمل ثابت برامی دانید کرش کامپیوتر چیست ؟ یکی از اتفاقات ناگواریست که ممکن است برای کامپیوتر ها اتفاق بیفتد. اغلب این مسئله با خاموشی کامل و غیرمنتظره سیستم، راه اندازی مجدد و  سپس نمایش یک صفحه آبی رنگ با نوشته های سفید روی صفجه مانیتور و یا لپ تاپ مشاهده می شود که می تواند دلایل مختلفی داشته باشد.
 
گرما
یک پردازشگر بیش از حد گرم شده (CPU) بدون هیچ اخطاری ممکن است سیستم شما را خاموش کند تا از آسیب رسیدن به آن جلوگیری کند. گرمای زیاد کامپیوتر یا لپ تاپ می تواند ناشی از عملکرد نا مناسب فن خنک کننده باشد ک احتمالا گردو غبار  زیادی روی آن را گرفته است. درایورهای هارد هم چنین به گرما حساسند و اگر دمای داخل سیستم شما بیش از حد بالا رود حافظه رم یا مادربورد نیز ممکن است آسیب ببینند. بالا رفتن دمای سیستم و قطعات کامپیوتری میتواند از عمر شارژر لپ تاپ مفید آن ها کاسته و در برخی موارد روی عملکرد نرم افزار های در حال اجرا تاثیر منفی بگذارد. برای همین بهتر است از سلامت فن سیستم خود مطمئن شوید. حتی از فن های خارجی برای خنک ماندن سیستمتان نیز میتوانید استفاده کنید.
 
خطای نرم افزار ها
اگر تنها به هنگام استفاده از یک اپلیکیشن نرم افزار خاص، سیستم شما کرش میکند، این مسئله را میتوان به مشکل دار بودن آن نرم افزار ارتباط دهیم. هم چنین بهتر است با نصب و استفاده آخرین ورژن یک آنتی ویروس معتبر و آپدیت تمامی فابل های لپ تاپ یا کامپیوترتان را اسکن کنید تا از شر ویروس های مزاحمی که در رابط سخت افزار و نرم افزار اختلال ایجاد میکنند و یا برنامه های شما را تحت تاثیر قرار می دهند، راحت شوید.
 
نصب بیش از از اندازه نرم افزارها، به ویژه آنهایی که موجب افزایش سرعت سخت افزارها می شوند نیز می تواند یکی دیگر از علل کرش کردن سیستم شما باشد.
ای سی بایوس به عنوان اولین ای سی بعد از کلاک شروع به کار میکند و کار بایوس چک کردن کل سیستم هست و با اجرا کردن POST یا همان Power On Self Test h اجزای مادربرد را بررسی میکند تا از سالم بودن آن ها اطمینان حاصل کند . بعد از چک کردن اجزا حتما تا حالا صدای تک بوق بعد از روشن شدن رو شنیدید . اون صدا صدای test good هست که نشان سلامت سیستم را میدهد اگر سیستم سلامت نباشد این بوق شاید به حالت های مختلف پخش شود یا اینکه حالات دیگری رخ دهد .
 
البته بایوس کم کم جای خودش رو به UEFI داد که جایگزینی برای بایوس شد . ولی در عمل سیستم های UEFI بایوس را کاملا کنار نگذاشتند . UEFI یک بایوس مدرن و پیشرفته هست که با توانایی های بالا ساخته شده . این توانایی ها رو میشه از قبیل بوت شدن امن (Secure Boot) شارژر لپ تاپ  و رمزنگاری و دسترسی های ریموت و ابزار های خطایابی سیستم و همچنین رابط کاربری پیشرفته تر و زیبا تر از بایوس و استفاده موس در محیط تنظیمات بایوس و قابلیت بود شدن با هار های GPT است البته همین نیست ولی خلاصه خیلی پیشرفته تر از بایوس قدیمی طراحی شد . به عکس های زیر نگاه کنید و تفاوت رو احساس میکنید :
خطای هارد درایو
خطای هارد درایو یکی دیگر از دلایل احتمالی پدیدار شدن این مسئله است. البته اگر مشکل از هارد شما باشد لزوما نیازی به تعویض آن نیست.  چرا که عوامل متعددی وجود دارد که منجر به آسیب دیدگی و از دست رفتن فایل ها، فولدرها و پارتیشن ها شوند. بهتر است ابتدا از سالم بودن سخت افزاری هارد دیسک و تمیز بودن اتصالات سوکت مطمئن شوید. در برخی موارد مشاهده شده است با دفرگ کردن Defrag و یا فرمت کردن هارد دیسک، مشکل کرش کردن سیستم برطرف شده است. اما اگر مشکل سخت افزاری هارد جدی است و از عمر مفید آن زمان زیادی می گذرد ضروری است آن را تعویض کنید.ی همه افراد و البته کمی طولانی ?
من قبل دانشگاه به دلایل زیادی درس خوندن اولویت اولم نبود و همیشه درگیر مسابقات و تمرینات ژیمناستیک و کارهای حاشیه‌ای دیگه بودم اما تصمیم داشتم با ورود به دانشگاه و خوندن رشته مورد علاقه‌ام (مهندسی کامپیوتر) همه چیز رو عوض کنم و بچسبم به درس و با قدرت ادامش بدم.
 
همین کار رو هم کردم و ترم‌‌های اول و دوم معدلم بالای ۱۹ بودش اما نهایتن به این نتیجه رسیدم که این مسیری نیست که من همیشه دنبالش بودم. از صبح برم دانشگاه بعد بشینم تمرین‌هارو انجام بدم و خودم رو برای امتحانا آماده کنم و روزی حداقل یکی دوساعت وقت بزارم روشون. من دنبال خلق ایده‌هام بودم، یک چیزی تولید کنم، بتونم یک ابزاری بسازم برای رفع نیاز مردم، اما این مسیر هیچ شباهتی بهش نداشت.
دنیا دنیای هوش‌مصنوعی و یادگیری ماشین هستش و تمام برنامه‌ها و وب‌اپلیکیشن‌ها به این سمت دارن پیش میرن و در واقع این موضوعات از حوزه‌های ترند روز دنیا هستند و به شدت بازارکار جهانی خوبی داره.
 
بیشتر از این در مورد انصراف دادن و اینکه چرا دانشگاه رو رها نمی‌کنم(حداقل دوره لیسانس) نمینویسم، چون صدرا اینجا(+) خیلی کامل و جامع دلایل خوبی رو آورده و همینطور جادی اینجا(+) در مورد اینکه اگر به دانشگاه برمی‌گشت نکات جالبی رو گفته که پیشنهاد میکنم حتمن حتمن یک سری بهشون بزنید.
 
تا اینجا بیشتر در مورد کسانی حرف زدیم که در حال حاضر مشغول به تحصیل توی رشته مهندسی کامپیوتر هستن، از اینجا روی صحبتمون میره سمت کسانی که در حال انتخاب رشته هستند و از روی شنیده‌ها قصد دارن بیان کامپیوتر…
 
یک آمار خیلی معروفی که معمولن هر چندوقت یکبار توی شبکه‌های اجتماعی دست به دست میشه، آمار تعداد بیکاران فارغ‌التحصیل از رشته‌های مختلف هستش که خب همیشه با اقتدار، فارغ‌التحصیلان رشته مهندسی کامپیوتر صدرنشین هستن. اما چرا؟! شاید میشه گفت یکی از دلایلی که این پست رو نوشتم برای پاسخ به همین سوال هست.
 
یکی از بزرگترین دلایل این قضیه بی‌مهارتی و بی‌تخصص بودن فارغ‌التحصیلان این رشته هستش. یعنی با جرئت میتونم بگم که از هر ۱۰ نفر فارغ‌التحصیل این رشته چیزی حدود ۷نفر هیچ تخصصی از هیچکدوم از شاخه‌های مهندسی کامپیوتر ندارن و فقط دروس رو پشت همدیگه پاس کردن و رسیدن به تهش… این اعدادی که گفتم یک آمار تجربی بود که شاهد این قضیه هم تعداد پیام‌هایی هستش که در آخر هر ترم برای زدن پروژه‌های درسی میگیرم و همینطور افرادی که دربه‌در برای زدن پروژه فارغ‌التحصیلیشون دنبال افراد مختلف هستند. (راستی قبل اینکه این تیپ پیام‌هارو بدین یک سری به اینجا (+) بزنین شاید پروژتونو پیدا کردین ? )
 
بازار کار رشته مهندسی کامپیوتر به شدت به مهارت و تخصص شخص ارتباط داره و متاسفانه این مهارت هارو در هیچ درس دانشگاهی پیدا نمی‌کنید و به همین دلیل اگر کسی صرفن دروس این رشته رو پاس کرده باشه و امید به پیدا کردن کار مرتبط با رشتش داشته باشه، هیچوقت به نتیجه نمیرسه و بیکار میمونه و یا مشغول به یک کار بی‌ربط میشه و تمام اون ۴ سال از عمرش رو بیهوده هدر داده!شارژر لپ تاپ نکته جالبی که میخوام بگم اینه که شاید رشته مهندسی‌کامپیوتر و به‌ویژه برنامه‌نویسی بیشترین آمار جذب نیرو با حقوق‌ و مزایای بسیار مناسب رو داره که برای اثبات این حرف میتونین سری به اینجا(+) بزنین و آگهی‌های استخدام برنامه‌نویس در شرکت‌های مختلف رو ببینید. اما مشکلی که این شرکت‌ها دارن نبود نیروی متخصص و فنی هستش. بعضی از این آگهی‌ها برای مدت ۶ماه تا یکسال در این سایت هستند و هنوز شخص مناسب که مهارت‌های مرتبط با اون موقعیت شغلی داشته باشه رو پیدا نکردن.
 
اگر فکر میکنید که مهندسی کامپیوتر رشته ساده‌ای هستش و فقط برای گرفتن یک مدرک لیسانس میخواین درس بخونید پیشنهادم اینه اصلن این رشته رو انتخاب نکنید. چون به هیچ‌وجه ساده نیست و رشته‌های ساده‌تری برای اینکار وجود دارن.
 
توی ذهنتون اگر به شبکه، انیمیشن، گرافیک، امنیت و هک، برنامه‌نویسی وب و موبایل فکر میکنید و دنبال این موارد توی رشته کامپیوتر هستید باز هم در اشتباهید… چون هیچکدوم از موارد بالا رو توی دانشگاه به شما آموزش نخواهند داد.
 
همینطور اگر دنبال یادگیری کارهای روزمره مثل کار با آفیس، فوتوشاپ و این چیزا هستید دوره‌های ICDL بیشتر از رشته دانشگاهی کامپیوتر به‌دردتون میخوره و البته اگر حوصله یادگیری مفاهیم جدید و سخت رو ندارین هم سمت این حوزه نیاین…
 
تمام موارد بالا رو گفتم تا درک بهتری از فضای این رشته، آیندش و بازار کارش ارائه داده باشم و در نهایت تصمیم‌گیری و انتخاب مسیر با خود شماست.رشد، یکی از اصلی‌ترین اهداف استارتاپ‌هاست. در محصولات سنتی مراحل انجام پروژه یکی پس از دیگری (متوالی) صورت می‌پذیرند مثلا تا زمانی که طراحی انجام نشود پیاده‌سازی آغاز نخواهد شد. به این روش در اصطلاح، روش آبشاری می‌گویند. در پروژه‌های استارتاپی که سرعت تغییرات بالاست و کاربرمحوری مزیت محسوب می‌شود روش‌های سنتی پاسخگو نیستند زیرا تیم‌های مختلف نمی‌توانند زمان زیادی را برای پایان یافتن مراحل موردنیاز قبلی منتظر بمانند. مشتریان همواره خواهان محصولات با کیفیت بهتر و با قیمت پایین‌تر هستند و شیوه‌های سنتی نمی‌توانند آنقدر سریع امکان چنین تغییراتی را در محصولات ایجاد کنند. تفکر چابک (Agile) برای رسیدن به این هدف توسعه یافته است. این نگرش توسط جمعی از توسعه‌دهندگان نرم‌افزار تحت عنوان مانیفست چابک در سال 2001 تشریح شد. توسعه نرم‌افزاری چابک روشی برمبنای تکرار (Iterative) است و مشکلات با کمک مشتریان (بازخوردهای آنها به تیم محصول) ارائه و توسط سازمان (یا تیم استارتاپی) حل خواهند شد. این رویکرد ممکن است برای سازمان‌های بزرگ که نگرش توسعه‌ای ندارند ناکارآمد باشد.
 
 
چهار عنصر کلیدی تفکر چابک رفاه مشتری، افراد و اطلاعات، همکاری و تناسب با تغییر است. در این رویکرد افراد و تعاملاتشان بالاتر از فرآیندها و ابزارها قرار دارند و مشارکت مشتری اهمیتی بیشتر از قرارداد کاری دارد. برمبنای این رویکرد متدهایی شکل گرفته‌اند که باتوجه به نوع فعالیت سازمان و روش‌های تعاملی‌اش می‌توانند مورد استفاده قرار گیرند. این رویکردها متنوع هستند ولی دو متد بیشتر شناخته شده در ایران چارچوب اسکرام و کانبان هستند.
 
اسکرام چیست؟
 
اسکرام یک چارچوب تکرارپذیر برای کنترل پروژه است. در این مدل یک صاحب محصول (Product Owner) و یک اسکرام مستر (Scrum Master) در کنار تیم توسعه (که معمولا 3 تا 9 نفر هستند) حضور دارند. صاحب محصول نماینده ذینفعان پروژه است و نیازهای سمت مشتری یا کسب‌وکار را به تیم منتقل می‌کند (بک‌لاگ backlog محصول را ایجاد می‌کند). اسکرام مستر هم فرآیندی که تیم طی می‌کند را رصد می‌کند تا از مسیر خود خارج نشود و به صورت کامل انجام پذیرد. اسکرام دوره‌های زمانی تحت عنوان اسپرینت (sprint) دارد. در طول این مدت وظیفه‌هایی (تسک task) از طرف صاحب محصول به تیم توسعه محول می‌شود و تا پایان اسپرینت باید به پایان برسد. خرد کردن ایده‌ها به وظیفه‌های کوچکتر برای آنکه تیم توسعه بتواند سریعتر آن را ایجاد کند از مزایای استفاده از متدهای چابک است. محدود شدن زمان برای به نتیجه رسیدن پروژه می‌تواند اثر پارکینسون را در تیم‌ها کاهش دهد.
 
کانبان چیست؟
 
یک روش مدیریتی ژاپنی است که برای افزایش بازدهی استفاده می‌شود. هدف کانبان توزیع یکسان حجم کار و نمایش این توزیع در قالب کارت‌هاست. معمولا مدیریت به روش کانبان شامل استفاده از سه ستون برای قرار گرفتن کارت‌های وظیفه است. ستون اول کارت‌های برای انجام (to do)، ستون دوم در حال انجام (doing) و ستون سوم انجام شده (done) هستند. روش کانبان مدیریت، دسته‌بندی و برنامه‌ریزی کارها را به شکلی نظام‌مند ساده می‌کند.
 
نتیجه‌گیری
احساس خود را شناسایی کنید
شما در قدم اول بهتر است حس خود را شناسایی کنید و آن را ابراز کنید زیرا فشار دادن احساسات گزینه خوبی نیست. جالب است بدانید اگر تلاش کنید تا خشمتان را پنهان کنید یا آن را نادیده بگیرید مطمئنا از بین نمی رود. حتی اگر برای مدت کوتاهی فرو بروید، باز جور دیگر و در جایی دیگر خود نشان خواهد داد.
 
با خود حمدلی نش
شما اگر عصبانی شده اید نیازی نیست که خود را ناراحت یا خجالت زده شوید. قدم بعد از شناسایی احساس، همدلی با خود است. ببینید چطور این احساس را پیدا کرده اید و سعی کنید خود را درک کنید. باور کنید این کار باعث آرامش شما خواهد شد.
 
واکنش تان به تاخیر انداختن
 
تجربه ثابت کرده است که در زمان عصبانیت اعمال و گفتارمان باعث پشیمانی و خجالت زدن خواهد شد. این بدین معنی نیست که عصبانی و ناراحتی تان را پنهان کنید و یا در دل بریزید اما بهتر است با کمی تاخیر آن را بیان کنید. چون زمانی که حتی برای چند دقیقه گذشته، مغز دستور بهتر و معقول ترری می دهد و از حالت دفاع به حالت منطقی در می آید.
 
تنفس عمیق و نوشیدن آب
یکی از راهکارهای بسیار ساده و قدیمی، کشیدن چند نفس عمیق است و کمی آب بنوشید. این کار بسیار موثر است.
 
حواس خود را پرت کنید
توصیه می شود که خود را به کار دیگری سرگرم کنید به عبارت دیگر حواس خود را پرت کنید. شما می توانید با تماشای فیلم یا گوش دادن به موسیقی و حتی قدم زدن به خودتان کمک شایانی کنید. حتی فکر کردن به یک خاطره خوب می تواند حالتان را بهتر کند.
 
با دوستتان حرف بزنید
با دوست صمیمی و قابل اعتماد خود صحبت کنید تا هم آرامش پیدا کنید و هم اینکه راه حلی برای مشکل خود بیابید. اغلب ما بعد از صحبت با دوستمان حالمان بهتر خواهد شد.
 
دکوراسیون خانه تان را تغییر دهید
شما می توانید با تغییر در دکوراسیون خانه،شارژر لپ تاپ حال خود را تغییر دهید. اگر هم این امکان را ندارید تمیز کردن و مرتب کردن خانه هم گزینه های خوبی هستند.
 
حال می دانیم در موقع عصبانیت چکار کنیم.
 
در بازارهای امروز، رویکردهای سنتی در توسعه محصولات شانس شکست بالایی دارند اما رویکردهای نوین همچون روش‌های چابک می‌توانند از شکست محصولات جلوگیری کنند. این روش‌ها با تجزیه فعالیت‌ها به بخش‌های کوچکتر و در ساختاری تکرارشونده، نیازهای مشتری را سریعتر پاسخ می‌گویند و هماهنگ با امکانات بازار و خواسته‌های کاربران بدون صرف هزینه زیاد، پیش می‌روند. تفکر چابک اعتقاد دارد پاسخگویی به تغییرات بیشتر از پیروی از طرح‌های از پی
قبل از ورود به دانشگاه بیشتر کارهای گرافیکی انجام می‌دادم و همینطور المپیاد کامپیوتر هم تا مرحله کشوری شرکت کرده بودم اما هیچی از برنامه‌نویسی و دنیای توسعه و مهندسی نرم‌افزار نمیدونستم. توی اون تایم هیچکس تعریف مشخصی از مسیر برنامه‌نویس شدن یا هر تخصص دیگه‌ای تو حوزه‌های مختلف دنیای آی‌تی نمی‌داد و همه چیز توی یک‌سری مسائل تئوری خلاصه شده بودن و کد زدن‌های الگوریتمیک و پروژه‌های دانشجویی سطحی با یک زبانی مثل سی‌پلاس‌پلاس که حتا همون رو هم درست آموزش نمی‌دادند.