ওয়েবসাইটের কোনো অংশে তথ্যগত ত্রুটি দেখতে পেলে তা আমাদের গ্রুপে জানাতে পারেন (Only Boys) Join Now!

C

C Logo

C (1970)
সিস্টেম সফটওয়্যার, কম্পাইলার, ডিভাইস ড্রাইভার, এমবেডেড সিস্টেম ইত্যাদি তৈরিতে সি প্রোগ্রামিং এর ব্যাপক ব্যবহার হয়

ইতিহাস

Cআমরা যারা প্রোগ্রামিং দুনিয়ায় পা রাখি তখন ই আমাদের সাথে পরিচয় হয় সি(C) প্রোগ্রামিং এর। সি হল অপারেটিং সিস্টেম লেখার জন্য সবচেয়ে বেশি ব্যবহৃত প্রোগ্রামিং ভাষা। প্রথম সি ভাষায় লেখা অপারেটিং সিস্টেম হলো ইউনিক্স। সি প্রোগ্রামিং ভাষার জন্ম হয় ইউনিক্স অপারেটিং সিস্টেম মাধ্যমে। ৭০ এর দশকে বেল ল্যাবসে ইউনিক্স অপারেটিং সিস্টেম তৈরি করছিলেন।

ইউনিক্সের প্রাথমিক সংস্করণগুলো বি(B) ল্যাঙ্গুয়েজে লেখা হয়েছিল। বি হলো শুরুর দিকের প্রোগ্রামিং ল্যাঙ্গুয়েজ। কিন্তু বি ল্যাঙ্গুয়েজের কিছু সীমাবদ্ধতা ছিল। ফলে ডেনিস রিচি এবং কেন থম্পসন নামে দুইজন গবেষক বি ল্যাঙ্গুয়েজের এই সীমাবদ্ধতা দূর করার জন্য একটি নতুন ভাষা তৈরির চিন্তা করেন। তাদের এই চিন্তা থেকেই সি ভাষার জন্ম হয়। সি ভাষা বি ল্যাঙ্গুয়েজের চেয়ে অনেক বেশি শক্তিশালী এবং সুবিধাজনক ছিল। পরে ধীরে ধীরে ইউনিক্স অপারেটিং সিস্টেমের বেশিরভাগ অংশ সি ভাষায় পুনর্লিখিত হয়।

ভাষাটি তৈরির প্রথম উদ্দেশ্য ইউনিক্স অপারেটিং সিস্টেম এর কোড লেখা হলেও অচিরেই এটি একটি বহুলব্যবহৃত ভাষায় পরিণত হয়। সি'র সবচেয়ে আকর্ষণীয় দিক হচ্ছে এর বহনযোগ্যতা (portability)। সি'তে রচিত প্রোগ্রাম যেকোনো অপারেটিং সিস্টেমের কম্পিউটারে চালানো যায়।

মাইক্রোসফট উইন্ডোজ, ম্যাক ও এস, লিনাক্স সবগুলোই সি প্রোগ্রামিং ভাষায় লেখা। সি শুধু অপারেটিং সিস্টেমের ভাষাই নয়, বর্তমানকালে জনপ্রিয় প্রায় সকল প্রোগ্রমিং ভাষার প্রেরণা সি প্রোগ্রমিং ভাষা। আমরা যে অন্যান্য প্রোগ্রামিং ভাষা শিখি যেমন- পার্ল, php, Python, রুবি সহ অনেক প্রোগ্রামিং ভাষা তা কিন্তু এই সি ব্যবহার করে লেখা।

প্রয়োজনীয় যন্ত্রাংশ এবং সফটওয়্যার

C প্রোগ্রামিং শেখার সময় কম্পিউটার থাকা একপ্রকার বাধ্যতামূলক। ফোনেও কম্পাইল করা যায়, কিন্তু সেটি কষ্টসাধ্য। এখানে কম্পিউটার, মোবাইল এবং যেসব ক্ষেত্রে সফটওয়্যার ব্যাবহার করা সম্ভব হবে না, সেক্ষেত্রে কী করণীয় সব কভার করা হবে।

কম্পিউটার
মোটামুটি যেকোনো ডেক্সটপ বা ল্যাপটপে C কোড কম্পাইল করা যায়। C সহ অন্য সকল ভাষার কোড কম্পাইলের ক্ষেত্রে VS Code সবথেকে জনপ্রিয় IDE. শুধু C ও C++ কম্পাইলের ক্ষেত্রে Code::Blocks ওপেন সোর্স IDE. তবে, কারও কম্পিউটারে যদি দুটোর একটাও না চলে, সেক্ষেত্রে অনলাইন কম্পাইলারও ব্যাবহার করা যেতে পারে।

VS Code: এটি বহুল ব্যাবহৃত অন্যতম জনপ্রিয় IDE. এর জন্যে নুন্যতম 1.6 GHz বা তার থেকে বেশি প্রসেসর এবং নুন্যতম 1 GB RAM প্রয়োজন হয়। এর সবথেকে বড় অসুবিধা হলো, এটা অনেক ভারী একটি সফটওয়্যার।
VS Code 94.9MB
Windows, Linux, Mac

Code::Blocks: এর জন্যে নুন্যতম 1 GHz বা তার থেকে বেশি প্রসেসর এবং নুন্যতম 512 MB RAM প্রয়োজন হয়। (র‍্যাম 1 GB হলে ভালো হয়)। তুলনামূলক লাইটওয়েট সফটওয়্যার।
Code::Blocks 145.4MB
Windows, Linux, Mac

অনলাইন কম্পাইলারঃ যদি কারও কম্পিউটারে একটাও না চলে সেক্ষেত্রে অনলাইন কম্পাইলার ব্যাবহার করতে পারবেন। সেক্ষেত্রে ব্রাউজার এবং ইন্টারনেট সংযোগ থাকলেই যেকোনো কোড কম্পাইল করা যাবে
Online Compiler Internet
Computer and Phone

মোবাইল
মোবাইলে C কোড কম্পাইল করা বেশ কঠিন। একান্ত বাধ্য না হলে কোনো মোবাইল অ্যাপ দিয়ে কম্পাইল না করাই উত্তম। মোবাইলের যত কম্পাইলার অ্যাপ আছে, সেগুলো ঠিকভাবে কাজ করে না। এক্ষেত্রে অনলাইন কম্পাইলার ব্যাবহার করা সবথেকে ভালো।

মোবাইল অ্যাপঃ কোনো অ্যান্ড্রয়েড অ্যাপ দিয়ে কম্পাইল করে খুব একটা সুবিধাজনক ফল পাওয়া যায়না। তবুও কিছু অ্যাপ এর তালিকা দেয়া হলো।
C Compiler Different
Android

অনলাইন কম্পাইলারঃ ফোনে একান্ত কোডিং করতেই হলে সবথেকে ভালো হয় কোনো অনলাইন কম্পাইলার ব্যাবহার করলে। এক্ষেত্রে সবথেকে বড় অসুবিধা হলো, এখানে ইন্টারনেট সংযোগ থাকতে হবে।
Online Compiler Internet
Computer and Phone
সহায়ক ওয়েবসাইট এবং AI

বেশ কিছু ওয়েবসাইট আছে, যেগুলো থেকে শেখার জন্যে হেল্প পাওয়া যায়। কোনো সিনট্যাক্সট ভুলে গেলে সেখান থেকে সাহায্য নিয়ে খুব দ্রুত শেখা সম্ভব হয়। কিছু সহায়ক ওয়েবসাইট:

It'sComing Soon!

আমরা এই পেজের কাজের পরিকল্পনার করছি। এই পেজের কাজ সম্পন্ন না হওয়া অব্দি অন্যান্য গুলো দেখতে পারেন।

.     .     .
C শেখার জন্য কোন কোর্স করবেন?

দেখুন, কোন কোর্স করে আপনি সবথেকে ভালোভাবে শিখতে পারবেন, তা আপনার উপরই নির্ভর করবে। আমরা এখানে আমাদের খুঁজে পাওয়া সেরা কোর্সগুলোর তালিকা দিচ্ছি। এখানে বাংলা, ইংরেজী ও হিন্দি ভাষার কোর্স আছে। সম্ভব হলে সেখানে রিভিউ ও যুক্ত করা হচ্ছে। সেক্ষেত্রে একটু ডিসিশন নিতে সুবিধা হবে।

সামনে হয়তো বেসিক টু এডভান্স আকারে সাজানোর চেষ্টা করা হবে

ধাপে ধাপে শিখুন (রোডম্যাপ)

The basic structure of C programming

How C programming works?

How a C compiler works?

What is a linker and how it works.

What happens in computer memory?

What is an executable file?

Using terminal to run your very first program.

What is variable and how to declare variables and naming conventions.

Keyword and identifiers

Static variable vs global variable

ASCII Table
[Remember the term which values the letter start and finish and the same as the numbers.] — before covering it, you have to know about the basic number system.

Basic input-output functions — printf and scanf.

Escape Sequence and their effect

Placeholder / conversion specifier.

Formatted input and output

Fundamental of data types and valid range of data types.

size_t data type in C

How to typecast in C

Introduction to Operators
Arithmetic Operators
Relational Operators
Logical Operators
Assignment Operators
Increment and Decrement operators
Conditional operators
***Bitwise Operators
Special operators

Precedence and Associativity of operators

Software development method(SDM)
Specification of needs
Problem Analysis
Design and Algorithms representation
Implementation
Testing and Verification
Documentation

Selection Structure / Conditional Structure [ if, if else, else if , nested if]

Programming style/ Indentation style

Short Circuit Evaluation

Multiple Selection style [switch case ]

Data Representation using the signed magnitude

Repetition Structure / Loops[ while, do while, for, infinite loop ]

Loop Control statement [ break , continue ]

Nested loop

### Solve at least 20 pyramids of stars program using loop. That will help you to understand how the loop works.

Introduction to Arrays

Definition, Declaration, Initialization and Accessing Arrays elements.

Designated initialization of arrays

Learn about Multi-dimensional arrays.

### Solve at least 30 problems using 1d array and solve at least matrix adding and multiplying problems using 2d arrays.

Searching and Sorting in Arrays [ Bubble sort, Selection sort, Insertion sort, Linear search, Binary search] — these basic algorithms will help to build your algorithms concept.

Introduction to Character array and strings

Declare and initialize string variables

Some useful string handling library
<ctype.h>
<string.h>
<stdlib.h>

Introduction to Function

Function Declaration and Definition

Difference between Parameters and Arguments.

Call by value and call by reference

Static and Dynamic scoping

What the terms- heap, stack does.

Introduction to Recursion

Types of Recursion [ direct, indirect, tail and nor-tail]

Advantages and Disadvantages of recursion.

### Solve minimum 10 problems using recursion

Passing Arrays to functions

Passing String to functions

The scope, visibility and lifetime of variables

automatic variables, external variables, static variables, register variables

Introduction to Pointers.

Definition, Declaration, Initialization and Accessing pointers.

Value of operator in pointers.

Arrays and Pointers

Pointers and character strings

Arrays of pointers

Pointer as function arguments

Pointer to functions

Benefit of pointers

Pointer and functions

Using pointers to 2d Array

String literals.

Dynamic Memory Allocation[malloc() , calloc() , realloc() , free()].

Concept of linked lists

Application of linked lists

Linked list vs array

Structures and Unions in c.

Declaring and Accessing structure members

Array of structures

Structures and functions

Introduction to the Preprocessor

Macro substitution, file inclusion, compiler control directives

File management in C

File and Stream

Define, open and closing a file

Input-output operations on files

Error handling during I/O operations

Command line arguments

Common programming errors

Program testing and debugging

Projects

Credit:
Fahim Muntashir
Open Roadmap C Programming
.     .     .

বাংলায় শিখুন
Anisul Islam
Everyone 258 13h 07m + YouTube
Hablu Programmer
Everyone 72 11h 43m YouTube
Stack Learner
Everyone 258 15h 15m YouTube

ইংরেজীতে শিখুন
freeCodeCamp.org
Beginners 1 03h 46m YouTube
Dr. Chuck 1 18h 35m YouTube

হিন্দিতে শিখুন
Code with Harry
Beginners 1 10h 03m YouTube
College Wallah
Beginners 12 42h 38m YouTube
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
Site is Blocked
Sorry! This site is not available in your country.