প্রোগ্রামার হতে চান ?

August 26, 2015

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

বর্তমানে দেশে যে পরিমান যোগ্য programmer দরকার আমাদের software industry কে এগিয়ে নিয়ে যেতে সেই পরিমান প্রোগ্রামার তৈরি নেই। আন্তর্জাতিক বাজারের সাথে পাল্লা দেয়ার মত সফটওয়্যার বা application বানাবার যোগ্যতা সম্পন্ন প্রোগ্রামার গড়ে উঠছে না। Computer science এর হাজারো শিক্ষার্থী প্রতি বছর পাশ করে বের হচ্ছে। কিন্তু দক্ষতার ঘাটতির কারণে কর্মক্ষেত্রে তাদেরকে কাজে লাগানো সম্ভব হয় না। এই লেখায় আমরা চেষ্টা করব কেউ যদি প্রোগ্রামিং কে পেশা হিসেবে গ্রহণ করতে চায় তাহলে কিভাবে সে তার এই স্বপ্নকে বাস্তবে রূপ দিতে পারে।

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

খুব দ্রুত অর্থ উপার্জনের চিন্তা বাদ দিন। প্রোগ্রামিং পেশায় ভাল করতে হলে এর পিছনে বেশ কিছু সময় ও পরিশ্রম বিনিয়োগ করতে হবে। তাৎক্ষণিক অর্থপ্রাপ্তির আশা আপাতত বাদ দিন। মুটামুটি বছর খানেকের একটা পরিকল্পনা তৈরি করুন। এই পেশার কোন একজন বিশেষজ্ঞের সাথে আপনার background, capacity, capability ইত্যাদি বিষয়ে খোলামেলা আলোচনা করুন। তার সাথে শেয়ার করুন আপনি কি ধরণের কাজ করতে পছন্দ করেন। সফটওয়্যার ইন্ডাস্ট্রিতে বিভিন্ন পর্যায়ের বিভিন্ন ধরণের জনশক্তি কাজ করে থাকেন। কেউ front end এ কাজ করে, কেউ বা back end এ। আবার কেউ কাজ করেন database নিয়ে। অভিজ্ঞ কয়েকজনের সাথে কথা বললে তারা হয়ত আপনাকে ভাল কোন পরামর্শ দিতে পারবে যে আপনার কোথা থেকে শুরু করলে ভাল হবে। কারণ একেক জনের শেখার ক্ষমতা একেক রকম।

যদি এমন কারো সাথে কথা বলতে পারেন তো ভাল। তা না হলে শুরু করে দিন যে কোন একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ। একদম নতুনদের জন্য C Programming Language শুরু করা ভাল। অথবা python Programming Language দিয়েও হতে পারে আপনার প্রোগ্রামিং এর হাতেখড়ি। এই দুটি প্রোগ্রামিং ভাষাই খুব সহজ ও বাংলা-ইংরেজি উভয় ভাষাতেই এর পর্যাপ্ত resource আছে। শুরুতে আপনি যেটা শিখবেন সেটা হচ্ছে যে কোন একটা প্রোগ্রামিং ভাষার ‘অ-আ-ক-খ’। আমরা যেমন যে কোন ভাষার অক্ষর তৈরি করা শিখি, এরপর শব্দ-বাক্য বানাতে শিখি। আপনাকেও এভাবে কম্পিউটারের ভাষাটাকে শিখতে হবে। যে কোন ভাষার খুঁটিনাটি আর ব্যাকরণ ভাল ভাবে জানলেই সে ভাষা নিজের মত করে ব্যবহার করা সম্ভব হয়। ভিত্তিটা মজবুত হলেই কেবল কোন ভাষায় সাহিত্য চর্চায় সফল হওয়া সম্ভব। এ জন্য আপনার সদ্য শেখা প্রোগ্রামিং ভাষার উপর প্রচুর problem solve করতে হবে। যেই টপিক শিখবেন তার সাথে সামঞ্জস্যপূর্ণ বিভিন্ন সমস্যা আপনার শেখা প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে সমাধান করবেন। Problem solving এর জন্য অনেকগুলো online judge আছে। যেগুলোতে আপনার করা কোড সাবমিট করে সাথে সাথেই ফলাফল দেখতে পারবেন।

যে কোন ল্যাঙ্গুয়েজের basic syntax টা শেখা হয়ে গেলে আরেকটু দক্ষ হবার জন্য আপনাকে শিখতে হবে Data Structure. যে কোন সফটওয়্যার বা এপ্লিকেশন মূলত বিভিন্ন ডাটা ইনপুট নিয়ে সেগুলোকে প্রসেস করে আউটপুট দেখায়। এই ডাটাগুলোকে efficiently handle করার জন্য ডাটা স্ট্রাকচার শেখার কোন বিকল্প নাই। এটা শিখে এই সংক্রান্ত প্রবলেম সলভ করার মাধ্যমে প্রোগ্রামিং জ্ঞান বাড়িয়ে নিতে পারবেন আরো অনেখখানি।

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

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

ডেস্কটপ এপ্লিকেশন বানানোর জন্য C#, Java, ওয়েব এপ্লিকেশনের জন্য শিখতে পারেন PHP, HTML, CSS. পরবর্তীতে কাজের সুবিধার জন্য আপনার ফিল্ডের যে কোন ফ্রেমওয়ার্ক শিখে নিতে পারেন। এতে আপনার কাজের গতি বেড়ে হবে বহুগুণ!

প্রোগ্রামিংটা ভাল ভাবে জানলে দেশে-বিদেশে ভাল কাজের কোন অভাব নাই। কিন্তু জানতে হবে ভাল ভাবে। থাকতে হবে শেখার মানসিকতা। শিখতে হবে জীবন ভর!

Tech Analyst – Techmorich