ماهیت كار
برنامه نویسان رایانه دستورالعملهائی باجزئیات كامل نوشته و آزمایش وپشتیبانی میكنند. به این دستورالعملها كه رایانه برای كار كردن باید از آنها پیروی كند ، برنامه گفته میشود. كار دیگر آنها طراحی و آزمایش كردن ساختارهای منطقی برای حل كردن مسائل توسط رایانه میباشد. بسیاری از نوآوریها در زمینه برنامه نویسی مانند فن آوریهای پیشرفته محاسبه وزبانها و ابزارهای پیچیده برنامه نویسی به برنامه نویسان نقشی جدید داده و بسیاری از كارهای برنامه نویسی دنیای امروز را بوجود آورده اند. عنوان و توصیف كار آنها بسته به نوع سازمانی كه درآن كار میكنند متفاوت میباشد. بنابراین ، برنامه نویس رایانه به كسی اطلاق میشود كه كار اصلی وی برنامه نویسی است ، اگرچه تفاوتها درمسؤولیتها و سوابق تحصیلی بسیار گسترده است.
این برنامه نویسان هستند كه به رایانه ها میگویند كه چه باید بكنند. به عنوان مثال از كجا اطلاعات لازم را بگیرند ، چگونه فرایندی بر روی این اطلاعات انجام دهند و از چه تجهیزاتی استفاده كنند. برنامه ها برحسب نوع اطلاعاتی كه باید استفاده یا تولید كنند متفاوت میباشند. مثلا برنامه هائی كه برای به روز درآوردن اطلاعات مالی به كار میروند از آنهائی كه برای شبیه سازی شرایط پرواز دریك شبیه ساز رایانه ای برای تعلیم دادن به خلبانان به كار میروند كاملا متفاوت میباشند. اگرچه برنامه های ساده را میتوان در مدت چند ساعت نوشت ، برنامه هائی كه از فرمولهای پیچیده ریاضی استفاده میكنند ویا داده های خود را از سیستمهای مختلف دریافت میكنند ممكن است به یك سال كار نیاز داشته باشند. در بیشتر موارد ، چندین برنامه نویس در قالب یك تیم زیر نظر یك سرپرست برنامه نویسی كار میكنند.
برنامه نویسان برنامه ها را با توجه به خصوصیاتی كه به صورت اولیه توسط مهندسین نرم افزار رایانه ویا تحلیل گران سیستم تعیین شده اند مینویسند. پس از اینكه فرایند طراحی پایان میابد ، برنامه نویسان وارد عمل شده و طرح آماده شده را به یك سری از دستورالعملهای منطقی كه توسط رایانه قابل پیگیریست تبدیل میكننند. آنان سپس این دستورالعملها را به رمزهای یكی از زبانهای برنامه نویسی رایانه مانند جاوا یا سی تبدیل میكنند. بسته به هدفی كه برنامه دنبال میكند ، از زبانهای برنامه نویسی متفاوتی استفاده میشود. مثلا از كوبول بیشتر برای كارهای تجاری ، از فرترن در كارهای علمی و مهندسی و از سی پلاس پلاس در هر دو مورد به شكل وسیعی استفاده میشود. برنامه نویسان عموما به بیش از یك زبان برنامه نویسی تسلط دارند و از آنجائیكه بسیاری از این زبانها به هم شبیه هستند ، آنها نسبتا به سادگی میتوانند زبانهای دیگر را نیز بیاموزند. در عمل برنامه نویسان عنوان خود را یا از برنامه ای كه به آن مسلط هستند میگیرند ، مانند برنامه نویس جاوا ، ویا از نوع كار یا محیطی كه درآن كار میكنند مانند برنامه نویس بانك داده ها ، برنامه نویس پردازنده مركزی ویا برنامه نویس اینترنت.
بسیاری از برنامه نویسان ، برنامه های موجود را به روزرسانی و ترمیم میكنند ویا تغییر و گسترش میدهند. آنها وقتی در قسمتی از یك كد كه به آن روتین گفته میشود تغییری میدهند ، باید كاربرها را از عملكرد جدید آن روتین آگاه كنند. این كار بوسیله گنجاندن توضیحات لازم در بین كدها انجام میشود ، بدین ترتیب دیگران میتوانند عملكرد برنامه را درك كنند. بسیاری از برنامه نویسان از ابزاهای كمك مهندسی نرم افزاررایانه ای برای خودكار سازی بسیاری از عملیات كد نویسی استفاده میكنند . این ابزارها برنامه نویس را قادر میسازند تا بر روی نوشتن قطعات منحصر به فرد برنامه متمركز شود ، چرا كه این ابزارها قطعات مختلف برنامه در حال ساخت را خودكارسازی كرده وبه جای نوشتن خط به خط ، بخشهای كاملی از كدها را خود به خود بوجود میاورند. این روش باعث بوجود آمدن برنامه هائی یكدست تر و قابل اعتمادتر نیز شده و باحذف مراحل تكراری ، توان بهره وری برنامه نویسان را بالا میبرد.
برنامه نویسان برای آزمایش برنامه ، آنرا پس از نوشتن ، اجرامیكنند تا از عملكرد صحیح آن اطمینان حاصل كنند. اگر اشتباهی دراجرای برنامه وجود داشته باشد ، برنامه نویس باید آن قسمت را تغییر داده و دوباره امتحان كند تا زمانیكه برنامه درست عمل كند. به این كار اشكال زدائی ( دیباگ ) گویند. برنامه نویسان ممكن است این عملیات اشكال زدائی را تا زمانی كه از برنامه استفاده میشود (مثلا چندین سال ) ادامه دهند. آنهائی كه در محیط پردازشگر مركزی كار میكنند ممكن است دستورالعملهائی برای كاربری كه از برنامه استفاده میكند تهیه كنند.
برنامه نویسان اغلب به دو دسته اصلی تقسیم میشوند. برنامه نویسان برنامه های اجرائی و برنامه نویسان سیستم. برنامه نویسان برنامه های اجرائی ، برنامه هایی برای اجرای یك كار خاص ، مثلا صورت برداری از كالاها در یك شركت ، مینویسند. آنها ممكن است بازنگری یك نرم افزار را به عهده بگیرند. برنامه نویسان سیستم برنامه هائی برای كنترل نرم افزاری سیستمهای رایانه ای مینویسند كه دراین زمینه میتوان از سیستمهای عامل ، سیستمهای شبكه و سیستمها ی بانك داده ها نام برد. گروه اخیر ، در مجموعه دستورالعملهائی كه نحوه عملكرد شبكه ، ایستگاه كاری و پردازنده مركزی سیستم را برای اجرای دستورات وارده و نحوه دسترسی به تجهیزات جانبی مانند پایانه ها ، چاپگرها و دیسك خوانها را تعیین میكنند ، تغییرات لازم را میدهند. به دلیل داشتن دانش گسترده از تمامی سیستم رایانه ، برنامه نویسان سیستم ، به برنامه نویسان برنامه های اجرائی دریافتن ریشه مشكلاتی كه دربرنامه های آنها پیش میآید كمك میكنند.
برنامه نویسان شركتهای تولید كننده نرم افزاربرای تولید نرم افزارهای سفارشی یا عمومی ، از بازیهای رایانه ای و برنامه های آموزشی گرفته تا برنامه هائی برای نشر رومیزی ، برنامه ریزی مالی ، برنامه ها ی صفحه گسترده ، با متخصصین رشته های دیگر همكاری میكنند. در بسیاری از موارد این نحوه همكاری در ایجاد بسته های نرم افزاری ، یكی از بخشهای صنعت رایانه كه از بیشترین میزان رشد برخوردار است ، كاربرد دارد.
در بعضی شركتها ، بخصوص شركتهای كوچك ، افرادی به عنوان برنامه نویس ـ تحلیل گر هم مسؤولیت برنامه نویسی و هم تحلیل سیستم را به عهده دارند. زبانهای برنامه نویسی پیشرفته و امكانات برنامه نویسی شیء گرای جدید ، بازده كاری برنامه نویسان و كاربران را افزایش داده است. امكانات رایانه های شخصی و نرم افزارهای جدید تا حدودی مرز بین كار بر و برنامه نویس را از بین برده است. به عنوان مثال بسته های نرم افزاری جدید مانند برنامه های مدیرت صفحه گسترده و بانكهای اطلاعاتی به كاربران امكان نوشتن برنامه های ساده ای را برای دسترسی به داده ها و انجام محاسبات داده است .
*
محیط كار
محیط كاری برنامه نویسان معمولا دفاتر كار راحت میباشد. بسیاری از برنامه نویسان برای تحویل به موقع پروژه ها وحل كردن مسائل مهم كاری ، مجبور به كار برای ساعتهای طولانی و اضافه كاری هستند. باتوجه به فن آوریهای روز ، ارتباط از راه دور برای بسیاری از متخصصین رایانه از جمله برنامه نویسان به صورت یك امر عادی در آمده است. با گسترش شبكه های رایانه ای ، برنامه نویسان بیشتری توانائی ارتباط با رایانه ی مشتری از راه دور را برای برطرف كردن ایرادها و مشكلات پیش آمده بدست آورده اند.
همانند بسیاری مشاغل دیگر ، برنامه نویسان نیز باید ساعتهای زیادی را جلو رایانه به تایپ كردن مشغول باشند كه این كار آنها را مستعد خستگی چشم ، كمردرد و مشكلات دست و مچ دست مانند سندروم تونل كارپال میكند.
*
فرصتهای شغلی
برنامه نویسان در هر صنعتی ممكن است به كار گرفته شوند اما بیشترین فرصتهای شغلی در صنعت خدمات رایانه و تحلیل داده ها كه وظیفه نوشتن و فروش نرم افزارها را به عهده دارند میباشد. تعداد زیادی از برنامه نویسان نیز در شركتهای ارائه كننده خدمات مهندسی و مدیریتی ، شركتهای مخابراتی ، تولید كننده های رایانه و تجهیزات دفتری ، مؤسسات مالی ، شركتهای بیمه ، مؤسسات آموزشی و ادارات دولتی به كار مشغولند.
بسیاری از برنامه نویسان رایانه به صورت موقتی و قراردادی و یا برای ارائه خدمات مشاوره ای به خدمت گرفته میشوند. مثلا یك شركت خرید و فروش ممكن است برای راه اندازی یك سیستم جدید مدیریت سرویس دهی به مشتریان به كار چندین برنامه نویس به صورت موقت نیاز داشته باشد. این نحوه كار كردن به شركتها اجازه میدهد تا برحسب نیاز كاریشان افرادی با تخصصهای خاص و معمولا آشنا به آخرین فن آوریها را بدون نیاز به باز آموزی كاركنان خود شركت به كار گیرند. این قراردادها ممكن است چند هفته ای یا حتی چند ساله باشند.
*
آموزش و ادامه تحصیل
آموزش برنامه نویسی در سطوح مختلفی از كلاسها ی آموزشی گرفته تا تحصیلا ت دانشگاهی انجام میشود . استخدام كنندگان معمولا به میزان دانش فرد در زبانهای برنامه نویسی توجه دارند و برنامه نویسان نیز میتوانند در یكی یا چندین زبان برنامه نویسی مانند جاوا یا سی مدرك بگیرند. برای كار یابی در صورتی كه فرد مدرك نداشته باشد ، باید از تجربه كاری زیادی برخوردار باشد. حتی در مورد كسانی كه مدرك برنامه نویسی دارند ، استخدام كنندگان تاكید اصلی را بر روی تجربه قبلی میگذارند.
با وجود اینكه برنامه نویسان باید با زبانهای سنتی برنامه نویسی آشنا باشند ، اما تاكید اصلی امروزه بر روی زبانهای جدید شیء گرا و نسل چهارم و پنجم زبانها كه از رابط گرافیكی كاربر استفاده میكنند میباشد. استخدام كنندگان افرادی را كه با تجارت و زمینه كاری آنها آشنا باشند را ترجیح میدهند.
برای برنامه نویسی سیستم كه در بالا به آن اشاره شد ، دانش وسیع درباره سیستمهای عامل مختلف ضروری است. این شامل توانائی طراحی سیستم عامل برای كار با انواع مختلف سخت افزار و سازگار سازی سیستم برای برآوردن نیازهای خاص یك شركت نیز میباشد. این برنامه نویسان باید با كار با سیستمهای پایگاه داده ها مانند اوراكل نیز آشنائی لازم را داشته باشند.
یك برنامه نویس باید توانائی تفكر به روش منطقی و توجه به جزئیات را داشته باشد. این كار نیاز به شكیبائی ، مداومت و توانائی كار تحلیلی دقیق بخصوص تحت شرایط فشار دارد. ابتكار و قدرت تخیل نیزبرای طراحی راه حلها و پیشگیری از خطاها از شروط لازم میباشند. برنامه نویسان سیستم باید توانائی كار بر روی مفاهیم انتزاعی و تحلیل فنی را داشته باشند. از انجائیكه در بسیاری موارد برنامه نویسان به صورت تیمی كار میكنند و با كاربرها سروكار دارند ، باید قادر به ارتباط برقرار كردن با كارمندان غیر فنی نیز باشند.
تازه كارها ممكن است به تنهائی بر روی یك برنامه اولیه كار كنند ویا به همراه برنامه نویسان با تجربه و به صورت تیمی به كار گرفته شوند. درهر صورت این افراد تازه كار باید تحت نظارت مستقیم حرفه ایها قرارگیرند. به علت رشد سریع فن آوری ، برنامه نویسان مجبور به شركت در دوره های مكرر باز آموزی میباشند.
*
چشم انداز آینده
بیشترین رشد در زمینه برنامه نویسی سیستم و اجرائی درآینده درزمینه های تجزیه و تحلیل داده ها ، تهیه نرم افزار و خدمات مشاوره ای رایانه خواهد بود. اما رشد برنامه نویسی نسبت به دیگر رشته های تخصصی رایانه كند تر است . با رشد سریع فن آوری ، نرم افزارهای پیچیده رایانه ای امروزه قادر به نوشتن بسیاری از كدهای پایه ای برنامه میباشند واین مسئله نیاز به برنامه نویسهای بیشتر را برای انجام اینگونه كارهای تكراری از بین برده است . پیشرفت در تولید بسته های نرم افزاری ، ابزارها و زبانهای برنامه نویسی پیشرفته و رشد توانائی كاربرها در طراحی ، نوشتن و اجرای برنامه های خاص خودشان بدین معناست كه بسیاری از كارهای عملیاتی برنامه نویسی قابل انتقال به دیگر مشاغل میباشند. با بالا رفتن سطح نوآوری و پیچیدگی فنی ، برنامه نویسان با رقابت بیشتری در سطح بین المللی روبرو میشوند ، چرا كه شركتها قادر به سفارش دادن برنامه نویسی با قیمت كمتر به كشورهای دیگر میباشند.
با اهمیتی كه امروزه شبكه ها و محیطهای اینترنتی پیدا كرده اند ، شركتها به دنبال برنامه نویسانی هستند كه قادر به تبادل داده ها و پیاده سازی تجارت الكترونیك و استراتژیهای اینترانت باشند. از دیگر زمینه های مورد توجه ، مولتی مدیا و برنامه نویسی مشتری/ سرویس دهنده میباشند. راز موفقیت یك برنامه نویس در آینده پیش رفتن با فن آوری روز، تبحر دربرنامه نویسی پایگاه داده ها و اینترنت و تلفیق مدرك دانشگاهی با تجربه كاری میباشد.