برنامه نویسی یکی از مشاغل بسیار مهم در زمینهٔ IT است که با پیشرفتهای روزافزون این بخش فراگیری این رشته افزایش یافته است.
برنامهنویسی بکاند (back end) به قسمتی از برنامه گفته میشود که با لایه دیتا سروکار دارد و در مقابل فرانتاند (front end) قرار میگیرد. در برنامهنویسی وب، کسی که با دیتابیس و منطقِ سمتِ سرور کار میکند برنامهنویس بکاند نامیده مشود و آنچه شما در مرورگر خود میبینید کار برنامهنویس فرانتاند است. برنامهنویس فرانتاند (front-end) به قسمتی از برنامهنویسی گفته میشود که با آنچه کاربر سمت مرورگرش میبیند مربوط میشود.
برنامهنویسی رایانه در فرهنگ واژه غیر متخصصین ممکن است به تمام پروژه ساخت نرمافزار یا برنامه رایانهای گفته شود. با این همه برنامهنویسی تنها بخشی از فرآیند توسعه نرمافزار یا برنامه رایانهای است. اهمیت، توجه و منابع اختصاص داده شده به برنامهنویسی، بسته به ویژگیهای مشخصشده محصول و خواست افراد درگیر در پروژه و کاربران و درنهایت شیوهٔ انتخابشده مهندسی نرمافزار متغیر است.
برنامهنویسی کامپیوتر (که اغلب در انگلیسی programming یا coding گفته میشود) فرآیند نوشتن، اشکالزدایی (debug) و نگهداری کد منبع (source code) برنامه کامپیوتر است. این کد منبع با یک زبان برنامهنویسی نوشته شده است. این کد منبع ممکن است تغییر داده شده یک کد قبلی و یا یک کد کاملاً جدید باشد. هدف برنامهنویسی ساختن یک برنامه است که یک رفتار خواستهشده را به نمایش بگذارد.
برنامهنویس کامپیوتر، کدهای برنامههای نرمافزاری را مینویسد. تمام آن چیزی را که از طریق کامپیوتر میتوان دید از بازیهای کامپیوتری گرفته تا سیستمعاملهایی مثل ویندوز و برنامههایی مثل Office از جمله محصولات نرمافزاری است که بخش قابل توجهی از آنها را برنامه نویسان کامپیوتر تولید کردهاند.
برنامهنویس طرحهای برنامهای که مهندس و تحلیلگر نرمافزار تهیه کرده را به صورت دستورالعملهای مناسب کامپیوتر در میآورد سپس برنامهها و کدهای تولید شده را اشکالزدایی و تست میکند تا به نتایج مورد نظر برسد. برنامه نویس ارتباط نزدیکی با طراح نرمافزار دارد درحالیکه در برخی حوزهها کار آنها مشترک است. به این صورت که برنامهنویس میتواند کارهای معمول طراح مانند طراحی برنامهها را انجام دهد. این مستلزم طرحریزی نرمافزار، ایجاد مدلها و فلوچارتهای نشان دهنده چگونگی نوشتن کدها و طراحی رابط کاربری سیستم است.
برنامه نویسان اغلب به دو دسته اصلی تقسیم میشوند:
- برنامه نویسان برنامههای اجرائی: برنامه نویسان برنامههای اجرائی، برنامههایی برای اجرای یک کار خاص، مثلاً صورتبرداری از کالاها در یک شرکت، مینویسند. آنها ممکن است بازنگری یک نرمافزار را به عهده بگیرند.
- برنامه نویسان سیستم: برنامه نویسان سیستم برنامههایی برای کنترل نرمافزاری سیستمهای رایانهای مینویسند که در این زمینه میتوان از سیستمهای عامل، سیستمهای شبکه و سیستمهای بانک دادهها نام برد.
وظایف عمومی برنامه نویسان:
- تصحیح خطاها با ایجاد تغییرات مناسب و بعد، چک کردن مجدد برنامه برای اطمینان از عدم وجود خطا.
- کار کردن با نسخههای آزمایشی برنامهها برای اطمینان از اینکه درست طراحی شدند و ساختار صحیح دارند.
- نوشتن نسخههای اولیه و مستندسازی اولیهٔ برنامهها و بررسیهای پیدرپی به منظور اینکه برای همه قابل فهم باشد.
- نوشتن، بهروزرسانی و نگهداری برنامههای کامپیوتری یا بستههای نرمافزاری برای به عهده گرفتن مشاغل خاص نظیر ردیابی موجودیها، ذخیرهسازی دادهها و یا کنترل کردن هر نوع تجهیزات دیگری.
- ملاقات با مدیرعامل، مهندسین و پرسنل فنی برای توضیح دادن هدف برنامه، تشخیص مسائل و مشکلات و پیشنهادهایی برای تغییرات در صورت لزوم به آنها.
- گسترش دادن برنامههای موجود برای هرچه بیشتر کارا کار کردن.
- نوشتن، تجزیهوتحلیل، بازبینی و بازنویسی برنامهها، استفاده از جدول جریان کار و نمودارها و بهکارگیری دانش کامپیوتری و استفاده از منطق نمادی و موضوعات گوناگون.
- نوشتن راهنما و دستورالعمل برای کاربران نهایی.
- تحقیق در مورد اینکه آیا شبکهها، ایستگاههای کاری، واحد پردازش مرکزی سیستم و یا تجهیزات جانبی با دستورالعملهای برنامهها هماهنگ هستند یا نه؟
- آماده کردن نمودارهای جریان کار که ورودیها و خروجیها و عملیات منطقی را توصیف کند و آنها را به مجموعهای از دستورالعملها که به زبان کامپیوتری نوشته شدند تبدیل نماید.
- تجزیهوتحلیل سیستمها برای نگهداری و کنترل نرمافزارهای سیستم کامپیوتری.
- با مشورت و کمک به اپراتورهای کامپیوتری یا تحلیل گران سیستم به رفع مشکلات در نرمافزارهای کامپیوتری کمک میکند.
- انتساب، هماهنگی و بررسی کار و فعالیتهای کارکنان.
- همکاری با تولیدکنندگان کامپیوتر و سایر کاربرها برای توسعه و ارتقای نرمافزارهای جدید.
- آموزش زیردستان در مواردی مانند برنامهنویسی و کد کردن برنامهها.