সফটওয়্যার ইন্ডাস্ট্রিতে আসার আগে

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

১) ভার্শন কন্ট্রোল সিস্টেমের ব্যবহার: তোমরা নিশ্চয়ই গিট বা গিটহাবের নাম শুনেছ, না শুনে থাকলে git ও github লিখে গুগলে খোঁজা শুরু কর। খুব সহজ কথায় বললে, গিট হচ্ছে এমন একটি সফটওয়্যার যার মাধ্যমে ভার্শন নিয়ন্ত্রনের কাজটি বেশ সহজে করা যায় এবং সেকারণে অনেকে মিলে একসাথে একটি প্রজেক্ট কাজ করতে সমস্যা হয় না। আর গিটহাব হচ্ছে ওয়েবভিত্তিক একটি সার্ভিস যেখান থেকে বিনামূল্যে গিট ব্যবহার করা যায়। তো গিটহাবে গিয়ে একটু সময় কাটালেই তোমরা এর ব্যবহার শিখে নিতে পার। এছাড়া এই ওয়েবসাইটে গিয়ে তোমরা গিটের ব্যবহার সহজে শিখতে পারবে : https://try.github.io/

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

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

৪) ওয়েবের ধারণা: তুমি সফটওয়্যারের যে বিভাগে বা যে ধরণের সফটওয়্যার নিয়েই কাজ কর না কেন, বর্তমানে তোমার ওয়েবের শক্ত ধারণা থাকার কোনো বিকল্প নেই। ওয়েব কীভাবে কাজ করে সেটা তোমার জানতে হবে। বিভিন্ন অংশের কাজের ওপর স্বচ্ছ ধারণা থাকতে হবে। ওয়েবের ধারণা অর্জনের জন্য দ্বিমিক কম্পিউটিংয়ের ওয়েব কনসেপ্টস কোর্সটিই সেরা, এবং এটি বিনামূল্যে করা যাবে এই ঠিকানা থেকে: http://dimikcomputing.com/course/web-concepts-online-course/। আর হ্যাঁ, কোর্সটি সম্পূর্ণ বাংলায়।

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

নতুন দিনের প্রোগ্রামারদের জন্য শুভকামনা।

গিট ও গিটহাব

Git-logoগিট কী
দ্রুত গতির ডাটা ইনটিগ্রিটি এবং ডিস্ট্রিবিউটেড সাপোর্টসহ ডিস্ট্রিবিউটেড রিভিশন কন্ট্রোলই হচ্ছে গিট (git)। ২০০৫ সালে লিনাক্স কার্নেলের জন্য লিনাস টারভাল্ডস গিট ডিজাইন এবং ডেভেলপ করেন। জিএনইউ জেনারেল পাবলিক লাইসেন্স এর অধীন লিনাক্সের মত গিটও ওপেনসোর্স এবং এখন পর্যন্ত সফটওয়্যার ডেভেলপমেন্টের জন্য সবচেয়ে জনপ্রিয় ভার্সন কন্ট্রোল সিস্টেম। দুটি জনপ্রিয় ওপেনসোর্স প্রোজেক্ট, অ্যান্ড্রয়েড এবং এক্লিপ্স ডেভেলপার টিমও গিট ব্যবহার করে।

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

github-394322_640গিটহাব কী
গিটহাব (github) হচ্ছে ওয়েব-ভিত্তিক গিট রিপজিটরি হোস্টিং সেবা, যা গিট এর ডিস্ট্রিবিউটেড রিভিশন কন্ট্রোল এবং সোর্স কোড ম্যানেজমেন্ট (এসসিএম) এর কার্যকারিতা এবং ফিচার উপস্থাপন করে। গিটের মত কমান্ড লাইন নয়, বরং গিটহাবে পাবেন ওয়েব-ভিত্তিক গ্রাফিক্যাল ইন্টারফেস এবং ডেক্সটপ আর মোবাইলের জন্য ক্লায়েন্ট। আরও সহজ করে বলতে গেলেঃ বন্ধু, সহকর্মী, সহপাঠী এমনকি পুরোপুরি অপরিচিত কাউকে আপনার কোড শেয়ার করার একটি উত্তম জায়গা হচ্ছে গিটহাব। আট মিলিয়নেরও বেশি ব্যবহারকারী একত্রে গিটহাব ব্যবহার করে চমৎকার সব জিনিস তৈরি করছে।

গিটহাব ফ্রি এবং পেইড দুইরকমই হোস্টিং করে। ব্যক্তিগত রিপজিটরির জন্য সাধারণত পেইড করতে হয়। গিটহাব মূলত ওপেনসোর্স সফটওয়্যার প্রোজেক্ট হোস্টিং করে।

গিটহাব ব্যবহারের সুবিধা
১. আপনার ওপেনসোর্স প্রেজেক্টে অবদান রাখার জন্য।
২. যেকোনো প্রেজেক্টের জন্য ফিল্ড-টেস্ট টুলস।
৩. গিটহাবে পাবেন ইনটিগ্রেটেড ইস্যু ট্র্যাকিং সুবিধা।
৪. একত্রে কাজ করার সুবিধা।
৫. একই প্রতিষ্ঠানের বা বিভিন্ন প্রতিষ্ঠানের মধ্যে ডিস্ট্রিবিউটেড টিম পরিচালনা করা।
৬. সিনট্যাক্স হাইলাইটেড কোড।

গিটহাব ব্যবহারের ধাপসমূহঃ
১. গিট সেটআপ করা।
বিস্তারিতঃ https://help.github.com/articles/set-up-git/
২. একটা রিপজিটরি তৈরি করা।
বিস্তারিতঃ https://help.github.com/articles/create-a-repo/
৩. রিপজিটরি ফর্ক (ফর্ক হচ্ছে রিপজিটরির একটা কপি) করা।
বিস্তারিতঃ https://help.github.com/articles/fork-a-repo/

গিট ও গিটহাব ব্যবহার করার বিভিন্ন টিউটোরিয়ালের লিঙ্ক:

লেখক : ইমরান হোসেন।