প্রোগ্রামিং- সহজ নাকি কঠিন?

প্রোগ্রামিং- সহজ নাকি কঠিন?
প্রোগ্রামিং- সহজ নাকি কঠিন?

প্রোগ্রামিং শুরু করার আগে একটি প্রচলিত লাইন যা প্রায় সকল বিগিনারদের শুনতে হয়- “প্রোগ্রামিং খুব সহজ এবং এটি যে কেউ শিখতে পারে”। বেশিরভাগ প্রোগ্রামাররা এই লাইনটির মাধ্যমে বিগিনারদের গেটকিপিং করে থাকে।

কিন্তু আসলেই কি তাই? আসলেই কি প্রোগ্রামিং শেখা খুব সহজ? এর উত্তর হ্যাঁ বোধক, না বোধক দুটোই। 

প্রোগ্রামিং কঠিন, এটি সবার জন্য না। কারোর জন্য প্রোগ্রামিং সময়সাপেক্ষ, কিছু সময় প্র্যাকটিসের মাধ্যমে অনেকের পক্ষে এটি আয়ত্ত করা সম্ভব। আবার কারো কারো ক্ষেত্রে একেবারেই অসম্ভব ব্যাপার। অনেক এডভান্স প্রোগ্রামারদের মতে হয়তো এই হ্যাঁ সূচক বাক্য বিগিনাদের জন্য অনুপ্রেরণা।

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

প্রোগ্রামিং এক্সেসেবলঃ সহজগম্য রিসোর্স

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

অন্য যেকোনো ফিল্ডের তুলনায় কম্পিউটার সাইন্স এর এক্সেসেবিলিটি সব চেয়ে বেশি। এখানে যে কোনো প্রয়োজনীয় কন্টেন্ট ও ডকুমেন্টেশন বিনামূল্যে এক্সেস করা সম্ভব। প্রয়োজনীয় বিভিন্ন কম্পাইলার, ইডিটর খুব সহজে ডাউনলোড করা যায়।

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

প্রোগ্রামার ওয়ার্কপ্লেস

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

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

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

কিছু ক্ষেত্রে প্রোগ্রামিং সহজ

এ কথা সত্যি প্রোগ্রামিং ফিল্ডে এমন কিছু বিষয় রয়েছে যা সহজ, এখানে এরকম সব ব্যাপার রয়েছে যা দিন শেষে আপনি করতে পারবেন। এখনকার সময়ে সঠিক গাইডলাইন ফলো করে শুধু মাত্র এক ঘন্টা এইচটিএমএল (HTML), সিএসএস (CSS) শিখেও আপনি একটি ওয়েব সাইট বানিয়ে ফেলতে পারবেন।

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

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

প্রোগ্রামিং কোন ক্ষেত্রে কঠিন হয়?

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

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

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

কিন্তু আপনি এমন কোনো প্রোগ্রামার পাবেন না যে কিনা শুধুমাত্র একটি সেমিক্লোন (;) এড করতে ভুলে গেছেন এবং এটি নিয়েই সারাদিন পার করে দিয়েছেন। এটি এমন এক সময় ঘটে যখন বিগিনার’রা ছোটখাটো বাগ ফিক্স করতে সারাদিন নষ্ট করে ফেলে।

ইম্পোস্টার সিনড্রোম

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

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

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

পজিটিভ ভাবে চিন্তা করলে – “এটা সহজ”। তবে নতুনদের প্রথমদিকে কিছু বিষয়ে পরিষ্কার ধারণা থাকতে হবে যে, এখানে কঠোর পরিশ্রম, অধ্যবসায় এবং ধৈর্য্যের প্রয়োজন। অনেকটা পথ একা ‌চলতে হবে, যে কোনো সমস্যার সমাধান নিজ থেকে খুজে বের করতে হবে, আপনার সাহায্যের জন্য সবসময় কোনো মেন্টর থাকবে না।

নতুনরা যদি এসব বিষয়ে পুরোপুরি ধারণা নিয়ে নিজেকে প্রস্তুত করে তাহলে ‘প্রোগ্রামিং সহজ’!

যেসব গোষ্ঠী থেকে নিজেকে দূরে রাখবেন!

প্রোগ্রামিং বিগিনারদের জন্য উর্বর জমি। কিন্তু উর্বর জমি যেমন ভালো শস্য উৎপাদনের জন্য অপরিসীম ভূমিকা পালন করে, তেমনি আগাছার জন্যও‌। প্রোগ্রামিং ফিল্ডে এমন কিছু মানুষ রয়েছে যারা উর্বর জমির অ্যাডভান্টেজ নেয়, অর্থাৎ এমন অনেক লোক রয়েছে যারা বিগিনারদের কাছ থেকে বিভিন্ন ভাবে অ্যাডভান্টেজ নেয়।

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

কখনো বিগিনার কার্ড প্লে করে – বিগিনারদের বিশ্বাসের সুযোগ গ্রহণ করে! আবার কখনও এরা ডাইভারসিটি কার্ড প্লে করে। মাঝে মাঝে তো এদের পুরোপুরি মিথ্যাও বলতে হয় না, শুধু মাত্র মানুষের অনুভূতিকে বুঝে খেলা শুরু করে দেয়।

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

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

প্রোগ্রামিংয়ের ব্যাপারে একটি ভুল ধারণা ‘অন্যরা যা পারে‌ আমিও তা পারবো’

“অনেকের কাছে প্রোগ্রামিং কেবলমাত্র গুগল/স্ট্যাক ওভারফ্লো সার্চে দক্ষতা অর্জন করা।” – এই লাইনটি সত্য এবং মিথ্যা দুটিই। একজন মডার্ণ ডেভেলপারের জন্য ওয়েব সার্চিং এ দক্ষ হওয়া খুবই জরুরী। একটা সময় এমন ছিলো যখন গুগল ছিলো না।

তখন কোনো সমস্যা সমাধানের জন্য ডকুমেন্টেশন দেখতে হতো, কয়েকশ পৃষ্ঠা ঘাটতে হতো একটি উত্তরের জন্য। আবার ডকুমেন্টেশনে না পেলে বার বার চেষ্টা করা ছাড়া কোনো উপায় ছিলো না।

মডার্ণ ডেভেলপার

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

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

মানুষ যখন নিজে নিজে চিন্তা করা বা ভাবা বন্ধ করে দেয়, তখন তারা আর ক্রিয়েটিভ থাকে না।

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

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

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

যে কারণে বিগিনাররা ডিমোটিভেট হয়

নতুন অবস্থায় কোড করার সময় মানুষ অনেকটা হতবাক হয়ে যায় যখন তাকে নিজের লেখা প্রোগামের বাগগুলো নিজে নিজে খুজে সেগুলো ঠিক করতে হয়। এখানে পজিটিভিটি কোনো কাজে আসে না অর্থাৎ কোনো ধরণের পজিটিভ বাক্য তার প্রোগ্রামের ইরোরগুলো ফিক্স করতে সাহায্য করে না।

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

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

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

“প্রোগ্রামিং জটিল!”- মোটেও ভয়ের কিছুই নেই

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

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

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

হ্যাপি প্রোগ্রামিং!

১ comment
মন্তব্য করুন

আপনার ই-মেইল এ্যাড্রেস প্রকাশিত হবে না। * চিহ্নিত বিষয়গুলো আবশ্যক।

You May Also Like
Functional Programming ফাংশনাল প্রোগ্রামিং
আরও পড়ুন

ফাংশনাল প্রোগ্রামিং

সফটওয়্যার ডিজাইন সাধারণত বিভিন্ন উপায়ে করা হয়। কিন্তু এর মধ্যে সবচেয়ে অধিক পরিচিত দুটি ডিজাইন ফিলোসোফি অথবা প্রোগ্রামিং…
python vs golang পাইথন বনাম গোল্যাং
আরও পড়ুন

গোল্যাং VS পাইথন: ওয়েব ডেভেলপমেন্টের জন্য কোনটি সেরা?

তথ্য ও প্রযুক্তির বর্তমান সময়ে ওয়েব ছাড়া কোনো কিছুই কল্পনা করা যায় না। আর ওয়েব সাইটগুলো যে ল্যাঙ্গুয়েজ…
Web Design VS Web Development ওয়েব ডিজাইন এবং ওয়েব ডেভেলপমেন্ট
আরও পড়ুন

ওয়েব ডেভেলপমেন্ট: একের ভিতর সব

আমার মনে পড়ছে সেই দিনগুলোর কথা যখন আমি ওয়েব ডেভেলপমেন্ট শেখা শুরু করেছিলাম। আমি তখন ডিজাইন আর ডেভেলপমেন্টের…
deno vs nodejs
আরও পড়ুন

ডেনো এবং নোড জেএসের মধ্যে এখন পর্যন্ত কোনটির জনপ্রিয়তা বেশি?

ডেনো কি? ডেনো হচ্ছে জাভাস্ক্রিপ্ট ও টাইপস্ক্রিপ্টের একটি সিকিউর রানটাইম, এটি জাভাস্ক্রীপ্টের V8 ইঞ্জিন এবং Rust ল্যাঙ্গুয়েজ ব্যবহার…
Bangla C programming Resource Projuktir Avijatri c programming tutorial c resources bangla c for beginner বাংলায় সি প্রোগ্রামিং রিসোর্স সি প্রোগ্রামিং ল্যাঙ্গুয়েজ সি প্রোগ্রামিং টিউটোরিয়াল বাংলা বই সি প্রোগ্রামিং ব্লগ সি প্রোগ্রামিং অনলাইন টিউটোরিয়াল
আরও পড়ুন

সি প্রোগ্রামিং শুরু করার রিসোর্স

সি প্রোগ্রামিং টুকিটাকিসংগ্রহ করা বাংলা রিসোর্স; তো এখান থেকেই সি শেখা শুরু করা যাক! যখন আমাদের হাতে কিছু সময় থাকে,…
জাভা বনাম কটলিন : কোনটি সেরা?
আরও পড়ুন

জাভা বনাম কটলিন : কোনটি সেরা?

বর্তমান সময়ে আমরা যেসব স্মার্টফোন ব্যবহার করি তার অধিকাংশই এন্ড্রয়েড অপারেটিং সিস্টেম দ্বারা পরিচালিত। কিন্তু আমরা যদি মোবাইল…