প্রোগ্রামিং শেখার রোডম্যাপ: ভাষার আইসবার্গ থেকে জুনিয়র ডেভেলপার হওয়ার পথ

প্রোগ্রামিং শেখার রোডম্যাপ: ভাষার আইসবার্গ থেকে জুনিয়র ডেভেলপার হওয়ার পথ

প্রোগ্রামিং শেখা শুরু করতে চান, কিন্তু প্রথম প্রশ্নেই আটকে যান — কোন প্রোগ্রামিং ভাষা শিখব? সোশ্যাল মিডিয়ায় কেউ বলছে Python, কেউ বলছে JavaScript, আবার কেউ বলছে C দিয়ে শুরু করতে হবে। একজনের পোস্টে দেখা গেল, "যে ভাষা দিয়ে শুরু করবেন, সেটাই আপনার ভবিষ্যৎ নির্ধারণ করে দেবে।" কথাটা শুনতে ভয় ধরানো, কিন্তু বাস্তবে এত নাটকীয় কিছু নয়।

এই আর্টিকেলে আমরা প্রোগ্রামিং ভাষার পুরো মানচিত্রটা একসঙ্গে দেখব — যাকে অনেক ডেভেলপার "ভাষার আইসবার্গ" (programming language iceberg) বলে থাকেন। সহজ ভাষা থেকে শুরু করে একদম জটিল ভাষা পর্যন্ত প্রতিটি স্তর কী, কারা সেগুলো ব্যবহার করে, আর সবচেয়ে গুরুত্বপূর্ণভাবে — আপনার জন্য কোন স্তর পর্যন্ত নামা দরকার, সেটাই বুঝিয়ে দেব।

দ্রুত উত্তর: শুরুতে কোন ভাষা শিখবেন?

  • ক্যারিয়ার হিসেবে ওয়েব ডেভেলপমেন্ট চান → JavaScript দিয়ে শুরু করুন (HTML ও CSS-সহ)
  • ডেটা, মেশিন লার্নিং বা অটোমেশন আগ্রহের জায়গা → Python
  • মোবাইল অ্যাপ বানাতে চান → Android-এর জন্য Kotlin, iPhone-এর জন্য Swift (বা ক্রস-প্ল্যাটফর্মে Dart/Flutter)
  • সফটওয়্যার ইঞ্জিনিয়ারিংয়ের ভিতটা শক্ত করতে চান → Python বা JavaScript দিয়ে শুরু করে পরে C অথবা Java-য় যান
  • একদম শুরুতে সবচেয়ে সহজ কিছু চান → Scratch (দৃষ্টি-ভিত্তিক, কোড লেখা লাগে না)

মনে রাখুন, প্রথম ভাষাটি "চূড়ান্ত পছন্দ" নয়। এটা শুধু আপনার চিন্তা করার পদ্ধতি শেখার হাতিয়ার। একবার একটা ভাষার যুক্তি আয়ত্ত করলে দ্বিতীয় ভাষা শিখতে সময় লাগে অনেক কম।

"ভাষার আইসবার্গ" ধারণাটা কী?

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

আইসবার্গের প্রতিটি স্তরের নিজস্ব একটা থিম আছে:

স্তর থিম উদাহরণ ভাষা
১ একদম সহজ, শেখার জন্য Scratch, BASIC
২ ডাইনামিক হাই-লেভেল Python, JavaScript
৩ স্পেশালিস্ট SQL, Bash, PHP, Ruby, R
৪ টাইপ-সেফ (স্ট্যাটিক টাইপ) Java, C#, TypeScript, Kotlin, Go
৫ ফাংশনাল Haskell, F#, Scala, Elixir
৬ সিস্টেম-লেভেল C, C++, Rust
৭–৮ আধুনিক ও ঐতিহাসিক Zig, Nim, Fortran, COBOL, Lisp
৯ এসোটেরিক (মজার) Brainfuck, LOLCODE
১০ একদম নিচে অ্যাসেম্বলি, মেশিন কোড

আইসবার্গের সবচেয়ে বড় শিক্ষা হলো — আপনাকে একদম নিচে নামতেই হবে না। বিশ্বের অধিকাংশ ডেভেলপার স্তর ২ থেকে ৪-এর মধ্যে থেকেই সারাজীবন কাজ করেন।

স্তর ১: যেখানে সবাই শুরু করে

Scratch — কোড লেখা ছাড়াই প্রোগ্রামিং

স্ক্র্যাচ (Scratch) ম্যাসাচুসেটস ইনস্টিটিউট অব টেকনোলজি (MIT)-তে তৈরি। এখানে টাইপ করে কোড লেখা হয় না — লেগো ব্লকের মতো রঙিন ব্লকগুলো টেনে-নামিয়ে জোড়া দিতে হয়। ভেরিয়েবল, লুপ, শর্ত — প্রোগ্রামিংয়ের মৌলিক ধারণাগুলো এই ব্লক দিয়েই শেখানো যায়। স্ক্র্যাচের নিজস্ব তথ্য অনুযায়ী, বিশ্বজুড়ে ২০ কোটি শিশু এই প্ল্যাটফর্মে তৈরি করে শিখছে। বাচ্চাদের শুরু করার জন্য এটা দারুণ, তবে পেশা হিসেবে কেউ স্ক্র্যাচ দিয়ে চাকরি করে না।

BASIC — প্রথম জনপ্রিয় শিক্ষামূলক ভাষা

BASIC (Beginner's All-purpose Symbolic Instruction Code) ১৯৬৪ সালে ডার্টমাউথ কলেজে তৈরি হয়। তখনকার সময়ে FORTRAN-এর মতো ভাষা বিজ্ঞানীদের জন্য তৈরি হলেও সেগুলো সাধারণ মানুষের জন্য কঠিন ছিল। BASIC সহজ কমান্ড (PRINT, GOTO) দিয়ে কম্পিউটার-শিক্ষাকে সাধারণ মানুষের দোরগোড়ায় নিয়ে আসে — ফলে পরের ৫০ বছর ধরে ব্যক্তিগত কম্পিউটারে শুরুর ভাষা হিসেবে এর রাজত্ব ছিল।

স্তর ২: Python ও JavaScript — আধুনিক শিক্ষানবিশের দুই প্রধান পথ

Python: সহজ, তাই সবচেয়ে জনপ্রিয়

Python-এর নিজস্ব ওয়েবসাইটেই বলা আছে, এটি "শেখা সহজ" (easy to learn) — প্রথমবার প্রোগ্রামিং করছেন বা আগে অন্য ভাষায় অভিজ্ঞ, দুক্ষেত্রেই Python তুলে নেওয়া সহজ। কার্লি ব্রেস বা সেমিকোলনের ঝামেলা নেই; ইন্ডেন্টেশন (ইনডেন্ট) দিয়েই কোডের ব্লক বোঝানো হয়। ফলে কোড দেখতে পরিষ্কার-পরিচ্ছন্ন।

কেন এত জনপ্রিয়? কারণ এক ভাষায় অনেক কাজ করা যায়:

  • ওয়েবসাইটের ব্যাকএন্ড (Django, Flask)
  • ডেটা অ্যানালিসিস ও মেশিন লার্নিং
  • অটোমেশন স্ক্রিপ্ট
  • বৈজ্ঞানিক কম্পিউটিং

তবে Python-এর একটা দুর্বলতা আছে — এটি তুলনামূলক ধীর। দ্রুততার দরকার হয় এমন সফটওয়্যারে (যেমন গেম ইঞ্জিন, অ্যাপারেটিং সিস্টেম) Python সরাসরি ব্যবহার হয় না; সেখানে অন্য ভাষার কোডের সঙ্গে জোড়া লাগিয়ে ব্যবহার হয়।

JavaScript: ওয়েবের অপরিহার্য ভাষা

ওয়েব ডেভেলপমেন্ট করতে চাইলে JavaScript এড়ানোর উপায় নেই। ব্রাউজারে যে কোনো ওয়েবপেজে যা কিছু ইন্টারঅ্যাকটিভ — বাটনে ক্লিক, ফর্ম ভেরিফিকেশন, অ্যানিমেশন — সব JavaScript দিয়ে চলে। অনেক ডেভেলপারের মজার উক্তি, "যেকোনো অ্যাপ্লিকেশন যা JavaScript-এ লেখা যায়, শেষ পর্যন্ত সেটাই JavaScript-এ লেখা হবে।"

সিনট্যাক্স (লেখার ধরন) নিয়ে অভিযোগ আছে, কিন্তু বাস্তবতা হলো — ওয়েব দুনিয়ায় এর বিকল্প নেই। আর শুধু ব্রাউজার নয়; Node.js-এর মাধ্যমে সার্ভার-সাইডেও JavaScript চলে। অর্থাৎ একটাই ভাষা শিখে ফ্রন্টএন্ড আর ব্যাকএন্ড — দুটোই করা যায়।

স্তর ৩: স্পেশালিস্ট ভাষা — নির্দিষ্ট কাজের বিশেষজ্ঞ

আইসবার্গের এই স্তরে পৌঁছালে দেখা যায়, প্রতিটি ভাষার একটা নির্দিষ্ট কর্মক্ষেত্র আছে:

  • SQL — ডেটাবেস থেকে ডেটা পড়া ও লেখার প্রায় সার্বজনীন ভাষা। প্রায় প্রতিটি অ্যাপের পেছনে একটা ডেটাবেস থাকে, তাই SQL না জেনে পেশাদার ডেভেলপার হওয়া প্রায় অসম্ভব। (SQL উচ্চারণ নিয়ে বিতর্ক আছে — কেউ বলে "এসকিউএল", কেউ বলে "সিক্যুয়েল" — দুটোই চলে।)
  • Bash / PowerShell — কমান্ড লাইন বা টার্মিনালে কাজ করার স্ক্রিপ্টিং ভাষা। বারবার একই কমান্ড টাইপ করার বদলে একটা স্ক্রিপ্ট লিখে ফেললে কাজটা রিপ্রোডিউসিবল হয়ে যায়। Linux সার্ভার বা ক্লাউডে কাজ করলে এটা ভীষণ কাজে লাগে।
  • PHP — ১৯৯০-এর দশকে সার্ভার-সাইড ওয়েব অ্যাপ বানাতে বিপ্লব এনেছিল; এখনো বিশ্বের বিপুল সংখ্যক ওয়েবসাইট (WordPress-সহ) PHP-তেই চলে। বাংলাদেশের ফ্রিল্যান্সিং মার্কেটেও PHP-র চাহিদা কমেনি।
  • Lua — Python-এর চেয়েও হালকা ও দ্রুত; গেম ইঞ্জিনে (যেমন Roblox) এমবেডেড স্ক্রিপ্টিং ভাষা হিসেবে বহুল ব্যবহৃত।
  • Ruby — শেখা সহজ, অবজেক্ট-ওরিয়েন্টেড ভাষা; Ruby on Rails ফ্রেমওয়ার্ক দিয়ে দ্রুত ওয়েব অ্যাপ বানানোর জন্য বিখ্যাত।
  • R ও Julia — পরিসংখ্যান, ডেটা ভিজুয়ালাইজেশন (R) ও বৈজ্ঞানিক কম্পিউটিংয়ের (Julia) জন্য বিশেষায়িত।

এই ভাষাগুলোর একটি সাধারণ বৈশিষ্ট্য — এগুলো "ডাইনামিক টাইপড", অর্থাৎ ভেরিয়েবলের ধরন ঘোষণা না করলেও চলে। বড় প্রজেক্টে এই নমনীয়তাই মাঝে মাঝে সমস্যা তৈরি করে, আর তখনই দরকার পড়ে পরের স্তরের ভাষাগুলোর।

স্তর ৪: টাইপ-সেফ জায়ান্টরা — যেখানে চাকরির বাজার

জটিল সফটওয়্যারে "টাইপ সিস্টেম" বিশাল কাজের। ধরুন, একটা ভেরিয়েবলে সংখ্যা রাখবেন নাকি লেখা (text)? টাইপ-সেফ ভাষায় এটা কম্পাইল করার সময়ই ধরা পড়ে — রান করার সময় নয়। এই স্তরের ভাষাগুলোই পৃথিবীর অধিকাংশ প্রোডাকশন কোড চালায়।

Java: একবার লিখুন, যেকোনো জায়গায় চালান

Java ১৯৯৫ সালে সান মাইক্রোসিস্টেমস তৈরি করে। এর মূল উদ্ভাবন Java Virtual Machine (JVM) — Java কোড বাইটকোডে কম্পাইল হয়, আর সেই বাইটকোড JVM-এর মাধ্যমে যেকোনো কম্পিউটার আর্কিটেকচারে চলে। ব্যাংকিং সফটওয়্যার, অ্যান্ড্রয়েড অ্যাপ, বড় এন্টারপ্রাইজ সিস্টেম — Java এখনো চাকরির বাজারে সবচেয়ে চাহিদাসম্পন্ন ভাষাগুলোর একটি। শুরুর দিকে সিনট্যাক্স কিছুটা জটিল লাগতে পারে, কিন্তু আধুনিক IDE (যেমন IntelliJ IDEA) দিয়ে কোড লেখা অনেক সহজ হয়ে গেছে।

C#: Microsoft-এর শক্তিশালী উত্তর

Java-র মতোই, তবে Microsoft তৈরি করেছে। .NET ফ্রেমওয়ার্কে ওয়েব ও ডেস্কটপ অ্যাপ, আর Unity গেম ইঞ্জিনে গেম ডেভেলপমেন্ট — C#-এর দুই প্রধান ক্ষেত্র। ব্যবহারকারীদের মধ্যে জনপ্রিয়তাও ভালো।

TypeScript: JavaScript-এ টাইপ যোগ করা

TypeScript-এর অফিসিয়াল বর্ণনা এক লাইনে: "JavaScript with syntax for types" — টাইপের জন্য সিনট্যাক্সসহ JavaScript। বড় ও জটিল প্রজেক্টে JavaScript-এর শিথিলতা সমস্যা তৈরি করে; TypeScript সেটা সমাধান করে, আবার ব্রাউজারে চালানোর সময় JavaScript-এ রূপান্তরিত হয়। আধুনিক ওয়েব ডেভেলপমেন্টে TypeScript এখন প্রায় ডিফল্ট পছন্দ হয়ে উঠেছে।

মোবাইল ও অন্যান্য

  • Kotlin — Android অ্যাপের অফিসিয়াল ভাষা (Google সমর্থিত)
  • Swift — iPhone/iOS অ্যাপের অফিসিয়াল ভাষা (Apple-এর তৈরি)
  • Dart — Flutter ফ্রেমওয়ার্কের ভাষা; এক কোডবেস থেকে Android ও iOS দুটোরই অ্যাপ
  • Go — Google-এর তৈরি সিস্টেম-লেভেল ভাষা

Go: Google-এর সরল অথচ শক্তিশালী ভাষা

Go (বা Golang) ডিজাইন করেছেন Robert Griesemer, Rob Pike ও Ken Thompson — ২০০৯ সালের নভেম্বরে প্রকাশিত। (Ken Thompson আবার C ভাষারও অন্যতম নির্মাতা।) Go-র সিনট্যাক্স ছোট ও পরিচ্ছন্ন, ফলে শিক্ষানবিশের কাছেও সহজবোধ্য; আবার গারবেজ কালেক্টর থাকায় C-র মতো মেমোরি ম্যানেজমেন্টের ঝামেলাও নেই। ক্লাউড সেবা, নেটওয়ার্কিং টুল, বড় সিস্টেমের ব্যাকএন্ড — Go-র দাপট এখানে।

ভাষা নির্মাতা মূল ব্যবহার নতুনদের জন্য সহজতা
Java Sun (১৯৯৫) এন্টারপ্রাইজ, Android, ব্যাংকিং মাঝারি
C# Microsoft .NET, Unity গেম মাঝারি
TypeScript Microsoft আধুনিক ওয়েব সহজ (JS জানা থাকলে)
Kotlin JetBrains/Google Android সহজ-মাঝারি
Swift Apple iOS/macOS সহজ-মাঝারি
Go Google (২০০৯) ক্লাউড, ব্যাকএন্ড সহজ-মাঝারি

স্তর ৫: ফাংশনাল ভাষা — ভিন্ন এক চিন্তার জগৎ

এই স্তরে পৌঁছালে আইসবার্গের অদ্ভুত অংশ শুরু হয়। ফাংশনাল ভাষাগুলোতে ক্লাস, ইনহেরিট্যান্স, ডিজাইন প্যাটার্নের বদলে মূল জিনিসটা হলো ফাংশন। সবচেয়ে বিখ্যাত হলো Haskell — গণিতবিদ Haskell Curry-র নামে নামকরণ। এখানে ভেরিয়েবল ইমিউটেবল (একবার মান দিলে আর বদলায় না) আর ফাংশনের কোনো "সাইড ইফেক্ট" নেই। বিখ্যাত রসিকতা: "মোনাড কী?" — "মোনাড হলো এন-ফাংক্টরের ক্যাটাগরিতে একটি মোনয়েড" (Monad is just a monoid in the category of endofunctors)। যারা বুঝলেন, তারা আসলেই Haskell বোঝেন!

এছাড়া আছে:

  • F# — Microsoft-এর ফাংশনাল ভাষা, তবে Haskell-এর মতো কঠোর নয়
  • Scala — JVM-এ চলে, অবজেক্ট-ওরিয়েন্টেড ও ফাংশনাল দুইই
  • Elixir — Ruby-র মতো চেনা সিনট্যাক্স, উচ্চ-পারফরম্যান্স রিয়েল-টাইম ওয়েব অ্যাপ

সত্যি কথা বলতে, প্রোডাকশন কোডের সিংহভাগ ফাংশনাল নয়। কিন্তু এই ভাষাগুলো শিখলে চিন্তার গভীরতা বাড়ে — বড় সিস্টেম ডিজাইনের সময় কাজে লাগে।

স্তর ৬: সিস্টেমের মূল — C, C++ ও Rust

এখানে এসে আমরা আইসবার্গের বুকে পৌঁছে গেছি। এই ভাষাগুলো দিয়েই তৈরি হয় অ্যাপারেটিং সিস্টেম কার্নেল, কম্পাইলার, গেম ইঞ্জিন — যেগুলোর ওপর নির্ভর করে উপরের সব ভাষা।

C: সব ভাষার পূর্বপুরুষ

C ভাষা ১৯৭০-এর দশকের শুরুতে বেল ল্যাবরেটরিতে ডেনিস রিচি তৈরি করেন। Windows, macOS, Linux — তিনটি প্রধান অ্যাপারেটিং সিস্টেমের কার্নেলই C দিয়ে লেখা। C-র সিনট্যাক্স এত প্রভাবশালী যে পরবর্তী প্রায় প্রতিটি ভাষাই (Java, C#, JavaScript, PHP-সহ) এর কাছ থেকে ধার নিয়েছে। ভাষাটা নিজে শেখা মোটামুটি সহজ — কীওয়ার্ডের সংখ্যা কম — কিন্তু ভালোভাবে ব্যবহার করতে গেলে কম্পিউটার আর্কিটেকচার ও অ্যালগরিদমের গভীর জ্ঞান দরকার। যেমন: C-তে রেডিমেড ডিকশনারি বা হ্যাশ ম্যাপ নেই; দরকার হলে নিজেকেই ডেটা স্ট্রাকচার লিখে নিতে হয়।

C++: C-এর শক্তিশালী উত্তরসূরি

C++ মূলত C-এর সুপারসেট — ক্লাস ও ইনহেরিট্যান্স যোগ করে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এনেছে। বিয়ার্ন স্ট্রাসট্রুপ এটি তৈরি করেন। শেখা কঠিন — পয়েন্টার দিয়ে মেমোরি ম্যানেজমেন্টে ভুল করলে প্রোগ্রাম হ্যাং হওয়া, ক্র্যাশ করা, এমনকি নিরাপত্তার গর্ত তৈরি হওয়াও সম্ভব। তবুও গেম ইঞ্জিন, ব্রাউজার, ডাটাবেস, ট্রেডিং সিস্টেম — সর্বোচ্চ পারফরম্যান্স দরকার এমন জায়গায় C++ এখনো রাজা।

Rust: আধুনিক সমাধান

Rust সিস্টেম-প্রোগ্রামিংয়ে নতুন মানদণ্ড তৈরি করেছে। গারবেজ কালেক্টর নেই, কিন্তু পয়েন্টারের বিপদও নেই — "বরো চেকিং" (borrow checking) নামের এক কৌশলে মেমোরি নিরাপত্তা কম্পাইলারের সময়েই নিশ্চিত করা হয়। Rust-এর নিজস্ব ওয়েবসাইট বলছে, এর রিচ টাইপ সিস্টেম ও ওনারশিপ মডেল মেমোরি ও থ্রেড নিরাপত্তার নিশ্চয়তা দেয় — মানে অনেক ক্লাসের বাগ কম্পাইল হতেই ধরা পড়ে, অ্যাপ চালানোর আগেই।

জনপ্রিয়তার দিক থেকে: Stack Overflow-এর বার্ষিক ডেভেলপার জরিপে ২০১৬ থেকে ২০২৫ পর্যন্ত (টানা ১০ বছর) Rust ধারাবাহিকভাবে "সবচেয়ে পছন্দের/সর্বাধিক প্রশংসিত" (most admired) ভাষার স্বীকৃতি পেয়েছে। যারা একবার Rust-এ কাজ করেছেন, তারা আবার সেটাতেই কাজ করতে চান — জরিপের এই ফলাফল সেটাই বলছে।

স্তর ৭–৮: আধুনিক ও ঐতিহাসিক ভাষা

আধুনিক চ্যালেঞ্জাররা

  • Zig — C-র বিকল্প হিসেবে ডিজাইন করা; ম্যাক্রো ও মেটা-প্রোগ্রামিং বাদ দিয়ে মেমোরি ম্যানেজমেন্টে স্পষ্টতা
  • Nim — Python-এর মতো এক্সপ্রেসিভ, কিন্তু স্ট্যাটিক-টাইপড; গারবেজ কালেক্টর বন্ধ করেও ম্যানুয়াল মেমোরি ম্যানেজমেন্ট
  • Carbon — Google ঘোষিত C++-এর উত্তরসূরি; পুরোনো C++ কোডবেসের সঙ্গে সম্পূর্ণ ইন্টারঅপারেবিলিটিই এর বিশেষত্ব
  • Solidity — Ethereum-এর স্মার্ট কন্ট্রাক্ট লেখার ভাষা; ব্লকচেইন ডেভেলপমেন্টে আগ্রহীদের জন্য

ইতিহাসের স্তম্ভ

  • Fortran (১৯৫৭, IBM) — প্রথম হাই-লেভেল প্রোগ্রামিং ভাষা; বৈজ্ঞানিক কম্পিউটিংয়ে আজও ব্যবহৃত
  • Lisp (১৯৫৮, জন ম্যাকার্থি) — ডাইনামিক টাইপিং, রিকারশন, হায়ার-অর্ডার ফাংশন — আজকের অনেক ভাষার মৌলিক ধারণার জন্ম এখানেই
  • COBOL (১৯৫৯, CODASYL) — ব্যবসায়িক ডেটা প্রসেসিংয়ের ভাষা। গার্টনার গ্রুপের এক হিসাব অনুযায়ী, বিশ্বে প্রায় ২০০ বিলিয়ন (২০ হাজার কোটি) লাইন COBOL কোড ছিল, যা সে সময় ৮০% ব্যবসায়িক প্রোগ্রাম চালাত। ব্যাংকিং সিস্টেমে এর ব্যবহার আজও ব্যাপক
  • Pascal (১৯৭০) — শেখা সহজ, দ্রুত কম্পাইল; ১৯৮০-এর দশকের শুরুর সবচেয়ে জনপ্রিয় ভাষা
  • Erlang — টেলিকম ইন্ডাস্ট্রিকে শক্তি দেওয়া কনকারেন্ট ফাংশনাল ভাষা; এখনো ব্যবহৃত
  • Ada — বিশ্বের প্রথম প্রোগ্রামার হিসেবে পরিচিত অ্যাডা লাভলেসের নামে নামকরণ; মার্কিন প্রতিরক্ষা দপ্তরের প্রকল্পে ব্যবহৃত

এই ভাষাগুলো শেখা জরুরি নয়, তবে জানা ভালো — কারণ বিশ্বের অনেক গুরুত্বপূর্ণ সিস্টেম এখনো এগুলোতেই চলে।

স্তর ৯: এসোটেরিক ভাষা — প্রোগ্রামিংয়ের মজার দিক

আইসবার্গের এই অংশে এমন ভাষা আছে যেগুলো শিল্পকর্মের মতো, ইঞ্জিনিয়ারিং টুল নয়:

  • Brainfuck — মাত্র ৮টি কমান্ড দিয়ে তৈরি; টিউরিং-কমপ্লিটও বটে। কোড বোঝা এতই কঠিন যে নামেই বলা হয়েছে
  • LOLCODE — সিনট্যাক্স লোলক্যাট মিমের ভাষায়: `HAI`, `K THX BYE`, লুপ চালায় `IM IN UR` দিয়ে
  • EmojiCode — পুরো কোডই ইমোজিতে লেখা হয়; ক্লাস বানানো যায় খরগোশ দিয়ে, জেনেরিক বানানো যায় বেগুন দিয়ে
  • Chef — কোড দেখতে রান্নার রেসিপির মতো; "put ingredient into mixing bowl" মানে স্ট্যাকে ভ্যালু পুশ করা

এই ভাষাগুলো দিয়ে চাকরি হয় না, কিন্তু এগুলো প্রমাণ করে প্রোগ্রামিং কতটা সৃজনশীল হতে পারে। আর কিছু ভাষা আছে যেগুলো গুরুতর হলেও অদ্ভুত — যেমন C– (পোর্টেবল অ্যাসেম্বলি) বা HolyC (অপারেটিং সিস্টেমের ভেতরেই স্ক্রিপ্টিং)।

একদম নিচে: অ্যাসেম্বলি, মেশিন কোড ও ট্রানজিস্টর

আইসবার্গের একদম গোড়ায় — অ্যাসেম্বলি। প্রতিটি CPU আর্কিটেকচারের (x86, ARM) নিজস্ব নির্দেশনা (instruction) আছে; অ্যাসেম্বলি সেই নির্দেশনাগুলো মানুষের বোধগম্য সংক্ষিপ্ত রূপে লেখে। এর নিচে মেশিন কোড — এক-শূন্য (বাইনারি) বা হেক্সাডেসিমালের সারি। আর মেশিন কোডের নিচে? ট্রানজিস্টর — একটি ট্রানজিস্টর একটি বিট (০ বা ১) ধারণ করে; ট্রানজিস্টরগুলো NOT, AND, OR-এর মতো লজিক গেটে সাজানো হয়, আর সেই লজিক গেটগুলোর সমন্বয়েই এক সেকেন্ডে কোটি কোটি বার হিসাব চলে। (আপনার কম্পিউটারের ভেতরের এই প্রক্রিয়াটা নিয়ে বিস্তারিত জানতে চাইলে আমাদের CPU কীভাবে কাজ করে: Apple Silicon বনাম Intel আর্টিকেলটা পড়তে পারেন।)

আইসবার্গ মানেই সব স্তর শিখতে হবে না: ৩টি বাস্তব পথ

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

পথ ১: ওয়েব ডেভেলপমেন্ট (সবচেয়ে জনপ্রিয়)

শুরু: HTML → CSS → JavaScript → TypeScript → React (বা Vue)

এরপর: Node.js বা PHP দিয়ে ব্যাকএন্ড, SQL দিয়ে ডেটাবেস

কেন: চাকরি ও ফ্রিল্যান্সিং — দুই জায়গাতেই চাহিদা সবচেয়ে বেশি। ছোট প্রজেক্টে একা ডেভেলপারও কাজ পেতে পারেন, তাই শুরুর পথ হিসেবে জনপ্রিয়।

পথ ২: ডেটা ও মেশিন লার্নিং

শুরু: Python → ডেটা স্ট্রাকচার ও অ্যালগরিদম → Pandas/NumPy → SQL

এরপর: মেশিন লার্নিং ফ্রেমওয়ার্ক, ডেটা ভিজুয়ালাইজেশন, স্ট্যাটিস্টিক্স

কেন: ডেটা-নির্ভর সিদ্ধান্তের যুগে এই দক্ষতার চাহিদা বাড়ছে; R ও Julia এখানে বোনাস দক্ষতা।

পথ ৩: মোবাইল অ্যাপ

শুরু: Kotlin (Android) অথবা Swift (iOS) — অথবা Dart দিয়ে Flutter (দুটো প্ল্যাটফর্ম একসঙ্গে)

এরপর: অ্যাপ আর্কিটেকচার, ডেটাবেস, API ইন্টিগ্রেশন

কেন: মোবাইল ইকোসিস্টেম বিশাল; বাংলাদেশের তরুণদের মাঝেও অ্যাপ ডেভেলপমেন্টে আগ্রহ দ্রুত বাড়ছে।

পথ ৪: সিস্টেম ও ব্যাকএন্ড ইঞ্জিনিয়ারিং

শুরু: Python বা Java → C (কম্পিউটার বোঝার জন্য) → Go বা Rust

এরপর: লিনাক্স, নেটওয়ার্কিং, ক্লাউড, ডেটাবেস

কেন: সিস্টেম ইঞ্জিনিয়ারের চাহিদা কম হলেও দাম বেশি; যাদের কম্পিউটারের ভেতরটা নিয়ে আগ্রহ, তাদের জন্য আদর্শ।

> গুরুত্বপূর্ণ: যেকোনো পথ বেছে নিন, প্রথম ৬ মাস শুধু একটি ভাষা আর প্রোগ্রামিংয়ের মৌলিক ধারণায় (ভেরিয়েবল, লুপ, ফাংশন, অবজেক্ট) মনোযোগ দিন। ভাষা বারবার বদলানো শুরুর সবচেয়ে বড় ভুলগুলোর একটি।

বাংলাদেশের শিক্ষার্থীদের জন্য এর মানে কী

বাংলাদেশে প্রোগ্রামিং শেখার যে দৃশ্যপট, তার সঙ্গে আইসবার্গের মানচিত্রটা দারুণ মেলে:

  • ফ্রিল্যান্সিং ক্যারিয়ার — বাংলাদেশের বহু তরুণ ফ্রিল্যান্সিং মার্কেটপ্লেসে কাজ করেন; সেখানে ওয়েব ডেভেলপমেন্ট, অ্যাপ ডেভেলপমেন্ট ও ডেটা-সংক্রান্ত কাজের চাহিদা ধারাবাহিকভাবে বেশি। অর্থাৎ স্তর ২–৪-এর ভাষাগুলোই এখানে সোনার ডিম পাড়া মুরগি।
  • স্থানীয় সফটওয়্যার কোম্পানি — দেশের সফটওয়্যার ও স্টার্টআপ কোম্পানিগুলোতে JavaScript, PHP, Python, Java, C#-এর মতো ভাষায় দক্ষ ডেভেলপারদের চাহিদা সবচেয়ে বেশি। নতুন গ্র্যাজুয়েটদের জন্য এই ভাষাগুলোই নিরাপদ পছন্দ।
  • শিক্ষাব্যবস্থা — বিশ্ববিদ্যালয়ের কম্পিউটার সায়েন্স সিলেবাসে এখনো C, Java, Pythonই মূল ভাষা। যারা সিএসই/আইসিটি নিয়ে পড়ছেন, তারা এই ভাষাগুলো পাবেনই; তার সঙ্গে নিজে থেকে JavaScript/SQL শিখে নিলে ক্যারিয়ারে এগিয়ে থাকা যায়।
  • বাস্তবতা — দেশের ইন্টারনেট ও ডিভাইস সীমাবদ্ধতার কারণে ভারী সফটওয়্যার ডেভেলপমেন্টের চেয়ে ওয়েব-ভিত্তিক কাজ শুরু করা সহজ; সেজন্যই শুরুর জন্য ওয়েব পথ সবচেয়ে কার্যকর।

যারা শুধু "কোন ভাষা শিখব" ভাবছেন, তাদের জন্য সবচেয়ে বড় কথা: ভাষা যেটাই হোক, শেখার পদ্ধতি একই — ছোট ছোট প্রজেক্ট বানানো। ভাষার সিনট্যাক্স মুখস্থ করা নয়, সমস্যা সমাধানের চিন্তা শেখাই আসল কাজ।

সাধারণ ভুলগুলো

  • ভাষা বাছাইয়ে সময় নষ্ট — কয়েক সপ্তাহ ধরে "কোনটা ভালো" গবেষণা করা, কিন্তু কোড লেখা শুরুই না করা। মনে রাখবেন: প্রথম ভাষা চূড়ান্ত নয়।
  • শুধু টিউটোরিয়াল দেখা — ভিডিও দেখে "বুঝে ফেলেছি" ভাবা। প্রোগ্রামিং শেখা হয় হাতে-কলমে; টিউটোরিয়াল দেখার অনুপাতে অন্তত দ্বিগুণ সময় নিজে কোড করা উচিত।
  • একসঙ্গে ৫টা ভাষা শুরু করা — Python, JavaScript, Java, C++ একসঙ্গে শুরু করলে কোনোটা-ই আয়ত্ত হবে না। এক সময়ে একটি ভাষা।
  • সিনট্যাক্স মুখস্থ করা — `print` কীভাবে লিখতে হয় মনে রাখা মানে প্রোগ্রামিং জানা নয়; যুক্তি (logic) বোঝাই আসল।
  • "কঠিন" ভাষা দিয়ে শুরু করা — "C দিয়ে শুরু করলে ভিত শক্ত হবে" — এই পরামর্শ সবার জন্য নয়। প্রথম ভাষা হিসেবে সহজ ভাষা (Python/JavaScript) নিয়ে তারপর ধীরে ধীরে গভীরে যাওয়া অধিক কার্যকর।
  • ইংরেজি দক্ষতাকে বাধা ভাবা — ডকুমেন্টেশন পড়ার জন্য বেসিক ইংরেজিই যথেষ্ট; অনুবাদ-নির্ভর হওয়ার বদলে ধীরে ধীরে ইংরেজি ডকুমেন্টেশন পড়ার অভ্যাস করুন।

প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)

প্রশ্ন: নতুনদের জন্য কোন প্রোগ্রামিং ভাষা সবচেয়ে সহজ?

Python সাধারণত সবচেয়ে সহজ বলে বিবেচিত — সিনট্যাক্স পরিষ্কার, কমিউনিটি বিশাল, শিক্ষা উপকরণ প্রচুর। একদম ছোটদের (বা ভিজ্যুয়াল শুরুর) জন্য Scratch-ও চমৎকার বিকল্প।

প্রশ্ন: Python না JavaScript — কোনটা আগে শিখব?

আপনার লক্ষ্যের ওপর নির্ভর করে। ওয়েব ডেভেলপমেন্ট (ব্রাউজারে যা দেখা যায়) করতে চাইলে JavaScript; ডেটা, মেশিন লার্নিং বা অটোমেশনে আগ্রহ থাকলে Python। দুটোই শেখা যায় — ক্রমটা নির্ভর করে ক্যারিয়ার পথের ওপর।

প্রশ্ন: প্রোগ্রামিং শিখে চাকরি পেতে কতদিন লাগে?

নিয়মিত (দিনে ২–৩ ঘণ্টা) অনুশীলনে ৬ মাস থেকে ১ বছরের মধ্যে জুনিয়র ডেভেলপার পদের জন্য প্রস্তুত হওয়া সম্ভব। তবে এটা ব্যক্তিভেদে পরিবর্তিত হয়; প্রজেক্ট-ভিত্তিক শেখা সময় কমায়।

প্রশ্ন: C না C++ না Rust — সিস্টেম প্রোগ্রামিং শিখতে কোনটা ভালো?

শিক্ষার দৃষ্টিকোণ থেকে C দিয়ে শুরু করা ভালো (কম্পিউটারের কাজ বোঝা যায়); নতুন প্রজেক্টের জন্য Rust আধুনিক ও নিরাপদ পছন্দ; বিদ্যমান বড় সিস্টেমে কাজ করতে C++।

প্রশ্ন: ফ্রিল্যান্সিংয়ের জন্য কোন ভাষা শিখব?

ওয়েব ডেভেলপমেন্ট (JavaScript + PHP বা Python) দিয়ে শুরু করা সাধারণত সবচেয়ে কার্যকর — ছোট প্রজেক্টে একা কাজ করার সুযোগ বেশি। এরপর চাহিদা অনুযায়ী মোবাইল (Flutter/Kotlin) বা ডেটা দক্ষতা যোগ করা যায়।

প্রশ্ন: প্রোগ্রামিং শিখতে গণিতের কতটা দরকার?

বেসিক প্রোগ্রামিংয়ের জন্য বেশি গণিত লাগে না — যুক্তি ও সমস্যা-সমাধানের দক্ষতাই মূল। তবে ডেটা সায়েন্স, মেশিন লার্নিং বা গেম ডেভেলপমেন্টের মতো বিশেষায়িত ক্ষেত্রে গণিত গুরুত্বপূর্ণ হয়ে ওঠে।

উপসংহার

প্রোগ্রামিং ভাষার আইসবার্গ বিশাল — উপরে সহজ ভাষা, নিচে জটিল সিস্টেম-ভাষা, আর একদম তলায় ট্রানজিস্টরের জগৎ। কিন্তু এই বিশালতাই ভয়ের কারণ নয়; বরং এটি স্বস্তির কারণ — কারণ মানচিত্রটা স্পষ্ট। আপনি কোথায় আছেন, কোথায় যেতে চান, আর কোন স্তর পর্যন্ত নামা দরকার — সবকিছুই আগে থেকে জানা সম্ভব।

মনে রাখবেন চারটি কথা: একটি ভাষা দিয়ে শুরু করুন, প্রজেক্ট বানিয়ে শিখুন, ধীরে ধীরে গভীরে নামুন, আর কখনো "ভাষা পরিবর্তনের" ভয়ে আটকে থাকবেন না। আজই একটি ভাষা বেছে নিয়ে প্রথম প্রোগ্রাম লিখে ফেলুন — বাকি পথ নিজেই পরিষ্কার হয়ে যাবে।

—

সোর্স:

  • Python Software Foundation — python.org/about ("Friendly & Easy to Learn")
  • Rust Programming Language — rust-lang.org (performance, ownership model, memory safety)
  • TypeScript — typescriptlang.org ("JavaScript with syntax for types")
  • The Go Programming Language — go.dev; Wikipedia: Go (designers Robert Griesemer, Rob Pike, Ken Thompson; released November 10, 2009)
  • Scratch — scratch.mit.edu (free; 200 million kids)
  • Wikipedia: COBOL (designed 1959 by CODASYL; Gartner 1997 estimate of 200 billion lines running 80% of business programs)
  • Wikipedia: Rust — Stack Overflow Developer Survey 2025 named Rust the "most admired" language annually 2016–2025

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top