ইংরেজি না জানলে কি প্রোগ্রামার হওয়া যায় না? সত্যিটা যা কেউ বলে না !

আপনি কি কখনো এই কারণে coding শেখা থামিয়ে দিয়েছেন যে “ইংরেজি তো ভালো না” ?

তাহলে আপনি একটা ভুল যুদ্ধে লড়ছেন এবং এই ভুলটা আপনার একা না।

ইংরেজি না জানলে কি প্রোগ্রামার হওয়া যায় না?

সংখ্যাটা আগে দেখুন

বাংলাদেশ Bureau of Educational Information and Statistics (BANBEIS)-এর তথ্য অনুযায়ী, দেশের মোট secondary ও higher secondary শিক্ষার্থীর ৯২% এরও বেশি বাংলা মিডিয়ামে পড়াশোনা করে। তাদের ইংরেজি exposure মূলত textbook-সীমাবদ্ধ।

Stack Overflow-এর Developer Survey 2023 বলছে, বিশ্বের top performing developer-দের মধ্যে যারা non-English speaking দেশ থেকে এসেছেন, চীন, রাশিয়া, জার্মানি, জাপান, ব্রাজিল, তাদের সংখ্যা মোট respondent-এর ৬৫% এরও বেশি। মানে পৃথিবীর বেশিরভাগ programmer-ই ইংরেজি মাতৃভাষী না।

তাহলে ইংরেজি ভীতি কি আসলে একটা বাংলাদেশি নির্মাণ, যেটা আমরা নিজেরা বানিয়েছি?

ভুলটা কোথায় শুরু হয় ?

বাংলাদেশে একটা প্রচলিত বিশ্বাস আছে যে ভালো programmer হতে হলে ভালো ইংরেজি জানতে হবে। Class 8 থেকে এই idea মাথায় ঢুকিয়ে দেওয়া হয়। ফলে যা হয়:

  • যার ইংরেজিতে দক্ষতা কম, সে মনে করে “coding আমার জন্য না”
  • যে কিছুটা পারে, সে ভয়ে ভয়ে এগোয়
  • আর দুজনই সবচেয়ে গুরুত্বপূর্ণ জিনিসটা অর্থাৎ problem solving শেখার আগেই হাল ছেড়ে দেয়

Root cause একটাই: ইংরেজিকে আমরা “গেটওয়ে” ভাবি, কিন্তু আসলে সেটা একটা “tool” মাত্র।

বইয়ের জ্ঞান কী বলে ?

বিশ্বের সবচেয়ে প্রভাবশালী computer science বইগুলো এই বিষয়ে কী বলে, সেটা একবার দেখা দরকার।

Donald Knuth – The Art of Computer Programming (১৯৬৮) Knuth এই বইয়ে বলেছিলেন programming-এর মূল ভিত্তি হলো algorithm, অর্থাৎ ধাপে ধাপে সমস্যা সমাধানের পদ্ধতি। তিনি কোথাও বলেননি এই পদ্ধতি ইংরেজিতে ভাবতে হবে। বইটার প্রথম তিন volume-এ যা শেখানো হয়, সবকিছুর মূল হলো mathematical logic, যা সম্পূর্ণ ভাষা-নিরপেক্ষ।

George Pólya – How to Solve It (১৯৪৫) এই বইটা mathematician-দের জন্য লেখা হলেও competitive programming community এটাকে bible মানে। Pólya-র চারটা step:

  1. Understand the problem – সমস্যাটা কী বোঝো
  2. Devise a plan – পরিকল্পনা করো
  3. Carry out the plan – execute করো
  4. Look back – review করো

এই চারটা step-এর কোথাও “ইংরেজিতে ভাবো” লেখা নেই। Pólya বলেছেন problem বোঝার ভাষা হলো logic, spoken language না।

Thomas Cormen – Introduction to Algorithms (CLRS) বিশ্বের সবচেয়ে বেশি পড়া CS textbook। এটার প্রতিটি chapter শুরু হয় একটা problem definition দিয়ে: input কী, output কী, constraint কী। এই তিনটা জিনিস বোঝা মানেই problem বোঝা। এখানে ইংরেজি fluency-র দরকার নেই, দরকার analytical reading, যা বাংলায় চিন্তা করেও করা যায়।

Competitive Programming-এর আসল শিক্ষা

এখানেই সবচেয়ে কঠিন সত্যটা লুকিয়ে আছে।

Codeforces, LeetCode, AtCoder এই platforms-এ যারা compete করে, তাদের সবচেয়ে বড় challenge কী জানেন? Problem statement বোঝা।

এবং এখানে অনেকে একটা মারাত্মক ভুল করে।

Problem Statement বোঝা, ইংরেজি বোঝা না

একটা typical Codeforces problem statement-এ থাকে:

Given an array of N integers, find the maximum sum of a contiguous subarray.
Constraints: 1 ≤ N ≤ 10^5, -10^9 ≤ A[i] ≤ 10^9

এখানে কঠিন ইংরেজি কোথায়? “contiguous subarray” অর্থাৎ এই দুটো technical term জানলেই হলো। বাকিটা সব mathematical constraint।

কিন্তু যে student ইংরেজি নিয়ে ভয়ে আছে, সে পুরো statement-টাকে একটা “ইংরেজি paragraph” হিসেবে দেখছে এবং panic করছে। যে student problem solving শিখেছে, সে এটাকে দেখছে তিনটা জিনিস হিসেবে:

  • Input কী? – N-size array
  • Output কী? – maximum subarray sum
  • Rule কী? – contiguous হতে হবে

এই তিনটা extract করতে পারলেই problem বোঝা শেষ। এটা ইংরেজি reading না, এটা structured information extraction।

বাংলাদেশের competitive programmers কী করেন ?

ICPC-তে যাওয়া বাংলাদেশি teams-এর interviews দেখলে একটা pattern পাবেন। তারা problem statement পড়ার সময় automatically তিনটা জিনিস খোঁজে: input structure, output requirement, edge case। ইংরেজির সাথে এর সম্পর্ক নেই, analytical framework-এর সাথে আছে।

BUET, SUST, KUET-এর competitive programmers-রা যে তীব্র মনোযোগে problem statement পড়েন, সেটা ইংরেজি comprehension class থেকে শেখা না। সেটা শেখা হয়েছে হাজার হাজার problem solve করতে করতে।

প্রথমে একটা কঠিন সত্য মেনে নিন

Programming language-এর syntax ইংরেজি হরফে লেখা, এটা সত্য। কিন্তু if, for, while, print এগুলো ইংরেজি না। এগুলো keywords, একটা formal language-এর নির্দিষ্ট token, যেগুলোর মানে ইংরেজি grammar দিয়ে নির্ধারণ হয় না, logic দিয়ে হয়।

পৃথিবীর বড় বড় programmer-দের দেশের দিকে তাকান:

দেশবৈশ্বিক Tech অবদানইংরেজি প্রথম ভাষা?
চীনAlibaba, Huawei, ByteDanceনা
জাপানNintendo, Sony, Toyota Techনা
রাশিয়াKaspersky, Telegramনা
জার্মানিSAP, Infineonনা
দক্ষিণ কোরিয়াSamsung, Kakao, Naverনা

এদের কেউ “ইংরেজি আগে শিখে তারপর coding” করেনি। তারা logic আগে শিখেছে, ইংরেজি পরে এসেছে।

তাহলে আসল skill কোনটা?

Coding-এর core competency মাত্র তিনটা:

১. Problem Decomposition: একটা বড় সমস্যাকে ছোট ছোট টুকরায় ভাঙতে পারা। Pólya যেটাকে বলেছেন “understand the problem”, এটা ভাষার দক্ষতা না, এটা analytical thinking।

২. Pattern Recognition: আগের সমস্যার সাথে নতুন সমস্যার মিল খোঁজা। CLRS-এ এই কারণেই প্রতিটা algorithm-এর পরে “exercise” থাকে, pattern recognize করার practice-এর জন্য। ভাষার সাথে এর কোনো সম্পর্ক নেই।

৩. Debugging Mindset: কিছু কাজ না করলে কেন কাজ করছে না সেটা systematically খোঁজা। Knuth তাঁর বইয়ে বলেছেন debugging হলো hypothesis testing, বিজ্ঞানের পদ্ধতি, ইংরেজির পদ্ধতি না।

ভীতির আসল মনোবিজ্ঞান

Carol Dweck-এর “Mindset: The New Psychology of Success” বইয়ে একটা গুরুত্বপূর্ণ concept আছে: Fixed Mindset vs Growth Mindset।

Fixed mindset বলে: “আমি ইংরেজিতে দুর্বল, তাই programming আমার জন্য না।”

এটা আসলে একটা self-protective narrative। কারণ এই narrative থাকলে try না করেই বলা যায় “আমি পারতাম, কিন্তু ইংরেজির জন্য হলো না।” এটা comfortable।

Problem solving শুরু করলে কিন্তু সেই safety net থাকে না। Logic ভুল হলে ভুলই, ইংরেজিকে দোষ দেওয়া যায় না। এই accountability-র ভয়ই আসলে ইংরেজি ভীতির আড়ালে লুকিয়ে থাকে।


Competitive Programming-এ Problem Statement পড়ার সঠিক পদ্ধতি

ইংরেজি ভয়কে সরিয়ে রাখুন। প্রতিটা problem statement-কে এভাবে attack করুন:

Step 1 – Skeleton বের করুন: প্রথমবার পড়ার সময় শুধু তিনটা জিনিস mark করুন: input, output, constraint। বাকি সব “flavor text”, গল্পের প্যাকেজিং।

Step 2 – Example দিয়ে validate করুন: প্রতিটা problem-এ sample input/output থাকে। Statement না বুঝলেও example দেখে pattern বোঝা যায়। এটা ইংরেজি reading bypass করার legitimate technique।

Step 3 – Edge case খুঁজুন: “What if N = 0?” “What if সব number negative?” এই প্রশ্নগুলো করুন বাংলায়। উত্তর বাংলায় ভাবুন। Code-এ implement করুন।

এই তিনটা step follow করলে ইংরেজি দুর্বলতা problem statement বোঝার পথে কোনো barrier হয় না।

তাহলে ইংরেজি কী কাজে লাগে?

সৎভাবে বলছি, লাগে। কিন্তু কোথায়?

  • Documentation পড়তে: কিন্তু এটা technical vocabulary, Shakespeare না। ৫০-১০০টা core term জানলেই ৮০% documentation পড়া যায়।
  • Stack Overflow-এ: কিন্তু error message copy-paste করলেই উত্তর পাওয়া যায়। Passive reading লাগে, active speaking না।
  • Competitive Programming-এ: problem statement পড়তে লাগে, কিন্তু উপরের framework দিয়েই সমাধান হয়।
  • Professional interview-এ: হ্যাঁ, multinational-এ English medium interview হয়। কিন্তু সেটার জন্য আগে problem solve করতে শেখা লাগে, তারপর ইংরেজি polish করলেই হয়।

অর্থাৎ ইংরেজি একটা later-stage refinement, entry-stage requirement না।

আপনার জন্য concrete action plan

আজকে করুন: Codeforces-এ গিয়ে Div. 2, Problem A খুলুন। ইংরেজি পড়ার চেষ্টা করবেন না আপাতত, শুধু input/output/constraint তিনটা box বানিয়ে fill করুন। ৯০% chance আছে problem আপনি বুঝে ফেলবেন।

এই সপ্তাহে করুন: Pólya-র চারটা step বাংলায় একটা notebook-এ লিখে রাখুন। প্রতিটা problem solve করার আগে সেই চারটা step দেখুন।

এই মাসে করুন: ২০টা easy problem solve করুন। ইংরেজি নিয়ে ভাবুন না। ৩০ দিনে নিজেই বুঝবেন যে problem statement পড়া আর ইংরেজি পরীক্ষা দেওয়া দুটো সম্পূর্ণ আলাদা জিনিস।

Knuth বলেছিলেন: “Computer programming is an art.” শিল্পের ভাষা হয় না।

ইংরেজি একটা ভাষা। Programming একটা skill। দুটো ভিন্ন dimension-এ বাস করে।

আজ থেকে একটাই প্রশ্ন করুন নিজেকে:

“এই problem-টার input কী, output কী, rule কী?” আর ” ইংরেজিতে কতটা ভালো ? ” এই প্রশ্নটা না।

ওই একটা প্রশ্নের shift-ই আপনার পুরো journey বদলে দিতে পারে।

Programming নিয়ে আরও বিস্তারিত জানতে এবং একটা structured learning environment-এ যুক্ত হতে আজই visit করুন phitron.io

Scroll to Top