برنامهنویسی به یک فرآیند تکنولوژیکی اشاره دارد که در آن وظایف خاصی برای حل مشکلات مشخص به کامپیوتر امکانپذیر میشود. شما میتوانید برنامهنویسی را به عنوان یک همکاری میان انسان و رایانه در نظر بگیرید که در آن انسان دستورالعملهایی را به زبان قابل فهم برای رایانهها ایجاد میکند.
برنامهنویسی به معنای نوشتن مجموعهای از دستورات منطقی است. اما منظور از این دستورات چیست؟
در واقع، این دستورات، اقداماتی هستند که برای ماشینها تعریف میشوند. در اینجا “ماشین” تنها به رایانهها و لپتاپها محدود نمیشود؛ بلکه هر دستگاه هوشمندی، از جمله یخچالها، ماشینهای لباسشویی و حتی سیستمهایی که در خودروسازی و آزمایشگاهها استفاده میشوند، نیز مصداق این تعریف هستند. بنابراین، میتوان گفت که برنامهنویسی برای انواع مختلف ماشینها انجام میشود.
اما چگونه میتوانیم با این ماشینها ارتباط برقرار کنیم؟
پاسخ این سوال بسیار ساده است: با استفاده از زبانهای برنامهنویسی، که به نوعی زبان ماشین هستند. اما نکته قابل توجه این است که زبان ماشین خیلی از زبانهای انسانی فاصله دارد. به همین دلیل، به ما زبانهای برنامهنویسی سطح بالا ارائه میشود که به زبان انسان نزدیکتر هستند و به ما کمک میکنند تا بتوانیم به راحتی با ماشینها ارتباط برقرار کنیم.
اگر بخواهیم برنامهنویسی را در یک جمله خلاصه کنیم، میتوان گفت که برای اجرای برنامههای کامپیوتری، نیاز به واسطی داریم که دستورات ما را به زبان قابل فهم برای ماشینها تبدیل کند—به این واسط، برنامهنویسی گفته میشود. بنابراین، برنامهنویسی به معنای تبدیل کدها به دستوراتی است که ماشینها قادر به درک و اجرا کردن آنها هستند.
برنامهنویسی محدود به محیط کامپیوتر و لپتاپ نیست. به عنوان مثال، تلویزیونها طوری برنامهنویسی شدهاند که با آنتن، سیگنالها را دریافت کرده و بر روی صفحه نمایش تصویر را نمایش دهند. همچنین، آسانسورها به گونهای طراحی شدهاند که با فشردن دکمه، به طبقهی مورد نظر میروند و دربها باز میشوند. این مثالها نشاندهنده قدرت و گستردگی کاربردهای برنامهنویسی است.
برنامهنویس یا programmer، فردی است که با توجه به نیازهای خاص، دستورالعملهایی را با کمک زبانهای برنامهنویسی ایجاد کرده و آنها را به برنامههای کاربردی تبدیل میکند. کار برنامهنویسی فقط محدود به کدنویسی نیست؛ بلکه شامل آزمایش، رفع اشکال، اجرا و توسعه کدها نیز میشود.
بسیاری از مورخان بر این باورند که آدا لاولیس، اولین کسی بود که یک برنامه کامپیوتری را منتشر کرد. این ریاضیدان در اواسط قرن نوزدهم، برای اولین بار نوشتههای لوئیجی فدریکو منابریا را بر روی موتور تحلیلی ترجمه کرد و با افزودن یادداشتهای خود، روشی برای محاسبه اعداد برنولی ارائه داد. برنامهنویسی کامپیوتر بعدها تحت تأثیر آلونزو چرچ و ماشین تورینگ (انیگما) قرار گرفت، که به نوبه خود انقلابی در زمینه رمزنگاری به وجود آورد. انیگما، ماشینی محاسباتی بود که در طول جنگ جهانی دوم توسط آلن تورینگ طراحی شد تا کدهای آلمانها را رمزگشایی کند.
در دهه ۱۹۲۰، اولین کامپیوترها ساخته شدند که قابلیت اجرای زبانهای برنامهنویسی را داشتند. بهتدریج، با تکامل ماشینها و پیشرفت تکنولوژی، تعداد زبانهای برنامهنویسی افزایش یافت و الگوریتمهای پیچیدهتری طراحی شدند. همینطور زبانهای برنامهنویسی از سطح پایین به انواع پیشرفتهتر و به اصطلاح سطح بالا تکامل یافتند. امروزه، زبانهای برنامهنویسی متنوعی وجود دارد و هر فرد بسته به نیاز خود میتواند زبان جدیدی را طراحی و به دنیای برنامهنویسی معرفی کند.