কিভাবে প্রোগ্রামিং শুরু করবেন (how to start programming)

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

কিভাবে শুরু করব ?

এই প্রশ্ন টার পেছেনে যেই প্রশ্ন টা আপনার মাথায় লুকায় থাকেঃ কিভাবে প্রোগ্রামিং শুরু করলে একটা ভাল জব হবে(টাকা বেশি 😀 )। শুরুতে একটি তালিকা দেই একজন প্রোগ্রামার এর যেসব ভাল চাকরি হতে পারে।
১. গুগলে চাকরি।
২. ফেইস বুকে চাকরি।
৩. Juniper Networks এ চাকরি।
৪. Amazon Lab এ চাকরি।
৫. full stack developer (ওয়েব) 
৬. Mobile applications developer (এন্ড্রয়েড)

তালিকাটা আর বড় করলাম না। এখন মনে করুন আপনি মনস্থির করলেন, আপনি গুগলে চাকরি করবেন। শুরুতে আপনাকে জানতে হবে গুগলে কিসের ভিত্তিতে নিয়োগ হয়। সেভাবে প্রস্তুতি নিন। গুগল দেখবে না আপনি ১০ বছরের অভিজ্ঞ প্রোগ্রামার, আপনার সুন্দর সুন্দর প্রজেক্ট। আপনার দক্ষতা যাচাই করবে কিছু জটিল এলগরিদম দিয়ে সমস্যা সমাধান করার দক্ষতা যাচাই করে।ঐ ধরনের সমস্যা সমাধানে যতটা প্রোগ্রামিং এর ভাষাগত দক্ষতা দরকার তার চেয়ে হাজার গুণ বেশি দরকার গনিত অলিম্পিয়াড এবং এলগরিদম এই টাইপের দক্ষতা। তাই যারা ছোট বেলা থেকে গনিত অলিম্পিয়াডে ভাল তারা নিয়মিত সেই দক্ষতা কাজে লাগিয়ে গুগলে যেসব সমস্যা সমাধান করতে হয় সেগুলো প্রাকটিস করুন। c,c++,java,python থেকে প্রোগ্রামিং ভাষা হিসাবে যেকোন একটিকে বেছে নিন। নিয়মিত প্র্যাকটিস করার জন্য অনলাইনে বেশ কিছু সাইট আছে। https://uva.onlinejudge.org/ টা বেশ ভাল একটা সাইট। এই ধরনের প্রলেম কিভাবে সমাধান করবেন তা নিয়ে শুরুতে http://www.codingpractise.com/acm-icpc/ এই সাইট টা দেখতে পারেন। এইটাকে রেফেরেন্স হিসাবে নেওয়ার দরকার নাই। এইটা আমার তৈরি করা একটা সাইট যেখানে আমার সমাধান করা কিছু সমস্যার বিস্তারিত আলোচনা করেছি। সেই আলোচনা গুলো আপনার শুরুটা কে অনেক আনন্দ ময় করবে। একসময় আপনি আমাকে ছাড়িয়ে যাবেন, কারন আপনি মনস্থির করেছেন গুগলে জব করবেন।

এতক্ষন যেই কথাগুলো বললাম সেই কথাগুলো নিচের চাকরির ক্ষেত্রেও সত্যঃ 
২. ফেইস বুকে চাকরি।
৩. Juniper Networks এ চাকরি।
৪. Amazon Lab এ চাকরি।

এখন মনে করুন, আপনি আপনার চেষ্টা চালিয়ে গেলেন কিন্তু আপনার স্বপ্নের চাকরি টা হল না। তাহলে? খুশির খবর হলঃ পৃথিবীতে যত ভাল কোম্পানি আছে সেগুলো এই টাইপের প্রব্লেম সলভিং দক্ষতা যাচাই করে নিয়োগ দেয়। তাই ওভারসীজ যেকোন জবে এপ্লাই করে আপনার কষ্টের প্রতিদান আপনি নিতে পারেন। আবার আপনি যখন লোকাল কোন জব এ এপ্লাই করবেন তখন আপনার সিভি এর সাথে এই প্রবলেম সমাধান করার প্রমান স্বরূপ লিংকটা দিয়ে দিন।অনলাইনে যেই সাইটে আপনি প্রলেম সমাধান করবেন সেখানে আপনার একটা প্রোফাইল লিংক থাকবে। যেমন আমার প্রোফাইল লিংকঃ  http://uhunt.felix-halim.net/id/202456

এখন মনে করুন আপনার পছন্দ আরেকটু সহজ পথ। ম্যাথ অলিম্পিয়াড, এলগরিথম আপনার মাথায় ঢুকে না। তাহলে আপনি নিচের অপশন বেছে নিনঃ
৫. full stack developer (ওয়েব) 
৬. Mobile applications developer (এন্ড্রয়েড)

৫. নাম্বার বেছে নিলে আপনি ধারাবাহিক ভাবে নিচের ল্যাঙ্গুয়েজ শিখুনঃ html,css,jquery। তারপর সার্ভার সাইট ল্যাঙ্গুয়েজ হিসাবে php/python/Java বেছে নিন। তবে একটি কথা php/python/Java শুরু করার আগে সি প্রোগ্রামিং টা শিখে নিন। সি প্রোগ্রামিং এর সব শিখতে যাবেন না। নিচের বিষয় গুলো একেবারে ভাজা ভাজা করে নিনঃ

ভেরিয়েবল, ফাংশন, লুপ, কন্ডিশনাল স্ট্যাটমেন্ট।

এই বিষয় গুলোর তত্বীয় আলোচনার সাথে কোডিং প্র্যাকটিস করুন। তার মানে বেশি তেলে ভাজবেন, একেবারে পুড়িয়ে ফেলবেন। তারপর php/python/Java শুরু করুন।

৬. নাম্বার বেছে নিলে শুরু তে উপরে উল্লেখ করা সি এর বিষয়গুলো শেষ করুন। তারপর Java দিয়ে মজার মজার app বানানো শুরু করুন।

উপরের আলোচনায় ‘কোন প্রোগ্রামিং নিয়ে শুরু করব?’ এই প্রশ্নের উত্তর পেয়ে গেছেন।

জব মার্কেটে কোন ল্যাংগুয়েজের ভ্যালু বেশি?

কোন ল্যাঙ্গুয়েজ এর ভ্যালু বেশি কম হয় না। একটা দেশের জব মার্কেটে কোন ল্যাঙ্গুয়েজ বেশি ব্যাবহার হয় তার উপর ভ্যালু বেশি কম হয়। এটার কোন স্ট্যান্ডার্ড হয় না।

আপনাকে একটা ধারণা দেই। অনেক আগে ভিজুয়াল বেসিক দিয়ে কিছু সফটওয়ার বানানো হয়েছিল। এখন ভিজুয়াল বেসিক জানা লোক খুবই কম। তাই ঐ সফটওয়ার গুলো মেইনটেইন করতে ভিজুয়াল বেসিক জানা লোক কম থাকায় অনেক মোটা অংকের টাকা দিয়ে অভিজ্ঞ লোক নিয়োগ দেওয়া হয়। এখন আপনার এক বন্ধু ভিজুয়াল বেসিক জানে, সে অনলাইনে একটা মোটা অংকের প্রজেক্ট পেয়ে গেল, আর আশেপাশে মিথ চালু করে দিল, ভিজুয়াল বেসিক সবচেয়ে ভাল প্রোগ্রামিং ল্যঙ্গুয়েজ তাহলে কি কাজ টা ঠিক হল? আপনি নিজেই ভেবে দেখুন এই ল্যাঙ্গুয়েজের লোক নাই তাই যারা একটু ভাল পারে তাদের কে মোটা অংকে নিয়োগ করে। আবার ইউরোপ-আমেরিকায় সি/অবজেকটিভ সি দিয়ে অনেক কাজ হয়, আবার এমবেডেড সিস্টেম নিয়ে কাজ করলে সি এর অনেক ভ্যালু । আমাদের দেশে এমন কোন IT কোম্পানি নাই যারা সরাসরি সি প্রোগ্রামিং নিয়ে কাজ করে ( তবে aplombtechbd এমবেডেড সিস্টেম নিয়ে চমৎকার কাজ করছে )। এখন আপনি আমাদের দেশের জব মার্কেটের কথা চিন্তা করে সি বাদ দিলেন কিন্তু প্রোগ্রামিং এর সব খুটি নাটি বিষয়গুলো সি তে খুব সুন্দর ভাবে ব্যাখ্যা করা হয়েছে, অন্য ল্যাঙ্গুয়েজে কিছু জিনিস আপনি আগে থেকে জানেন -এমন ধরে নেওয়া হয়। তাই আপিনি সি প্রোগ্রামিং দিয়ে শুরু করুন কিন্তু উপরে নির্বাচিত বিষয় গুলা (ভেরিয়েবল, ফাংশন, লুপ, কন্ডিশনাল স্ট্যাটমেন্ট) শেষ করে, php বা Java বা python শুরু করে দিন। তারপর আপনি php বা Java বা python যে কোন একটা নিয়ে লেগে থাকুন

প্রোগ্রামার হতে কতদিন লাগবে?

উত্তরঃ সংক্ষেপে উত্তর সারা জীবন। তবে ভাল প্রোগ্রামার হতে কিছু চর্চা চালিয়ে যেতে হয়। যেমন কিভাবে ক্লিন কোড লিখবেন, কিভাবে কোড রিফেক্টর করবেন। এই ব্যাপারগুলোর কোন সুত্র নাই, ভাল কোড লিখার কিছু কৌশল দেখলে সেগুলো নিজে কোড লিখার সময় করবেন। অনেক সময় নিজের কোড ই আপনি নিজে রিফেক্টর করবেন। একটা কথা আছে – Creative work demands re-work.

সবশেষেঃ

সি প্রোগ্রামিং শেখার জন্য আপনি অনলাইনে অনেক রিসোর্স পাবেন। http://bangla.codingpractise.com/ এই সাইটি দেখতে পারেন। বাংলা ও ইংলিশ দুই ভার্সনেই পাবেন। আরও সহজ ভাবে বুঝার জন্য আমার ইউটিউব চ্যানেলটি দেখতে পারেনঃ  https://www.youtube.com/c/abdussattarbhuiyan/?sub_confirmation=1

প্রোগ্রামিং এর ভিডিও টিউটরিয়াল নিয়ে ইউটিউব চ্যানেলটির সম্পূর্ন আপডেটঃ
১. সি প্রোগ্রামিং এর সিরিজ টিউটরিয়ালঃC Pogramming Series Tutorial in Bengli By Abdus Sattar Bhuiyan

২. HTML ও css নিয়ে সিরিজ টিউটরিয়ালঃ 
HTML & CSS Series Tutorial in Bengli By Abdus Sattar Bhuiyan

৩. Template ডিজাইন নিয়ে সিরিজ টিউটরিয়ালঃ 
Template Design Tutorial in Bengli By Abdus Sattar Bhuiyan

৪. jQuery নিয়ে সিরিজ টিউটরিয়ালঃ jquery bangla video tutorial by Abdus Sattar Bhuiyan

৫. PHP নিয়ে সিরিজ টিউটরিয়ালঃ php Series Tutorial in Bengli by Abdus Sattar Bhuiyan

৬. wordpress theme development নিয়ে সিরিজ টিউটরিয়ালঃ WordPress Theme Development Series Tutorial by Abdus Sattar Bhuiyan

৭. WordPress Plugin development নিয়ে সিরিজ টিউটরিয়ালঃ WordPress Plugin Development Series Tutorial by Abdus Sattar Bhuiyan

৮. Regular Expression নিয়ে সিরিজ টিউটরিয়ালঃ Series Tutorial on Regular Expression by Abdus Sattar Bhuiyan

৯. Database Management নিয়ে সিরিজ টিউটরিয়ালঃ Series Tutorial on Database Management System by Abdus Sattar Bhuiyan