سلام به همگی! نام من YK است و در حال حاضر CS Dojo را اجرا می کنم ، یک کانال آموزش برنامه نویسی YouTube با بیش از 200،000 مشترک. من همچنین قبلاً توسعه دهنده نرم افزار در Google بودم.
دو مورد از رایج ترین سوالاتی که مخاطبان از من می پرسند عبارتند از: /pq>
و:
در این مقاله ، پاسخ خواهم داد این س questionsالات و تجزیه و تحلیل سریع خود را در مورد این دو گرایش به شما ارائه می دهم.
بیایید انواع مشاغل و کارآموزی هایی را که می توانید از طریق هر برنامه کسب کنید ، مقایسه کنیم. وب سایت دانشگاه واترلو چندین مثال ارائه می دهد.
در اینجا برخی از عناوین شغلی و شرکت های فارغ التحصیلان علوم کامپیوتر آمده است:
همانطور که می بینید ، تفاوت زیادی بین انواع مشاغلی که می توانید بدست آورید متداول ترین مشاغلی که فارغ التحصیلان برای هر دو رشته می گیرند توسعه دهنده نرم افزار یا مهندس نرم افزار است.
گزینه های مرتبط دیگری نیز وجود دارد: به عنوان مثال مدیر محصول ، تحلیلگر QA و مشاور فناوری. گزینه های شما بستگی به مجموعه مهارت های خاص شما دارد.
اکنون ، بیایید نگاهی به دوره های مورد نیاز هر برنامه بیندازیم. بیایید ابتدا برخی از دوره هایی را که باید در سال اول خود بگذرانید مقایسه کنید.
همانطور که مشاهده می کنید ، سال اول دوره ها نیز تقریباً مشابه هستند آنها هر دو چند دوره اساسی علوم کامپیوتر و چند درس ریاضی در جبر و حساب محاسباتی را پوشش می دهند.
تنها تفاوت عمده این است که مهندسی نرم افزار دارای اجزای فیزیک و مهندسی برق اضافی است ، در حالی که علوم کامپیوتر دارای چند بخش است. انتخابی بیشتر.
دوره های مورد نیاز و انتخابی بعد از سال اول چطور؟ بیایید چند نمونه را بررسی کنیم.
وقتی صحبت از الزامات ریاضی و آمار می شود ، علوم کامپیوتر و مهندسی نرم افزار تقریباً یکسان است. آنها ترکیب ، احتمال و آمار را پوشش می دهند.
الزامات اصلی علوم رایانه مشابه هستند و شامل الگوریتم ها ، ساختار داده ها و سیستم عامل ها می شوند.
با این حال ، برخی تفاوت های کلیدی وجود دارد:
I فکر کنید که بیشتر به ترجیحات شما بستگی دارد:
در اینجا نظر من این است: در این دانشگاه خاص (دانشگاه واترلو) ، با این مجموعه خاص از الزامات برنامه ، علوم رایانه رشته بهتری است اگرشما می خواهید مهندس نرم افزار باشید. < /p>
صرفاً برای سادگی ، فرض کنید که امیدوار هستید یکی از پردرآمدترین مشاغل (100000 دلار آمریکا در سال) را به عنوان مهندس نرم افزار در آمریکای شمالی بدست آورید. این مشاغل معمولاً در شرکتهای بزرگ نرم افزاری (در نظر بگیرید مایکروسافت ، گوگل ، آمازون و غیره) یا در شرکتهای بزرگ و با رشد بالا (فکر کنید Dropbox ، Lyft ، Snapchat ، Pinterest و غیره) است.
به طور معمول ، چیزی که آنها در یک نامزد مهندسی نرم افزار به دنبال آن هستند ، توانایی نوشتن کد جامد و ساخت پروژه های جالب ، و همچنین اصول علوم کامپیوتر ، مانند ساختار داده ها و الگوریتم ها است.
من فکر می کنم بهترین راه برای پرورش این مجموعه مهارتها با یادگیری سریع اصول علوم کامپیوتر و صرف وقت برای تمرین حل مشکلات و نوشتن کد است.
بر اساس برنامه درسی مهندسی نرم افزار و بر اساس مشغله دانشجویان مهندسی ، فکر می کنید انجام این کار با مهندسی نرم افزار دشوارتر از علوم کامپیوتر است.
یکی دیگر از مزایای این برنامه علوم کامپیوتر این است که به موارد انتخابی علوم کامپیوتر بیشتر اجازه می دهد. این بسیار عالی است زیرا می توانید دوره های خود را در پاسخ به آنچه در بازار کار تقاضا دارد تنظیم کنید. به عنوان مثال ، اگر توسعه برنامه های تلفن همراه مورد نیاز است ، می توانید یاد بگیرید که ؛ اگر محاسبات موازی تقاضا شده است ، می توانید بر روی آن تمرکز کنید.
من مطمئن هستم که مزایایی برای یادگیری اصول مهندسی نرم افزار (مدیریت پروژه ، طراحی ، آزمایش و غیره) وجود دارد. اما من شخصاً ترجیح می دهم انعطاف پذیری را بر اساس مجموعه ای از مهارت های از پیش تعیین شده در نظر بگیرم. به همین دلیل است که من فکر می کنم علوم کامپیوتر برای تبدیل شدن به یک مهندس نرم افزار با این برنامه درسی رشته بهتری است.
البته این فقط نظر من است و این فقط یک دانشگاه خاص است. دوست دارم نظر شما را بشنوم و بدانید اگر در رشته کامپیوتر یا مهندسی نرم افزار تحصیل کرده اید ، تجربه شما چگونه بوده است. لطفاً در نظر زیر به من اطلاع دهید.
توجه 1: دانشگاه های مختلف شرایط متفاوتی برای این دو رشته دارند. این مقاله باید نقطه شروع خوبی باشد ، اما همچنان باید به الزامات برنامه در دانشگاهی که علاقه مند به تحصیل در آن هستید نگاهی بیندازید.
توجه 2: برخی از دانشگاه ها حتی مهندسی نرم افزار ندارند عمده. به عنوان مثال ، دانشگاه بریتیش کلمبیا در ونکوور دارای مدرک علوم کامپیوتر و مهندسی کامپیوتر است ، اما مهندسی نرم افزار ندارد. اما آنها دارای برنامه مهندسی نرم افزار در برنامه علوم رایانه خود و همچنین مهندسی کامپیوتر هستند. اگر می خواهید توسعه دهنده نرم افزار شوید ، با علوم کامپیوتر آشنا شوید. مهندسی کامپیوتر بیشتر بر سخت افزار تمرکز دارد تا علوم کامپیوتر یا مهندسی نرم افزار ، بنابراین ارتباط مستقیمی با شغل معمولی توسعه دهندگان نرم افزار ندارد.
با تشکر از خواندن ، و موفقیت در انتخاب دانشگاه و رشته تحصیلی موفق باشید!