نرم افزار

<< رشته مهندسی کامپیوتر - گرایش نرم افزار - مقطع کارشناسی ارشد >>

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

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

اين گرايش در کنار گرايش الگوريتم و محاسبات از گرايش‌هايي است که دانشجويان داراي مدرک کارشناسي از گرايش نرم افزار مي‌توانند بطور مستقيم و بدون نياز به گذراندن واحدهاي جبراني به تحصيل در آن بپردازند تفاوت اين دو گرايش در ضريب دروس تخصصي نرم افزار در کنکور کارشناسي ارشد است. به اين صورت که اين دروس در گرايش مهندسي نرم افزاربا ضريب ۲ اعمال مي‌شوند حال آنکه در گرايش الگوريتم و محاسبات ضريب ۳ منظور مي‌شود. در نتيجه دانشجوياني که تسلط کامل‌تري به دروس نرم افزاري دارند براي تحصيل در رشته مهندسي نرم افزار مي‌بايست نسبت به دانشجوياني که قصد ادامه تحصيل در گرايش الگوريتم و محاسبات را دارند، داراي توانايي هاي رياضي و کامپيوتر پايه بيشتري باشند. با توجه به دروسي که در اين گرايش از گرايش‌هاي کارشناسي ارشد، ارائه مي‌شوند دانشجو مي‌تواند توانايي هاي متفاوتي را کسب کند که در زير به آنها اشاره مي‌شود:

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

تعداد واحدهای دوره کارشناسی ارشد - گرایش مهندسی نرم افزار:

نوع دروس

تعداد واحد

دروس اصلی و اختصاصی

24

پایان نامه

6

سمینار

2

جمع

32

وضعیت نیاز کشور به این رشته

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

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

پر درآمدترین و بهترین شغل های مربوط به این تکنولوژی در دنیا

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

۱.توسعه‌دهندگان نرم‌افزار

این توسعه‌دهندگان نرم‌افزار هستند که تکنولوژی را برای شما کاربردی و جذاب می‌کنند. آنها برای شما برنامه‌های رنگارنگ می‌سازند و مسئولیت خرابی‌ها و مشکلات را نیز بر عهده می‌گیرند.

۲. تحلیلگر سیستم‌های کامپیوتری

بیشتر از یک چهارم این افراد برای شرکتهای طراحی سیستم‌های کامپیوتری کار می‌کنند، اما خب برای حوزه‌های دیگری چون علوم، بهداشت و درمان، بانکداری و امور مالی هم می‌توان از آنها استفاده کرد. پیش‌بینی می‌شود که تا سال ۲۰۲۲ شاهد رشد ۲۴.۵ درصدی در این شغل باشیم.

۳.توسعه‌دهندگان وب

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

۴.تحلیلگر امنیت اطلاعات

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

۵.مدیر پایگاه داده

مدیران پایگاه داده، تحلیل و طراحی پایگاه داده‌های ایجاد کار و بیزینس را فرامی‌گیرند، این افراد معمولا بیشتر از ۴۰ ساعت در هفته کار می‌کنند و پایگاه داده‌هایی می‌سازند که با نیاز کارفرمایشان هماهنگی داشته باشد.

6.برنامه نویس کامپیوتر

برنامه نویسان کامپیوتر در واقع زبان شناسان تکنولوژی هستند. آنها با داشتن دانش مربوط به زبان‌های C++ و جاوا، برنامه‌هایی را برای کامپیوتر و دستگاه‌های هوشمند ما می‌نویسند. افراد فعال در این حوزه بایستی به کار در گروه نیز آشنا باشند.

معرفی شغل برنامه نویس

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

 برخی از برنامه ها نسبتا ساده اند و زمان کمی برای نوشتن آنها لازم است مانند برنامه های موبایل(Mobile application) .  برخی برنامه های دیگر مانند سیستم های عامل کامپیوتر پیچیده ترند و کامل کردن آنها در حدود یک سال یا بیشتر زمان می برد.

 نرم افزار به عنوان یک خدمت ،(SaaS)  یک مفهوم جدید و حوزه رو به رشدی می باشد که شامل برنامه های کاربردی است که از طریق اینترنت ارائه می شود. اگرچه معمولا برنامه نویسان باید برنامه هایشان را برای کاربرد داشتن در محیط های مختلفبازنویسی کنند ، اما برنامه های کاربردی که با استفاده از SaaS تولید می شوند، در همه محیط ها (platform)  کار می کنند و نیازی به تغییر و به روز رسانی ندارند. در این حوزه برنامه نویسان فرصت بیشتری دارند که به تولید نرم افزارهای جدید بپردازند.

برنامه نویس معمولا به تنهایی کار می کند ولی برخی اوقات در پروژه های بزرگ با سایر متخصصان کامپیوتر به صورتی تیمی همکاری می کند. به علت اینکه برنامه نویسی را در هرجایی می توان انجام داد، بسیاری از برنامه نویسان به صورت دورکاری فعالیت می کنند و به قولی آزادکار (Freelancer) هستند.

در ادامه با وظایف و مسئولیت ها، دانش و مهارت مورد نیاز، تحصیلات لازم و نحوه ورود به شغل، فرصت های شغلی و بازارکار، درآمد و تیپ های شخصیتی متناسب با این شغل آشنا می شوید.


وظایف برنامه نویس

  • نوشتن برنامه های کامپیوتر در زبان های مختلف مانند c++ و Java  مطابق با نظر طراح (در پروژه های گروهی) یا کارفرما و مشتری (در پروژه های فردی)
  • به روز کردن و گسترش برنامه های موجود با توجه به نیاز کارفرما یا نیاز بازار
  • تست و اشکال زدایی برنامه های تولید شده
  • استفاده از کتابخانه کدها برای سهولت در نوشتن برنامه ها
  • بررسی مداوم فن آوری های جدید در حوزه برنامه نویسی و استفاده از آخرین تکنیک ها برای نوشتن کدها و برنامه های جدید
  • تهیه برنامه های لازم به منظور اخذ گزارشات از عملکرد سیستم ها و بررسی مستمر برای ارتقاء کارآیی آنها
  • همکاری با طراحان، تحلیل گران، کارشناسان شبکه و بانک های اطلاعاتی به منظور ایجاد تسهیلات لازم در بکارگیری سیستم های مورد نظر
  • همکاری با گرافیست ها و طراحان گرافیکی برای زیباتر شدن ظاهر نرم افزار تولیدی
     

دانش و مهارت مورد نیاز

  • تفکر تحلیلی به منظور درک کامل نتایج کدهای نوشته شده و تداعی نرم افزار مورد نظر
  • تمرکز بالا به منظور جلوگیری از خطا و اشتباه در تولید کدهای جدید و حفظ یکپارچگی در کدهای تولید شده
  • دقت و توجه به جزئیات به منظور جلوگیری از خطا و اشتباه
  • توان حل مساله – زیرا در بسیاری از موارد کد نویسی کامپیوتر دارای پیچیدگی های زیادی است و برنامه نویس باید قدرت تصمیم گیری و حل مسأله را داشته باشد
  • ابتکار و خلاقیت – زیرا یک برنامه نویس در صورتی می تواند به موفقیت برسد و برنامه ای که نوشته خریدار داشته باشد که از خلاقیت و ابتکار در تولید آن استفاده کند و نرم افزاری تولید کند که دارای ویژگی های جدید بوده و نیاز کاربران را در حوزه مورد نظر به خوبی مرتفع نماید.
  • توانایی کار تیمی – زیرا در برخی از پروژه ها کار برنامه نویسی به صورت تیمی انجام می شود و برنامه نویس باید توانایی و مهارت کار تیمی را داشته باشد.

تحصیلات لازم و نحوه ورود به شغل برنامه نویسی

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

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

بازارکار و فرصت شغلی برنامه نویس

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


وضعیت استخدام برنامه نویس در برخی از کشورهای جهان به شرح زیر است :

 آمریکا - پیش بینی می شود میزان استخدام برنامه نویس ها در بین سال های 2012 تا2022  به میزان8  درصد رشد داشته باشد. در حالی که متوسط رشد استخدام همه مشاغل11  درصد خواهد بود.

استرالیا - در 5 سال گذشته میزان استخدام برنامه نویسان در مقایسه با متوسط رشد همه مشاغل (10.2)، رشد 24.2 درصدی داشته است.

حقوق و درآمد برنامه نویس

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

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

مطابق با این تحقیق حقوق برنامه نویس که به عنوان کارشناس در حوزه های مختلف مشغول بکار است، در شرکتهای کوچک به طور متوسط بین 900000 تومان تا 5000000 تومان و در شرکتهای بزرگ بین 1200000 تومان تا 5300000 تومان می باشد.

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

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

درآمد برنامه نویسان در کشورهای دیگر:

آمریکا - متوسط درآمد سالیانه برنامه نویسان 71.380 دلار در سال2010  (برای همه مشاغل 33.840 دلار) و مطابق با آخرین آمارها در سال 2013، حدود 74.500  دلار بوده است.

چارت درسی رشته مهندسی کامپیوتر گرایش نرم افزار