প্রোগ্রামিংয়ের আদ্যোপান্ত

প্রোগ্রামিংয়ের আদ্যোপান্ত

বর্তমান যুগ প্রযুক্তির যুগ। এই যুগে প্রোগ্রামিং (Programming) ব্যতীত আসলে একটা মুহূর্ত কল্পনাও করা যায় না। চলুন একটু উদাহরণ দেখি। এই যে যন্ত্র বা ডিভাইসে (Device) এই লেখাটি পড়ছেন, এটি কিন্তু প্রোগ্রামিংয়ের মাধ্যমেই সম্ভব হয়েছে। নতুবা শুধু হার্ডওয়্যার (Hardware) কিছুই করতে পারতো না। চুপচাপ আজীবন বসেই থাকতো, কাজ আর হতো না। কম্পিউটার বিজ্ঞান ও প্রকৌশল (CSE – Computer Science and Engineering) বলুন আর সফটওয়্যার প্রকৌশল (Software Engineering) বলুন, সব ক্ষেত্রেই রয়েছে প্রোগ্রামিংয়ের ব্যবহার। মূলত এই বিভাগগুলো প্রোগ্রামিং ছাড়া অচল প্রায়।

প্রোগ্রামিং বোধহয় পৃথিবীর অন্যতম সহজ বিষয়। কেননা যদিও এটা প্রকৌশল বা ইঞ্জিনিয়ারিং (Engineering) বিষয়ক, তবুও কোন প্রাতিষ্ঠানিক শিক্ষা ব্যতীতই প্রোগ্রামিং শেখা সম্ভব। এটা স্কিল বিষয়ক হওয়ায়, লাগবে না কোন সার্টিফিকেটও। আপনি প্রোগ্রামিং পারেন? এটাই যথেষ্ট। আপনার সার্টিফিকেট লাগবে না নিজেকে প্রমাণ করতে। লাগবে না কোন উচ্চমানের সিজিপিএ (CGPA)।

শুরুতে একটু অনুপ্রেরণা দিয়েছিলাম। সবচেয়ে সহজ বিষয় প্রোগ্রামিং। না লাগে অ্যাকাডেমিক পড়াশোনা, না লাগে উচ্চ সিজিপিএ। কিন্তু এত সহজ হলে সবাই করে না কেন? আসলে প্রোগ্রামিং একটা সৃজনশীল বিষয়। সৃজনশীল বিষয় সবার জন্য না আসলে। যার এটায় তীব্র আগ্রহ আছে, তার জন্যই। আর পুরোটাই নির্ভর করে চর্চার উপর। তাই সহজ বিষয় বলে হুট করে সবাই প্রোগ্রামিং শিখবেন, ব্যাপারটা এমন না। যদি তীব্র ইচ্ছা থাকে, তবেই করবেন। যেমন একজন চিত্রশিল্পীর কাছে ছবি আঁকাটা খুবই সহজ একটি বিষয় হওয়ার দু’টি কারণ হল, প্রথমত এটাতে তার প্যাশন (Passion) আছে, দ্বিতীয়ত সে এটা একটা লম্বা সময় ধরে অনুশীলন করে এসেছেন।

প্রোগ্রামিং ভাষা

প্রশ্ন হল, এত চর্চা করতে হলে সহজ কিভাবে হল? আসলে প্রোগ্রামিং জিনিসটা সহজ। এটার মূল সিনট্যাক্স (Syntax) বলেন আর যাই বলেন, সেটা যে কেউই সহজে শিখতে পারবে। কিন্তু এটার প্রয়োগটা সহজ না। উদাহরণস্বরূপ বলা যায়, একটা বাচ্চাকে ABCD শিখিয়ে দিলেই আজকে একটা ইংরেজিতে বই লিখতে পারবে? আজকে তো দূরের কথা, কয়েক মাসেও পারবে না। প্রোগ্রামিং বিষয়টাও এমন। ABCD শিখে চর্চা করতে করতে একসময় বাক্য বানাতে পারবেন। তারপর একসময় প্যারাগ্রাফ লিখতে পারবেন; একসময় রচনা লিখতে পারবেন।

যাইহোক, এখন একটা কথা বলি, কথায় আছে কোন কিছুতে সেরা হতে হলে ১০ বছর সময় ব্যয় করতে হয় (সারাদিন না। প্রতিদিন একটু করে।)। প্রোগ্রামিংয়ের ক্ষেত্রেও এটা প্রযোজ্য। মোটামুটি এরকম সময় ব্যয় করলে আপনিও সফল হবেন। যদিও এতদিন লাগে না।

ভূমিকা

এই আর্টিকলটি মুল নন-সিএসইদের (Non-CSE) জন্য। সিএসইর ছাত্ররা এরচেয়ে ঢের বেশি জানে। মূলত আমি যখন ক্লাস এইটে ছিলাম (২০১৩ সালে), তখন প্রথমবার প্রোগ্রামিংয়ে যুক্ত হই। ফলে আমার পুরো শিক্ষাটাই নিজে থেকে শেখা। আমি কোন প্রতিষ্ঠান থেকে শিখি নি। টাই আমি এখানে দেখানর চেষ্টা করব কিভাবে নিজে থেকেও শেখা সম্ভব। এখানে জিনিসগুলো বোঝানোর পাশাপাশি কিভাবে করবে, কোথা থেকে শিখবে, কোথায় অনুশীলন করবেন সেগুলোও বলার চেষ্টা করব। এখানে চেষ্টা করব এ টু জেড (A2Z) একটা গাইডলাইন দেয়ার। আর, আমি প্রোগ্রামিং শেখাতে আসি নি। একটা গাইডলাইন দেয়ার চেষ্টা করছি কিভাবে কি করবেন। কম্পিউটার বিজ্ঞান ও প্রকৌশলের শিক্ষার্থীরা বিষয়গুলো আগেই জানেন।

এবার তবে শুরু করি।

প্রোগ্রামিং কি?

প্রোগ্রামিং হল সোজা বাংলায় বললে প্রোগ্রাম বানানো। ইশ! সোজা বাংলায় বলার কথা বলে ইংলিশে বলে ফেললাম 😛। যাইহোক, প্রোগ্রাম আবার কি? ওই যে বিভিন্ন প্রোগ্রামে যাই আমরা ওগুলো বানাতে হবে? ইভেন্ট ম্যানেজমেন্ট? আসলে ব্যাপারটা ওরকম না হলেও মূল বিষয়টা ওরকমই। একটা প্রোগ্রাম যেমন সুন্দরভাবে করতে একজন পরিকল্পনা বা প্ল্যান (Plan) করার এবং সে অনুযায়ী কাজ বা এক্সিকিউট (Execute) করে প্রোগ্রামটি আয়োজন করে, তেমনি প্রোগ্রামিংয়েও এভাবে প্ল্যান করে সেই প্ল্যান অনুযায়ী সাজিয়ে তা এক্সিকিউট করে কোড লিখে।

ধরুন একটা প্রোগ্রাম (ওয়েবসাইট) বানাতে হবে, যেখানে কিনা সবাই ঢুকে কিছু পণ্য অর্ডার করবে। তারপর আপনি আপনার অ্যাডমিন প্যানেলে ঢুকে অর্ডারগুলো দেখবেন এবং ক্রেতার ঠিকানা অনুযায়ী পণ্য পাঠাবেন। এই জিনিসটা আপনি প্রোগ্রামিং করেই করবেন। প্রথমে একটা প্ল্যান বানাবেন যে, কি কি ধাপে আগাবেন। তারপর সেই ধাপ অনুযায়ী প্রোগ্রাম লিখবেন। এ নিয়ে সামনে বিস্তারিত লেখা হবে।

প্রোগ্রামিং কাদের জন্য?

১. প্রোগ্রামিং মূলত যুক্তি বা লজিক (Logic) ভালোবাসে এমন লোকদের জন্য। কারণ সারাদিন পড়ে থাকতে “যদি এইটা হয়, তো এইটা দেখাও নাহলে ঐটা দেখাও” এই ধরণের যুক্তি নিয়ে। তাই যুক্তি যত ভালো বুঝবেন, প্রোগ্রামিংয়ে তত সফল হবেন। আর প্রোগ্রামিংয়ের যুক্তি হল গাণিতিক যুক্তি। তাই কেউ যদি গণিত অপছন্দ করেন, তাহলে আমার মনে হয় না, প্রোগ্রামিং আপনার কাজে আসবে বা কাজে লাগাতে পারবেন। কিছুদিন পর হতাশ হয়ে চলে যাবেন। প্রোগ্রামিং শিখতে হলে গণিতপ্রেমী হলে ভালো হয় অবশ্যই  ❤️

২. প্রোগ্রামারদের আরেকটি গুরুত্বপূর্ণ বৈশিষ্ট্য হচ্ছে বিশ্লেষণমূলক ক্ষমতা বা অ্যানালাইটিক্যাল অ্যাবিলিটি (Analytical Ability)। প্রোগ্রামিংয়ে মুখস্ত বিদ্যার কোন স্থান নেই। এমনকি প্রোগ্রামিং শিখতে কিছু মুখস্ত করতেও হয় না। দীর্ঘদিন অনুশীলন করতে করতে এমনিতেই আয়ত্বে এসে যায়। এখানে অ্যানালাইটিক্যাল অ্যাবিলিটি খুবই জরুরি। যদি এটা না থাকে বা আপনি মুখস্ত নির্ভর হন, তাহলে বলতেই হবে আপনার জন্য প্রোগ্রামিং না।

৩. প্রোগ্রামারদের প্রবলেম সলভিং স্কিল (Problem Solving Skill) থাকতে হবে। প্রোগ্রামিং মানেই সমস্যা সমাধান করা। বিভিন্ন রকম সমস্যা আসবে। সেগুলো সমাধানই হবে আপনার একমাত্র উদ্দেশ্য।

৪. ধৈর্য্য নেই? তাহলে অনুগ্রহ করে এই দিকে আসার দরকার নেই। অযথা সময় নষ্ট হবে। ধৈর্য্য কেন লাগবে? থাক, সেটা এখন না বলি। প্রোগ্রামিং শিখতে শুরু করেন, এমনিই বুঝে যাবেন 😉

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

প্রথমে আপনি একটি HTML Form থেকে ইউজারনেইম এবং পাসওয়ার্ড নিবেন। সেটা Post মেথড ব্যবহার করে নির্দিষ্ট লোকেশনে পাঠাবেন। তারপর PHP বা অন্য ল্যাঙ্গুয়েজ দিয়ে প্রথমে Post মেথড থেকে প্রাপ্ত তথ্য গ্রহণ করে Variable এ রাখবেন। তারপর সেটা ডেটাবেজের তথ্যের সাথে মেলাবেন। যদি মিলে তাহলে কুকি এবং সেশন ডেটা তৈরি করে দিবেন। অন্যথায় এরর রিটার্ন করবেন।

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

অ্যালগরিদম

অ্যালগরিদম কি?

কথা হল, অ্যালগরিদম কি? এটা আবার জানতে হবে কেন? একটু ধৈর্য্য ধরুন। সবই জানানো হবে 😉

আমার মত যারা কম বোঝেন, তাদের জন্য সহজে একটু বলি। এই অ্যালগরিদম হল সোজা বাংলায় বললে কোন সমস্যা সমাধানের ধাপ। অর্থাৎ কিভাবে কাজটি সম্পন্ন করবেন, সেটা এই অ্যালগরিদমের মাধ্যমেই করা হয়। ধরুন বাসার সবাই আপনাকে ফেলেই বেড়াতে গিয়েছে 😥। এখন ভাত আছে, তবে তরকারি নেই। বোঝেনই তো, সবচেয়ে সহজ সমাধান হল ডিম ভেজে খাওয়া 😂। যাইহোক, এবার চলেন ডিম ভাজার অ্যালগরিদম বানাই 😜। স্টেপগুলো হল:

১. শুরু
২. ডিম আনা
৩. ডিম ভাঙা
৪. পেঁয়াজ, মরিচ কাটা
৫. ডিমের সাথে কাটা পেঁয়াজ, মরিচ ও লবণ দিয়ে মাখা
৬. যেটাতে ভাজবেন, তাতে তেল দেয়া
৭. ভাজা
৮. সমাপ্ত

বাহ! আপনি চমৎকার একটি অ্যালগরিদম বানিয়ে ফেললেন। অভিনন্দন আপনাকে 💐। এভাবেই যেকোনো সমস্যা আসলে ধাপে ধাপে সহজে সমাধান করে ফেলবেন। এটাই অ্যালগরিদমের কাজ। যাইহোক, ডিম ভাজার নিয়ম ভালোভাবে না জানায় আমার লেখা অ্যালগরিদম দিয়ে ভেজে কোন দুর্ঘটনা ঘটলে আমি দায়ী না, বলে দিলাম 😜।

অ্যালগরিদম কেন শিখতে হবে?

ওকে, বুঝলাম নাহয় অ্যালগরিদম কি। কিন্তু এটা দিয়ে কি কাজ?

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

প্রোগ্রামিং ভাষা বা প্রোগ্রামিং ল্যাঙ্গুয়েজ কি?

প্রোগ্রামিং ল্যাঙ্গুয়েজ (Programming Language) আসলে প্রোগ্রাম লেখার ভাষা। ভাইরেভাই! এটা আবার কেমন কথা! প্রোগ্রাম কথা বলতে পারে? ওর ভাষা আসলো কিভাবে? 😱

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

যারা একটু চিন্তাশীল মানুষ তারা আবার এখনই বলবেন, আমি ভুল বলেছি। কারণ রোবট (Robot) বা আর্টিফিসিয়াল ইন্টিলিজেন্স (AI – Artificial Intelligence) তো কথা শোনে। হুম, তবে সেটা ভিন্ন বিষয়। আসলে ওরাও সব বোঝে না। ওদের কিছু অ্যালগরিদম ফিক্স করা থকে। যার ভিত্তি করে কাজ করে। এমনিতে মেশিন কখনোই আমাদের ভাষা বুঝতে সক্ষম না।

প্রোগ্রামিং কি দিয়ে শুরু করব?

সবার একটা কমন প্রশ্ন। আসলে যেকোনোটা দিয়েই শুরু করা যায়। তবে সবাই শুরুতে সি (C) দিয়ে শুরু করতে বলে। সেটারও কারণ আছে। মূলত সি হল মেশিনের খুব কাছের ল্যাঙ্গুয়েজ। এছাড়াও অ্যাপ্লিকেশন সফটওয়্যার তৈরিতেও কাজে লাগে। এজন্য দেখবেন, সিস্টেম সফটওয়্যারগুলো সি দিয়ে করা। কেননা একদিকে সি মেশিনের সাথে যোগাযোগ রাখছে, অন্যদিকে সি অ্যাপ্লিকেশন সফটওয়্যারের সাথেও যোগাযোগ রাখছে।

তবে আমার ব্যাপারটা ভিন্ন ছিল। আমি আগে জাভা (Java) শিখেছিলাম। যেহেতু আমার টার্গেট অ্যান্ড্রয়েড অ্যাপ বানানো ছিল, সেহেতু জাভা সবচেয়ে ভালো অপশন ছিল। এখন জাভার সবচেয়ে বড় প্রতিযোগি পাইথন (Python)। এছাড়াও সি++ (C++) এবং সি শার্প (C#) তো আছেই।

যদি কারো তথ্যবিজ্ঞান বা ডেটা সায়েন্স (Data Science) কিংবা কৃত্রিম বুদ্ধিমত্তা বা আর্টিফিসিয়াল ইন্টিলিজেন্স নিয়ে কাজ করার ইচ্ছা থাকে, তাহলে আপনাকে পাইথনে যেতে বলব। অন্য ক্ষেত্রে জাভাকে এগিয়ে রাখব। বলাই বাহুল্য, পৃথিবীর সবচেয়ে বেশি ডিভাইসে জাভা চলছে। তাই জাভা শেখা মানে, বিরাট একটা কমিউনিটি (Community) ধরে ফেলা।

যদি কারো ওয়েব প্রোগ্রামিংয়ে আগ্রহ থাকে, তাহলে তারজন্য দুটো ভালো অপশন আছে। একটি হল পিএইচপি (PHP); অন্যটি হল এএসপি বা এএসপি.নেট (ASP/ASP.NET)। এরমধ্যে পিএইচপি হল লিনাক্স সার্ভারের (Linux Server)। আর, এএসপি হল উইন্ডোজ সার্ভারের (Windows Server)। তবে, এ দুটোর মধ্যে লিনাক্সের পিএইচপি বেশি জনপ্রিয়। আমাদের প্রিয় ওয়েবসাইট ফেসবুকও পিএইচপি ব্যবহার করছে। আর, পিএইচপি বেশ সহজ। শুধু পিএইচপি না, ওয়েব প্রোগ্রামিংয়ের সব ল্যাঙ্গুয়েজই শেখা তুলনামূলক সহজ।

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

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

এই গেল কি দিয়ে শুরু করবেন। এবার আরেকটি কমন টপিক নিয়ে কথা বলি।

একটা শিখলে অন্যটা শেখা যাবে?

হ্যাঁ, অবশ্যই। একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ কষ্ট করে শিখলে, খুব সহজেই অন্যগুলো শিখতে পারবেন। মজার ব্যাপার হল, সব ল্যাঙ্গুয়েজ আসলে প্রায় একই। while, for, do while লুপ সব জায়গায়ই পাবেন। সবজায়গায়ই function, variable তৈরি করবেন। সবই একই, শুধু ভিন্নভাবে উপস্থাপন আরকি! তাই যেকোনো একটা ভালো করে শিখতে হবে। তাহলে অল্প দিনেই অন্য একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখতে পারবেন।

কোথা থেকে শিখব? কোন ট্রেনিং সেন্টার?

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

তবে আপনাদের জন্য একটি অসাধারণ ওয়েবসাইট সাজেস্ট করব। এখানে আগামী এক বছর সময় দিন; সব হবে। লিংক: www.w3schools.com
আমি এখান থেকেই বেশিরভাগ শিখেছি। আর বাংলায় সার্চ দিলেও অনেক কিছু পাবেন।

এখন মূলত আমার কাজ করা ল্যাঙ্গুয়েজ নিয়ে কথা বলব। সাথে অন্যান্য ল্যাঙ্গুয়েজ নিয়েও কিছু আলোচনা থাকবে।

সি++ প্রোগ্রামিং ভাষা

সি, সি++, সি#

প্রোগ্রামিং শুরুর ক্ষেত্রে সি (C) এই বিকল্প নেই। সবার হাতে খড়ি হয় এখান থেকেই। সি সিরিজের সাথে মেশিনের খাতির বেশি। তাই আপনার যদি সিস্টেম সফটওয়্যার (System Software) তৈরি বা এই সেক্টরে কাজ করার ইচ্ছা থাকে, তাহলে অবশ্যই এই সি সিরিজেই আপনার ফোকাস করা উচিত। আর, সি সিরিজও যথেষ্ট শক্তিশালী। প্রোগ্রামিংয়ে বেসিক ধারণা পেতে সি দিয়ে শুরু করবেন। তারপর সি++ (C++) বা সি# (C#) শিখবেন। যেহেতু আমি এদিকে আগাই নি, এরচেয়ে বেশি ধারণা দেয়ার সুযোগ নেই।

জাভা প্রোগ্রামিং ভাষা

জাভা

আমার কাছে সবচেয়ে জোস লাগে জাভা (Java)। জাভার সবচেয়ে বড় প্রতিযোগী এখন পাইথন (Python)। গুগল ট্রেন্ডে (Google Trend) যদি দেখেন তাহলে দেখবেন, পাইথন ক্রমশ এগিয়ে যাচ্ছে। যাইহোক, এর কারণ পাইথনে আলোচনা করব। আর, জাভা এসেছিল সি++ কে ঠেকাতে। সেটায় অবশ্যই সফল হয়েছে। এছাড়াও, জাভা সর্বপ্রথম পূর্ণাঙ্গ অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের (OOP – Object Oriented Programming) স্বাদ দিতে পেরেছে। এখন ভাবতে পারেন, এটা আবার কি? এটা প্রোগ্রামিং শেখার সময় শিখে যাবেন, প্যারা নেই।

জাভা জোস হওয়ার কারণ হল জাভা প্ল্যাটফর্ম ইন্ডিপেন্ডেন্ট (Platform Independent)। ফলে পৃথিবীর সব ডিভাইসের জন্য জাভা অনন্য। জাভা একবার শেখা মানে আপনি একটা বিরাট কমিউনিটি ধরে ফেলতে পারবেন। মোবাইল বলেন আর পিসি, সবই হাতের মুঠোয়। সব ডিভাইসে কাজ করতে পারবেন। বলাই বাহুল্য, পৃথিবীর সবচেয়ে বেশি ডিভাইস জাভার হাতে। মনে থাকার কথা, ছোটবেলায় আমরা জাভা ফোনে কি চমৎকার সব গেইম খেলতাম! সেই যুগ পেরিয়ে যখন অ্যান্ড্রয়েড যুগে প্রবেশ করলাম, তখনও আমাদের সঙ্গী হল জাভাই। অ্যান্ড্রয়েডের বেশিরভাগ অ্যাপ জাভা দিয়েই তৈরি। তবে গুগল কোটলিন (Kotlin) কে আগানোর চেষ্টায় আছে। তারপরও জাভার জনপ্রিয়তা কমবে বলে মনে হয় না।

আমি মূলত অ্যান্ড্রয়েড অ্যাপ তৈরির জন্যই জাভাতে এগিয়েছিলাম। তাই জাভাতে সময় দিলে অ্যান্ড্রয়েড ব্যবহারকারীদের মার্কেট ধরে ফেলতে পারবেন। যদিও আমাদের দেশ থেকে মানসম্মত অ্যাপ বের হয় না সাধারণত। বেশিরভাগ অ্যাপ হল ‘ঘরে বসে ৩০ দিনে ডাক্তার হোন’ টাইপ 🐸। যদি অ্যান্ড্রয়েড অ্যাপ তৈরির ইচ্ছা থাকে তাহলে সবচেয়ে ভালো হয় অ্যান্ড্রয়েড স্টুডিও (Android Studio) ব্যবহার করুন। তবে চাইলে একলিপস-ও (Eclipse) ব্যবহার করতে পারেন। দুটোই আইডিই (IDE – Integrated Development Environment)

পাইথন প্রোগ্রামিং ভাষা

পাইথন

বর্তমানে ট্রেন্ড চলছে পাইথনের। এই ক্রেজের কারণ হল মেশিন লার্নিং (Machine Learning) আর কৃত্রিম বুদ্ধিমত্তা বা আর্টিফিসিয়াল ইন্টিলিজেন্স (AI – Artificial Intelligence)। বোঝেনই তো, পৃথিবী আগাচ্ছে। সবাই সবকিছু স্বয়ংক্রিয় চায়। চায় এমন রোবট যা কিনা মানুষের মত ভাববে। সেটাই হল আর্টিফিসিয়াল ইন্টিলিজেন্স।

এই কাজের জন্য পাইথন খুবই কাজের। সেজন্য রোবটিক্স (Robotics) সেক্টরে পাইথনের চাহিদা তুমুল। এছাড়াও ডেটা সায়েন্সের (Data Science) এর জন্যও পাইথন খুবই জনপ্রিয়। কেননা বর্তমান যুগ হল তথ্য প্রযুক্তির যুগ। তাই ডেটা হল সবচেয়ে জরুরি একটা বিষয়। ডেটা এমন জিনিস, যা আপনার হাতে থাকা মানে পৃথিবীর সবচেয়ে গুরুত্বপূর্ণ ব্যক্তিও হয়ে যেতে পারেন। তাই যদি কারো এসব সেক্টরে কাজ করতে ইচ্ছে হয়, তাদেরকে পাইথন শিখতে পরামর্শ দিব।

কারো যদি ওয়েব সেক্টরে কাজ করার ইচ্ছা থাকে, তাদের জন্য পাইথন খুব ভালো একটা সুযোগ। ছোট-বড় সব ওয়েবসাইটেই পাইথন সহজেই ব্যবহার করা যায়। যেখানে জাভা, সি এর মত ল্যাঙ্গুয়েজ ছোটখাটো ওয়েবসাইটে ব্যবহার করে না বা করার সুযোগ নেই। একটা মজার ব্যাপার বলি। প্রোগ্রামারদের সবচেয়ে বেশি ঝামেলা বাধে লাইনের শেষে সেমিকোলন (;) দেয়া নিয়ে। মজার কথা হল, পাইথনে সেমিকোলনই নেই! 😂

পিএইচপি প্রোগ্রামিং ভাষা

পিএইচপি

ওয়েবের কাজের জন্য সবচেয়ে পাওয়ারফুল ল্যাঙ্গুয়েজ বললে আমি পিএইচপির (PHP) নাম বলব। পিএইচপির নাম এসেছে Personal Home Page (PHP) থেকে। পিএইচপি যখন তৈরি হয়, তৎকালীন সময়ে পাওয়ারফুল ল্যাঙ্গুয়েজ ছিল এএসপি (ASP)। তাই পিএইচপি তৈরির সময় ভাবা হয় নি, এটা এএসপিকে হারিয়ে দেবে। শুধু তাই নয়, দেখা গেল পুরো ওয়েব বিশ্ব জয় করে ফেলেছে পিএইচপি! পরবর্তীতে অবশ্য পিএইচপির এত অর্জনের ফলে এই সাধারণ নামটি বলে ডাকা হয় না। PHP: Hypertext Preprocessor বলেই ডাকা হয়। এই Hypertext Preprocessor নামের কারণ হল, পিএইচপির লাইব্রেরি আগেই কম্পাইল করা থাকে। টাই আমাদেরকে ক্ষত করে কম্পাইল করতে হ না বলে, অনেক সময় বাঁচায়।

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

প্রোগ্রামার বনাম সফটওয়্যার ইঞ্জিনিয়ার

অনেকেই মনে করে প্রোগ্রামিং শিখে ফেললাম তো সফটওয়্যার ইঞ্জিনিয়ার (Software Engineer) হয়ে গেলাম। আসলে ব্যাপারটা সেরকম না। দেখুন, প্রোগ্রামার হতে হলে শুধু প্রোগ্রামিং পারলেই হয়। কিন্তু সফটওয়্যার ইঞ্জিনিয়ারিং একটা বিশাল জিনিস। এটা ইঞ্জিনিয়ারিংয়ের বিষয়। আর, গণিত ছাড়া ইঞ্জিনিয়ার হয় না। প্রোগ্রামার হতে হলে আপনাকে ক্যালকুলাস শিখতে হবে না। ইঞ্জিনিয়ারিং পড়লে (এমনকি বিজ্ঞানের অন্যান্য বিষয়েও) আপনাকে জোরপূর্বক ক্যালকুলাসসহ একগাদা কোর্স করাবে। যেগুলোর কারণেই একজন প্রোগ্রামার এবং একজন সফটওয়্যার ইঞ্জিনিয়ারের মধ্যে পার্থক্য তৈরি হবে।

হ্যাঁ, চাইলে ভবিষ্যতে সফটওয়্যার ইঞ্জিনিয়ারিংয়ে ম্যাস্টার্স ডিগ্রি নিয়ে সফটওয়্যার ইঞ্জিনিয়ার হতে পারেন। তবে কেউ যদি প্রোগ্রামিংয়ের পাশাপাশি সফটওয়্যার ইঞ্জিনিয়ারিংয়ের বাড়তি বিষয়গুলো শিখতে পারে তাহলে সেও ফেসবুকের মত জায়গায় সফটওয়্যার ইঞ্জিনিয়ার হিসেবে যোগ দিতে পারে। কারণ ওরা সার্টিফিকেট নয়, স্কিল দেখবে।

প্রোগ্রাম সোর্স কোড

কম্পিটিটিভ প্রোগ্রামিং বনাম সফটওয়্যার ডেভেলপমেন্ট

এটা একটা কমন প্রশ্ন। তবে যারা জানেন না, তাদের জন্য আগে বিষয়টা বুঝিয়ে বলি।

কম্পিটিটিভ প্রোগ্রামিং: প্রতিযোগিতামূলক প্রোগ্রামিং আরকি! আপনি বিভিন্ন প্রতিযোগিতায় অংশ নেবেন এবং সেটার জন্যই অনুশীলন করবেন নিয়মিত।

সফটওয়্যার ডেভেলপমেন্ট: সফটওয়্যার তৈরি করবেন।

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

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

প্রোগ্রামিং শেখা

প্রোগ্রামিংশেখার জন্য প্রচুর সুযোগ আছে ইন্টারনেটে। সে খোঁজ পেতে গুগলে গিয়ে একটা সার্চই যথেষ্ট! তারপরও আপনাদের জন্য বিনামূল্যে প্রোগ্রামিং শেখার সেরা ৫ টি ওয়েবসাইটের তালিকা দিলাম:

১. W3Schools
২. Codecademy
৩. Tutorialspoint
৪. Studytonight
৫. Geeks for Geeks

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

প্রোগ্রামিং প্রতিযোগিতা ও অনুশীলন

প্রোগ্রামিংয়ে ভালো করতে হলে প্রতিযোগিতার বিকল্প নেই। কেননা এতে অনেক অনুশীলন হবে। প্রোগ্রামিং যেহেতু গণিতের মত, সেহেতু যত সমাধান করবেন তত ভালো করবেন। এটাই নিয়ম।

প্রথমে আলোচনা করি আন্তর্জাতিক প্রতিযোগিতাগুলো নিয়ে। প্রোগ্রামিংয়ে বিশ্বের সবচেয়ে বড় প্রতিযোগিতার নাম এসিএম আইসিপিসি (ACM-ICPC) বা আন্তর্জাতিক কলেজিয়েট প্রোগ্রামিং প্রতিযোগিতা (ICPC – International Collegiate Programing Contest)। এটার নাম অনেকেরই শোনার কথা। এটা বিশ্ববিদ্যালয় ভিত্তিক অংশ নিতে হয়।

এছাড়াও আছে আন্তর্জাতিক ইনফর্মেটিক্স অলিম্পিয়াড (International Olympiad in Informatics)। এটা প্রযুক্তি বিষয়ক আন্তর্জাতিক প্রতিযোগিতা। পাশাপাশি দেশে বিভিন্ন বিশ্ববিদ্যালয় থেকে প্রোগ্রামিং প্রতিযোগিতার আয়োজন করে। বিশ্ববিদ্যালয় থেকে ২-৩ জন দল করে সেসবে যাওয়া যেতে পারে। আরো অনেক সুযোগ আছে। গুগল করলেই সব পাওয়া যাবে।

অনলাইনে প্রোগ্রামিং অনুশীলন ও প্রতিযোগিতা করার অনেক সুযোগ আছে। নীচে ওয়েবসাইটগুলোর নাম দিলাম। গুগল করলেই জেনে যাবেন।

১. TopCoder
২. Coderbyte
৩. Project Euler
৪. HackerRank
৫. CodeChef

ক্যারিয়ার

আসলে প্রোগ্রামিংয়ের ক্যারিয়ার (Career) নিয়ে কথা বলতে ইচ্ছা করে না এখন। এর একটা বড় কারণ হল বর্তমানে ফ্রিল্যান্সিং (Freelancing) ক্রেইজ। ‘ঘরে বসে হাজার হাজার টাকা কামান’ ধরণের বিজ্ঞাপন দেখতে দেখতে বিরক্ত। যদি এই উদ্দেশ্যে প্রোগ্রামিংয়ে আগান, তাহলে বলব ভাই বাদ দেন। এরচেয়ে কম সময়ে অন্য কাজ করে বেশি টাকা উপার্জন করতে পারবেন। আর, আপনার স্কিল থাকলে ফেসবুক, গুগলে আপনাকে ডেকে ডেকে নিবে। জানেনই তো, প্রতিবছরই বাংলাদেশ থেকে ফেসবুক, গুগল, মাইক্রোসফটে চাকরি পাচ্ছে অনেকেই। আমি সম্ভাব্য কিছু আলোচনা করি।

১. আসলে প্রোগ্রামিং জানলে ওয়েব বলেন অ্যাপ বলেন, সব দিকেই কাজ আছে প্রচুর। এমনকি নিজেও দু’য়েকটা অ্যাপ বানিয়ে গুগল প্লে স্টোরে দিতে পারেন। বিভিন্ন মার্কেটপ্লেসে প্রচুর কাজ আছে।

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

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

৪. রোবটিক্স ও আর্টিফিসিয়াল ইন্টিলিজেন্স নিয়ে কাজের বিরাট সুযোগ। কয়েক দশক পর পৃথিবী চলে আসবে রোবট এবং কৃত্রিম বুদ্ধিমত্তা নির্ভর অবস্থায়। তাই এটা এখন খুব ভালো একটা সুযোগ নিজেকে গড়ে তোলার।

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

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

শেষ কথা

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

মহাবিশ্বের সীমানা ও সৃষ্টিকর্তা

মহাবিশ্বের সীমানা ও সৃষ্টিকর্তা

মহাবিশ্ব কতটা বড়? যেহেতু প্রতিনিয়ত মহাবিশ্ব বড় হচ্ছে সেহেতু এই প্রশ্নটার একটা সহজ উত্তর হচ্ছে ‘অসীম’। কিন্তু উত্তরটা অনেকের জন্যই সন্তোষজনক নয়। অসীম তো বুঝলাম, কিন্তু ফিল কিভাবে করব? আসলে ফিল করা পসিবলও না। তবে খানিকটা আঁচ করা যেতে পারে। আজকে আপনাকে খানিকটা আঁচ করানোর চেষ্টা করব।

মহাবিশ্বের অসীমতা

ধরে নিলাম এই মুহূর্তে মহাবিশ্বের সীমানা আমার অবস্থান থেকে ক কিলোমিটার দূরে। আমি ক কিলোমিটার পাড়ি দিলেই মহাবিশ্বের প্রান্তে পৌঁছে যাব। ধরে নিলাম আমি ১ সেকেন্ডেই এই দূরত্ব পাড়ি দিতে পারি। আমি আমার মহাকাশযানে চড়ে শেষ ১ সেকেন্ডে ক কিলোমিটার গেলাম। কিন্তু একি! মহাবিশ্বের প্রান্ত দেখছি আরো দূরে! কারণ মহাবিশ্ব বাড়ছেই। আমি যেই ১ সেকেন্ডে প্রান্তে পৌঁছাব ততক্ষণে মহাবিশ্ব আরো বিশাল হয়ে যাবে। আর হ্যাঁ, এটাই অসীম। যার কোন সীমানা বা প্রান্ত নেই কিংবা সেই সীমানা পরিমাপ করতে পারি না।

আলোকবর্ষ কি?

আচ্ছা এবার একটু আঁচ করা যাক, মহাবিশ্ব কত বড় হতে পারে। এই মহাবিশ্বের সবচেয়ে গতিশীল কোনটি? এটার উত্তর সবারই জানা। সেটা হচ্ছে আলোর কণা বা ফোটন কণা। এর বেগকে আমরা আলোর বেগ বলে থাকি। আলো বা ফোটন কণা ১ সেকেন্ডে 3×10⁸ মিটার চলে যায়। সংখ্যাটা দেখতে ছোট লাগলেও আদতে এত ছোট নয়। প্রথমে একটি কাগজে 3 লিখুন, তারপর আটটি 0 দিন। অনেক বড় একটি মান, তাই নয় কি?

চলুন এবার একটি নতুন একক সম্মন্ধে যান যাক। আলো এক সেকেন্ডে কতটা দূরত্ব পাড়ি দেয় তা তো জানলাম। এবার আলো এক বছরে কত দূরত্ব পাড়ি দেয় সেটা জানবো। আলোর বেগকে 60×60×24×365 অর্থাৎ এক বছরে যত সেকেন্ড হয় তা দিয়ে গুণ করে পাই, 9.46×10¹⁵ মিটার। অর্থাৎ আলো এক বছরে এতটা দূরত্ব অতিক্রম করে। এটাকে ১ আলোকবর্ষ বলে, যা দিয়ে জ্যোতির্বিজ্ঞানের দূরত্ব মাপা হয়। কেননা সেখানে কিলোমিটার অনেক ক্ষুদ্র একক। সেজন্যই আলোচনার শুরুতে এই এককের সাথে পরিচয় করিয়ে নিলাম। যদিও জ্যোতির্বিজ্ঞানে আরো কিছু বড় একক ব্যবহার করা হয়। আপাতত এটা দিয়েই বোঝাই।

আলফা সেন্টরি

একটু আগেই দেখলাম, আলো তীব্র বেগে চলে। আলো এতটা তীব্র বেগে আলো চলার পরেও আমাদের সবচেয়ে কাছের নক্ষত্র অর্থাৎ আলফা সেন্টরির (Alpha Centauri) থেকে আলো এই পৃথিবীতে আসতে সময় লাগে ৪.৩৭ বছর! ভাবা যায়, কাছের নক্ষত্রই যদি এতটা দূরে থাকে তবে দূরেরগুলো কোথায়? চলুন এবার দূরের দিকে হাত বাড়াই। দেখি মহাবিশ্ব আমাদের কত দূর পর্যন্ত জানাতে পারে! 😮

মিল্কিওয়ে গ্যালাক্সি

মিল্কিওয়ে গ্যালাক্সি

মিল্কিওয়ে গ্যালাক্সি

আমাদের সৌরজগতের সম্মন্ধে সবারই কমবেশি ধারণা আছে। আমাদের সৌরজগতের মত অনেকগুলো সৌর জগৎ মিলে একটি গ্যালাক্সি তৈরি হয়। প্রতিটা সৌরজগতেই আছে নক্ষত্র। যাকে আবর্তন করে ঘুরছে পৃথিবীর মতো অসংখ্য গ্রহ। যদি আমাদের গ্যালাক্সি অর্থাৎ মিল্কিওয়ের কথাই বলি, এই মিল্কিওয়ের এক প্রান্ত থেকে অপর প্রান্তের দূরত্ব ২,০০,০০০ বা ২ লক্ষ আলোকবর্ষ! মানে, আলোর বেগে গেলেও দুই লক্ষ বছর লাগবে শুধু মিল্কিওয়ের এক পাশ থেকে অন্য পাশে যেতে! এবার ভাবুন, পুরো মিল্কিওয়ে ঘুরতে কত কোটি আলোকবর্ষ লাগবে? 😮

লোকাল গ্রুপ ও সুপারক্লাস্টার

কি ঘাবড়ে গেলেন? নাহ, এখানেই শেষ নয়। এত বিশাল গ্যালাক্সি মহাবিশ্বের খুব ছোট একটা অংশ। আমাদের গ্যালাক্সিসহ ৫৫ টি গ্যালাক্সি একত্র হয়ে তৈরি করে লোকাল গ্রুপ। এই লোকাল গ্রুপের বিস্তৃতি ১,০০,০০,০০০ বা ১ কোটি আলোকবর্ষ! আবার ১০০+ লোকাল গ্রুপ মিলে তৈরি হয় বিশালাকৃতির মহাজাগতিক গ্যালাক্সি-গুচ্ছ যার নাম ভার্গো সুপারক্লাস্টার। এর ব্যাস প্রায় ১১,০০,০০,০০০ বা ১১ কোটি আলোকবর্ষ!

লানিয়াকেয়া সুপারক্লাস্টার

কিন্তু এটাও হয়রানি হবার কিছু নেই। এই সুপারক্লাস্টারও মহাবিশ্বের ছোট একটা অংশ! 😁 এরকম আরো ২০-৩০ টি সুপারক্লাস্টার একত্র হয়ে তৈরি করে গ্রেইট লানিয়াকেয়া সুপারক্লাস্টার নামক একটি বৃহৎ গ্যালাক্সি-গুচ্ছ। যেখানে আছে আমাদের মিল্কিওয়ে গ্যালাক্সির মত ১ লক্ষ+ গ্যালাক্সি! এই লানিয়াকেয়ার ব্যাস প্রায় ৫২,০০,০০,০০০ বা ৫২ কোটি আলোকবর্ষ! আবারও হতাশ করার জন্য বলছি, এই গ্রেইট লানিয়াকেয়া নামক গ্যালাক্সি-গুচ্ছ পুরো মহাবিশ্বের তুলনায় খুবই সামান্য এবং ক্ষুদ্রাতিক্ষুদ্র! 😱

সর্ববৃহৎ সুপারক্লাস্টার

এখন পর্যন্ত আবিস্কার হওয়া সুপারক্লাস্টারের মধ্যে সর্ববৃহৎ হল হারকিউলিস-করোনা বরিয়ালিস গ্রেইট ওয়াল! এটি আবিস্কৃত হয় ২০১৪ সালে। এটা এতটাই বড় যে, এটিকে ঘুরে আসতে সময় লাগবে ১০০০,০০,০০,০০০ বা ১ হাজার কোটি আলোকবর্ষ (১০ বিলিয়ন আলোকবর্ষ)! 😰 অথচ আমাদের মহাবিশ্বের বয়সই ১৩.৮ বিলিয়ন আলোকবর্ষ! এরচেয়েও বড় সুপারক্লাস্টার থাকার কথা। কিন্তু সেগুলো আমাদের মহাবিশ্বের পর্যবেক্ষণযোগ্য (Observable Universe) অংশের বাইরে।

ডার্ক ম্যাটার

অপর্যবেক্ষণযোগ্য অংশ

এতক্ষণ যা আলোচনা করছিলাম, সেগুলো বিজ্ঞান পর্যবেক্ষণ করতে পেরেছে। কিন্তু মহাবিশ্বের বিস্তৃতি আরো বিশাল, যা কিনা বিজ্ঞান এখনো পর্যবেক্ষণই করতে পারে নি। যাকে বলা হয় মহাবিশ্বের অপর্যবেক্ষণযোগ্য (Unobservable Universe) অংশ। মূলত বিগ ব্যাং প্রায় ১৩.৮ বিলিয়ন বছর আগে হওয়ায় এর চেয়ে বেশি দূরত্বের কোন কিছু থেকে আলো এখনো আমাদের কাছে এসে পৌঁছোয় নি। ফলে সে অংশগুলো সম্মন্ধে আমরা ধারণা করতে পারছি না।

অক্সফোর্ড বিশ্ববিদ্যালয়ের গবেষক ড. মিহরান এবং তার সহকর্মীরা ধারণা করতে পেরেছেন, আমাদের মূল মহাবিশ্বের আকার আমাদের পর্যবেক্ষণযোগ্য মহাবিশ্বের চেয়ে প্রায় ২৫০ গুণ বড়! ভাবা যায়?

শুধু তাই নয়, নাসা জানিয়েছে আমরা মহাবিশ্বের কেবল মাত্র ৫% জানি। বাকি ৯৫% আমরা জানতে পারি না! অথচ এই ৫% জেনেই তো মহাবিশ্বের কূল-কিনারা পাওয়া দুষ্কর। ভাবুন তবে মহাবিশ্বের অজানা অংশের পরিমাণ কেমন? তাই ধরে নেয়া হয়েছে এই ৯৫% অংশের মধ্যকার ২৭% হল ডার্ক ম্যাটার (Dark Matter) এবং ৬৭% হল ডার্ক এনার্জি (Dark Energy)। ডার্ক ম্যাটার ও এনার্জি নিয়ে অন্য একদিন আলোচনা করব।

স্রষ্টার অস্তিত্ব

আচ্ছা, এই মহাবিশ্বে যদি এত বিশাল বিশাল সুপারক্লাস্টারের আকার ক্ষুদ্র বিন্দুর মত হয় তবে, আমরা কতটুকু? আসলে নিজেদেরকে শূন্য বললে বললে বোধকরি ভুল হবে না। এই শূন্য মানুষ হয়ে আমাদের চেয়েও ছোট আকৃতির মস্তিষ্কের ব্যবহার করে যদি আমরা এই বিশাল মহাবিশ্বের স্রষ্টা আছে কিনা সেটা বিজ্ঞান দ্বারা প্রমাণ করতে বসি আমার মতে এরচেয়ে হাস্যকর বিষয় বোধহয় আর কিছুই হবে না।

উপরের আলোচনা থেকে দেখা যায়, মাত্র ১৩.৮ বিলিয়ন আলোকবর্ষ আমাদের সীমানা। এর বাইরে পর্যবেক্ষণ করতে পারি না। মহাবিশ্বের মাত্র ৫% জানতে পারি। অথচ স্রষ্টা হয়তো এরকম অসীম সংখ্যক মহাবিশ্ব তৈরি করে বসে আছেন। আর সেই স্রষ্টাকে আমরা আমাদের পদার্থবিজ্ঞানের সূত্র দিয়ে ধরাশায়ী করব? তিনি কি আমাদের জীববিজ্ঞান গবেষণাগারের অণুবীক্ষণ যন্ত্রের নীচে হাজির হয়ে বলবেন, “নাও, আমার অস্তিত্বের প্রমাণ!”? অবশ্যই নয়। মজার ব্যাপার হল, আমরা ত্রিমাত্রিক জগতের বাসিন্দা হওয়ায়, এর চেয়ে উপরের জগৎ অনুধাবন করতে সক্ষম নই। তার মানে এই নয় যে সেগুলো নেই। সেগুলো আছে কিন্তু আমাদের জ্ঞানের সীমার বাইরে। তাহলে, সেখানে সকল মাত্রার ঊর্ধ্বে থাকা স্রষ্টাকে বিজ্ঞান খোঁজা নেহাত বোকামিই।

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

পদার্থবিদ্যার রাজপুত্র স্যার আইজ্যাক নিউটন বলেন,

“অভিকর্ষ গ্রহসমূহের গতির বিষয়টি ব্যাখ্যা করে, কিন্তু এটি ব্যাখ্যা করতে পারেনা, কে গ্রহগুলোকে গতিশীল হিসেবে নির্দিষ্ট স্থানে স্থাপন করে দিলে। ঈশ্বর সকল কিছু নিয়ন্ত্রণ করেন এবং যা কিছু ঘটছে বা যা কিছু ঘটা সম্ভব তার সবই তিনি জানেন।”

আর নোবেলজয়ী পদার্থবিদ অ্যালবার্ট আইনস্টাইন বলেন,

“আমি যতই বিজ্ঞান নিয়ে গবেষণা করি, আমি ততই স্রষ্টায় বিশ্বাসী হই”

অণুজীববিজ্ঞানের জনক লুই পাস্তুর বলেন,

“বিজ্ঞানে অল্প জ্ঞান আপনাকে স্রষ্টা থেকে দূরে সরিয়ে নেবে, বেশি জ্ঞান আপনাকে স্রষ্টার নিকটে আনবে।”

কোয়ান্টাম বলবিদ্যার অন্যতম উদ্ভাবক ওয়ার্নার হাইজেনবার্গ বলেন,

“প্রকৃতিকে একটি গ্লাস ধরলে, এর উপরের অংশ আপনাকে নাস্তিক করে তুলবে। তবে নিচের অংশে প্রবেশ করলে দেখবেন, স্রষ্টা আপনার জন্য অপেক্ষা করছে।”

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

HiPER Scientific Calculator – গণিত বিষয়ক অ্যাপ

HiPER Scientific Calculator – গণিত বিষয়ক অ্যাপ

দীর্ঘদিন পর অ্যাপ রিভিউর আজকের পর্বে নিয়ে এলাম গণিত বিষয়ক আরেকটি অ্যাপ! এই অ্যাপের নাম: HiPER Scientific Calculator. এই অ্যাপের মাধ্যমে বিশাল বিশাল গাণিতিক সমস্যা এক মুহূর্তেই সমাধান করতে পারবেন। এতে রয়েছে বিপুল পরিমাণ ফিচার। বীজগাণিতিক যেকোনো সমস্যা সমাধানের পাশাপাশি Unit Conversation করা যাবে ২০০ টির বেশি এককে ? সাথে আছে বিভিন্ন ৯০ টি ফিজিক্যাল ধ্রুবক! চলুন ফিচারের পূর্ণ লিস্ট দেখা যাক।

Features:

– basic arithmetic operations including percentage, modulo and negation;
– fractions;
– mixed numbers;
– periodic numbers and their conversion to fractions;
– unlimited number of braces;
– operator priority;
– repeated operations;
– variables and symbolic computation;
– derivatives and integrals;
– calculation details;
– complex numbers;
– conversion between rectangular and polar coordinates;
– advanced number operations such as random numbers, combinations, permutations, common greatest divisor, etc.;
– trigonometric and hyperbolic functions;
– powers, roots, logarithms, etc.;
– degrees, minutes and seconds conversion;
– fixed point, scientific and engineering display format;
– enter and display exponent as SI units prefix;
– memory operations with 10 extended memories;
– clipboard operations with various clipboard formats;
– result history;
– binary, octal and hexadecimal numeral systems;
– logical operations;
– bitwise shifts and rotations;
– haptic feedback;
– more than 90 physical constants;
– conversion among 200 units;
– Reverse Polish notation.

এখনই ডাউনলোড করে নাও HiPER Scientific Calculator!

App Name: HiPER Scientific Calculator
App Developer: HiPER Development Studio
App Rating: 4.6

App Downloaded: 120,000+
Download Link: https://play.google.com/store/apps/details?id=cz.hipercalc

আগামী মাসে নিয়ে আসব নতুন কোন অসাধারণ অ্যাপের সন্ধান

Learn Physics – পদার্থবিজ্ঞান বিষয়ক অ্যাপ

Learn Physics – পদার্থবিজ্ঞান বিষয়ক অ্যাপ

অ্যাপ রিভিউর আজকের পর্বে নিয়ে এলাম পদার্থবিজ্ঞান বিষয়ক আরেকটি অ্যাপ! এই অ্যাপের নাম: Learn Physics. এই অ্যাপের মাধ্যমে পদার্থবিজ্ঞানের কোর বিষয়গুলো সম্মন্ধে জানতে পারবেন। সাথে আছে হিসাব করে ম্যাথ প্র্যাকটিস করার সুযোগ। আরো আছে কুইজ সিস্টেম। যার মাধ্যমে খুব সহজেই যাচাই করে নেয়া যাবে পদার্থবিজ্ঞান সম্মন্ধে জ্ঞান কতটুকু! ? দেখে আসতে পারো রিভিউ ভিডিওটি:

Topics Covered:

MECHANICS
1. Motion in One Dimension
2. Forces and Newton’s Laws
3. Forces in Two Dimensions
4. Free Fall and Projectile Motion
5. Momentum and Collisions
6. Circular Motion and Rotation
7. Mechanics of Solids and Fluids

ELECTROMAGNETISM

1. Electrostatics

2. Circuit Elements
3. Electric Circuits
4. Magnetism
5. Waves and Sound
6. Optics

THERMODYNAMICS

1. Energy, Work and Heat
2. Laws of Thermodynamics

এখনই ডাউনলোড করে নাও Learn Physics!

App Name: Learn Physics
App Developer: Paul Cotarlea
App Rating: 4.0

App Downloaded: 500,000+
Download Link: https://play.google.com/store/apps/details?id=com.iphonedevro.learnphysics

আগামী মাসে নিয়ে আসব নতুন কোন অসাধারণ অ্যাপের সন্ধান

Calculator + – গণিত বিষয়ক অ্যাপ

Calculator + – গণিত বিষয়ক অ্যাপ

প্রতিমাসের অ্যাপ রিভিউ এ পর্বে নিয়ে এলাম আরো একটি অসাধারণ ম্যাথ রিলেটেড অ্যাপ। অ্যাপের নাম Calculator+. নাম শুনে এটাকে সাধারণ মনে করার কোন কারণ নেই। এই একটা অ্যাপে কি পরিমান ফিচার আছে তা পুরো রিভিউ না পড়লে বুঝবেন না। ছোট্ট একটি অ্যাপে শুধু যে ক্যালকুলেটর আছে তা নয়, সাথে আছে ইউনিট কনভার্সন থেকে শুরু করে হেলথ সার্ভিস, লোন ক্যালকুলেশন, ট্যাক্স ক্যালকুলেশনসহ অনেক অনেক ফিচার। দেখতে পারো ভিডিও রিভিউটি:


গণিত বিষয়ক আরেকটি অ্যাপ: MalMath!

গণিত বিষয়ক আরেকটি অ্যাপ: Photomath!


Key Features:
• Standard calculator, Simple or Scientific layout.
• Convert units or currencies in the same app
• Solves your school homeworks instantly
• Over 80 calculators and unit conveters
• Currency converter with 150 currencies (available offline)
• Smart search for faster navigation
• Double tap anywhere in app to open calculator
• Easy and quick navigation across app Math Tools
• Percentage calculator
• Average calculator – arithmetic, geometric and harmonic means
• Proportion calculator
• Combinations and permutations
• Area / Perimeter calculator for triangle, square rectangle, parallelogram, trapezoid, rhombus, pentagon, hexagon, circle, circle arc and ellipse
• Volume calculator for cube, rect. prism, sq. pyramid, sq. pyramid frustum, cylinder, cone, conical frustum, sphere, spherical cap, spherical segment and ellipsoid
• Equation solver – linear, quadratic and equation system
• Decimal to fraction
• Prime number checker
• Right triangle calculator
• Heron’s formula (solve a triangle knowing the side lengths)
• Circle solver
• GCF and LCM calculator
• Fraction simplifier
• Number base converter
• Random number generator
Unit converters
• Length converter
• Area converter
• Weight converter
• Volume converter
• Speed converter
• Temperature converter
• Time converter
• Angle converter
• Pressure converter
• Force converter
• Energy converter
• Power converter
• Acceleration converter
• Torque converter
• Digital storage converter
• Data rate converter
• Prefix converter
• Image converter
• Charge converter
• Current converter
• Resistance converter
• Conductance converter
• Inductance converter
• Capacitance converter
• Fuel economy converter
• Cooking converter
• Frequency converter
• Illuminance converter
• Radiation converter
More
• Body mass index – BMI
• Daily calories burn
• Body fat percentage
• Sales Tax calculator
• Tip calculator
• Loan / EMI calculator
• Smoking cost calculator
• Age calculator
• Elapsed time calculator – years & days, hours & minutes calculator


এই তো গেলো হিউজ পরিমাণের ফিচার লিস্ট। এখন নিশ্চই ডাউনলোড করার ইচ্ছা জাগছে। এখন অ্যাপের বাকি ইনফো:

App Name: Calculator +
App Category: Education
App Developer: Gigantic Apps
App Rating: 4.5
App Installed: 5,000+
Download Link: https://play.google.com/store/apps/details?id=com.toscanytech.physicspractical