কম্পিউটার প্রোগ্রামিং একটি নির্দিষ্ট কম্পিউটিং টাস্ক সম্পাদনের জন্য একটি এক্সিকিউটেবল কমপিউটার প্রোগ্রাম ডিজাইন এবং নির্মাণ প্রক্রিয়া। Programminginvolves কাজগুলি যেমন: বিশ্লেষণ, অ্যালগরিদম তৈরি করা, আলগোরিদিমগুলির নির্ভুলতা এবং সংস্থান খরচ প্রোফাইলিং এবং একটি নির্বাচিত প্রোগ্রামিং ভাষা (সাধারণত কোডিং হিসাবে উল্লেখ করা হয়) এ অ্যালগরিদম বাস্তবায়ন । একটি প্রোগ্রামের উৎস কোড এক বা একাধিক ভাষায় লেখা হয়। প্রোগ্রামিংয়ের উদ্দেশ্য হল নির্দেশাবলীর একটি ক্রম খুঁজে বের করা যা একটি কম্পিউটারে একটি কার্যকারিতা স্বয়ংক্রিয়ভাবে স্বয়ংক্রিয়ভাবে প্রদত্ত সমস্যার সমাধান করার জন্য। এইভাবে প্রোগ্রামিংয়ের প্রক্রিয়াটি প্রায়ই অ্যাপ্লিকেশন ডোমেন, বিশেষ অ্যালগরিদম এবং আনুষ্ঠানিক যুক্তি সম্পর্কিত জ্ঞান সহ বিভিন্ন বিষয়গুলিতে দক্ষতা প্রয়োজন।
প্রোগ্রামিং সহ প্রোগ্রামগুলির সাথে সম্পর্কিত এবং এতে অন্তর্ভুক্ত রয়েছে: টেস্টিং, ডিবাগিং, সোর্স কোড রক্ষণাবেক্ষণ, বিল্ড সিস্টেমগুলির বাস্তবায়ন এবং কম্পিউটার প্রোগ্রামগুলির মেশিন কোডের মতো অর্জিত জিনিসপত্রের ব্যবস্থাপনা। এইগুলিকে প্রোগ্রামিং প্রক্রিয়াটির অংশ হিসাবে বিবেচনা করা যেতে পারে, কিন্তু প্রায়শই সফ্টওয়্যার ডেভেলপমেন্টটি শব্দটির প্রকৃত লেখার জন্য প্রোগ্রামিং, বাস্তবায়ন, বা কোডিংয়ের সুরক্ষার সাথে এই বড় প্রক্রিয়াটির জন্য ব্যবহৃত হয়। সফ্টওয়্যার প্রকৌশল সফটওয়্যার উন্নয়ন অনুশীলন সঙ্গে প্রকৌশল প্রযুক্তির সম্মিলন।বিভিন্ন প্রোগ্রামিং ভাষা প্রোগ্রামিং এর বিভিন্ন শৈলী সমর্থন করে (বলা প্রোগ্রাম প্রোগ্রামিং)। ব্যবহৃত ভাষার পছন্দটি অনেকগুলি বিবেচনার বিষয়, যেমন কোম্পানির নীতি, টাস্কের উপযুক্ততা, তৃতীয় পক্ষের প্যাকেজগুলির প্রাপ্যতা বা ব্যক্তিগত পছন্দ। আদর্শভাবে, হাতের কাজ টাস্ক জন্য উপযুক্ত সেরা প্রোগ্রামিং ভাষা নির্বাচন করা হবে। এই আদর্শ থেকে ট্রেড-অফগুলি যথেষ্ট প্রোগ্রামার খুঁজে বের করে, যারা একটি দল গঠন করার ভাষা, সেই ভাষাটির জন্য কম্পাইলারগুলির উপলব্ধতা এবং কোনও নির্দিষ্ট ভাষাতে লিখিত প্রোগ্রামগুলি কার্যকর করে। ভাষাগুলি “নিম্ন স্তরের” থেকে “উচ্চ স্তরের” থেকে আনুমানিক বর্ণালী গঠন করে; “নিম্ন-স্তরের” ভাষাগুলি সাধারণত আরো মেশিন-ভিত্তিক এবং চালানোর জন্য দ্রুততর হয়, তবে “উচ্চ-স্তরের” ভাষাগুলি আরও বিমূর্ত এবং ব্যবহার করা সহজ তবে কম দ্রুত কার্যকর হয়। সাধারণত “নিম্ন-স্তর” এর চেয়ে “উচ্চ-স্তরের” ভাষাগুলিতে কোড করা সহজ।
কম্পিউটার প্রোগ্রামার যারা কম্পিউটার সফ্টওয়্যার লিখুন। তাদের কাজ সাধারণত জড়িত:
আইনসংগ্রহ
ডিবাগ
নথিপত্র
ইন্টিগ্রেশন
রক্ষণাবেক্ষণ
চাহিদা বিশ্লেষণ
সফটওয়্যার আর্কিটেকচার
সফটওয়্যার টেস্টিং
সবিস্তার বিবরণী
প্রোগ্রামেবল ডিভাইস অন্তত 1206 খ্রিস্টাব্দে বিদ্যমান ছিল, যখন আল-জাজারি এর অটোমাটা বিভিন্ন প্যাথ এবং ড্রাম নকশার জন্য, পিগ এবং ক্যামের মাধ্যমে প্রোগ্রামযোগ্য ছিল; এবং 1801 জ্যাকওয়ার্ড লুম দ্বারা সম্পূর্ণ ভিন্নভাবে তৈরি করা যেতে পারে “প্রোগ্রাম” পরিবর্তন – তাদের মধ্যে punched গর্ত সঙ্গে পেস্টবোর্ড কার্ডের একটি সিরিজ।
যাইহোক, প্রথম কম্পিউটার প্রোগ্রামটি সাধারণত 1843 তারিখের, যখন গণিতজ্ঞ অ্যাড লাভেসাস চার্লস ব্যাবেজের বিশ্লেষণাত্মক ইঞ্জিন দ্বারা পরিচালিত উদ্দেশ্যে বার্নোলি নম্বরগুলির একটি ক্রম গণনা করার জন্য একটি অ্যালগরিদম প্রকাশ করেছিলেন। 1960 এর দশকের মাঝামাঝি পর্যন্ত নারী কম্পিউটার প্রোগ্রামিংয়ের ক্ষেত্রে আধিপত্য বিস্তার করবে।
1880-এর দশকে হারম্যান হলিরিথ মেশিন-পাঠযোগ্য আকারে তথ্য সংরক্ষণের ধারণা আবিষ্কার করেন। পরবর্তীতে একটি কন্ট্রোল প্যানেল (প্লাগবোর্ড) তার 1906 প্রকার আই ট্যাবুলেটারে যোগ করে এটি বিভিন্ন কাজের জন্য প্রোগ্রাম করার অনুমতি দেয় এবং 1940 এর দশকের শেষের দিকে, আইবিএম 602 এবং আইবিএম 604 এর মতো ইউনিট রেকর্ড সরঞ্জামগুলি একইভাবে নিয়ন্ত্রণ প্যানেলে প্রোগ্রাম করা হয়েছিল। ; যেমন প্রথম ইলেকট্রনিক কম্পিউটার ছিল। তবে, 1949 সালে সংগৃহীত সঞ্চিত প্রোগ্রাম কম্পিউটারের ধারণার সাথে, উভয় প্রোগ্রাম এবং তথ্য কম্পিউটার মেমরিতে একইভাবে সংরক্ষণ এবং ম্যানিপুলেশন করা হয়েছিল। [উদ্ধৃতি প্রয়োজন]
মেশিন কোড প্রাথমিক প্রোগ্রামের ভাষা, বিশেষ যন্ত্রের নির্দেশ সেটে লেখা, প্রায়ই বাইনারি নোটেশনে। অ্যাসেম্বলি ভাষাগুলি শীঘ্রই উন্নত হয় যা প্রোগ্রামারকে প্রতিটি অপারেশন কোডের সংক্ষেপে এবং ঠিকানাগুলি নির্দিষ্ট করার অর্থপূর্ণ নাম সহ একটি পাঠ্য বিন্যাসে (যেমন, ADD X, TOTAL) নির্দেশনা নির্দিষ্ট করতে দেয়। যাইহোক, কারণ একটি সমাবেশ ভাষাটি একটি মেশিন ভাষাটির জন্য আলাদা আলাদা দিক থেকে একটু বেশি, বিভিন্ন নির্দেশের সেটগুলির যেকোনো দুটি মেশিনে ভিন্ন সমাবেশ ভাষা রয়েছে। কেরলিন বুথ 1950 সালে বির্কবেক কলেজের বিভিন্ন কম্পিউটারের জন্য প্রথম অ্যাসেম্বলি ভাষার একটি তৈরি করেছিলেন