برنامه نويسي رايانه

Computer Programming

 

ماهيت كار

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

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

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

 

بسياري از برنامه نويسان ،‌ برنامه هاي موجود را به روزرساني و ترميم ميكنند ويا تغيير و گسترش ميدهند. آنها وقتي در قسمتي از يك كد كه به آن روتين گفته ميشود تغييري ميدهند ، بايد كاربرها را از عملكرد جديد آن روتين آگاه كنند. اين كار بوسيله گنجاندن توضيحات لازم در بين كدها انجام ميشود ، بدين ترتيب ديگران ميتوانند عملكرد برنامه را درك كنند. بسياري از برنامه نويسان از ابزاهاي كمك مهندسي نرم افزاررايانه اي براي خودكار سازي بسياري از عمليات كد نويسي استفاده ميكنند . اين ابزارها برنامه نويس را قادر ميسازند تا بر روي نوشتن قطعات منحصر به فرد برنامه متمركز شود ، چرا كه اين ابزارها قطعات مختلف برنامه در حال ساخت را خودكارسازي كرده  وبه جاي نوشتن خط به خط ،  بخشهاي كاملي  از كدها را خود به خود بوجود مياورند. اين روش باعث بوجود آمدن برنامه هائي يكدست تر و قابل اعتمادتر نيز شده و باحذف مراحل تكراري ، توان بهره وري برنامه نويسان را بالا ميبرد.

 برنامه نويسان براي آزمايش برنامه ، آنرا پس از نوشتن ، اجراميكنند تا از عملكرد صحيح آن اطمينان حاصل كنند. اگر اشتباهي دراجراي برنامه وجود داشته باشد ، برنامه نويس بايد آن قسمت را تغيير داده و دوباره امتحان كند تا زمانيكه برنامه درست عمل كند. به اين كار اشكال زدائي ( ديباگ ) گويند. برنامه نويسان ممكن است اين عمليات اشكال زدائي را تا زماني كه از برنامه استفاده ميشود (مثلا چندين سال ) ادامه دهند. آنهائي كه در محيط پردازشگر مركزي كار ميكنند ممكن است دستورالعملهائي براي كاربري كه از برنامه استفاده ميكند تهيه كنند.

 

برنامه نويسان اغلب به دو دسته اصلي تقسيم ميشوند. برنامه نويسان برنامه هاي اجرائي و برنامه نويسان سيستم. برنامه نويسان برنامه هاي اجرائي ، برنامه هايي براي اجراي يك كار خاص ، مثلا صورت برداري از كالاها در يك شركت ، مينويسند. آنها ممكن است بازنگري يك نرم افزار را به عهده بگيرند. برنامه نويسان سيستم برنامه هائي براي كنترل نرم افزاري سيستمهاي رايانه اي مينويسند كه دراين زمينه ميتوان از سيستمهاي عامل ، سيستمهاي شبكه و سيستمها ي بانك داده ها نام برد. گروه اخير ،  در مجموعه دستورالعملهائي كه نحوه عملكرد شبكه ، ايستگاه كاري و پردازنده مركزي سيستم  را براي اجراي دستورات وارده و نحوه دسترسي به تجهيزات جانبي مانند  پايانه ها ، چاپگرها و ديسك خوانها را  تعيين ميكنند ، تغييرات لازم را ميدهند. به دليل داشتن دانش گسترده از تمامي سيستم رايانه ، برنامه نويسان سيستم ، به برنامه نويسان برنامه هاي اجرائي دريافتن ريشه مشكلاتي كه دربرنامه هاي آنها پيش ميآيد  كمك ميكنند.

 برنامه نويسان شركتهاي توليد كننده نرم افزاربراي توليد نرم افزارهاي سفارشي يا عمومي ، از بازيهاي رايانه اي و برنامه هاي آموزشي گرفته تا برنامه هائي براي نشر روميزي ، برنامه ريزي مالي ،‌ برنامه ها ي صفحه گسترده  ، با متخصصين رشته هاي ديگر همكاري ميكنند. در بسياري از موارد اين نحوه همكاري در ايجاد بسته هاي نرم افزاري ، يكي از بخشهاي صنعت رايانه كه از بيشترين ميزان رشد برخوردار است ، كاربرد دارد.

 

در بعضي شركتها ، بخصوص شركتهاي كوچك ، افرادي به عنوان برنامه نويس ـ تحليل گر هم مسؤوليت برنامه نويسي و هم تحليل سيستم را به عهده دارند. زبانهاي برنامه نويسي پيشرفته  و امكانات برنامه نويسي شيء گراي جديد ، بازده كاري برنامه نويسان و كاربران را افزايش داده است. امكانات رايانه هاي شخصي و نرم افزارهاي جديد تا حدودي مرز بين كار بر و برنامه نويس را از بين برده است. به عنوان مثال بسته هاي نرم افزاري جديد مانند برنامه هاي مديرت صفحه گسترده و بانكهاي اطلاعاتي به كاربران امكان نوشتن برنامه هاي ساده اي را براي دسترسي به داده ها و انجام محاسبات داده است .

 

محيط كار

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

 همانند بسياري مشاغل ديگر ، برنامه نويسان نيز بايد ساعتهاي زيادي را جلو رايانه به تايپ كردن مشغول باشند كه اين كار آنها را مستعد خستگي چشم ،‌ كمردرد و مشكلات دست و مچ دست مانند سندروم تونل كارپال ميكند.

 

فرصتهاي شغلي

برنامه نويسان در هر صنعتي ممكن است به كار گرفته شوند اما بيشترين فرصتهاي شغلي در صنعت خدمات  رايانه و تحليل داده ها كه وظيفه نوشتن و فروش نرم افزارها را به عهده دارند ميباشد. تعداد زيادي از برنامه نويسان نيز در شركتهاي ارائه كننده خدمات مهندسي و مديريتي ، شركتهاي مخابراتي ، توليد كننده هاي رايانه و تجهيزات دفتري ، مؤسسات مالي ، شركتهاي بيمه ، مؤسسات آموزشي و ادارات دولتي  به كار مشغولند.

 بسياري از برنامه نويسان رايانه به صورت موقتي و قراردادي و يا براي ارائه خدمات مشاوره اي به خدمت گرفته ميشوند. مثلا يك شركت خريد و فروش ممكن است براي راه اندازي يك سيستم جديد مديريت  سرويس دهي به مشتريان به كار چندين برنامه نويس به صورت موقت نياز داشته باشد. اين نحوه كار كردن به شركتها اجازه ميدهد تا برحسب نياز كاريشان  افرادي با تخصصهاي خاص و معمولا آشنا به آخرين فن آوريها را بدون نياز به باز آموزي  كاركنان خود شركت به كار گيرند. اين قراردادها ممكن است چند هفته اي يا حتي  چند ساله باشند.

 

آموزش و ادامه تحصيل

 آموزش برنامه نويسي در سطوح مختلفي از كلاسها ي آموزشي گرفته  تا تحصيلا ت دانشگاهي انجام ميشود . استخدام كنندگان معمولا به ميزان دانش فرد در زبانهاي برنامه نويسي توجه دارند و برنامه نويسان نيز ميتوانند در يكي يا چندين زبان برنامه نويسي مانند جاوا يا سي  مدرك بگيرند. براي كار يابي در صورتي كه فرد مدرك نداشته باشد ، بايد از تجربه كاري زيادي برخوردار باشد. حتي در مورد كساني كه مدرك برنامه نويسي دارند ،‌ استخدام كنندگان تاكيد اصلي را بر روي تجربه قبلي ميگذارند.

 با وجود اينكه برنامه نويسان بايد با زبانهاي سنتي برنامه نويسي آشنا باشند ، اما تاكيد اصلي امروزه بر روي زبانهاي جديد شيء گرا و نسل چهارم و پنجم زبانها كه از رابط گرافيكي كاربر استفاده ميكنند ميباشد. استخدام كنندگان افرادي را كه با تجارت و زمينه كاري آنها آشنا باشند را ترجيح ميدهند.

 

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

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

تازه كارها ممكن است به تنهائي بر روي يك برنامه اوليه كار كنند ويا به همراه  برنامه نويسان با تجربه و به صورت تيمي به كار گرفته شوند. درهر صورت اين افراد تازه كار بايد تحت نظارت مستقيم حرفه ايها قرارگيرند. به علت رشد سريع فن آوري ، برنامه نويسان مجبور به شركت در دوره هاي مكرر باز آموزي ميباشند.

 

چشم انداز آينده

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

با اهميتي كه امروزه  شبكه ها و محيطهاي اينترنتي  پيدا كرده اند ، شركتها به دنبال برنامه نويساني هستند كه قادر به تبادل داده ها و پياده سازي تجارت الكترونيك و استراتژيهاي اينترانت باشند. از ديگر زمينه هاي مورد توجه ، مولتي مديا و برنامه نويسي مشتري/ سرويس دهنده ميباشند. راز موفقيت يك برنامه نويس در آينده پيش رفتن با فن آوري روز، تبحر دربرنامه نويسي  پايگاه داده ها و اينترنت و تلفيق مدرك دانشگاهي با تجربه كاري ميباشد.

 

ميزان درآمد

 ميانگين درآمد ساليانه درسال 2000 در ايالات متحده براي برنامه نويسان رايانه  57590 دلار بوده است.

 

 

1