প্রোগ্রামিং কি? প্রোগ্রামিং কেন শিখব? প্রোগ্রামিং কিভাবে শিখব? – প্রোগ্রামিং নিয়ে সম্পূর্ন টিউটোরিয়াল

টিউন বিভাগ প্রোগ্রামিং
প্রকাশিত
জোসস করেছেন

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

তাই ভাবলাম এই নিয়ে একটা টিউন লিখে ফেলি। আমি প্রায় ১ বছর ৬ মাস ধরে প্রোগ্রামিং করছি। আমি সফটওয়্যার ডেভেলপমেন্ট (C, C++, Visual Basic, Visual C#, Java Swing, JavaFX), অ্যান্ড্রয়েড অ্যাপ ডেভেলপমেন্ট (Java), ওয়েবসাইট ডেভেলপমেন্ট (HTML5, CSS3, Javascript, PHP, jQuery, Bootstrap, MySQL) নিয়ে কাজ করেছি। এই লম্বা সময় ধরে প্রোগ্রামিং করে যা অভিজ্ঞতা অর্জন করেছি তা এই টিউনে শেয়ার করছি।

প্রোগ্রামিং কি? প্রোগ্রামিং হচ্ছে আপনার নির্দেশগুলো কম্পিউটারের ভাষায় অনুবাদ করে কম্পিউটার কে দিয়ে আপনার ইচ্ছেমত কাজ করানো। কম্পিউটারের ভাষা হচ্ছে যান্ত্রিক ভাষা যা শুধু ০ এবং ১ দিয়ে লেখা হয়। কম্পিউটার ০ এবং ১ ছাড়া কিছুই বুঝে না। শুধু ০ এবং ১ দিয়ে কোড লিখে সেটা কম্পিউটারকে বুঝানো খুবই কঠিন কাজ। তাই বিভিন্ন প্রোগ্রামিং ল্যাংগুয়েজের জন্ম হয়েছে। একটা নির্দিষ্ট ল্যাংগুয়েজে কোড করে আপনি তা কম্পাইল করে কম্পিউটারের ভাষায় অনুবাদ করে কম্পিউটারকে দিয়ে আপনার প্রয়োজনীয় কাজ করাতে পারবেন।

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

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

এটা শুধু ছোট একটা উদাহরন ছিল মাত্র। প্রোগ্রামিং করে আপনি কারো নির্দেশমত সফটওয়্যার বানিয়ে দিয়ে সম্মানী পেতে পারেন। প্রোগ্রামিং জিনিসটা খুব মজার। তাই প্রোগ্রামিং শিখাটা দরকার বলে আমি মনে করি। (এখানে নাম পড়ে শুনানোর যেই ব্যাপারটা বললাম সেটা আপনি Visual Basic/ Visual C# দিয়ে Microsoft Speech Synthesizer ব্যবহার করে কোড করে বানাতে পারবেন)

কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখব? পৃথিবীতে অনেক প্রোগ্রামিং ল্যাঙ্গুয়েজ আছে। এর মধ্যে কোনটা শিখলে ভাল হবে সেটা নিয়ে অনেকেই confused হয়ে যান। অনেকে চিন্তা করেন সবচেয়ে সোজা প্রোগ্রামিং ল্যাঙ্গুয়েজ কোনটা। আমি মনে করি সবচেয়ে সোজা প্রোগ্রামিং ল্যাঙ্গুয়েজ হচ্ছে পাইথন (Python)। তবে সবচেয়ে সোজা হলেই হবে না। ল্যাঙ্গুয়েজটা কে Efficient হতে হবে যেন প্রায় সব ধরনের সমস্যা সমাধান করতে পারে। আমি মনে করি জাভা (Java) সবচেয়ে Efficient ল্যাঙ্গুয়েজ। তবে প্রোগ্রামিং সি ল্যাঙ্গুয়েজ (C) দিয়েই শুরু করা উচিত বলে আমি মনে করি। কারন এটা পারলে পরবর্তীতে যে কোন ল্যাঙ্গুয়েজ শেখা আপনার জন্য সহজ হয়ে যাবে। জাভা দিয়ে প্রোগ্রামিং শেখা শুরু করলেও সমস্যা নেই। কিছুটা কঠিন মনে হতে পারে কিন্তু চেষ্টা করলে শিখে যাবেন।

প্রোগ্রামিং কিভাবে শিখব? আমি মনে করি গুগল, ইউটিউব হচ্ছে প্রোগ্রামিং শেখার সবচেয়ে ভাল উপায়। কোথাও কোন কোর্স করে প্রোগ্রামিং শেখা যায় বলে আমি মনে করি না। এটা সম্পূর্নই আগ্রহের উপর নির্ভর করে। আপনার আগ্রহ থাকলে আপনি ইন্টারনেট ঘেটেই প্রোগ্রামিং শিখে ফেলতে পারবেন। আগ্রহ না থাকলে কোর্স করে বা যেভাবেই হোক শিখতে পারবেন না। আমি প্রথম প্রোগ্রামিং শিখা শুরু করি https://www.youtube.com/watch?v=Bacf3wTY2EQ

এই ভিডিও টিউটোরিয়াল দেখে। এটা C program শিখার বাংলা টিউটোরিয়াল।

https://www.youtube.com/user/thenewboston/videos এই চ্যানেল থেকে প্রোগ্রামিং ব্যাপারে অনেক কিছু শিখতে পারবেন। প্রোগ্রামিং এর প্রাথমিক জিনিসগুলো শিখা হয়ে গেলে কিভাবে প্রাকটিস করবেন? https://uva.onlinejudge.org/ এই ওয়েবসাইটে প্রোগ্রামিং নিয়ে অনেক প্রবলেম পাবেন। এগুলো সলভ করতে থাকলে প্রোগ্রামিং নিয়ে ভাল প্র্যাকটিস হবে। এছাড়াও আরো অনেক প্রবলেম সলভিং সাইট আছে। https://www.hackerrank.com এখানে সহজ কিছু প্রোগ্রামিং চ্যালেঞ্জ পাবেন যা প্রোগ্রামিং শিখায় অনেক সাহায্য করবে। প্রোগ্রামিং এর উপর অনেক বাংলা বই আছে। এসব বইও পড়তে পারেন। আর প্রোগ্রামিং নিয়ে যে কোন সমস্যায় পড়লে http://www.stackoverflow.com এই ওয়েবসাইটে সমাধান পাবেন।

প্রোগ্রামিং করে সফটওয়্যার কিভাবে বানাব? প্রায় ৪ মাস প্রোগ্রামিং করার পর আমি চিন্তা করলাম, আচ্ছা আমরা যেই সফটওয়্যারগুলো ব্যবহার করি এগুলো বানায় কিভাবে। আমি যে কোড করছি এটা একটা কালো বক্সের (Windows console) মধ্যে ওপেন হচ্ছে। কিন্তু সফটওয়্যারের মত উপরে টাইটলবার বা ক্লিক করার মত কোন বাটন নেই কেন। কি লিখে গুগলে সার্চ করতে হবে তাও জানতাম না।

তাই গুগলে সার্চ করলাম “Graphics in C program” লিখে। অনেক কষ্ট করে কোডব্লকসে Graphics.h header file ব্যবহার করে অনলাইন থেকে একটা কোড কপি করে কনসোলের মধ্যেই কিছু কালারফুল ফুলের ছবি প্রিন্ট করলাম। এটা ছিল আমার প্রথম গ্রাফিক্স নিয়ে কাজ করা। সফটওয়্যারের মধ্যে গ্রাফিক্স দাওয়াকে অর্থাৎ দৃশ্যমান কিছু বাটন এবং সেখানে ক্লিক করলে কাজ করবে এটাকে বলা হয় Graphical User Interface (GUI)।

আমি ব্যক্তিগতভাবে কনসোলে কোড রান করাটা পছন্দ করি না। তাই আমি GUI নিয়েই বেশি কাজ করি। প্রথম আমি Visual Basic (VB.net) ব্যবহার করে GUI based সফটওয়্যার বানানো শিখি। প্রায় ৪ মাসের বেশি সময় ধরে কাজ করে বানাই “One Click Everything” এই সফটওয়্যারটি। সফটওয়্যারটি https://drive.google.com/file/d/0B6PuUvKFaimvT0pLbmlLV18zZzA/view এখান থেকে ডাউনলোড করতে পারবেন।

এরপর আমি Java Swing দিয়ে কিছু সফটওয়্যার বানাই। এরপর Visual C# নিয়েও কিছুদিন কাজ করি। কিন্তু মনের মত language পাচ্ছিলাম না সফটওয়্যার ডেভেলপ করার জন্য। এরপরে শিখা শুরু করলাম JavaFX. Cross platform এই ল্যাঙ্গুয়েজটা আমার কাছে সফটওয়্যার ডেভেলপ করার জন্য সবচেয়ে ভাল মনে হয়েছে। অনেক Efficient একটা ল্যাঙ্গুয়েজ। তাই যারা সফটওয়্যার ডেভেলপ করতে চান তাদেরকে আমি পরামর্শ দিব JavaFX দিয়ে ডেভেলপ করার জন্য।

প্রোগ্রামিং প্রবলেম সলভ করার পাশাপাশি আমি মনে করি সফটওয়্যার অথবা অ্যাপ  ডেভেলপ করার প্র্যাকটিস করাও ভাল। তাহলে ভবিষ্যতে ভাল সফটওয়্যার বা অ্যাপ  ডেভেলপ করতে পারবেন।

Android app ডেভেলপ করার অনেক উপায় আছে। Java, Visual C#, Lua, HTML & Javascript ইত্যাদি ব্যবহার করে Android app ডেভেলপ করতে পারেন। আমি Java and Visual C# (Using Xamarin) ব্যবহার করে Android app develop করার চেষ্টা করেছি। আমার মনে হয়েছে Android Studio তে জাভা দিয়ে কোড করে Android app ডেভেলপ করাই সবচেয়ে ভাল। তবে Android Studio খুবই ভারি একটি সফটওয়্যার। একটু অপ্টিমাইজেশন করে চালালে আর সমস্যা হবে না। Android এর জন্য গেম বানাতে চাইলে Unity তে C# এ কোড করাই ভাল হবে।

ওয়েবসাইট ডেভেলপ করার জন্য HTML, CSS, Bootstrap, PHP, Javascript অনেক কিছু জানা লাগে। অনেকে আবার এসব ল্যাঙ্গুয়েজকে প্রোগ্রামিং ল্যাঙ্গুয়েজের মধ্যে ধরতে চান না। তারা এগুলোকে Scripting language বলে থাকেন। কিন্তু আমি এসব ল্যাঙ্গুয়েজকেও প্রোগ্রামিং ল্যাঙ্গুয়েজের অন্তর্ভুক্ত মনে করি। ওয়েবসাইট ডেভেলপ করার ক্ষেত্রে আবার ২টা ভাগ আছে।

একটা হচ্ছে Front-end web development এবং আরেকটা হচ্ছে Back-end web development. Front-end web development এর মধ্যে HTML, Javascript, CSS, Actionscript, CoffeeScript (compiled to Javascript), XML-based languages (X3D, SMIL, SVG, DITA, some interpreted by the browser, others transformed using XSL), VBScript, Silverlight, Java (applets) এসব রয়েছে।

Back-end web development এর মধ্যে PHP, NET (C#, VB),  Ruby, Python, Perl, Javascript  (Node JS), Actionscript (Flash Media Server), CoffeeScript, Erlang, SQL for db queries এসব রয়েছে। তবে ওয়েবসাইট ডেভেলপ করার জন্য সব শিখা লাগবে না। প্রয়োজন অনুযায়ী শিখলেই হবে। ওয়েবসাইট বানানোর জন্য এতো ল্যাঙ্গুয়েজ দেখে ভয় পাওয়ার কিছু নেই। এগুলো কম্পিউটার প্রোগ্রামিং ল্যাঙ্গুয়েজের থেকে তুলনামূলক সোজা এবং শিখতে খুব বেশি কষ্ট হবে না।

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

সফটওয়্যারের ডাউনলোড লিংকঃ

Android app:

Spin the Bottle: https://drive.google.com/file/d/0B6PuUvKFaimvRUwweDhHbmlBVTQ/view

Website:

http://www.techxmania.rf.gd

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

আশা করি টিউনটি ভাল লেগেছে। প্রোগ্রামিং ব্যাপারে কোন কিছু জানার থাকলে আমাকে ফেসবুকে নক করতে পারেন। স্কাইপে তে কল দিয়ে শিখে নিতে পারেন। অবশ্যই ফ্রী তে। আমি বিশ্বাস করি Knowledge is free, you have to gain it.

Happy programming, Programming is my second language, Programming is in my blood…

Email: [email protected]

ফেসবুকে আমি

Level 0

আমি মুবীন উল আলম। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 8 বছর 6 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 7 টি টিউন ও 5 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 4 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

I live in a dream...


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Thanks Brother!!! I have send you Friend Request on Facebook.Please Accept…Thanks…

নতুনদের জন্য এরকম একটি টিউন দরকার ছিল। সেই ঘাটতিটা আপনি পূরণ করে দিলেন। আন্তরিক ধন্যবাদ এবং কৃতজ্ঞতা।

প্রিয় টিউনার ,

আমি টেকটিউনস কমিউনিটি ম্যানেজার, শোয়াইব, টেকটিউনস থেকে আপনার সাথে অফিসিয়ালি যোগাযোগ করতে চাচ্ছি।

টেকটিউনস থেকে আপনার সাথে অফিসিয়ালি যোগাযোগ করার জন্য http://techtun.es/2obSQxE লিংকটিতে ক্লিক করে আপনার সাথে যোগাযোগের প্রয়োজনীয় তথ্য সাবমিট করে আমাদের সাহায্য করবেন আশা করছি।

সাবমিট করার পর আমাদের এই ম্যাসেজের রিপ্লাই আপনার কাছ থেকে আশা করছি।

ধন্যবাদ আপনাকে।

    দেরী করে রিপ্লাই দাওয়ার জন্য দুঃখিত। আমি প্রয়োজনীয় তথ্য দিয়ে সাবমিট করেছি। আশা করছি টেকটিউনস আমার সাথে অফিসিয়ালি যোগাযোগ করবে। ধন্যবাদ টেকটিউনস কমিউনিটি ম্যানেজার।