برنامهنویسی کامپیوتر (به انگلیسی: Computer Programming) (یا به اختصار برنامهنویسی) بهطور کلی به فرایند نوشتن و توسعه نرمافزار کامپیوتر گفته میشود. به بیان جزئی تر برنامهنویسی رایانه به معنای فرایند تبدیل و سوق دادن فرمول حل یک مسئله یا الگوریتم محاسباتی، به یک برنامه قابل اجرا (نرمافزار) میباشد. معنای برنامهنویسی رایانه در فرهنگ عامه میتواند به تمامی فرایند توسعه نرمافزار (به انگلیسی: Software Development) اطلاق گردد که شامل فعالیتهای مختلفی همچون بررسی، توسعه، درک، طراحی الگوریتم؛ پیادهسازی، تست، اشکال زدایی و نگهداری نرمافزارهای کامپیوتری نیز میشود. همچنین برنامهنویس به شخصی اطلاق میگردد که عمل برنامهنویسی و توسعه نرمافزار را انجام میدهد.
برنامهنویسی مستلزم فعالیتهایی همچون تحلیل و درک مسئله است و عموماً حل چنین مسایلی منجر به ایجاد یک الگوریتم میشود، بازبینی نیازمندیهای الگوریتم که شامل صحت و میزان منابع مصرفی است، پیادهسازی (که معمولاً به عنوان کدینگ از آن یاد میشود) این الگوریتم در یک زبان برنامهنویسی مقصد، تست کردن، اشکال زدایی، نگهداری کد منبع، پیادهسازی سیستم ساخت(build system) و مدیریت مصنوعات مشتق شده مانند کد ترجمه شده به زبان ماشین برنامههای کامپیوتری. الگوریتم اغلب تنها به شکل قابل تجزیه و تحلیل برای انسان و قابل استدلال با منطق نمایش داده میشود. کد منبع به یک یا چند زبان برنامهنویسی، مانند ویژوال بیسیک، جاوااسکریپت، اسمالتاک، پایتون، جاوا، سی شارپ، سی پلاسپلاس و سی نوشته شدهاست.
موضوع دستگاههایی که به دنبالهای از دستورالعملهای از قبل تعریف شده عمل میکند برمیگردد به
قابلیت اطمینان: این که چقدر نتایج یک برنامه درست باشند، به صحت طراحی الگوریتم و به حداقل رساندن اشتباهات برنامهنویسی مربوط میشود. اشتباهات برنامهنویسی شامل اشکالاتی مثل اشکال در مدیریت منابع (مثل سرریز شدن بافر یا وضعیت رقابتی) و اشکالات منطقی (مثل تقسیم بر صفر یا خطاهای off-by-one).
پایایی: این که یک برنامه چگونه اشکالاتی (نه باگها) را که ممکن است پیش بیایند، پیشبینی کردهاست. این شامل حالتهایی مانند دریافت اطلاعات نادرست، نامناسب یا غلط میشود؛ همچنین کمبود منابعی مانند حافظه، سرویسهای سیستم عامل یا اتصال به شبکه و سایر اشکالات مانند خطای کاربر یا اشکالات قطع برق نیز در این دسته قرار میگیرند. کاربرد پذیری: ارگونومی یک برنامه: آسانی استفاده از برنامه برای شخصی که میخواهد از آن برای کار در نظر گرفته شدهاستفاده کند یا گاهی برای کارهای پیشبینی نشده آن را به کار برد..
خوانایی کد منبع
خوانایی خیلی مهم است به این علت که برنامه نویسان بیشترین وقتشان را به جای این که صرف نوشتن کد جدید بکنند، در زمینه درک و تغییر کد منبع موجود میکنند. کدهای ناخوانا معمولاً به خطا، نارسایی و کدهای تکراری ختم میشوند. یک تحقیق[۲] نشان داد که تغییرات جزئی و سادهای برای خوانایی برنامه میتواند منجر به این شود که کد نهایی نوشته شده کوتاهتر شود و همچنین زمان فهم آن بهطور قابل توجهی کاهش یابد. پیروی از یک سبک برنامهنویسی منسجم معمولاً به خوانایی کمک میکند؛ اگر چه خوانایی چیزی بیش از فقط سبک برنامهنویسی است. عوامل زیادی که معمولاً دخالتی در توانایی رایانه برای ترجمه مناسب و اجرای بهتر برنامه ندارند، به خوانایی کمک میکنند. بعضی از این عوامل اینها هستند:
قدم اول در فرایند توسعه بیشتر نرمافزارها به شکل معمول شامل بررسی نیازمندیها، سپس آزمایش برای تشخیص الگوی متغیرها، اجرا و سپس حذف خرابیها (اشکال زدایی) است. راههای مختلفی برای رسیدن به هر کدام از این وظایف وجود دارند. یک راه پرطرفدار برای تحلیل نیازمندیها تحلیل مورد کاربردی است. بسیاری از برنامه نویسان از شکل توسعه چابک نرمافزاری استفاده میکنند؛ در این روش مراحل مختلف توسعه نرمافزار به شکل چرخههای کوتاه با هم ترکیب میشوند بهطوریکه هر کدام از این چرخهها فقط چند هفته طول بکشند. این در مقابل روش معمول است که ممکن است چند سال زمان ببرد. روشهای خیلی زیادی برای روند توسعه برنامهها وجود دارند.