علوم کامپیوتر در مقابل مهندسی نرم افزار: کدام رشته برای شما بهتر است؟

علوم کامپیوتر در مقابل مهندسی نرم افزار: کدام رشته برای شما بهتر است؟

استرس نداشته باشید ، همه چیز منطقی خواهد بود

سلام به همگی! نام من YK است و در حال حاضر CS Dojo را اجرا می کنم ، یک کانال آموزش برنامه نویسی YouTube با بیش از 200،000 مشترک. من همچنین قبلاً توسعه دهنده نرم افزار در Google بودم.

دو مورد از رایج ترین سوالاتی که مخاطبان از من می پرسند عبارتند از: /pq>

و:

"اگر می خواهم مهندس نرم افزار شوم ، آیا باید علوم کامپیوتر یا مهندسی نرم افزار را انتخاب کنم؟"

در این مقاله ، پاسخ خواهم داد این س questionsالات و تجزیه و تحلیل سریع خود را در مورد این دو گرایش به شما ارائه می دهم.

مروری سریع بر این دو گرایش

علوم کامپیوتر مطالعه نحوه کار رایانه ها است ، بیشتر از لحاظ نظری و اگر ریاضی ، منطق را دوست دارید یا می خواهید وارد حوزه ای تخصصی در CS مانند هوش مصنوعی ، یادگیری ماشین ، امنیت یا گرافیک شوید ، باید علوم کامپیوتر را انتخاب کنید. مهندسی نرم افزار مطالعه نحوه ساخت سیستم های نرم افزاری از جمله موضوعاتی مانند مدیریت پروژه ، تضمین کیفیت و آزمایش نرم افزار است. شما باید موتور نرم افزار را انتخاب کنید اگر به روش عملی علاقه دارید و می خواهید نحوه ساخت و نگهداری نرم افزار را بیاموزید. هم علوم کامپیوتر و هم مهندسی نرم افزار اصول برنامه نویسی و علوم کامپیوتر را آموزش می دهند ، بنابراین می توانید انتخاب کنید برای درک تفاوت بین رشته های علوم کامپیوتر و مهندسی نرم افزار ، بیایید نگاهی به برنامه های درسی آنها در دانشگاه واترلو در کانادا بیندازیم که یکی از بهترین کامپیوترها را دارد. برنامه های علمی در آمریکای شمالی.

چشم اندازهای شغلی

بیایید انواع مشاغل و کارآموزی هایی را که می توانید از طریق هر برنامه کسب کنید ، مقایسه کنیم. وب سایت دانشگاه واترلو چندین مثال ارائه می دهد.

در اینجا برخی از عناوین شغلی و شرکت های فارغ التحصیلان علوم کامپیوتر آمده است:

توسعه دهنده وب/معمار ، گروه Steele < uli> Programmer، Harry Rosen Inc.
Mobile/Cloud Developer، Clearbridge Associates Limited Engineering software، General Dynamics Canada Engineering Development Software Engineering، Microsoft مهندس چابک ، آزمایشگاههای محوری تحلیلگر کسب و کار ، شرکت تایر کانادایی حامی برنامه نویس ، Google مدیر محصول ، Dropbox < p> و در اینجا برخی از عناوین شغلی و شرکت های فارغ التحصیلان مهندسی نرم افزار وجود دارد: ، Arius Software Corporation مهندس نرم افزار ، VistaPrint USA مهندس نرم افزار ، Harris Corporation توسعه دهنده نرم افزار ، Accenture Inc. محصول فنی مدیر - طراحی و توسعه نرم افزار nt، NexJ Systems Inc مشاور ، PureFacts Financial Solutions مشاور پیاده سازی ، Desire2Learn

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

گزینه های مرتبط دیگری نیز وجود دارد: به عنوان مثال مدیر محصول ، تحلیلگر QA و مشاور فناوری. گزینه های شما بستگی به مجموعه مهارت های خاص شما دارد.

دوره های سال اول

اکنون ، بیایید نگاهی به دوره های مورد نیاز هر برنامه بیندازیم. بیایید ابتدا برخی از دوره هایی را که باید در سال اول خود بگذرانید مقایسه کنید.

علوم کامپیوتر

CS 135 - طراحی برنامه های کاربردی CS 136 - طراحی الگوریتم و انتزاع داده MATH 135 - جبر MATH 136 - جبر خطی 1 ریاضی 137 - حساب 1 ریاضی 138 - حسابداری 2 بعلاوه چند مورد انتخابی

مهندسی نرم افزار

CS 137 - اصول برنامه نویسی CS 138 - جمع آوری و پیاده سازی داده < /uli> MATH 115 - جبر خطی برای مهندسی MATH 117 - حساب 1 برای مهندسی ریاضی 135 - جبر برای افتخارات ریاضیات ECE 105 - فیزیک مهندسی برق 1 ECE 106 - برق و مغناطیس < uli> ECE 124 - مدارها و سیستمهای دیجیتال ECE 140 - مدارهای خطی SE 101 - روشهای مهندسی نرم افزار

همانطور که مشاهده می کنید ، سال اول دوره ها نیز تقریباً مشابه هستند آنها هر دو چند دوره اساسی علوم کامپیوتر و چند درس ریاضی در جبر و حساب محاسباتی را پوشش می دهند.

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

دوره های بعد از سال اول

دوره های مورد نیاز و انتخابی بعد از سال اول چطور؟ بیایید چند نمونه را بررسی کنیم.

علوم کامپیوتر

MATH 239 مقدمه ای بر ترکیبات احتمال STAT 230 STAT 231 آمار < /uli> CS 240 ساختار داده و مدیریت داده CS 241 مبانی برنامه های متوالی CS 245 منطق و محاسبه CS 246 شی گرا توسعه نرم افزار <- برای رشته های مهندسی نرم افزار الزامی نیست سازمان و طراحی رایانه CS 251 الگوریتم های CS 341 سیستم عامل های CS 350 < uli> به علاوه ، چند مورد از علوم رایانه

مهندسی نرم افزار:

CHE 102 Chemistry for Engineers رایانه های دیجیتال ECE 222 (شامل زبان مونتاژ) ECE 358 شبکه های کامپیوتری ریاضیات پیشرفته 213 برای مهندسان نرم افزار ریاضی 239 مقدمه ای بر ترکیبات آمار STAT 206 برای مهندسی نرم افزار MSCI 261 اقتصاد مهندسی: مدیریت مالی برای مهندس s CS 241 مبانی برنامه های متوالی CS 240 ساختار داده ها و مدیریت داده CS 247 اصول مهندسی نرم افزار <- برای رشته های علوم کامپیوتر مورد نیاز نیست الگوریتم های CS 341 رابط کاربری CS 349 <- برای گرایش های علوم کامپیوتر مورد نیاز نیست CS 343 برنامه نویسی همزمان و موازی <- برای رشته های علوم کامپیوتر مورد نیاز نیست CS 348 مقدمه ای بر مدیریت پایگاه داده منطق و محاسبه SE 212 سیستم عامل های SE 350 تست نرم افزار SE SE و اطمینان از کیفیت SE 464 طراحی نرم افزار و معماری SE 463 مشخصات و تحلیل نرم افزار مورد نیاز پروژه طراحی SE 490 بعلاوه ، چند علم کامپیوتر و انتخابی مهندسی برق

اطلاعات زیادی را در اختیار شما قرار داده ام تا در اینجا قابل هضم باشد. اما در اینجا خلاصه من

وقتی صحبت از الزامات ریاضی و آمار می شود ، علوم کامپیوتر و مهندسی نرم افزار تقریباً یکسان است. آنها ترکیب ، احتمال و آمار را پوشش می دهند.

الزامات اصلی علوم رایانه مشابه هستند و شامل الگوریتم ها ، ساختار داده ها و سیستم عامل ها می شوند.

با این حال ، برخی تفاوت های کلیدی وجود دارد:

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

بنابراین ، کدام رشته را باید انتخاب کنید؟

I فکر کنید که بیشتر به ترجیحات شما بستگی دارد:

اگر ریاضی ، منطق را دوست دارید یا می خواهید وارد یک زمینه تخصصی مانند هوش مصنوعی ، یادگیری ماشین ، امنیت یا گرافیک شوید ، باید علوم کامپیوتر را انتخاب کنید. اگر بیشتر به روش عملی علاقه دارید و می خواهید چرخه زندگی کلی نحوه ساخت و نگهداری نرم افزار را بیاموزید ، باید مهندسی نرم افزار را انتخاب کنید.

اما صبر کنید - آن وقت کدام است؟ اگر می خواهید مهندس نرم افزار باشید کدام رشته بهتر است؟

در اینجا نظر من این است: در این دانشگاه خاص (دانشگاه واترلو) ، با این مجموعه خاص از الزامات برنامه ، علوم رایانه رشته بهتری است اگرشما می خواهید مهندس نرم افزار باشید. < /p>

صرفاً برای سادگی ، فرض کنید که امیدوار هستید یکی از پردرآمدترین مشاغل (100000 دلار آمریکا در سال) را به عنوان مهندس نرم افزار در آمریکای شمالی بدست آورید. این مشاغل معمولاً در شرکتهای بزرگ نرم افزاری (در نظر بگیرید مایکروسافت ، گوگل ، آمازون و غیره) یا در شرکتهای بزرگ و با رشد بالا (فکر کنید Dropbox ، Lyft ، Snapchat ، Pinterest و غیره) است.

به طور معمول ، چیزی که آنها در یک نامزد مهندسی نرم افزار به دنبال آن هستند ، توانایی نوشتن کد جامد و ساخت پروژه های جالب ، و همچنین اصول علوم کامپیوتر ، مانند ساختار داده ها و الگوریتم ها است.

من فکر می کنم بهترین راه برای پرورش این مجموعه مهارتها با یادگیری سریع اصول علوم کامپیوتر و صرف وقت برای تمرین حل مشکلات و نوشتن کد است.

بر اساس برنامه درسی مهندسی نرم افزار و بر اساس مشغله دانشجویان مهندسی ، فکر می کنید انجام این کار با مهندسی نرم افزار دشوارتر از علوم کامپیوتر است.

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

من مطمئن هستم که مزایایی برای یادگیری اصول مهندسی نرم افزار (مدیریت پروژه ، طراحی ، آزمایش و غیره) وجود دارد. اما من شخصاً ترجیح می دهم انعطاف پذیری را بر اساس مجموعه ای از مهارت های از پیش تعیین شده در نظر بگیرم. به همین دلیل است که من فکر می کنم علوم کامپیوتر برای تبدیل شدن به یک مهندس نرم افزار با این برنامه درسی رشته بهتری است.

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

چند نکته

توجه 1: دانشگاه های مختلف شرایط متفاوتی برای این دو رشته دارند. این مقاله باید نقطه شروع خوبی باشد ، اما همچنان باید به الزامات برنامه در دانشگاهی که علاقه مند به تحصیل در آن هستید نگاهی بیندازید.

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

منابع

علوم کامپیوتر در واترلو < uli> مهندسی نرم افزار در واترلو

با تشکر از خواندن ، و موفقیت در انتخاب دانشگاه و رشته تحصیلی موفق باشید!

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد