معرفي رشته علوم کامپيوتر از نگاه يک کارشناس ارشد
تعريف:
رشتهي علوم کامپيوتر به شما ميآموزد چگونه قاعدهمند فکر کنيد و چگونه
مسائل را بهصورت مؤثّر حل کنيد. همانطور که درسهايش به خودي خود، فراتر
از مرزهاي علوم کامپيوتر نيز کاربرد دارند.
امّا
بهطور کلي علوم کامپيوتر مطالعهي اطّلاعات است. شما چگونه اطّلاعات را
نمايش ميدهيد؟ يا با چه روشهايي (الگوريتمهايي) ميتوانيد آنها را
پردازش کنيد؟
بيشتر
پاسخهاي روشنفکرانه علوم کامپيوتر را اينگونه تعريف ميکنند: ((علوم
کامپيوتر هيچ قلمرو انحصاري ندارد و اهميّتش زماني مشخّص ميشود که مسائل
گوناگون را حل ميکند.))
اين
رشته به کمک ابزارها و ايدهها به شما قدرت ميدهد تا بتوانيد در هر
قلمرواي که به آن علاقهمنديد، فعّاليّت نماييد، چه در دانشگاه و چه در
خارج از آن.
علوم کامپيوتر چه چيزي نيست؟
برخلاف
باورهاي عاميانه، در واقع علوم کامپيوتر دربارهي برنامهنويسي نيست؛ حتّي
اگر شما در اين رشته برنامهنويسي نيز ياد بگيريد. زبانهاي برنامهنويسي
ابزارهايي هستند که علوم کامپيوتر براي حلّ مسائل آنها را ميسازد و يا از
آنها استفاده ميکند.
علوم
کامپيوتر پل ارتباطي دانش کامپيوتر و رياضي است و مهمترين هدف آن
دستيابي به بهترين الگوريتمهاي موجود (روشهاي حل مسأله) در
کمترين زمان و با کمترين خطا و بيشترين دقّت است. به عبارت ديگر
هدف اين رشته تربيت گروهي متخصّص کامپيوتر است که با ديد رياضيتر و
منطقيتر به حلّ مسائل مطرح شده در علوم کامپيوتر يا رياضي
بپردازند. اين رشته در مقطع کارشناسي داراي 4 گرايش محاسبات علمي، نظريهي الگوريتمها، سختافزار و سيستمهاي اطّلاعاتي
است که دروس گرايش محاسبات علمي در زمينهي برنامهريزي خطي، غيرخطي،
آناليز عددي و نرمافزار در رياضي است؛ يعني در اين گرايش کاربرد رياضيات
در کامپيوتر مطالعه ميشود. گرايش نظريهي الگوريتمها به بررسي راههاي
مختلف حلّ مسئله به ياري روشهاي بهينهتر، سريعتر و بهتر ميپردازد. به
عبارت ديگر هدف اين گرايش پيادهسازي و بهينه کردن الگوريتم است. در گرايش
سختافزار نيز معماري يا ساختار کامپيوتر مطالعه ميشود و گرايش سيستمهاي
اطّلاعاتي نيز به مديريت پروژههاي نرمافزاري و سيستمهاي اطّلاعاتي
ميپردازد. گفتني است که تفاوت اين رشته با مهندسي کامپيوتر گرايش
نرمافزار در اين است که رشتهي علوم کامپيوتر برخلاف مهندسي
کامپيوتر فاقد دروس آزمايشگاهي و کارگاهي است و بيشتر جنبهي
تحقيقات نظري دارد.
تواناييهاي لازم
تسلّط
و علاقه به رياضيات شرط اوّل موفّقيّت در رشتهي علوم کامپيوتر
است و دانشجوي اين رشته بايد بتواند با استدلال رياضي با مسائل
برخورد نمايد. در ضمن بايد اطّلاعات عمومي خوبي داشته و حتّي پس از
فارغالتّحصيلي به مطالعه و تحقيق پشت نکند، چون در طيّ تحصيل تنها
اطّلاعات پايهاي و کلّي را فرا ميگيرد و براي حضور در بازار کار
بايد خود تلاش کند و اهل مطالعه و تحقيق باشد.
موقعيت شغلي در ايران
موقعيتهاي
شغلي فارغالتّحصيل علوم کامپيوتر شباهت بسياري با مهندسي کامپيوتر
گرايش نرمافزار دارد، امّا در کل نقش فارغالتّحصيل اين رشته به
عنوان مدير و هماهنگ کننده، بسيار مهم و قابل توجّه است. فردي که
مسؤول انتخاب راهحل مسائل و حلّ آنها، همچنين تقسيم الگوريتمها
در بين مهندسين نرمافزار و در انتها جمع کردن قسمتهاي توزيع شده
ميباشد.
درسهاي اين رشته در طول تحصيل
دروس اصلي و تخصّصي مشترک در گرايشهاي مختلف علوم کامپيوتر:
رياضي
عمومي، فيزيک پايه، آمار و احتمال، اصول کامپيوتر، اصول سيستمهاي
کامپيوتري، جبر خطي عددي، رياضيات گسسته، آناليز عددي، ساختمان
دادهها و الگوريتمها، نظريه اتوماتا و زبانها، کامپايلر، نظريه
محاسبات، اصول طراحي نرمافزار، منطق، ذخيره و بازيابي اطلاعات،
پايگاه دادهها، اصول سيستمهاي عامل، شبيهسازي کامپيوتري،
زبانهاي برنامهسازي، اصول مديريت، مباني اقتصاد.
دروس تخصصي گرايش محاسبات علمي
برنامهريزي خطي، برنامهريزي غيرخطي، نرمافزار رياضي، آناليز عددي، طراحي هندسي کامپيوتري.
دروس تخصصي گرايش نظريه الگوريتمها
برنامهريزي پويا، نظريه گراف، بهينهسازي ترکيبي و آناليز شبکهها، نظريهي کدگذاري، سيستمهاي صفي و مدلهاي کارآيي.
دروس تخصصي گرايش سختافزار
مدارهاي منطقي، معماري کامپيوتر، ريزپردازنده
دروس تخصصي گرايش سيستمهاي اطّلاعاتي
تحليل
و طرّاحي سيستمهاي اطّلاعاتي، متدولوژي ساخت سيستمهاي اطّلاعاتي،
مديريت پروژههاي نرمافزاري، سيستمهاي اطّلاعاتي مديريت.
بازنويسي: لولاو مرادي –کارشناسي ارشد رياضي محض دانشگاه تربيت مدرس- مسئول دفترچهي آزمونهاي تيزهوشان گروه دبستان
آشنایی با شغل برنامه نویسی
برنامه نویسان رایانه دستورالعملهائی
باجزئیات کامل نوشته و آزمایش وپشتیبانی میکنند. به این دستورالعملها که
رایانه برای کار کردن باید از آنها پیروی کند ، برنامه گفته میشود. کار
دیگر آنها طراحی و آزمایش کردن ساختارهای منطقی برای حل کردن مسائل توسط
رایانه میباشد. بسیاری از نوآوریها در زمینه برنامه نویسی مانند فن آوریهای
پیشرفته محاسبه وزبانها و ابزارهای پیچیده برنامه نویسی به برنامه نویسان
نقشی جدید داده و بسیاری از کارهای برنامه نویسی دنیای امروز را بوجود
آورده اند. عنوان و توصیف کار آنها بسته به نوع سازمانی که درآن کار میکنند
متفاوت میباشد. بنابراین ، برنامه نویس رایانه به کسی اطلاق میشود که کار
اصلی وی برنامه نویسی است ، اگرچه تفاوتها درمسؤولیتها و سوابق تحصیلی
بسیار گسترده است.
این برنامه نویسان هستند که به رایانه ها
میگویند که چه باید بکنند. به عنوان مثال از کجا اطلاعات لازم را بگیرند ،
چگونه فرایندی بر روی این اطلاعات انجام دهند و از چه تجهیزاتی استفاده
کنند. برنامه ها برحسب نوع اطلاعاتی که باید استفاده یا تولید کنند متفاوت
میباشند. مثلا برنامه هائی که برای به روز درآوردن اطلاعات مالی به کار
میروند از آنهائی که برای شبیه سازی شرایط پرواز دریک شبیه ساز رایانه ای
برای تعلیم دادن به خلبانان به کار میروند کاملا متفاوت میباشند. اگرچه
برنامه های ساده را میتوان در مدت چند ساعت نوشت ، برنامه هائی که از
فرمولهای پیچیده ریاضی استفاده میکنند ویا داده های خود را از سیستمهای
مختلف دریافت میکنند ممکن است به یک سال کار نیاز داشته باشند. در بیشتر
موارد ، چندین برنامه نویس در قالب یک تیم زیر نظر یک سرپرست برنامه نویسی
کار میکنند.
برنامه نویسان برنامه ها را با توجه به
خصوصیاتی که به صورت اولیه توسط مهندسین نرم افزار رایانه ویا تحلیل گران
سیستم تعیین شده اند مینویسند. پس از اینکه فرایند طراحی پایان میابد ،
برنامه نویسان وارد عمل شده و طرح آماده شده را به یک سری از دستورالعملهای
منطقی که توسط رایانه قابل پیگیریست تبدیل میکننند. آنان سپس این
دستورالعملها را به رمزهای یکی از زبانهای برنامه نویسی رایانه مانند جاوا
یا سی تبدیل میکنند. بسته به هدفی که برنامه دنبال میکند ، از زبانهای
برنامه نویسی متفاوتی استفاده میشود. مثلا از کوبول بیشتر برای کارهای
تجاری ، از فرترن در کارهای علمی و مهندسی و از سی پلاس پلاس در هر دو مورد
به شکل وسیعی استفاده میشود. برنامه نویسان عموما به بیش از یک زبان
برنامه نویسی تسلط دارند و از آنجائیکه بسیاری از این زبانها به هم شبیه
هستند ، آنها نسبتا به سادگی میتوانند زبانهای دیگر را نیز بیاموزند. در
عمل برنامه نویسان عنوان خود را یا از برنامه ای که به آن مسلط هستند
میگیرند ، مانند برنامه نویس جاوا ، ویا از نوع کار یا محیطی که درآن کار
میکنند مانند برنامه نویس بانک داده ها ، برنامه نویس پردازنده مرکزی ویا
برنامه نویس اینترنت.
بسیاری از برنامه نویسان ، برنامه های
موجود را به روزرسانی و ترمیم میکنند ویا تغییر و گسترش میدهند. آنها وقتی
در قسمتی از یک کد که به آن روتین گفته میشود تغییری میدهند ، باید کاربرها
را از عملکرد جدید آن روتین آگاه کنند. این کار بوسیله گنجاندن توضیحات
لازم در بین کدها انجام میشود ، بدین ترتیب دیگران میتوانند عملکرد برنامه
را درک کنند. بسیاری از برنامه نویسان از ابزاهای کمک مهندسی نرم
افزاررایانه ای برای خودکار سازی بسیاری از عملیات کد نویسی استفاده میکنند
. این ابزارها برنامه نویس را قادر میسازند تا بر روی نوشتن قطعات منحصر
به فرد برنامه متمرکز شود ، چرا که این ابزارها قطعات مختلف برنامه در حال
ساخت را خودکارسازی کرده وبه جای نوشتن خط به خط ، بخشهای کاملی از کدها را
خود به خود بوجود میاورند. این روش باعث بوجود آمدن برنامه هائی یکدست تر و
قابل اعتمادتر نیز شده و باحذف مراحل تکراری ، توان بهره وری برنامه
نویسان را بالا میبرد.
برنامه نویسان برای آزمایش برنامه ، آنرا
پس از نوشتن ، اجرامیکنند تا از عملکرد صحیح آن اطمینان حاصل کنند. اگر
اشتباهی دراجرای برنامه وجود داشته باشد ، برنامه نویس باید آن قسمت را
تغییر داده و دوباره امتحان کند تا زمانیکه برنامه درست عمل کند. به این
کار اشکال زدائی دیباگ ) گویند. برنامه نویسان ممکن است این عملیات اشکال
زدائی را تا زمانی که از برنامه استفاده میشود ادامه دهند.)
برنامه نویسان اغلب به دو دسته اصلی تقسیم میشوند:
۱- برنامه نویسان برنامه های اجرائی
برنامه نویسان برنامه های اجرائی، برنامه هایی برای اجرای یک کار خاص ،
مثلا صورت برداری از کالاها در یک شرکت ، مینویسند. آنها ممکن است بازنگری
یک نرم افزار را به عهده بگیرند.
۲- برنامه نویسان سیستم
برنامه نویسان سیستم برنامه هائی برای کنترل نرم افزاری سیستمهای رایانه ای
مینویسند که دراین زمینه میتوان از سیستمهای عامل ، سیستمهای شبکه و
سیستمها ی بانک داده ها نام برد.
گروه اخیر ، در مجموعه دستورالعملهائی که
نحوه عملکرد شبکه ، ایستگاه کاری و پردازنده مرکزی سیستم را برای اجرای
دستورات وارده و نحوه دسترسی به تجهیزات جانبی مانند پایانه ها ، چاپگرها و
دیسک خوانها را تعیین میکنند ، تغییرات لازم را میدهند. به دلیل داشتن
دانش گسترده از تمامی سیستم رایانه ، برنامه نویسان سیستم ، به برنامه
نویسان برنامه های اجرائی دریافتن ریشه مشکلاتی که دربرنامه های آنها پیش
میآید کمک میکنند. برنامه نویسان شرکتهای تولید کننده نرم افزاربرای تولید
نرم افزارهای سفارشی یا عمومی ، از بازیهای رایانه ای و برنامه های آموزشی
گرفته تا برنامه هائی برای نشر رومیزی ، برنامه ریزی مالی ، برنامه ها ی
صفحه گسترده ، با متخصصین رشته های دیگر همکاری میکنند. در بسیاری از موارد
این نحوه همکاری در ایجاد بسته های نرم افزاری ، یکی از بخشهای صنعت
رایانه که از بیشترین میزان رشد برخوردار است ، کاربرد دارد. در بعضی
شرکتها ، بخصوص شرکتهای کوچک ، افرادی به عنوان برنامه نویس ـ تحلیل گر هم
مسؤولیت برنامه نویسی و هم تحلیل سیستم را به عهده دارند. زبانهای برنامه
نویسی پیشرفته و امکانات برنامه نویسی شیء گرای جدید ، بازده کاری برنامه
نویسان و کاربران را افزایش داده است. امکانات رایانه های شخصی و نرم
افزارهای جدید تا حدودی مرز بین کار بر و برنامه نویس را از بین برده است.
به عنوان مثال بسته های نرم افزاری جدید مانند برنامه های مدیرت صفحه
گسترده و بانکهای اطلاعاتی به کاربران امکان نوشتن برنامه های ساده ای را
برای دسترسی به داده ها و انجام محاسبات داده است.
برنامهنویسی رایانه در فرهنگ واژه غیر
متخصصین ممکن است به تمام پروژه ساخت نرمافزار یا برنامهٔ رایانهای گفته
شود. با این همه برنامهنویسی تنها بخشی از فرآیند توسعه نرمافزار یا
برنامه رایانهای است. اهمیت، توجه و منابع اختصاص داده شده به
برنامهنویسی، بسته به ویژگیهای مشخص شده محصول و خواست افراد درگیر در
پروژه و کاربران و در نهایت شیوهٔ انتخاب شده مهندسی نرمافزار متغیر است.
برنامهنویسی کامپیوتر (که اغلب در
انگلیسی programming یا coding گفته میشود) فرآیند نوشتن، اشکال
زدایی(debug) و نگهداری کد منبع (source code) برنامه کامپیوتر میباشد.
این کد منبع با یک زبان برنامه نویسی نوشته شده است. این کد منبع ممکن است
تغییر داده شده یک کد قبلی و یا یک کد کاملا جدید باشد. هدف برنامه نویسی
ساختن یک برنامه میباشد که یک رفتار خواسته شده را به نمایش بگذارد.
نقش آنها به این صورت است که مسیول تبدیل جزییات و گزارش تمام مسایل و رویه
ها به نمودارهای جریان منطقی میباشند،به این منظور که آنها را به زبان
کامپیوتر تبدیل کنند.آنها همچنین برنامه های کامپیوتری را توسعه می دهند و
مسیولیت نوشتن برنامه ها را هم به عهده دارند.اما برنامه نویسان کامپیوتر
چه وظایفی به عهده دارند؟
وظایف:
۱-تصحیح خطاها با ایجاد تغییرات مناسب و بعد،چک کردن مجدد برنامه برای اطمینان از عدم وجود خطا.
۲-کار کردن با نسخه های آزمایشی برنامه ها برای اطمینان از اینکه درست طراحی شدند و ساختار صحیح دارند.
۳-نوشتن نسخه های اولیه و مستندسازی اولیه ی برنامه ها و بررسی های پی در پی به منظور اینکه برای همه قابل فهم باشد.
۴-نوشتن،به روز رسانی و نگهداری برنامه های کامپیوتری یا بسته های نرم
افزاری برای به عهده گرفتن مشاغل خاص نظیر:ردیابی موجودی ها،ذخیره سازی
داده ها و یا کنترل کردن هر نوع تجهیزات دیگری.
۵-ملاقات با مدیرعامل،مهندسین و پرسنل فنی برای توضیح دادن هدف
برنامه،تشخیص مسایل و مشکلات و پیشنهادهایی برای تغییرات در صورت لزوم به
آنها.
۶-گسترش دادن برنامه های موجود برای هرچه بیشتر کارا کار کردن.
۷-نوشتن،تجزیه و تحلیل،بازبینی و بازنویسی برنامه ها،استفاده از جدول جریان
کار، و نمودارها و به کارگیری دانش کامپیوتری و استفاده از منطق نمادی و
موضوعات گوناگون.
۸-نوشتن راهنما و دستورالعمل برای کاربران نهایی.
۹-تحقیق در مورد اینکه آیا شبکه ها،ایستگاه های کاری،واحد پردازش مرکزی
سیستم و یا تجهیزات جانبی با دستورالعمل های برنامه ها هماهنگ هستند یا نه؟
۱۰-آماده کردن نمودارهای جریان کار که ورودی ها و خروجی ها و عملیات منطقی
را توصیف کند و آنها را به مجموعه ای از دستورالعمل ها که به زبان
کامپیوتری نوشته شدند تبدیل نماید.
۱۱-تجزیه و تحلیل سیستم ها برای نگه داری و کنترل نرم افزارهای سیستم کامپیوتری.
۱۲-با مشورت و کمک به اپراتورهای کامپیوتری یا تحلیل گران سیستم به رفع مشکلات در نرم افزارهای کامپیوتری کمک می کند.
۱۳-انتساب،هماهنگی و بررسی کار و فعالیت های کارکنان.
۱۴-همکاری با تولیدکنندگان کامپیوتر و سایر کاربرها برای توسعه و ارتقای نرم افزارهای جدید.
۱۵-آموزش زیردستان در مواردی مانند برنامه نویسی و کد کردن برنامه ها.
زبانهای برنامه نویسی:
زبانهای برنامهنویسی ساختارهای زبانی
دستورمداری در رایانهها هستند که بهوسیلهٔ آنها میتوان یک الگوریتم را
بهوسیلهٔ ساختارهای دستوری متفاوت برای اجرای رایانه توصیف کرد و با این
روش امکان نوشتن برنامه جهت تولید نرمافزارهای جدید بوجود میآید. معمولاً
هر زبان برنامهنویسی دارای یک محیط نرمافزاری برای وارد کردن متن
برنامه، اجرا، همگردانی و رفع اشکال آن هستند.
یک زبان برنامه نویسی یک زبان مصنوعی است که برای بیان محاسباتی که توسط یک
ماشین (مخصوصا رایانه) قابل انجام است، طراحی شدهاست.زبانهای برنامه
نویسی برای ایجاد برنامههایی به کار میروند که رفتار یک ماشین را مشخص
میکنند، الگوریتم دقیق را بیان میکنند، و یا روشی برای ارتباط انسانند.
اولین زبان برنامه نویسی به قبل از اختراع رایانه باز میگردد، و برای
هدایت رفتار ماشینهایی مانند دستگاههای نساجی اتوماتیک و نوازندههای
پیانو به کار میرفت. هزاران زبان برنامه نویسی خلق شدهاند، بیشتر در
زمینهٔ رایانه، زمینهای که هر ساله بسیاری دیگر ایجاد میشوند.
تعدادی از زبانهای برنامهنویسی به شمار زیر هستند :
• اسمبلی (Assembly)
• لیسپ (LISP)
• بی (B)
• بی سی پی ال (BCPL)
• سی (C)
• سیپلاسپلاس (++C)
• سی پلاس پلاس/سی ال آی(C++/CLI)
• پاسکال (Pascal)
• جاوا (Java)
• سیشارپ (#C)
• جی شارپ (#j)
• جی پلاس پلاس (++j)
• اف شارپ (#f)
• بیسیک (Basic)
• پایتون (Python)
• پرل (Perl)
• پیاچپی (PHP)
• ای اس پی (ASP)
• ای اس پی دات نت (ASP.Net)
• Matlab
• وی بی دات نت (VB .Net)
• دلفی (Delphi)
• ویژوال بیسیک (visual basic)
• لینگو (Lingo)
نمونه یک برنامه
یک برنامهٔ ساده در زبان برنامهنویسیBasic که از سادهترین زبانهای برنامهنویسی است میتواند به شکل زیر باشد:
محیط کار
محیط کاری برنامه نویسان معمولا دفاتر کار
راحت میباشد. بسیاری از برنامه نویسان برای تحویل به موقع پروژه ها وحل
کردن مسائل مهم کاری ، مجبور به کار برای ساعتهای طولانی و اضافه کاری
هستند. باتوجه به فن آوریهای روز ، ارتباط از راه دور برای بسیاری از
متخصصین رایانه از جمله برنامه نویسان به صورت یک امر عادی در آمده است. با
گسترش شبکه های رایانه ای ، برنامه نویسان بیشتری توانائی ارتباط با
رایانه ی مشتری از راه دور را برای برطرف کردن ایرادها و مشکلات پیش آمده
بدست آورده اند.
همانند بسیاری مشاغل دیگر ، برنامه نویسان نیز باید ساعتهای زیادی را جلو
رایانه به تایپ کردن مشغول باشند که این کار آنها را مستعد خستگی چشم ،
کمردرد و مشکلات دست و مچ دست مانند سندروم تونل کارپال میکند.
دروس مهارتی این رشته عبارتند از :
برنامه نویسی با زبان Visual Basic – رایانه کار درجه ۱ – رایانه کار درجه ۲
دروس تکمیلی این رشته عبارتند از:
کار آفرینی –کارورزی –قانون کار – بهداشت وایمنی کار
توضیح:
برنامه نویس مستقل به فردی گفته میشود که بصورت انفرادی اقدام به انجام
پروژههای کامپیوتری و نرم افزاری بصورت قرار دادهای کوتاه مدت انجام
میدهد. با توجه به رشد روز افزون صنعت نرم افزار و تکنولوژیهای مربوطه،
نیاز به برنامه نویسان، طراحان و مشاغل مربوط به این صنعت و تکنولوژی هر
روز بیشتر میشود. این تقاضا به قدری است که امروزه هر فردی برای انجام
کارهای روزمره خود نیاز به کامپیوتر را احساس میکند. دیگر اجرا و انجام
پروژهها و برنامهها مختص به سازمانها و ارگانهای بزرگ نیست! امروزه حتی
یک فرد عادی نیز، برای انجام محاسبات کاری روزمره احتیاج به کامپیوتر و
برنامه نویسی دارد. بطور مثال ممکن است مهندسی نیاز به برنامه مخصوصی داشته
باشد که مقادیری را محسابه و تجزیه تحلیل نماید و این برنامه را در بین
برنامههای تجاری ارائه شده در بازار پیدا نکند و یا مثال بسیار ساده تر
پروژههای دانشجویی میباشد که یک دانشجو برای موفقیت در دروس خود باید
انجام دهد اما در اکثر مواقع بخاطر کم تجربگی نیاز به کمک در انجام پروژه
دارد… با توجه به این رشد و تقاضا، نیاز به ساختار جدیدی حس میشود که
پاسخگوی درخواست برنامه نویسی بصورت تخصصی یا مستقل باشد.
تواناییهای مورد نیاز و قابل توصیه رشته برنامه نویسی:
در بیشتر مواقع کارفرمایان کارجویانی را
برای استخدام ترجیح میدهند که واجد مهارتهای عمومی کسب و کاری و تجربه
مربوط به عملیاتهای شرکت باشند. از طرف دیگر هنگام استخدام و بکارگیری
برنامهنویسان،کارفرمایان بیشتر به دنبال افرادی هستند که علاوه بر تسلط بر
مهارتهای ضروری برنامهنویسی،از قدرت تفکر منطقی و توجه ویژه به جزئیات
نیز برخوردار باشند. در حقیقت این زمینه شغلی مستلزم صبر فراوان،مقاومت و
فعالیت در محیطهای پرفشار و پراسترس است. برای نوشتن یک برنامه نرمافزاری
و تست آن به منظور یافتن محدودیتها و مشکلات احتمالی برنامه،دارا بودن قوه
تخیل قوی و ذکاوت فراوان از اهمیت زیادی برخوردار میباشد. در این میان
توانایی کار با مفاهیم مبهم و انتزاعی و قوه تجزیه و تحلیل فنی و تکنیکی
نیز از موارد بسیاری حائز اهمیت برای برنامهنویسان سیستمهای عامل به شمار
میرود. زیرا آنها نرمافزاری را تهیه و طراحی میکنند که عملیات رایانه
در کنترل آن میباشد. مضاف بر این از آنجایی که از برنامهنویسان انتظار
میرود تا در یک تیم پروژه به فعالیت مشغول شده و مستقیماً در تعامل با
کاربران باشند،به همین خاطر کارفرمایان بیشتر در پی بکارگیری افرادی از این
گروه برمیآیند که قادر به برقراری ارتباط و مکاتبه و مذاکره با افراد
غیرفنی و ناوارد هستند.
فرصت ها:
برنامه نویسان در هر صنعتی ممکن است به کار گرفته شوند اما بیشترین فرصتهای
شغلی در صنعت خدمات رایانه و تحلیل داده ها که وظیفه نوشتن و فروش نرم
افزارها را به عهده دارند میباشد. تعداد زیادی از برنامه نویسان نیز در
شرکتهای ارائه کننده خدمات مهندسی و مدیریتی ، شرکتهای مخابراتی ، تولید
کننده های رایانه و تجهیزات دفتری ، مؤسسات مالی ، شرکتهای بیمه ، مؤسسات
آموزشی و ادارات دولتی به کار مشغولند.
بسیاری از برنامه نویسان رایانه به صورت موقتی و قراردادی و یا برای ارائه
خدمات مشاوره ای به خدمت گرفته میشوند. مثلا یک شرکت خرید و فروش ممکن است
برای راه اندازی یک سیستم جدید مدیریت سرویس دهی به مشتریان به کار چندین
برنامه نویس به صورت موقت نیاز داشته باشد. این نحوه کار کردن به شرکتها
اجازه میدهد تا برحسب نیاز کاریشان افرادی با تخصصهای خاص و معمولا آشنا به
آخرین فن آوریها را بدون نیاز به باز آموزی کارکنان خود شرکت به کار
گیرند. این قراردادها ممکن است چند هفته ای یا حتی چند ساله باشند.
آموزش و ادامه تحصیل
آموزش برنامه نویسی در سطوح مختلفی از کلاسها ی آموزشی گرفته تا تحصیلا ت
دانشگاهی انجام میشود . استخدام کنندگان معمولا به میزان دانش فرد در
زبانهای برنامه نویسی توجه دارند و برنامه نویسان نیز میتوانند در یکی یا
چندین زبان برنامه نویسی مانند جاوا یا سی مدرک بگیرند. برای کار یابی در
صورتی که فرد مدرک نداشته باشد ، باید از تجربه کاری زیادی برخوردار باشد.
حتی در مورد کسانی که مدرک برنامه نویسی دارند ، استخدام کنندگان تاکید
اصلی را بر روی تجربه قبلی میگذارند.
با وجود اینکه برنامه نویسان باید با
زبانهای سنتی برنامه نویسی آشنا باشند ، اما تاکید اصلی امروزه بر روی
زبانهای جدید شیء گرا و نسل چهارم و پنجم زبانها که از رابط گرافیکی کاربر
استفاده میکنند میباشد. استخدام کنندگان افرادی را که با تجارت و زمینه
کاری آنها آشنا باشند را ترجیح میدهند.
برای برنامه نویسی سیستم که در بالا به آن اشاره شد ، دانش وسیع درباره
سیستمهای عامل مختلف ضروری است. این شامل توانائی طراحی سیستم عامل برای
کار با انواع مختلف سخت افزار و سازگار سازی سیستم برای برآوردن نیازهای
خاص یک شرکت نیز میباشد. این برنامه نویسان باید با کار با سیستمهای پایگاه
داده ها مانند اوراکل نیز آشنائی لازم را داشته باشند.
یک برنامه نویس باید توانائی تفکر به روش
منطقی و توجه به جزئیات را داشته باشد. این کار نیاز به شکیبائی ، مداومت و
توانائی کار تحلیلی دقیق بخصوص تحت شرایط فشار دارد. ابتکار و قدرت تخیل
نیزبرای طراحی راه حلها و پیشگیری از خطاها از شروط لازم میباشند. برنامه
نویسان سیستم باید توانائی کار بر روی مفاهیم انتزاعی و تحلیل فنی را داشته
باشند. از انجائیکه در بسیاری موارد برنامه نویسان به صورت تیمی کار
میکنند و با کاربرها سروکار دارند ، باید قادر به ارتباط برقرار کردن با
کارمندان غیر فنی نیز باشند.
تازه کارها ممکن است به تنهائی بر روی یک
برنامه اولیه کار کنند ویا به همراه برنامه نویسان با تجربه و به صورت تیمی
به کار گرفته شوند. درهر صورت این افراد تازه کار باید تحت نظارت مستقیم
حرفه ایها قرارگیرند. به علت رشد سریع فن آوری ، برنامه نویسان مجبور به
شرکت در دوره های مکرر باز آموزی میباشند.
چشم انداز آینده
بیشترین رشد در زمینه برنامه نویسی سیستم و اجرائی درآینده درزمینه های
تجزیه و تحلیل داده ها ، تهیه نرم افزار و خدمات مشاوره ای رایانه خواهد
بود. اما رشد برنامه نویسی نسبت به دیگر رشته های تخصصی رایانه کند تر است .
با رشد سریع فن آوری ، نرم افزارهای پیچیده رایانه ای امروزه قادر به
نوشتن بسیاری از کدهای پایه ای برنامه میباشند واین مسئله نیاز به برنامه
نویسهای بیشتر را برای انجام اینگونه کارهای تکراری از بین برده است .
پیشرفت در تولید بسته های نرم افزاری ، ابزارها و زبانهای برنامه نویسی
پیشرفته و رشد توانائی کاربرها در طراحی ، نوشتن و اجرای برنامه های خاص
خودشان بدین معناست که بسیاری از کارهای عملیاتی برنامه نویسی قابل انتقال
به دیگر مشاغل میباشند. با بالا رفتن سطح نوآوری و پیچیدگی فنی ، برنامه
نویسان با رقابت بیشتری در سطح بین المللی روبرو میشوند ، چرا که شرکتها
قادر به سفارش دادن برنامه نویسی با قیمت کمتر به کشورهای دیگر میباشند.
با اهمیتی که امروزه شبکه ها و محیطهای
اینترنتی پیدا کرده اند ، شرکتها به دنبال برنامه نویسانی هستند که قادر به
تبادل داده ها و پیاده سازی تجارت الکترونیک و استراتژیهای اینترانت
باشند. از دیگر زمینه های مورد توجه ، مولتی مدیا و برنامه نویسی مشتری/
سرویس دهنده میباشند. راز موفقیت یک برنامه نویس در آینده پیش رفتن با فن
آوری روز، تبحر دربرنامه نویسی پایگاه داده ها و اینترنت و تلفیق مدرک
دانشگاهی با تجربه کاری میباشد.
زمینه های اشتغال مهارت آموختگان رشته برنامه نویسی:
منشی کامپیوتر، مسئول کارگاههای آموزشی، کمک مربی آموزش کامپیوتر، راهبر
سیستمهای کاربردی کامپیوتر، مسئول آرشیو های نرم افزاری، کمک برنامه ساز
سیستمهای کاربری کامپیوتر،برنامه ساز سیستمهای کاربردی کامپیوتر، مربی
آموزشی کامپیوتر،دستیار تولید کننده سیستمهای کامپیوتری ،مستند ساز
سیستمهای کامپیوتری، نصب کننده وراهبر دستگاههای ریز کامپیوتری، سرپرست
اتاق ریز کامپیوتر، سرپرست راهبری شبکه های محلی کامپیوتر و راهبر روند های
کنترل فرایند های صنعتی
آموزش های رسمی مورد نیاز:
بازار به دنبال برنامه نویسانی است که سطح آموزش و تجربه ی بالاتری داشته باشند.
کارفرمایانی که برای مقاصد مهندسی یا علمی از رایانه استفاده میکنند بیشتر
متقاضی استخدام فارغ التحصیلان دانشگاهی هستند که در رشته های
کامپیوتر،علوم اطلاعاتی،ریاضیات،فیزیک و علوم مهندسی فارغ التحصیل شده
اند.در حالی که کارفرمایان دیگر که برای کاربردهای بازرگانی و تجاری از
رایانه استفاده می کنند، فارغ التحصیلانی را می خواهند که علاوه بر تسلط به
برنامه نویسی،فارغ التحصیل رشته های بازرگانی یا سیستم های اطلاعاتی
باشند.
نحوه ی کسب تجربه:
در صورت نداشتن مدرک تحصیلی مربوط،افراد متقاضی این پست باید از تجربه و
مهارت کافی برخوردار باشند.البته با وجود مدرک تحصیلی،کارفرمایان همچنان بر
تجربه تاکید بیشتری می ورزند.در هر صورت فارغ التحصیلان می توانند با شرکت
در دوره های کارآموزی و آموزشی فوق العاده،چشم انداز شغلی خود را بهبود
بخشند.
نحوه ی کسب مهارت های فنی مورد نیاز:
از آنجایی که تکنولوژی به سرعت در حال تغییر و تحول میباشدبه همین خاطر
برنامهنویسان باید به طور مرتب و مستمراز طریق شرکت در کلاسها و دورههای
آموزشی مختلف مهارتهای خود را روزآمد نمایند. در بیشتر مواقع دورههای
مذکور توسط کارفرمایان و یا شرکتهای نرمافزاری برای برنامهنویسان ترتیب
داده میشوند. در هر صورت شرکت در دورههای آموزشی فوقالعاده و ضمن خدمت
برای برنامهنویسان یک ضرورت همیشگی به شمار میرود. علاوه بر آن با وجودی
که تسلط بر زبانهای سنتی برنامهنویسی همچنان یک امر اجتنابناپذیر برای
برنامهنویسان محسوب میشود ولی این افراد باید با زبانها و ابزارهای
برنامهنویسی جدید و هدفمند که مستلزم تسلط بر برنامهنویسی سیستمی و
واسطهای کاربری گرافیکی هستند، آشنایی کافی داشته باشند.
در این میان دارا بودن گواهینامه فنی یا
حرفهای سادهترین روش اثبات سطح مهارت یک برنامه نویس به شمار می رود. در
زمینه برنامهنویسی سیستم هم افراد واجد صلاحیت باید علاوه بر تسلط کامل بر
سیستمهای عامل قادر باشند با سیستمهای ویژه پایگاه دادهها نیز کار
نمایند.
آینده ی شغلی:
به طور کلی برنامهنویسان تازه کار باید حتماً تحت نظارت یک فرد باتجربه به
کار مشغول شوند. در حالی که افراد با تجربه و ماهر این گروه،که خود را با
نوآوریهای روز فناوری روزآمد نگاه میدارند،از چشمانداز شغلی بسیار خوبی
برخوردار بوده و به راحتی میتوانند به تنهایی و یا در قالب یک تیم پروژه
به فعالیت برنامهنویسی بپردازند. این قبیل افراد در شرکتهای بزرگ معمولاً
به کار نظارت و یا رهبری تیم پروژه گمارده می شوند. برنامهنویسان
نرمافزارهای کاربردی میتوانند بعد از کسب مقداری تجربه و شرکت در
دورههای آموزشی مربوطه به برنامهنویسی سیستمهای عامل نیز مشغول شوند.
این افراد همچنین میتوانند با کسب تجربه کسب و کاری و بازرگانی کافی به
پستهای شغلی تحلیلگر برنامهنویسی،تحلیلگر سیستمهای عامل و یا مشاغل
مدیریتی ارتقاء یابند. در صورت کسب دانش و تجربه با زبانهای پیشرفته
برنامهنویسی و سیستمهای عامل،برخی از افراد این گروه وارد زمینههای
تحقیقی و توسعهای نظیر مولتیمدیا یا فناوری اینترنت میشوند. علاوه بر
این به خاطر این که کارفرمایان بیشتر مایل به مناقصه گذاشتن فعالیتهای
برنامهنویسی خود هستند،به همین خاطر برنامهنویسان ماهر و خبره از فرصتهای
بسیار خوب درآمدی نسبت به بقیه برخوردار میباشند.