সকালে উঠেই টপকোডারে এ লেখা দেখলাম “একটি শিশুকে একই আইফোন দিলে সে দিনরাত অ্যাংগ্রি বার্ডস খেলবে, শিশুটিকে কোডিং শিখালে সে আইফোনটার জন্য সফট্ওয়্যার তৈরি করবে” দারুণ এই লেখাটা দেখে মনে হলো কেন আমরা প্রোগ্রামিং বা কোডিং শিখবো সেটা নিয়ে বাংলায় কিছু লিখি। এ লেখাটি প্রোগ্রামিং নিয়ে যাদের কোনো ধারণা নেই বা খুব সামান্য ধারণা আছে তাদের আগ্রহী করে তোলার একটি ছোট্ট প্রচেষ্টা।
কম্পিউটার একটি অসম্ভব ক্ষমতাবান কিন্তু নির্বোধ একটি যন্ত্র। একটি যন্ত্র ৫০জন সাধারণ মানুষের কাজ একাই করতে পারে কিন্তু ৫০টি যন্ত্র একটি অসাধারণ মানুষের কাজ করতে পারেনা(Hubbard, Elbert)। প্রোগ্রামিং শিখে আমরা একেকজন হয়ে উঠতে পারি সেই মানুষটি যে এই যন্ত্রকে ইচ্ছামত কথা শোনাতে পারে। তুমি যা বলবে যেভাবে কম্পিউটার তাই করবে, এটাই হলো সোজা কথায় প্রোগ্রামিং। হয়তো বলতে পারো এখনইতো কম্পিউটার সেটা করে, আমি গান শুনাতে বললে সে শুনিয়ে দেয়, আমি গেম খেলতে চাইলে সে আমার সাথে খেলতে শুরু করে। কিন্তু আসল ব্যাপারটা হলো একজন প্রোগ্রামার আগেই কম্পিউটারকে বলে রেখেছে যে তুমি গান শুনতে চাইলে সে যেন শুনিয়ে দেয়। সে যদি বলে রাখতো গেম খেলতে চাইলে পড়তে বসার উপদেশ দিতে তাহলে কম্পিউটার তাই করতো, তোমার কিছু করার থাকতোনা। প্রোগ্রামার হলো সে যার কথায় কম্পিউটার উঠা-বসা করে। দারুণ একটা ব্যাপার এটা, তাইনা?
কিন্তু তুমি কেন প্রোগ্রামিং শিখবে? বড় বড় কথা বলার আগে সবথেকে প্রথম কারণ আমি বলবো কারণ “প্রোগ্রামিং দারুণ মজার একটি জিনিস!”। কম্পিউটারের সাথে অন্য যন্ত্রের বড় পার্থক্য হলো এটা দিয়ে কতরকমের কাজ করানো যায় তার সীমা নেই বললে খুব একটা ভুল হবেনা। তাই প্রোগ্রামিং জানলে যে কতকিছু করা যায় তার তালিকা করতে বসলে শেষ করা কঠিন। তুমি দিনের পর দিন প্রোগ্রামিং করেও দেখবে জিনিসটা বোরিং হচ্ছেনা, প্রায় প্রতিদিনই নতুন মজার কিছু শিখছো, নতুন নতুন টেকনোলজী আবিষ্কারের সাথে সাথে তুমি আরো অনেক রকম কাজ করতে পারছো অথবা তুমিই করছো নতুন আবিষ্কার! আজ হয়তো জটিল কোনো সমীকরণ সমাধান করার জন্য ফাংশন লিখছো, কাল এসব ভালো লাগছেনা বলে লাল-নীল রঙ দিয়ে একটি অ্যানিমেশন বানাতে বসে গেলে, তোমার সৃষ্টিশীলতার সবটুকুই কাজে লাগাতে পারবে প্রোগ্রামিং এর জগতে।
ছবি: শাহরিয়ার মঞ্জুর, বিশ্বের সবচেয়ে সম্মানজনক প্রোগ্রামিং প্রতিযোগীতার বাংলাদেশি জাজ
A computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match. – Bill Bryson
একটি স্কুল-কলেজ পড়ুয়া ছেলেমেয়ে কম্পিউটার বা মোবাইল দিয়ে কি করে? রাশিয়া-চীনের ছেলেমেয়েরা অনেকেই হয়তো অ্যাসেম্বলিতে কোড লিখে, কিন্তু জরিপ না করেও বলা যায় আমাদের দেশে বেশিভাগই মুভি দেখা, ফেসবুক , গেমস ছাড়া খুব বেশি কিছু করেনা। আসলে কম্পিউটার দিয়ে কি করা যায় তার ধারণাও অনেকের নাই। ছেলে বা মেয়েটিকে প্রোগ্রামিং শিখিয়ে দেয়া হলে তার জগৎটাই পাল্টে যাবে। সে তখন সারাদিন গেমস না খেলে হয়তো একটি গেমস বানিয়ে ফেলবে। আমি বাংলাদেশেরই কিছু স্কুল-কলেজ পড়ুয়া প্রোগ্রামারদের জানি যারা বাংলা কিবোর্ড নিয়ে কাজ করে, ওপেন সোর্স কমিউনিটিতে অবদান রাখে। প্রোগ্রামিং জানলে তুমি বুঝতে পারবে কম্পিউটার শুধু বিনোদনের যন্ত্র নয়, কম্পিউটার তৈরা করা হয়েছিল এর ক্ষমতাকে ব্যবহার করে বড় বড় গবেষণা,হিসাব করার জন্য, তুমি যদি গবেষণা নাও করো অন্তত এই ক্ষমতাটা ব্যবহার শিখবে, সৃষ্টিশীল অনেক কাজ করতে পারবে। কম্পিউটারের জগতে অসাধারণ কিছু অগ্রগতি হয়েছে খুব কম বয়েসী প্রোগ্রামারদের দিয়ে, বিল গেটস স্কুলে থাকতেই চমকে দেয়ার মত কিছু প্রোগ্রাম লিখেছিলেন, প্রোগ্রামিং কনটেস্টে হাইরেটেড কোডারদের অনেকেই স্কুল-কলেজ এখনও শেষ করেনি।
প্রোগ্রামিং করা মানে আনন্দের সাথে শেখা। এই শেখাটা খালি কম্পিউটারের মধ্য সীমাবদ্ধ না, অধিকাংশ ভালো প্রোগ্রামারদের খুবই ভালো গাণিতিক এবং লজিকাল জ্ঞান থাকে। দাবা খেলার মতোই প্রোগ্রামিং পুরোটাই লজিকের খেলা, কোন কাজের পর কোনটা করলে কি হবে, কিভাবে করলে আরো দ্রুত ফলাফল আসবে এইসব নিয়ে চিন্তা করতে করতে মস্তিষ্কের লজিকাল সেক্টরটা ডেভেলপ করে। আমার মতে চিন্তা করার মত আনন্দের এবং গুরুত্বপূর্ণ কাজ ২য়টি নেই। বিশেষ করে কম বয়সে প্রোগ্রামিং শিখালে সে চিন্তাশক্তি বৃদ্ধির যেই সুফলটা পাবে সেটা সারাজীবন কাজে লাগবে, সে যদি প্রোগ্রামিং পরে ছেড়েও দেয় তারপরেও চিন্তা করার ক্ষমতাটা থেকে যাবে।
প্রোগ্রামিং কি শুধু কম্পিউটার সাইন্স যারা পড়ে বা পড়তে চায় তারা শিখবে? সেটার কোনো যুক্তি নেই, তুমি যেই বিষয় নিয়েই পড়ছো বা পড়তে চাও, প্রোগ্রামিং তুমি আনন্দের জন্যই শিখতে পারো এবং চাইলে তোমার কাজেও লাগাতে পারো। তুমি বিজ্ঞানের যেকোনো বিষয়ে লেখাপড়া করলেতো কথাই নেই, তোমার গবেষণায় প্রতি মূহুর্তে কম্পিউটার লাগবে, তুমি বিজনেস, আর্টস পড়লেও প্রোগ্রামিং কাজে লাগবে। তুমি কোম্পানির জন্য দারুণ একটি ওয়েবসাইট বানাতে পারো, একটি সফটওয়্যার বানাতে পারো যেটা যেসব কাজ বোরিং সেগুলো স্বয়ংক্রিয় ভাবে করে দিবে! আমি অনেক সময় ছোটো-খাটো কিন্তু বোরিং কাজ করার সময় চট করে একটা স্ক্রিপ্ট লিখে ফেলি, তারপর সেটাকে কাজ করতে দিয়ে ঘুম দেই!
প্রোগ্রামিং শেখা কি খুব কঠিন? উত্তর হলো হ্যা,যদি তোমার আগ্রহ না থাকে এবং কেও তোমাকে জোর করে শেখায়। যদি একবার মজা পেয়ে যান তাহলে এরপর কারো শেখানো লাগবেনা, নিজেই সব শিখে ফেলতে পারো। আমার উপদেশ হবে ২-৩ সপ্তাহ প্রোগ্রামিং করার পর যদি তোমার ভালো না লাগে তাহলে জোর করে করার দরকার নাই, এটা তোমার জন্য না, অন্য যেটা ভালো লাগে সেই কাজ করো। যদি একবার ভালো লাগে বাজী ধরে বলতে পারি কোড লিখতে লিখতে তুমি প্রায়ই খাবার কথাও ভুলে যাবে। যেকোন কাজের জন্যই সবথেকে গুরুত্বপূর্ণ ব্যাপার হলো ভালো লাগা, যেটা ভালো লাগেনা সেটা করার কোনো অর্থ আমি দেখিনা কারণ দুইদিন পর যা শিখসি সব ভুলে যাবো।
ছবি: lightoj, ঢাকা বিশ্ববিদ্যালয়ের জানে আলম জানের তৈরি করা অনলাইন জাজ যেখানে প্রবলেম সলভ করে সারা পৃথিবীর কোডাররা
শুরু কিভাবে করবে? তোমার যদি ইন্টারনেট কানেকশন থাকে তাহলে কথাই নেই, ইন্টারনেটে অসংখ্য টিউটোরিয়াল আছে। ইংরেজীর পাশাপাশী বাংলা কিছু ভালো রিসোর্সও তুমি পাবে। যেমন শ্রদ্ধেয় রাগিব হাসানের shikkok.com ওয়েবসাইট বা ফাহিম ভাইয়ের পাইথন সাইট। এছাড়া খান একাডেমিতেও প্রোগ্রামিং এর ভিডিও আছে, বরাবরের মতই খুবই সুন্দর করে বুঝিয়েছেন সালমান খান। ইন্টারনেট না থাকলে তোমাকে বই জোগাড় করতে হবে, ব্যাক্তিগত ভাবে বিগিনারদের জন্য আমি ইন্টারনেটের থেকে বইকেই বেশি গুরুত্ব দিবো। প্রোগ্রামিং এর বইয়ের অভাব নেই দোকানে, তামিম শাহরিয়ার সুবিন ভাইয়ের একটি দারুণ বাংলা বই আছে। তবে একটা ব্যাপারে সতর্ক থাকবে “৭দিনে প্রোগ্রামিং শেখা” এই ধরণের চটকদার বইয়ের বা সাইটের ধারেকাছে যাবে, এগুলো সবকিছু ঝাপসা ভাবে শেখাবে, হার্ভার্ড শিল্ডের বইয়ের মত নামকরা এবং ভালো বই দেখে শিখো, বেসিক জিনিসগুলো পরিষ্কার হবে। এছাড়া লাগবে প্রোগ্রামিং এর জন্য কিছু সফটওয়্যার, এগুলোও সহজেই জোগাড় করতে পারবে। এরপর শুরু করে দাও কোড লেখা!! প্রথম ২ সপ্তাহ তোমার বেশ ঝামেলা লাগবে কারণ বিষয়টা নতুন, একটু পরপর আটকে যাবে, তারপর হঠাৎ দেখবেন সবকিছু সহজ হয়ে গিয়েছে, মূহুর্তের মধ্যেই ১০০ লাইনের কোড লিখে ফেলেছো। প্রোগ্রামিং শেখার প্রধান শর্ত হলো হাল ছাড়া যাবেনা। প্রথম দিকে কোনো কোড কপি পেস্ট করবেনা, নিজের হাতে লিখবে।
A good programmer is someone who looks both ways before crossing a one-way street. — Doug Linder, systems administrator
চাকরী-ক্যারিয়ার নিয়ে সবার মধ্যেই অনেক টেনশন থাকে। আনন্দের জন্য প্রোগ্রামিং শিখলেও এটা তোমার ক্যারিয়ারে খুবই গুরুত্বপূর্ণ। তুমি প্রোগ্রামিং জানলে নিশ্চিত থাকতে পারো কাজের কোনো অভাব জীবনে হবেনা। তুমি কোনো চাকরী না করেও ফ্রি-ল্যান্স কাজ করতে পারবে, এমনকি ছোটোখাট একটা কোম্পানিও খুলে বসতে পারবে। আমি আশেপাশে অনেককে দেখেছি কয়েক বন্ধু মিলে একটি ছোট কোম্পানি খুলে স্বাধীনভাবে কাজ করে, কি দারুণ একটা ব্যাপার! প্রোগ্রামিং জানার আরেকটি দারুণ ব্যাপার হলো তুমি ভালো কোনো কাজ করলে খুব সহজেই সারা বিশ্ব জেনে যাবে। পৃথিবীর আরেক প্রান্তের মানুষ তোমার বানানো সফটওয়্যার দিয়ে গান শুনবে, তোমার অপারেটিং সিস্টেম বুট করবে, আবার পিসি হ্যাং করলে হয়তো তোমাকেই গালি দিবে!! গুগলের মতো কোম্পানিতে কাজ করতে চাইলে তোমার কিছু করতে হবেনা, আপনার কাজের খ্যাতিতে তারাই তোমাকে এসে অফার দিবে। তবে প্রোগ্রামিং শেখার উদ্দেশ্য কখনোই গুগলে চাকরী বা খ্যাতি অর্জন হওয়া উচিত নয়, শিখবে আনন্দের জন্য, জানার জন্য।
সি বা জাভার মতো প্রোগ্রামিং ল্যাংগুয়েজ শেখা মানেই কিন্তু তুমি প্রোগ্রামিং শিখে ফেলোনি। ল্যাংগুয়েজ শেখা খুব সহজ কাজ, প্রথমে একটা কষ্ট করে শিখে ফেললে এরপর যেকোনো ল্যাংগুয়েজ শেখা যায়। তোমাকে খুবই ভালো লজিক ডেভেলপ করতে হবে, অ্যালগোরিদম আর ডাটা স্ট্রাকচার নিয়ে পড়ালেখা করতে হবে, গণিত জানতে হবে, তাহলেই তুমি একজন ভালো প্রোগ্রামার হয়ে উঠবে। তবে ভয়ের কিছু নেই, সবই তুমি ধীরে ধীরে শিখে ফেলতে পারবো, শুধু লাগবে চেষ্টা আর সময়। এটা আশা করবেনা যে ৬ মাসে তুমি অনেক ভালো প্রোগ্রামার হয়ে যাবে তবে লেগে থাকলে ২-৩ বছরে অবশ্যই মোটামুটি ভালো একটা লেভেলে তুমি পৌছাতে পারবে।
তুমি যদি কম্পিউটার সাইন্সের স্টুডেন্ট হও তাহলে এইসব কথাই তুমি হয়তো জানো, শুধু বলবো প্রোগ্রামিং কে আর ৫টা সাবজেক্টের মতো ভেবোনা, খালি সিজিপিএ বাড়াতে কোডিং শিখলে তোমার মতো অভাগা কেও নাই, প্রোগ্রামিং উপভোগ করার চেষ্টা করো, জানার আনন্দে শিখো।
আমার স্বপ্ন আমাদের দেশে একটা চিন্তা করার সংস্কৃতি তৈরি হবে। মানুষ একে অন্যের ব্যক্তিগত ব্যাপারে মাথা ঘামাবেনা, বরং মাথা ঘামাবে গাণিতিক সমস্যা নিয়ে, পাজল নিয়ে, অ্যালগোরিদম নিয়ে। ছেলেমেয়েরা তাদের মেধা গেমস খেলার কাজে না লাগিয়ে কাজে লাগাবে পৃথিবীর উন্নয়নে। বই পড়া, গণিত চর্চা করার পাশাপাশি প্রোগ্রামিং শিখা এই সংস্কৃতি শুরু করতে বিশাল একটি ভুমিকা রাখতে পারে। আমি মনে করি বর্তমান যুগে প্রোগ্রামিং শেখাটা অন্য যেকোন বিষয় শেখার মতই গুরুত্বপূর্ণ, কারণ আমাদের সব কাজে কম্পিউটার লাগে। তাই আপনার আশেপাশের ছেলেমেয়েদের গেমস খেলতে দেখলে তাদের প্রোগ্রামিং সম্পর্কে জানাও, উৎসাহিত করো, অবশ্যই জোর করে শেখানোর কোনো মানে হয়না, যার ভালো লাগবে সে শিখবে তবে সবাই অন্তত জানুক প্রোগ্রামিং কি, এছাড়া কিভাবে শেখার জন্য উৎসাহিত হবে? অনেকেই ইউনিভার্সিটিতে আসার আগে জানেনা প্রোগ্রামিং বলে একটা বস্তু আছে! আর তোমরা প্রোগ্রামিং জানলে অন্যদেরও শিখতে সাহায্য করো, এভাবেই পরিবর্তন একসময় আসবেই, সবাই লজিক দিয়ে ভাবতে শিখবে, চিন্তা করার সংস্কৃতি তৈরি হবে।
শেষ করছি আমার খুব প্রিয় আরেকটি কোটেশন দিয়ে:
craftsman-ship has its quiet rewards, the satisfaction that comes from building a useful object and making it work. Excitement arrives with the flash of insight that cracks a previously intractable problem. The spiritual quest for elegance can turn the hacker into an artist.There are pleasures in parsimony, in squeezing the last drop of performance out of clever algorithms and tight coding. — steven skiena & miguel reville
হ্যাপি কোডিং!
ফেসবুকে মন্তব্য
Powered by Facebook Comments
[[ইংরেজী অক্ষরে বাংলা লেখার জন্য মন্তব্যটি মুছে ফেলা হলো–শাফায়েত]]
মন্তব্যের ঘরের নিচে স্পষ্ট করে লিখে দিয়েছি “(ইংরেজী ফন্টে বাংলা মন্তব্য মুছে ফেলা হতে পারে)”, আবার নতুন করে মন্তব্য করার জন্য অনুরোধ করছি।
I m a beginner. Felling gr8 2 read ur inspiring message & information. It really helps me 2 b a real n pure programmer in future.
Thnx
খুব ভাল লাগল লেখাটা পড়ে ।আপনাকে অনেক ধন্যবাদ লেখাটি লেখার জন্য ।
In our country,the number of good bloger is very poor.I mean this page is invaluable to all beginers.
Thanks to shafayet ashraf for designing the blog so much informative and categorized so beautiful.Thanks again……..
Very good writing. I am not a programmer but very fond of programing. At the very beginning, just learning composing & basic application like MS Word & Excel & I had no computer of my own but I had tried with some programing books like Foxpro,visual basic individually & made some very simple project such as Birthday Alert project, A tiny game “Catch me in the box” of my own.I had to quit this practice for some practical reason but I love programing so I now I am trying to spread it to new generation with my very little experience. I love programing. Now I feel very proud to see that our programmers are doing remarkable success in programing world. Congratulations to all of them.
Great writing shafaet..!!! Carry on… 🙂
i wanna b a progrmer… lyk some1 who wrk in google or microsoft.wht should i do?is it too difcult?plz tll me details
প্রোগ্রামিং শিখতে উৎসাহিত হলাম লেখাটি পড়ে…
এক কথায় চমৎকার লিখেছেন
খুব ভাল ভাল লাগল ভাইয়া ধন্যবাদ
খুব ভালো লাগলো ।
I am a computer science student… I always try to get good CGPA. but now I inspired to be a good programmer. thanks for a good advice… thank u very much…
আমি জয়নাল, প্রোগ্রামিং শিখতে অনেক আগ্রহী। অনেক ইচ্ছা ছিল এমন সাবজেক্ট নিয়ে পড়ার যেখানে প্রোগ্রামিং আছে, কিন্তু পড়তে হচ্ছে পদার্থ বিজ্ঞান। কিন্তু আগ্রহ এখনও কমে নি। আমি এমন কিছু ওয়েব সাইট খুজতেসি যেখানে একেবারে নতুনদের জন্য উপযোগী। গুগলে “প্রোগ্রামিং” সার্চ দিয়ে আপনার এই পোস্ট টা পাইলাম। আপনার এই পোস্ট থেকে অনেক কিছু জানলাম।
খুব ভালো লাগলো
Very Nice. this help a new for good start.
খুব ইচ্ছা ছিল ফিজিক্স নিয়ে পরার। পরবর্তিতে প্রোগ্রামার হবার, কিন্তু হয় নি! যাইহোক ভাল লাগল।
যে কোনো অবস্থান থেকেই কিন্তু প্রোগ্রামার হওয়া সম্ভব!
বাংলাদেশ
আপনার লেখাটা খুব সুন্দর হয়েছে। আশা করছি প্রোগ্রামিং নিয়ে আরও পোস্ট করবেন। ধন্যবাদ……
ভালো লাগলো আপনার লেখাটি। আমার প্রোগ্রামিং শিখার ইচ্ছা আছে। আপনার লেখা পড়ে অনুপ্রাণিত হলাম।
Speechless !!
আমি প্রায় তিন মাস প্রোগ্রামিং করি। কিন্ত এখন HSC পরীক্ষা চলার কারনে অনেকদিন প্রোগ্রামিং করা হয় না। আমার প্রোগ্রামিং এর প্রতি আগ্রহ আছে। কিন্তু প্রোগ্রামিং করার সময় প্রায়ই আটকে যেতাম। মনে হয় আমাকে দিয়ে প্রোগ্রামিং হবে না। মনে হয় আমি প্রোগ্রামিং কে পুরোপুরি ভালবাসতে পারি নাই।যেই প্রোগ্রাম গুলো বুঝে solve করসি অইগুলা ও মাঝে মধ্যে লিখতে পারি না। সুবিন ভাইয়ার বইতে প্রব্লেম solve করতেও অনেক হেল্প নিয়েছি। আমি চিন্তা করছিলাম বিশ্ববিদ্যালয়ে cse তে পড়ব। কিন্তু মনে হচ্ছে আমাকে দিয়ে হবে না।
দারুণ লেখা ভাইয়া।
আমি সৌখিন প্রোগ্রামার(C)। প্রায়ই দেখা যায়, যদি একদিন দুমচে প্রোগ্রমিং করি তো পরবর্তী সাতদিন কোনো খবর থাকেনা। আপনার ব্লগ/লেখাটির মত লেখা পড়লে পূণরায় উৎসাহ/ইচ্ছে সঞ্চয় হয়।
চমৎকার লিখেছেন, খুব ভাল লাগল ভাইয়া ।
খুব ভাল লাগল ভাইয়া ।
vaiya post ti pore onek inspire holam ..data structure o algorithm valo korar jonno ki type er math jante hobe? vai ektu jodi topics gula bolten tahole onek upokreto hotam ………… amar email adress saifulislamsaifsarker@gmail.com
আমি একজন জীববিজ্ঞানী। আগ্রহের বিষয় বায়োইনফর্মেটিক্স। পোগ্রামিং শিখলে কি কি বিষয়ে আমার access তৈরি হবে বিষদভাবে জানতে চাই। ধন্যবাদ।
বেশ ভালো লিখেছেন। ধন্যবাদ এমন একটি আর্টিকেল উপহার দেওয়ার জন্য।
#Respect
সত্যি!!! এভাবেও যে ভাবা যায়, তা আমার জানা ছিলো না।আমি অতি সামান্য একজন সরকারী প্রজেক্টে সল্প সময়ের জন্য নিয়োগ প্রাপ্ত একজন আই.সি.টি ট্রেইনার। যার এখনো অনেক শেখার বাকি। এই সাইট আমার সে ক্ষেদ মিটাবে আমি বুঝতে পারছি। আমি কৃতজ্ঞ এই সাইটি পেয়ে আর এই সাইটের যিনি ক্রিয়েটর তার প্রতি।
ভাল লিখছেন। ধন্যবাদ ভাইয়া
খুব সুন্দর ও দরকারি একটি পোস্ট করার জন্য আপনাকে অনেক ধন্যবাদ।