زبانهای متعدد برنامه‌نویسی وجود دارند که هر کدام از آن‌ها سبکهای خاصی را پشتیبانی می‌کنند . انتخاب زبان برنامه‌نویسی مورد نظر بر اساس ملاحظات متعددی صورت می‌گیرد: مانند سیاست شرکت، مناسب بودن برای وظیفه در نظر گرفته شده، موجود بودن بسته‌های برنامه از پیش آماده شده یا نظرات شخصی. به شکل ایده‌آل مناسب‌ترین زبان برنامه‌نویسی برای کاربرد مورد نظر که در دسترس باشد ، انتخاب می‌شود.

 موضوعاتی که باعث می‌شوند از این وضعیت ایده‌آل فاصله گرفته شوند شامل موضوعاتی مانند یافتن تعداد کافی برنامه نویسان ماهر که بتوانند تیم کاری تشکیل دهند، در دسترس بودن کامپایلرهای مناسب برای زبان مورد نظر، کارایی برنامه‌های نوشته شده با زبان مورد نظر، است.

زبانهای برنامه‌نویسی در طیفی بین زبانهای "سطح پائین " تا "زبانهای سطح بالاً قرار می‌گیرند. زبانهای سطح پائین معمولاً به زبان ماشین نزدیکتر هستند و سریعتر اجرا می‌شوند، در مقابل زبانهای سطح بالا خلاصه تر و برای کاربرد آسان‌تر هستند ولی با سرعت کمتری اجرا می‌شوند. کد نویسی با زبانهای سطح بالا معمولاً آسان‌تر از کد نویسی با زبانهای سطح پائین هستند.

آلن داونی در کتاب " چگونه به شکل یک استاد رایانه فکر کنیم " می‌نویسد: جزئیات در زبانهای برنامه‌نویسی مختلف متفاوت به نظر می‌رسند ولی تعدادی از ساختارهای اساسی در همه زبانهای برنامه‌نویسی یکسان هستند:

  • ورودی: داده‌ها را از صفحه کلید، یک فایل یا وسایل دیگر فراهم می‌کند.
  • خروجی: اطلاعات را روی صفحه تصویر نشان می‌دهد، به یک فایل می‌فرستد یا به دستگاه‌های دیگری انتقال می‌دهد.
  • محاسبات: اعمال محاسباتی اساسی مثل جمع و ضرب را انجام می‌دهد.
  • حالتهای شرطی: شرطهای مشخصی را کنترل می‌کند و بر اساس آن رشته مناسبی از عبارات را اجرا می‌کند.
  • حلقه: بعضی اعمال را به شکل تکراری انجام می‌دهد، معمولاً با استفاده از تعدادی از متغیرها این کار انجام می‌شود.

بسیاری از زبانهای برنامه‌نویسی مکانیسمهایی را برای استفاده از کتابخانه‌های مشترک فراهم می‌کنند. توابعی در این کتابخانه‌ها بر اساس الگوهای مناسب اجرایی ایجاد می‌شوند (مانند روش‌های انتقال آرگومانها) و سپس می‌توان از این توابع در زبانهای متعدد برنامه‌نویسی استفاده کرد.