সিস্টেম ডিজাইন.bn কার জন্য?
এই পেজের লক্ষ্য: শুরু করার আগে মিলিয়ে নিন, এখানকার সেশনগুলো আপনার কাজে আসবে কিনা। আর সব শেষ করার পর কোথায় যাবেন, সেটাও জেনে নিন।
০১ কাদের জন্য সবচেয়ে ভালো
নিচের কোনো একটা দলে পড়লে এই সেশনগুলো আপনার সবচেয়ে বেশি কাজে আসবে।
| পাঠক | কেন কাজে আসবে |
|---|---|
| CS এর শেষ বছরের ছাত্রছাত্রী | Class এ শেখা server আর database মিলে কীভাবে একটা বড় system দাঁড়ায়, সেটা ধাপে ধাপে দেখবেন। |
| Junior আর mid-level backend developer (০ থেকে ৪ বছর) | আপনি code লিখতে পারেন। কিন্তু user বাড়লে system এর কোথায় কী ভাঙে, সেটা হয়তো এখনো পরিষ্কার না। এই সেশনগুলো ঠিক সেটাই পরিষ্কার করে দেয়। |
| System design interview এর প্রস্তুতি নিচ্ছেন যারা | Load balancer, cache, sharding, queue, rate limiter, সবই আছে। শেষের ছয়টা সেশনে URL shortener, feed, chat, YouTube আর Uber এর মতো বাস্তব case study আছে। |
| Frontend বা mobile developer | Backend এর ভেতরে কী হয়, সেটা বুঝলে backend team এর সাথে API নিয়ে কথা বলা অনেক সহজ হয়। |
০২ কখন এটা সবচেয়ে বেশি কাজে আসে
- একদম শূন্য থেকে শুরু করতে চাইলে: প্রথম সেশন শুরু হয় একটা চায়ের দোকানের গল্প দিয়ে, কোনো কঠিন শব্দ দিয়ে না। প্রতিটা term প্রথমবার আসার সময়ই সহজ ভাষায় বুঝিয়ে দেওয়া হয়।
- ইংরেজি বই পড়তে গিয়ে আটকে গেলে: একই ধারণাগুলো এখানে সহজ বাংলায় পাবেন। প্রতিটা সেশনে অনেকগুলো diagram আছে।
- "কীভাবে" এর আগে "কেন" জানতে চাইলে: প্রতিটা সেশন একটা সমস্যা দিয়ে শুরু হয়। তারপর সমাধানটা একটু একটু করে বড় হয়।
- Interview এর আগে পুরো ছবিটা ঝালিয়ে নিতে চাইলে: প্রতিটা সেশনের শেষে শর্ট সামারি আর "মনে রাখুন" অংশ আছে।
০৩ কাদের জন্য এখনো যথেষ্ট না
সত্যি কথা বলি। কিছু পাঠক এখানে যা খুঁজছেন, তা পুরোপুরি পাবেন না।
- Senior engineer বা architect: এই সেশনগুলো অনেক বিষয় ছুঁয়ে যায়, কিন্তু প্রতিটার একদম গভীরে যায় না। আপনার হয়তো আরো গভীর আলোচনা দরকার।
- Database এর ভেতরের কাজ জানতে চাইলে: storage engine (যেমন LSM tree), transaction এর isolation level, distributed system এর clock আর batch processing এর মতো বিষয় এখানে খুব অল্প আছে।
তাহলে কী করবেন?
এখান থেকে ভিত্তিটা শক্ত করে নিন। তারপর আরো গভীরে যাওয়ার পথ নিচের ০৫ নম্বর অংশে আছে।
০৪ শুরু করার আগে যা জানা দরকার
- যেকোনো একটা programming language এ ছোটখাটো program লিখতে পারা।
- Server, database আর API মোটামুটি কী, তার একটা ধারণা।
- আর কিছু লাগবে না। বাকিটা আমরা একসাথে শিখবো।
০৫ সব সেশন শেষে কোথায় যাবেন
এই ২৮টা সেশন আপনাকে "আমি code লিখতে পারি" থেকে "আমি একটা system design করতে পারি" পর্যন্ত নিয়ে যায়। এরপর আরো গভীরে যেতে চাইলে Martin Kleppmann এর বই Designing Data-Intensive Applications (DDIA) পড়ুন।
সব সেশন শেষ করার পর DDIA পড়া অনেক সহজ লাগবে। Replication, sharding, consensus আর CAP এর মতো ধারণাগুলো আপনি আগেই চিনে ফেলবেন। DDIA তখন এগুলোকে আরো গভীরে নিয়ে যাবে।