Skip to content

Chapter 1: প্রোগ্রামিং শুরুর আগে যত ভয়

1-1: জাভাস্ক্রিপ্ট পরিচিতি-Introduction to JavaScript

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

— আরে না, কেউ গুম করে নাই। তবে দিওয়ানা একটু তো হইছিই।

কে সে ভাগ্যবতী, কার প্রেমে তুই দিওয়ানা হইছস।

— সে আর কেউ না, সে হচ্ছে জাভাস্ক্রিপ্ট। যতই দেখি, ততই অবাক হই, তার প্রতিটা ফিচার যেন এক একটা রহস্য। একদিকে তার dynamic nature, অন্যদিকে তার asynchronous আচরণ— কখনো লুপে ফালায় রাখে, আবার কখনো পপ করে রেগে যায়। আবার আমি অভিমান করলে আমার কাছে callback চায় promise করতে বলে। আমি ভাবি, 'এটা কি প্রেম নাকি ইমোশনাল event bubble।'

তাহলে, প্রেমের bubble টিকবে তো?

— টিকবেই। কারণ, তার scope-এর মধ্যেই আমার সবকিছু। তার execution context-এ আমি closure হয়ে আছি, বেরোনোর উপায়ই নাই।

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

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

শুরু করে দিলাম। ক— তাহলে একদম শুরু থেকেই বলতেছি।

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

বহুকাল আগে, তোর জন্মেরও আগে, সেই ১৯৯৫ সালে— Netscape কোম্পানির Navigator নামে একটা ওয়েব ব্রাউজার ছিল। তখনকার দিনে ওয়েবসাইটগুলো ছিল খুব বোরিং আর স্লো। তাই Netscape কোম্পানি তাদের ব্রাউজার আরেকটু ডাইনামিক করতে চাচ্ছিল। আর সেই দায়িত্ব দেওয়া হয় কোম্পানিতে নতুন জয়েন করা তরুণ টগবগে একজন প্রোগ্রামার ব্রেন্ডন এইককে (Brendan Eich)। তাকে চ্যালেঞ্জ দেওয়া হয় ১০ দিনের মধ্যে একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ বানিয়ে নিয়ে আসতে, যেটাকে খুব সহজেই ওয়েবসাইটের সঙ্গে যোগ করে দেওয়া যাবে।

তুখোড় ব্রেন্ডন ১০ দিনের মধ্যে Mocha নাম দিয়ে ছোট এবং সিম্পল একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ বানিয়ে ফেলে। পরে এই নাম পরিবর্তন করে LiveScript রাখা হয়। তার কয়েক মাস পরে এটাকে জনপ্রিয় করার জন্য JavaScript নাম দেওয়া হয়। কথিত আছে যে, জাভা তখন অনেক জনপ্রিয় ছিল।

যদিও জাভার সঙ্গে জাভাস্ক্রিপ্টের তেমন মিল নাই। তারপরও জাভাস্ক্রিপ্ট নাম দিলে জাভার সঙ্গে মিল আছে ভেবে প্রোগ্রামাররা সহজেই এটার প্রতি আগ্রহী হয়ে উঠবে। তাই এমন নাম দেওয়া হয়।

তারপর সব জল্পনা-কল্পনার অবসান ঘটিয়ে ১৯৯৫ সালের ৪ ডিসেম্বর জাভাস্ক্রিপ্ট অফিসিয়ালি প্রথম রিলিজ হওয়ার পর খুব দ্রুতই হইচই ফেলে দেয়। আর তা দেখে হিংসায় জ্বলে-পুড়ে যায় বিল গেটসের Microsoft কোম্পানি। তারা জাভাস্ক্রিপ্টকে নকল করে JScript নামে আরেকটা প্রোগ্রামিং ল্যাঙ্গুয়েজ চালু করে। তারপর তাদের ইচ্ছামতো পরিবর্তন নিয়ে আসতে থাকে। এতে প্রোগ্রামাররা পড়ে বিপদে। তারা ওয়েবসাইটের জন্য জাভাস্ক্রিপ্ট ইউজ করবে নাকি JScript ইউজ করবে। এই দেখে ১৯৯৭ সালে মাইক্রোসফটের জ্বালায় অতিষ্ঠ হয়ে Netscape কোম্পানি জাভাস্ক্রিপ্টকে ইউরোপিয়ান স্ট্যান্ডার্ড ECMA International হিসেবে রেজিস্টার্ড করে। তখন জাভাস্ক্রিপ্টের অফিসিয়াল নাম হয় ECMAScript। যদিও ৯৯.৯৯ শতাংশ মানুষ সব সময় জাভাস্ক্রিপ্টকে জাভাস্ক্রিপ্টই বলে।

জাভাস্ক্রিপ্ট একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ। যেকোনো প্রোগ্রামিং ল্যাঙ্গুয়েজের জন্য হাই লেভেল এবং লো লেভেল এই দুই শব্দ চলে আসে।

জাভাস্ক্রিপ্ট হচ্ছে হাই লেভেল ল্যাঙ্গুয়েজ। যেসব প্রোগ্রামিং ল্যাঙ্গুয়েজের কোড মানুষ পড়তে পারে এবং পড়ে বুঝতে পারে যে, কোড দিয়ে কী হচ্ছে। এ ধরনের প্রোগ্রামিং ল্যাঙ্গুয়েজগুলোকে হাই লেভেলের প্রোগ্রামিং ল্যাঙ্গুয়েজ বলে।

জাভাস্ক্রিপ্ট কীভাবে কাজ করে?

সংক্ষেপে বলতে গেলে, যখন তুই জাভাস্ক্রিপ্ট কোড লিখিস, তখন সেটা জাভাস্ক্রিপ্টের ইঞ্জিনের কাছে যায়। এই ইঞ্জিনের একটা নাম আছে, সেটা হচ্ছে V8 ইঞ্জিন। পরে এটা নিয়ে বিস্তারিত আলোচনা করব। ব্রাউজারের মধ্যে সাধারণত আমরা তিনটি জায়গায় জাভাস্ক্রিপ্ট কোড লিখি:

নোড.জেএস:

১. https://nodejs.org/en/download/prebuilt-installer/current এই লিংক থেকে নোড ডাউনলোড করে ইনস্টল কর।

Node.js Download

২. https://code.visualstudio.com/Download এই লিংক থেকে VS Code ডাউনলোড করে ইনস্টল কর।

VS Code Download

৩. তোর কম্পিউটারে একটি নতুন ফোল্ডার তৈরি কর এবং সেটি VS Code-এ ওপেন কর।

Create Folder in VS Code

৪. ফোল্ডারে একটি নতুন ফাইল তৈরি কর 'index.js' নামে এবং নিচের কোড লিখে দে:

Create index.js file

VS Code with index.js

javascript
console.log("Hello JavaScript!!");

৫. এরপর VS Code-এর ওপেনে View-তে ক্লিক করে Terminal-এ ক্লিক কর বা Ctrl + ` চেপে টার্মিনাল খোল。

Open Terminal in VS Code

Terminal View Menu

৬. টার্মিনালে নিচের কমান্ডটি দে:

bash
node index.js

Run node index.js

তখন আউটপুট দিবে:

Hello JavaScript!!

২. অনলাইন কোড এডিটর:

তুই মোবাইল, ল্যাপটপ বা কম্পিউটার দিয়ে https://www.jhankarmahbub.com/console/ ওয়েবসাইটে গিয়ে জাভাস্ক্রিপ্টের কোড লেখা প্র্যাকটিস করতে পারবি। আর কোড লেখা হয়ে গেলে Run লেখা বাটনে চাপ দিলে Run লেখা বাটনের নিচে আউটপুট দেখাবে।

Online Code Editor

৩. ব্রাউজার:

তুই চাইলে গুগল ক্রোম বা এই টাইপের কোনো ব্রাউজারের মধ্যে গিয়ে মাউস দিয়ে রাইট বাটন ক্লিক করলে অনেকগুলা অপশন দেখতে পাবি। এর মধ্যে একটি হলো ইন্সপেক্ট (Inspect)। এই ইন্সপেক্টে ক্লিক করলে ব্রাউজারের ডানপাশে একটা জিনিস ওপেন হবে, সেখানে একটু খুঁজে কনসোলে (console) ক্লিক কর। এখানেও তুই জাভাস্ক্রিপ্টের কোড লিখতে পারবি এবং কোড লেখার পর কী-বোর্ডের এন্টার (enter) লেখা বাটনে চাপ দিলে আউটপুট দেখতে পারবি।

Browser Console

Browser Console Output

1-2: প্রোগ্রামিং শুরু করতে কতটুকু গণিত লাগে?

জাভেদ, কী বলব দোস্ত, সব সময়ই আমার মনে হয়, আমি ম্যাথ/গণিত/অঙ্ক পারি না। আমার দ্বারা প্রোগ্রামিং হবে না। প্রোগ্রামিং করতে হলে আমাকে কি আবার ক্লাস সিক্সে ভর্তি হয়ে এরপর ধাপে ধাপে সব ক্লাসের অঙ্ক শেষ করে আসতে হবে?

— এইটা করতে পারলে খারাপ হয় না। তবে এটা করতে গেলে দেখা যায় যে, এক সপ্তাহ পরে আর খবর থাকে না।

— শুন, প্রোগ্রামিং শিখতে কিছু ম্যাথ এবং লজিক লাগে, এটা সত্যি। তবে শুরু করার জন্য যেসব ম্যাথ লাগে, সেটা কমবেশি আমরা অনেকেই জানি। কেউ হয়তো একটু কম জানে, আবার কেউ হয়তো একটু বেশি জানে। কিন্তু 4-5 বছর সময় লাগাইয়া অঙ্ক করে তারপর প্রোগ্রামিংয়ে আসা বাস্তবিক কোনো সল্যুশন না।

তুই 5 বছর লাগাইয়া ম্যাথ শিখবি। তারপর আমি বলব, তোর ইংরেজি লাগবে। তখন 5 বছর লাগাইয়া ইংরেজি শিখবি। তারপর আমি বলব, টাইপিং শিখতে হবে। তুই 5 বছর লাগাইয়া টাইপিং শিখবি। এভাবে করতে করতে লাইফের 20-30 বছর চলে যাবে। কিন্তু অঙ্ক, ইংরেজি বিশেষ ভালোভাবেও করা হবে না। আর প্রোগ্রামিং তো করাই হবে না।

—তাই আমি বলি, সিম্পল যেসব অঙ্ক আমাদের প্রতিদিন কাজে লাগে, সেরকম কয়েকটা আমি বলে দিচ্ছি। এইগুলা দিয়ে তুই প্রোগ্রামিং শুরু কর। তারপর সামনে এগুতে এগুতে গণিত রিলেটেড কোনো জিনিস চলে আসলে তখন সেটা শিখে নিবি। এমন একটা এডাপ্টিভ মাইন্ডসেট নিয়ে শুরু কর। দেখ কী হয়।

— দুনিয়ার কেউ পারফেক্ট হয়ে আসে না। চেষ্টা করতে করতে বেটার হয়। আর কিছু না। তাই আমি কমন কয়েকটা গণিতের বিষয় এইখানে বলে দিচ্ছি। আমি শিউর এইগুলা তুই জানস।

১) নাম্বার: তোকে নাম্বার বা সংখ্যা বুঝতে হবে। কোনটা পজেটিভ (positive) সংখ্যা, কোনটা নেগেটিভ (negative) সংখ্যা, আর কোনটা জিরো বা শূন্য। যেমন:

  • 50 এটা নেগেটিভ নাকি পজিটিভ?
  • -9 এটা পজিটিভ নাকি নেগেটিভ?
  • 0.5 এটা পজিটিভ নাকি নেগেটিভ?
  • 0 পজিটিভ নাকি নেগেটিভ?

২) আরও কিছু নাম্বারের টাইপ আছে:

  • পূর্ণসংখ্যা: 2, 88, 512
  • পূর্ণসংখ্যার মধ্যে আরও দুই ধরনের সংখ্যা আছে:
    • জোড় সংখ্যা: 2, 4, 358
    • বিজোড় সংখ্যা: 9, 7, 591
  • 97 এটা জোড় নাকি বিজোড় সংখ্যা?

৩) আরেকভাবে সংখ্যা দেখার বিষয় হচ্ছে:

  • ডেসিমাল (Decimal) বা দশমিক সংখ্যা: দশমিক পয়েন্টসহ সংখ্যাগুলি: 0.25, 5.75, 3.6
  • ভগ্নাংশ (Fraction): দুটি সংখ্যার অনুপাত, যা "n/m" ফর্মে প্রকাশ করা হয়: 2/5, 9/10, 4/3

৪) কিছু সাধারণ গণিত:

  • যোগ: দুইটা সংখ্যা যোগ কর। যেমন, 12 আর 15 যোগ করলে কত হবে?
  • বিয়োগ: তুই চা খাইছিস 35 টাকার। চা ওয়ালাকে দিলি 100 টাকা। দোকানদার কত টাকা ফেরত দিবে?
  • গুণ: পাঁচজনের সবাইকে 250 টাকা করে বিরিয়ানি ট্রিট দিলে তোর কত টাকা খরচ হবে?
  • ভাগ: 240 টাকা 6 জনের মধ্যে ভাগ করে দিলে প্রত্যেকে কত টাকা করে পাবে?
  • ভাগশেষ: 10 কে 3 দিয়ে ভাগ করলে ভাগশেষ কত থাকে?

৫) কিছু সিম্বল বা চিহ্ন জানতে হবে:

  • >: বড় (greater than): উদাহরণ: 5 > 3 (পাঁচ তিনের চেয়ে বড়)
  • <: ছোট (less than): 4 < 7 (চার সাতের চেয়ে ছোট)
  • !: নয় (not): সত্য নয়, অর্থাৎ মিথ্যা
  • %: শতাংশ (percentage): 180 টাকার 50% হবে 90 টাকা
  • ( ): প্যারেনথিসিস (grouping): ফার্স্ট ব্র্যাকেট: (2+3)×4 মানে আগে 2-এর সাথে 3 যোগ করবি, তারপর যোগফল যেটা হবে সেটাকে 4 দিয়ে গুণ করবি
  • { }: ব্রেসেস: কার্লি ব্র্যাকেট (বাংলাদেশে এইটাকে সেকেন্ড ব্র্যাকেট বলে)
  • [ ]: স্কয়ার ব্র্যাকেট: বক্স ব্র্যাকেট (বাংলাদেশে এইটাকে থার্ড ব্র্যাকেট বলে)

৬) সমষ্টি বা যোগফল:

তিনজন মানুষের বয়স দেওয়া আছে: একজনের বয়স 14, একজনের বয়স 18, আরেকজনের বয়স 16। এদের বয়সের সমষ্টি কত?

৭) গড়:

উদাহরণ: তোকে 14, 18, এবং 16 দেওয়া হলো। এদের গড় কত?

সমাধান:

  • প্রথমে সব সংখ্যা যোগ করতে হবে
  • যোগফল কত হয়েছে, তা কতগুলো সংখ্যা যোগ করা হয়েছে, তা দিয়ে ভাগ করতে হবে
  • এই ভাগফলই হলো 'গড়'

৮) ম্যাক্স/মিন:

উদাহরণ: তোকে 14, 18, এবং 16 দেওয়া হলো। এর মধ্যে সবচেয়ে ছোট সংখ্যা কোনটা? সবচেয়ে বড় সংখ্যা কোনটা?

৯) ধারা:

  • 1 থেকে 10 পর্যন্ত সংখ্যাগুলো আমাকে দে
  • 21 থেকে 30 পর্যন্ত বিজোড় সংখ্যাগুলো আমাকে দে
  • 113 থেকে 129 পর্যন্ত জোড় সংখ্যাগুলো আমাকে দে

১০) ফর্মুলা দিয়ে হিসাব করা:

তোকে ফর্মুলা মুখস্ত করা লাগবে না। বেশির ভাগ সময় তোকে ফর্মুলা বলে দিবে বা ফর্মুলা লাগলে তুই খুঁজে বের করতে পারবি। এইখানে দেখার বিষয় হচ্ছে, ফর্মুলা বলে দেয়ার পর তুই লজিক বুঝতে পারস কিনা। বুঝতে পারলে আর কোনো টেনশন নাই।

যেমন, তোকে একটা ফর্মুলা দেয়া হলো। ফর্মুলাতে বলা আছে, ত্রিভুজের ক্ষেত্রফল হবে: (1/2) × ভূমি × উচ্চতা। তারপর বলা আছে, ভূমির মান 10 আর উচ্চতা 5, এখন তুই কি ক্ষেত্রফল বের করতে পারবি?

ত্রিভুজের ক্ষেত্রফল = (1/2) × 10 × 5 = 25

Programming Math Problem For Practice:

1) নিচের সংখ্যাগুলোর মধ্যে কোনটা পজেটিভ আর কোনটা নেগেটিভ?

-5, 12, -8, 0, 3.5

পজিটিভ: **____**

নেগেটিভ: **____**

2) পূর্ণসংখ্যা, জোড় সংখ্যা, আর বিজোড় সংখ্যা আলাদা করে চিহ্নিত কর:

সংখ্যা: 23, 56, 19.69, 101, 42, 89, 11.37

পূর্ণসংখ্যা: ___

জোড় সংখ্যা: ___

বিজোড় সংখ্যা: ___

3) কোন সংখ্যাগুলো দশমিক আর কোনটা ভগ্নাংশ?

সংখ্যা: 3.4, 7/8, 2.75, 1/3

দশমিক সংখ্যা: ___

ভগ্নাংশ সংখ্যা: ___

4) যোগফল কত হবে?

সংখ্যা: 14 + 21 + 55 = ___

এবং

32 + 47 - 25 = ___

5) তুই যদি 64 টাকার কিছু কিনে 100 টাকা দিস, তাহলে দোকানদার কত টাকা ফেরত দিবে?

উত্তর: ___

6) পাঁচজনের প্রত্যেককে যদি 350 টাকা করে ইদ বোনাস দেওয়া হয়, তাহলে মোট খরচ কত হবে?

উত্তর: ___

7) 450 টাকা যদি 8 জনের মধ্যে ভাগ করে দিতে হয়, তাহলে প্রত্যেকে কত টাকা করে পাবে? আর যদি কেউ ভাংতি পয়সা না নেয়, তাহলে তোর হাতে কত টাকা বাকি থাকবে?

উত্তর: ___

8) নিচের সিম্বলগুলো দিয়ে একটা সংখ্যার সাথে আরেকটা সংখ্যার তুলনা করা হচ্ছে। এইসব তুলনার মধ্যে কোনটা সঠিক আর কোনটা ভুল?

15 > 12 : **__**

4 < 10 : **__**

7 > 9 : **__**

9) নিচের সংখ্যাগুলোর গড় কত?

সংখ্যা: 20, 25, 30, 91

উত্তর: ___

10) তোকে একটা ফর্মুলা দেয়া হলো। ফর্মুলাতে বলা আছে, চাকতির ক্ষেত্রফল হবে: π×r²। এখানে পাই π-এর মান 3.14, আর r হলো ব্যাসার্ধ। আর এইটাও বলে দেয়া আছে r² মানে r-এর মানকে দুইবার গুণ করতে হবে। এখন বলা আছে, চাকতির ব্যাসার্ধ r-এর মান 7। এখন তুই কি ক্ষেত্রফল বের করতে পারবি?

উত্তর: ___

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

1-3: প্রোগ্রামিং শুরু করতে কতটুকু ইংরেজি জানা লাগে?

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

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

— প্রোগ্রামিং মূলত ইংরেজি বেজড। কোড লিখতে হবে ইংরেজিতে। লেখার সময় প্রোগ্রামিংয়ের কিছু নির্দিষ্ট শব্দ থাকবে। সেগুলা শেখার সময় বুঝিয়ে দেয়া হবে। এ ছাড়াও প্রোগ্রামিং ল্যাঙ্গুয়েজের জন্য বা সেটার আশেপাশের অনেক জিনিসের জন্য অনেক আর্টিকেল থাকে বা ডকুমেন্টেশন থাকে, সেগুলা পড়ার দরকার পড়ে। তবে এইগুলা অনেক কঠিন কঠিন ইংরেজি না; বরং সহজ ইংরেজি এবং কিছু টেকনিক্যাল জিনিস থাকে। টেকনিক্যাল নলেজ ধীরে ধীরে তৈরি হবে। আর সেটা হতে হতে ইংরেজি অটো কম্ফোর্টেবল হয়ে উঠবে।

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

নিচে আমি কিছু কমন ইংরেজি লিখে দিলাম, যেগুলো জানা থাকলে তুই সহজেই প্রোগ্রামিং শুরু করতে পারবি। আমি নিচে ১১০টা ব্যবহৃত শব্দ বলে দিচ্ছি। তোর যদি ৫০% শব্দ নিয়ে ধারণা থাকে, তাহলে সামনে এগুতে পারিস। তেমন প্যারা হবে না। আর যদি ২৫%-এর নিচে হয়, তাহলে বেসিক ইংরেজি নিয়েই তোর সমস্যা আছে। সামনে এগুনো ভালোই কষ্ট হবে। যদি ২৫-৫০% হয়, তাহলে কষ্ট হবে। ধৈর্য ধরে এগুতে চাইলে এগুতে পারিস।

Descriptive Words:

Simple, Basic, Advanced, Common, Optional, Required, Correct, Incorrect, Expected, Available, Complete, Empty, Full, Disabled, Enabled, Similar, Different, Limited, Active, Inactive, Random, Primary, Secondary, Temporary, Permanent.

Action Words:

Create, Add, Define, Return, Change, Remove, Update, Set, Use, Call, Compare, Build, Start, Stop, Modify, Run, Pause, Cancel, Apply, Save, Load, Retrieve, Validate, Detect, Handle, Adjust, Configure.

Connector Words:

And, Or, But, Then, Also, However, Therefore, For example.

Prepositions:

In, On, At, For, To, By, From, Inside, Outside, Above, Below, Under, Over, Before, After, With, Without, Next, Against.

Pronouns:

This, That, These, Those, It, They, You, We, All, He, She.

Common Verbs (General):

Check, See, Edit, Get, Show, Display, Open, Close, Allow, Block, Consider, Suggest.

Adverbs:

Always, Sometimes, Never, Usually, Quickly, Slowly, Frequently, Continuously.

বেসিক ইংরেজি (লেভেল-১):

I am strong. I am smart. I am hardworking.

JavaScript is a popular programming language. JavaScript is easy to learn. This book will teach you JavaScript from basic to advanced.

এই কথাগুলোর মানে কি তুই বুঝছ? বুঝলে তোর মিনিমাম বেসিক ইংরেজি ঠিক আছে।

মোটামুটি ইংরেজি (লেভেল-২)

After writing code, always click the save button or press Ctrl + S. You wouldn't want to lose your code by closing the code editor.

English might seem difficult at first, but the more you keep exploring programming, the easier it will get. Don't be afraid, it's part of learning.

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

রিজনেবল ইংরেজি (লেভেল-৩)

While reading this book, it's crucial to practice the code yourself. If you don't try out the code and see the output, you won't truly understand how it works. Simply reading the explanations won't make you a programmer – it's the hands-on practice that builds your skills. The more you practice, the better you'll get.

When you write code, make sure you test it often. Don't wait until you think the whole program is ready to check if it works. Small tests will help you avoid big mistakes later.

এইগুলা কী নিয়ে বলছে, তুই কি ধারণা করতে পারস। এইখানে কি ইলিশ মাছ নিয়ে কিছু বলছে? সেটা কি তুই ধরতে পারস। নাকি ইলিশ মাছ নিয়ে কিছু বলে নাই। আবার পড়ে দেখ। যদি এইটুক ধরতে পারস, তাহলে ভয় পাওয়ার কিছু নাই।

এডভান্সড ইংরেজি (লেভেল-৪)

If you're working with files, be aware that some might be too large to upload or download. It's also important to install the required software first before starting your project, as this can save you a lot of time.

Collaborate with others when learning programming. You can learn a lot by discussing ideas with your peers, as they may have different perspectives and solutions to problems you might face.

কতটুকু ইংরেজি লাগবে

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

চাকরি খুঁজতে গেলে এবং চাকরি করতে গেলে মাঝেমধ্যে ইংরেজিতে লেখার দরকার পড়তে পারে বা বিদেশি কোম্পানিতে কাজ করতে গেলে ১০-২০% সময় ইংরেজিতে কথা বলার দরকার পড়তে পারে। তবে সেটা কোনো রকমে কথা বলার বা কথা বুঝতে পারলেই হবে। কারণ, তোর বেশির ভাগ সময় যাবে কোডিং করতে করতে। কথা মাঝেমধ্যে একটু ঠেলেঠুলে বুঝতে এবং বুঝাইতে পারলেই বেশির ভাগ জায়গায় কাজ হয়ে যায়।

মনে রাখবি, তুই প্রোগ্রামার হতে চাস। তোর প্রোগ্রামিং স্কিল দিয়ে তোর সামর্থ্যের বিচার হবে। ইংরেজি সেখানে হেল্প করবে। তবে ইংরেজিতে তুই পাঙ্খা হলেও লাভ নাই, যদি প্রোগ্রামিংয়ে ঘোড়ার ডিম হস।

1-4: ভালো প্রোগ্রামার কিভাবে হবো? [+৭টি গুরুত্বপূর্ণ টিপস]

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

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

তবে মুখস্ত করতে যাবি না। মুখস্ত করলেও বেশি লাভ হবে না; বরং বুঝার চেষ্টা করবি। কারণ খোঁজার চেষ্টা করবি। সবকিছুর কারণ আছে। কেন হচ্ছে, সেটা ধরার চেষ্টা করবি। সব হয়তো প্রথম প্রথম ধরতে পারবি না। তারপরেও বুঝার দিকে ফোকাস করবি। কখনো মুখস্ত বা মনে রাখার কথা চিন্তা করবি না। তাহলে প্রোগ্রামিং শেখাটা কিছুটা চ্যালেঞ্জ আর অনেকটা মজার একটা কাজ হবে।

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

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

বুঝছি, দোস্ত, সাহস পাইছি আবার ভয়ও লাগতেছে। যদি শেষ পর্যন্ত না পারি, তাহলে কী হবে?

— শুন ভয়কে যত বেশি ফোকাস দিবি, ভয়ের পরিমাণ তত বেশি বাড়বে। আর চেষ্টাতে যত বেশি ফোকাস দিবি, সামনে তত আগাবি, আর ভয়ও অটোমেটিকভাবে কমে যাবে।

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

১. তোর লজিক্যাল থিঙ্ক করার অ্যাবিলিটি বাড়িয়ে দিবে।

২. অঙ্ক বা ক্যালকুলেশন করতে আরও বেশি কম্ফোর্টেবল হয়ে উঠবি।

৩. বড় সমস্যাকে ছোট ছোট অংশে ভাগ করার অভ্যাস তৈরি হবে।

৪. ডাটা নিয়ে কাজ করতে আগ্রহ বাড়বে।

৫. বড় বড় সফটওয়্যার কীভাবে কাজ করে, সেই আইডিয়া আসবে।

৬. নিজের বিভিন্ন কাজে ছোটখাটো অটোমেশন করে ফেলতে পারবি।

৭. ধৈর্য বেড়ে যাবে।

৮. তুই যে ফিল্ডেই কাজ করস না কেন, সেখানে কিছু না কিছু সফটওয়্যার ইউজ করবি। সেগুলা সম্পর্কে আরও ভালো বুঝতে পারবি। খুব দ্রুত সেগুলাতে এক্সপার্ট হয়ে উঠতে পারবি।

৯. আর কিছু হোক বা না হোক, বুড়া বয়সে তোর নাতি-নাতনিকে প্রোগ্রামিং শিখাতে পারবি।

অর্থাৎ প্রোগ্রামিং শিখতে গেলে না পারলেও হারানোর কিছু নাই; বরং অনেক অনেক ডাইরেক্ট এবং ইনডাইরেক্ট লাভ আছে।

আর, এই বই যেহেতু ধরছস— শুরু করে দে। বাকি যা আছে কপালে।

Released under the MIT License.