Foundationপ্রথম নীতি থেকে

ROADMAP

কারিকুলাম রোডম্যাপ

নিচের প্রতিটা মডিউল তার আগেরগুলোর উপর দাঁড়িয়ে আছে। তীরচিহ্ন মানে“এটা আগে বুঝতে হবে”। আপনি চাইলে লাফ দিতে পারেন — কিন্তু তাহলে নিচের স্তরটা ফাঁকা থেকে যাবে, আর সেটা ঠিক কোথায় গিয়ে কামড়াবে সেটা আগে থেকে বলা যায় না।

১৪ লেভেল১৬ মডিউল~১৯০০ ঘণ্টা
~৯০h

DRIVING QUESTIONএকটা claim সত্য কি না, সেটা আমি কীভাবে প্রমাণ করব — অনুমান নয়, প্রমাণ?

এই module পুরো গণিত শেখায় না। শুধু সেই গণিতটুকু শেখায় যেটা ছাড়া Computer Science-এর পরের কোনো layer বোঝা সম্ভব না। প্রতিটা concept-এর সাথে বলা থাকবে — এটা CS-এর কোথায়, কেন লাগে।

আগে দরকারকিছু না — এখান থেকেই শুরু

DRIVING QUESTIONএকটা bit pattern দেখে আমি কীভাবে জানব সেটা কী অর্থ বহন করছে?

একটা 32-bit pattern 01000001... — এটা কি সংখ্যা 65? অক্ষর "A"? একটা float? একটা instruction? উত্তর: pattern নিজে কিছু বলে না, interpretation বলে। এই module সেই interpretation-এর নিয়মগুলো শেখায়।

DRIVING QUESTIONকয়েক কোটি on/off switch দিয়ে "যোগ করা" কীভাবে সম্ভব হয়?

এখানে আমরা abstraction-এর একদম নিচে নামি। একটা transistor একটা switch। কয়েকটা switch মিলে gate। Gate মিলে adder। Adder মিলে ALU। ALU + memory + control = CPU। প্রতিটা ধাপ নিজে হাতে বানাব।

~১৩০h

DRIVING QUESTION`a = b + c` লিখলে সিলিকনের ভেতর ঠিক কী কী ঘটে?

CPU একটা instruction কীভাবে চালায়? ISA কী এবং কেন এটা hardware আর software-এর মধ্যকার contract? Pipeline, cache, branch prediction — এগুলো performance-এর জন্য যে সব চালাকি, সেগুলো কীভাবে কাজ করে এবং কখন ভেঙে পড়ে।

DRIVING QUESTIONআমার C function compile হয়ে ঠিক কোন instruction-গুলো হলো, আর কেন?

Assembly শেখার উদ্দেশ্য assembly-তে software লেখা না। উদ্দেশ্য হলো compiler কী বানায় সেটা পড়তে পারা, debugger-এ কী দেখছি বুঝতে পারা, আর performance/security-র প্রশ্নে নিচে নামতে পারা।

আগে দরকারCPU আর্কিটেকচার
~১৮০h

DRIVING QUESTIONআমার program একা মনে করে পুরো machine তার — এই বিভ্রম OS কীভাবে বানায়?

OS আসলে কী? এটা hardware-কে multiplex করে, isolation দেয়, আর abstraction তৈরি করে — process, file, socket, address space। প্রতিটা abstraction-এর নিচে কী আছে সেটাই এই module-এর মূল বিষয়। Linux হবে আমাদের laboratory।

DRIVING QUESTIONPython আর Rust — দুটোই "programming language", কিন্তু নিচে পার্থক্যটা ঠিক কোথায়?

ভাষা শেখা আর ভাষা বোঝা এক জিনিস না। এই module শেখায় type system কী গ্যারান্টি দেয়, memory কে manage করে, garbage collector কীভাবে কাজ করে, আর একটা runtime আসলে কী।

~১২০h

DRIVING QUESTIONএকটা text file কীভাবে চলমান machine code হয়ে ওঠে?

Compiler হলো CS-এর সবচেয়ে সুন্দর pipeline-গুলোর একটা। এখানে আমরা পুরোটা নিজে বানাব — lexer থেকে code generation পর্যন্ত। এরপর আপনি আর কোনো compiler-কে black box মনে করবেন না।

DRIVING QUESTIONদুইটা correct solution-এর মধ্যে কোনটা ভালো, আর "ভালো" মানে ঠিক কী?

উদ্দেশ্য competitive programming না। উদ্দেশ্য: একটা সমস্যা দেখে বুঝতে পারা কোন structure কেন মানানসই, cost কত, আর সেই cost real hardware-এ কেমন দেখায় (cache locality, allocation)।

DRIVING QUESTIONব্রাউজারে `https://example.com` লিখে Enter চাপলে ঠিক কী কী ঘটে?

Networking শেখা মানে layer-এর নাম মুখস্থ করা না। মানে একটা packet-কে অনুসরণ করা — আপনার NIC থেকে বেরিয়ে switch, router, ISP, submarine cable পেরিয়ে server পর্যন্ত, আর ফেরত।

~১৩০h

DRIVING QUESTIONবিদ্যুৎ চলে গেলেও আমার committed transaction টিকে থাকে কীভাবে?

Database একটা "table রাখার জায়গা" না — এটা একটা storage engine, একটা query optimizer, একটা concurrency control system, আর একটা crash recovery system একসাথে। PostgreSQL হবে আমাদের dissection subject।

DRIVING QUESTIONকেউ কারো উপর ভরসা করতে না পারলে, একদল computer কীভাবে একমত হয়?

Distributed system কঠিন কারণ তিনটা জিনিস একসাথে সত্য: message হারায়, node মরে, আর ঘড়ি মেলে না। এই module-এ আমরা দেখব এই তিন সমস্যা থেকেই consensus, replication, consistency model-এর জন্ম।

DRIVING QUESTIONআমার code correct — কিন্তু কি নিরাপদ? পার্থক্যটা কোথায়?

Security কোনো feature না, এটা একটা property। এই module পুরোটাই defensive ও academic — vulnerability কেন জন্মায় সেই mechanism বোঝা, যাতে আপনি এমন system বানাতে পারেন যেখানে সেগুলো জন্মায় না।

DRIVING QUESTIONএকই algorithm, একই complexity — তবু একটা ১০ গুণ দ্রুত কেন?

এখানে আমরা "কাজ করে" থেকে "কত দ্রুত এবং কেন" -তে যাই। Cache coherence protocol, memory ordering, false sharing, SIMD, GPU-র SIMT model — আর সবচেয়ে গুরুত্বপূর্ণ: সঠিকভাবে measure করতে শেখা।

DRIVING QUESTION`docker run` লিখলে kernel-এ ঠিক কোন কোন syscall হয়?

Docker আসলে কী? Kubernetes কী সমস্যা সমাধান করে? "Serverless"-এর নিচে কী চলছে? এই module প্রতিটা cloud abstraction-কে খুলে দেখায় — এবং প্রায় প্রতিবার নিচে পাওয়া যায় Linux kernel-এর কোনো feature।

~১৩০h

DRIVING QUESTIONকিছু সমস্যা কি চিরকালই অসমাধেয়? সেটা আমি প্রমাণ করব কীভাবে?

সব শেষে সবচেয়ে গভীর প্রশ্ন: computation-এর সীমা কোথায়? এই module automata, computability, complexity শেখায় — এবং তারপর শেখায় কীভাবে paper পড়তে হয়, experiment design করতে হয়, আর নিজে গবেষণা শুরু করতে হয়।