ফ্রিল্যান্সিং ও আউটসোর্সিং

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

ফ্রিল্যান্সিং পেশাটা কিন্তু নতুন না, ফ্রিল্যান্স কলাম লেখক আছেন, সাংবাদিক আছেন, ফটোগ্রাফার আছেন। তাঁরা যেটা করেন, কোনো নির্দিষ্ট প্রতিষ্ঠানের চাকরি করেন না, তাদের নিজের দক্ষতা বিভিন্ন প্রতিষ্ঠানের কাছে বিক্রি করেন, যখন যেখানে কাজ পান। এখন, ইন্টারনেটের কল্যাণে বিষয়টা বিশ্বব্যাপি ছড়িয়ে গেছে। লন্ডনের কেউ হয়ত নতুন ব্যবসা খুলবে, তার লোগো ডিজাইন করা দরকার, সেটা সে যদি লন্ডনে কাউকে দিয়ে করাতো, তাহলে তার খরচ হতো হয়ত ২০০০ ডলার, কিন্তু বাংলাদেশের একটি মেয়ে, যে কী না ফ্রিল্যান্স ডিজাইনার, সেটি করে দেবে ১০০ ডলারে। কিংবা আমেরিকায় কোনো কোম্পানী মোবাইল অ্যাপ তৈরি করবে, সেটি যদি তারা কোনো আমেরিকান সফটওয়্যার কোম্পানীকে দিয়ে করাতো, হয়ত ৫০,০০০ হাজার ডলার খরচ হতো, বাংলাদেশি সফটওয়্যার নির্মাতা কোম্পানী সেটি করে দিবে ৫০০০ ডলারে। আবার এমনও হয় যে কানাডার কোনো সফটওয়্যার কোম্পানীতে কাজের চাপ বাড়ছে, তারা সেখানে বাড়তি লোক না নিয়ে অতিরিক্ত কাজ স্বল্প আয়ের কোনো দেশের কোম্পানীকে দিয়ে করালো। শেষের এই ব্যাপারটাকে বলে আউটসোর্সিং। মানে নিজে না করে, বা নিজের কোম্পানীতে অতিরিক্ত লোকবল না নিয়ে, কোনো কাজ অন্য কোম্পানীকে দিয়ে করানো।

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

ফ্রিল্যান্সিং সম্পর্কে আরো জানতে নিচের ভিডিওটি দেখুন।

আমি লেখাটি যখন শুরু করেছিলাম, কাকতালীয়ভাবে তার কিছুক্ষণ পরে প্রথম অলোর অনলাইন সংস্করণে এই লেখাটি প্রকাশিত হয়: http://www.prothom-alo.com/technology/article/194983/, এখানে অনেক সুবিধার কথা বলা আছে, তাই আমি সুবিধার বিষয়গুলো আর লিখলাম না।

এবার কয়েকটি অসুবিধার কথা বলি।

১) নিজের মেধার পূর্ণ ব্যবহার না করা।
অনেকের মধ্যেই অনেক ভালো কাজ করার মতো মেধা ও যোগ্যতা আছে। দরকার কেবল একটু পরিশ্রম। এখন কেউ ২ মাস ঘাঁটাঘাঁটি করে ফ্রিল্যান্সিংয়ে নেমে পড়ল, তার বয়স হয়ত ১৫। ঘণ্টায় ২ ডলার আয় করেই অনেক খুশি। মাসে ১০০ ঘণ্টা কাজ করলে ২০০ ডলার, মানে ১৫ হাজার টাকা! সে তার বেশিরভাগ সময়ই ব্যায় করতে লাগলো এসব কাজে। নতুন কিছু শেখা হলো না, নিজে উন্নত হলো না, তাহলে উন্নতিও হবে না। ১৫ বছর বয়সে ১৫ হাজার টাকা অনেক বেশি মনে হবে, কিন্তু আরো ১৫ বছর পরে, ৩০ বছর বয়সে ৩০ হাজার টাকা কিন্তু খুব বেশি নয়। তাহলে কী মানুষ ফ্রিল্যান্সিং করবে না? করবে, কিন্তু সেটা প্রয়োজন হলে। খুব দরকার না হলে ওই বয়সে ফ্রিল্যান্সিং না করে বরং বিভিন্ন জিনিস শিখে নিজের ভিতটা শক্ত করা প্রয়োজন, যাতে ২ ডলার রেটের কাজগুলো করতে না হয়, ঘণ্টায় ১০ ডলার রেটে যেন শুরু করতে পারে। তীর অনেক সামনে যেতে চাইলে শুরুতে তাকে বেশ পেছনে টানা লাগে।

২) আরেকটা অসুবিধা হচ্ছে কাজের পরিবেশ ও একাকীত্ব। ফ্রিল্যান্সাররা সাধারণত বাসায় বসে কাজ করে। এতে বেশ কিছু সমস্যা হয়। যেমন বাসায় হয়ত বুঝতে চাইবে না যে সে কাজ করছে। হুটহাট বিভিন্ন কাজের ফরমায়েশ দেওয়া হবে। কিংবা সে যদি বিবাহিত হয়, তাহলে তার স্ত্রী মনে করবে যে সে তার দিকে যথেষ্ট মনোযোগ না দিয়ে কম্পিউটার নিয়ে বসে আছে। আর বাচ্চা-কাচ্চা হলে তো কথাই নেই। ল্যাপটপে হিসু করে দেওয়ার প্রবল সম্ভাবনা আছে। তাহলে কী মানুষ ফ্রিল্যান্সিং করবে না? করবে, তবে কাজের জন্য বাসার আলাদা একটা রুম ঠিক করে নিলে ভালো হয় যেখানে অন্যরা সহজে আসবে না। আরো ভালো হয় বাইরে শেয়ারড অফিস নিলে। বিদেশে এরকম অনেক কোওয়ার্কিং স্পেস ( co-working space ) আছে। যেখানে রুম কিংবা টেবিল ভাড়া নিয়ে কাজ করা যায়। সেখানে কাজের পরিবেশ ভালো থাকে। আবার অন্যদের সাথে দেখা-সাক্ষাতের সুযোগ মেলে। নিয়মিত বাইরে গেলে শারীরিক ও মানসিক স্বাস্থ্য ভালো থাকে। বাংলাদেশেও ধীরে ধীরে এমন কোওয়ার্কিং স্পেস চালু হচ্ছে। সামনে হয়তো আরো বাড়বে। আর এমন ব্যবস্থা না থাকলে কয়েকজন ফ্রিল্যান্সার মিলে একটি অফিস ভাড়া নিয়ে ফেলা যায়!

৩) সামাজিক স্বীকৃতি। এটা একটা গুরুত্বপূর্ণ বিষয়। যারা এখনও বিয়ে করে নি, তারা হয়তো টের পাচ্ছে না বিষয়টা। তবে এক্ষেত্রে বিডিওএসএন ও বেসিসকে ধন্যবাদ দিতে হয়, কারণ তারা এটা নিয়ে হৈচৈ করার কারণে ধীরে ধীরে মানুষ বিষয়টা সম্পর্কে জানতে পারছে।

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

মূল লেখাটি ফেসবুকে নোট আকারে লিখেছিলাম এপ্রিল ১৮, ২০১৪ তারিখে।

মারুফ মনিরুজ্জামান এর সাক্ষাৎকার

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

সুবিন : মনির ভাই, এখন কোথায় কাজ করছেন?
মনিরুজ্জামান : আমি এখন Caradigm নামে একটা কোম্পানিতে কাজ করি। এটা মাইক্রোসফট আর জেনারেল ইলেকট্রিক কোম্পানির হেলথ কেয়ার ভিত্তিক যৌথ উদ্যোগ।

সুবিন : এখানে আপনি কী ধরণের কাজ করেন? আপনার প্রজেক্ট সম্পর্কে একটু বলুন।
মনিরুজ্জামান : আমি যে প্রজেক্টে কাজ করি সেটা হেলথ কেয়ারের জন্য একটা প্লাটফর্ম। এটা বিভিন্ন উৎস এবং ডিভাইস থেকে তথ্য সংগ্রহ থেকে শুরু করে স্বাস্থ্য সংক্রান্ত যেসব প্রযুক্তি দরকার হয়, সেগুলোর জন্য একটা প্লাটফর্ম সরবরাহ করে। যেটার উপর ভিত্তি করে অন্য ছোটবড় কোম্পানি সফটওয়্যার লিখতে পারে। এখানে মূলতঃ মাইক্রোসফটের প্রযুক্তি ব্যবহার হয়। যেমন ল্যাংগুয়েজের জন্য C#, প্লটাফর্মের জন্য Windows Server, SQL Server, Windows Azure, এছাড়া Natural Language Processing ইত্যাদি ব্যবহার হয়।

সুবিন : Caradigm-এ কবে থেকে কাজ করছেন? এখানে চাকরি পেলেন কিভাবে?
মনিরুজ্জামান : Caradigm এ কাজ করি প্রায় দেড় বছর। এখানে কাজ পেয়েছি মূলতঃ আমার আগের মাইক্রোসফটে কাজ করার অভিজ্ঞতা থাকায়। আমি এর আগে ২০০৮ সনে মাইক্রোসফট অফিসে (যারা Word, Excel, Exchange এই সফটওয়্যারগুলো বানায়) যোগ দেই। সেখানে কিভাবে কাজ পেলাম সেটা বলা যায়। আমি শাহজালাল বিশ্ববিদ্যালয়ে পড়ার সময় জাভা ভার্চুয়াল মেশিন বানিয়েছিলাম একটা প্রোজেক্টের অংশ হিসাবে। সেটা নিয়ে আমি ২০০৮ এ codeproject এ একটা আর্টিকেল লিখি। সেটা ওই মাসে সেরা আর্টিকেল হিসাবে প্রথম হয়। এরপর ওরা আর্টিকেলের লিংকটা ওদের প্রায় ৫০ লক্ষ (৫ মিলিয়ন) সদস্যের কাছে পাঠায়। তাদের মধ্যে একজন মাইক্রোসফটের রিক্রুটার ছিল। উনি আমাকে রিজিউমি পাঠাতে বলেন। এরপর হংকংএ আমার ইন্টারভিউ হয়। এরপর আমি মাইকোসফট থেকে অফার পাই।

সেই আর্টিকেলের লিঙ্ক : http://www.codeproject.com/Articles/24029/Home-Made-Java-Virtual-Machine

সুবিন : বাংলাদেশে সফটওয়্যার ইন্ডাস্ট্রিতে কত বছর কাজ করেছেন?
মনিরুজ্জামান : আমি বাংলাদেশে কাজ করেছি প্রায় ৩ বছর। সাইক্রাফট সল্যুশন এবং কাজ সফটওয়্যার-এ।

সুবিন : এবারে একটু পেছনের দিকে যাই। প্রথম কম্পিউটারের সাথে পরিচয় কবে? প্রোগ্রামার হওয়ার সিদ্ধান্তটি কখন নিলেন?
মনিরুজ্জামান : কম্পিউটার প্রথম হাতে পাই শাহজালার বিশ্ববিদ্যালয়ে ভর্তি হওয়ার পর, ১৯৯৮ সনে। তবে কম্পিউটার নিয়ে আমার আগ্রহ ছিল স্কুলে পড়ার সময় থেকে। একটা কম্পিউটার হাতে পাওয়ার জন্য আমি অনেক চেষ্টা করেছি স্কুলে এবং কলেজে পড়ার সময়। তখন সি এন্ড ই জার্নাল নামে একটা পত্রিকা বের হত। সেটার ১৯৯৭ সংখ্যায় আমার একটা চিঠি ছাপা হয় যেটায় আমি জানতে চেয়েছিলাম Z80 কম্পিউটার বানানোর পার্টস কোথায় পেতে পারি। ওরা লিখেছিল এখন সেগুলো পাওয়া যাবে না। এর চেয়ে ১৫০০০ টাকা দিলে ওরা আমাকে একটা পুরোনো কম্পিউটার দিতে পারে। আর প্রথম প্রোগ্রামটা আমি “খাতায়” লিখেছিলাম সম্ভবত ১৯৯৪ সনে ক্লাস নাইনে পড়ার সময়। যেটা ছিল একটা কার্ড গেম। ১৯৯৮ সনে সেটা প্রথম কম্পিউটারে রান করে দেখি। প্রোগ্রামার হওয়ার সিদ্ধান্ত কবে নিলাম এটা বলা অনেক মুশকিল – তাই একটু ইতিহাস বলে দিলাম।

সুবিন : কম্পিউটার সায়েন্স পড়ার সিদ্ধান্তটি কি আপনার নিজের ছিল? নাকি বাবা-মা বলে দিয়েছে যে আপনাকে কম্পিউটার সায়েন্স পড়তে হবে?
মনিরুজ্জামান : আমার নিজের অবশ্যই। আমার “একটা কম্পিউটার থাকা মানুষের জীবনে কত জরুরী” এইটার বিবরণ শুনতে শুনতে আমার বাবা মা মোটামুটি অতিষ্ঠ হয়ে ছিলেন প্রায় ৫ বছর। আমি কম্পিউটার সায়েন্সে না পড়লেও সম্ভবত প্রোগ্রামার হওয়ার চেষ্টা করতাম।

সুবিন : আপনার প্রথম স্কুল কোনটি ছিল? কত বছর সেখানে পড়েছেন?
মনিরুজ্জামান : আমার প্রথম স্কুল ছিল কাজীপুর, সিরাজগঞ্জের একটি গ্রামে। খুকশিয়া সরকারি প্রাথমিক বিদ্যালয়। সেখানে চার বছর লেখাপড়া করি।

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

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

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

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

সুবিন : ভালো প্রোগ্রামার হতে গেলে অ্যালগরিদমভিত্তিক প্রোগ্রামিং প্রতিযোগিতা, যেমন এসিএম আইসিপিসি-তে অংশগ্রহন কতটা গুরুত্বপূর্ণ?
মনিরুজ্জামান : ভালো প্রোগ্রামার হতে অবশ্যই ডাটা স্ট্রাকচার এবং অ্যালগরিদম জানতে হবে। ডাটা স্ট্রাকচার এবং অ্যালগরিদম না জেনে সফটওয়্যার বানালে সেটার  মধ্যে কাঠামোগত ত্রুটি থাকবে। এই ত্রুটিগুলোর কারণে সফটওয়্যারে নতুন ফিচার যোগ করা বা অধিক সংখ্যক ব্যবহারকারীর জন্য ব্যবহার উপযোগী করা কঠিন হয়ে পড়ে। সাধারনভাবে জটিল ডাটা স্ট্রাকচার এবং অ্যালগরিদম নিত্যদিনের কাজে দরকার হয় না। কিন্তু অনেক ছোট ছোট সিদ্ধান্ত নিতে হয় যেগুলোতে ডাটা স্ট্রাকচার এবং অ্যালগরিদম জানা একজন প্রোগ্রামারের সিদ্ধান্ত অনেক উন্নতমানের হয়। একারনে মাইক্রোসফট, ফেসবুক, গুগলের মত কোম্পানি ডাটা স্ট্রাকচার এবং অ্যালগরিদমের উপরই মূলতঃ ইন্টারভিউ নিয়ে থাকে। ডাটা স্ট্রাকচার এবং অ্যালগরিদমে দক্ষ যে কেউ অন্য প্রয়োজনীয় দক্ষতা সহজেই আয়ত্ব করতে পারে। এসিএম আইসিপিসি মূলতঃ কতটুকু ডাটা স্ট্রাকচার এবং অ্যালগরিদমে শেখা হল সেটার একটা পরীক্ষা। এখানে ভাল করলে ধরে নেয়া যায় যে, শেখা হচ্ছে ঠিকমত। যাদের সুযোগ আছে তাদের এসিএম আইসিপিসি তে অংশগ্রহন করা উচিত এবং প্রতিযোগীতায় ভাল করার চেষ্টা করা উচিত। শেষ পর্যন্ত সবাই প্রথম স্থান পাবে না বা প্রথম ১০ এর মধ্যে থাকতে পারবে না। কিন্তু অংশগ্রহনের মধ্য দিয়ে অনেককিছু শেখা হবে যেটা পরবর্তীতে অবশ্যই কাজে লাগবে। তবে কেউ যদি ইচ্ছা করে তবে জীবনের যে কোনো পর্য়ায়েই যে কোনো কিছু শিখতে পারে। তাই প্রতিযোগিতায় অংশগ্রহনের সুযোগ না থাকলেও পূর্বের বিভিন্ন প্রতিযোগীতার প্রশ্নগুলো দেখা যেতে পারে। এই প্রশ্নগুলো বিভিন্ন বাউন্ডারি কেস নিয়ে চিন্তা করতে শেখায়। যেটা পরবর্তীতে উন্নতমানের সফটওয়ার তৈরির জন্য কাজে লাগবে। আমি ব্যক্তিগতভাবে http://ace.delos.com/usacogate সাইটের প্রশ্নগুলো সমাধান করতাম। এখানে ১০০ এর মত প্রশ্ন আছে যেগুলো জানা একজন কম্পিউটার প্রকৌশলীর জন্য জরুরী।

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

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

আবার শুধু বুকডন চর্চা করলে যেমন ব্যায়ামের লক্ষ্য পূরন হয় না তেমনি শুধুমাত্র একটা বিষয় শিখলে ভাল সফটওয়্যার ইঞ্জিনিয়ার হওয়া যায় না। কয়েকটা বিভিন্ন ধরনের ভাষা জানা জরুরী। প্রত্যেকটা ভাষার কিছু নিজস্ব বৈশিষ্ট্য আছে। বৈশিষ্ট্যগুলো জানা থাকা দরকার। আমি Python, C, C# বা Java, Javascript, Erlang, Assembly অন্তত এই কয়েকটা ল্যাংগুয়েজ শেখার পরামর্শ দেব। প্রত্যেকটা ভাষারই কিছু অনন্য বৈশিষ্ট্য আছে। এবং কেউ যদি শুরু করতে চান তাহলে প্রথমে পাইথন দিয়েই শুরু করুন। তারপর বাকিগুলো শেখা যেতে পারে। ভাষা শেখার জন্য ৫০০-১০০০ ঘন্টা ব্যায় করা হলে এরপর ডাটা স্ট্রাকচার এবং অ্যালগরিদমের দিকে সময় দেয়া দরকার। যদিও ১০০০ ঘন্টা চর্চা করলে কিছু ডাটা স্ট্রাকচার এবং অ্যালগরিদম শেখা হয়ে যাবে।

এরপর দরকার কাঠামো তৈরি শেখা। সেজন্য ডিজাইন প‌্যাটার্ন (http://en.wikipedia.org/wiki/Design_Patterns) শিখতে হবে। এটাও মূলতঃ অনেকদিন ধরে চর্চার মাধ্যমেই আয়ত্ব করতে হয়।

এরপর নেটওয়ার্কিং, প্যারালাল প্রসেসিং এবং সিকিউরিটি সম্পর্কে বিস্তারিত জানতে হবে।

এছাড়া আর যে বিষয়গুলো লাগে সেগুলো হল বিভিন্ন ধরনের ডাটাবেজ সম্পর্কে ধারনা (SQL, NoSQL), বিভিন্ন ফ্রেমওয়ার্ক (ASP .NET, Angular JS ইত্যাদি) সম্পর্কে ধারনা, ক্লাউড কম্পিউটিং, সোর্স কোড কন্ট্রোল (Team Foundation Server, Git), Continuous Integration এবং বিভিন্ন ধরনের সফটওয়্যার ডেভলপমেন্ট মেথড (যেমন agile) ইত্যাদি। এগুলো সম্পর্কে প্রাথমিক ধারনা থাকলে কাজ করতে করতে শিখে ফেলা যায়।

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

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

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

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

সুবিন : আপনি তো প্রোগ্রামিং শিক্ষা নিয়েও কাজ করেন। শিক্ষক ডট কম-এ আপনার সি প্রোগ্রামিংয়ের একটি কোর্স আছে। এই কাজগুলো সম্পর্কে যদি একটু বলতেন।
মনিরুজ্জামান : আমি যদি কম্পিউটার সায়েন্সে পড়ার সুযোগ না পেতাম তাহলে নিজে নিজে শেখার চেষ্টা করতাম। কিন্তু সেটা মোটেও সহজ হত না। সেকারনে আমি পরিকল্পনা করেছিলাম ১/২টা ভাষা, ডাটা স্ট্রাকচার, অ্যালগরিদম, কম্পিউটার আর্কিটেকচার ইত্যাদি কোর্স আকারে তৈরি করা। আমি মূলত ইউটিউবে ভিডিওগুলো আপলোড করা শুরু করেছিলাম। এরপর ডক্টর রাগিব হাসান ওনার শিক্ষক.কম সাইট চালু করেন এবং আমার ভিডিওগুলো সেখানে দিতে শুরু করি। যেহেতু শিক্ষক.কমে আর্টিকেলও দিতে হয় সেকারনে আমি আর্টিকেলও লিখতে থাকি। তবে আর্টিকেল লিখতে অনেক সময় লাগে। সেকারনে আমি সিদ্ধান্ত নিয়েছি আর্টিকেল না লিখে এখন থেকে শুধু ভিডিও আপলোড করব আর আগের মত http://u.lekhoni.com সাইটে সেগুলো রাখব। এরপর লেখার কাজটা করা যাবে সময় পেলে। আমি এখন ডাটা স্ট্রাকচার আর অ্যালগরিদমের ভিডিওগুলো তৈরি করছি। আর বাংলায় এই বিষয়ে একটা বই লিখছি। তবে এই বিষয়ে আারো অনেকে এগিয়ে আসছেন যারা আমার চেয়ে অনেক বেশি সক্রিয়। এটা অনেক আশার কথা।

সুবিন : এবারে অন্য প্রসঙ্গে যাওয়া যাক। আপনি তো বাংলাদেশে একটি উদ্যোগের (iFeri.com) সাথে জড়িত? সেটি নিয়ে যদি একটু বিস্তারিত বলতেন।
মনিরুজ্জামান : iFeri.com আমরা তিন বন্ধু (আমি, শামস, নাসির) মিলে শুরু করেছি ২০১১ সনে। এটা একটা অনলাইন শপিং উদ্যোগ। ঢাকায় কোনকিছু কিনতে কোথাও যেতে হলে যত সময় রাস্তায় আটকে থাকতে হয় সেটা খুবই অসুবিধাজনক। কেউ যদি বাসায় জিনিসটা ডেলিভারি দিয়ে যায় তাহলে জীবনের অনেক মূল্যবান সময় বাঁচে । এটাই শুরু করার আগে আমাদের “আমরা কি সুবিধা দিতে পারি” এই প্রশ্নের উত্তর ছিল। এটা আসলে একটা ব্যবসা উদ্যোগ। সফটওয়ার উদ্যোগ নয়। একজন সফটওয়ার ইঞ্জিনিয়ার হিসাবে কোন একটা কোম্পানিতে কাজ করলে, সেটা যত বড়বা ছোট কোম্পানিই হোক, সেটা নিজের দাবি করা যায় না। আর পুরোপুরি স্বাধীনতাও পাওয়া যায় না কখনও।

Wolfram এর তধ্য অনুযায়ী ঈদের মাসে ১৫ লক্ষ হিট হয়েছে আমাদের সাইটে। ১ লক্ষ এর বেশি মানুষ এসেছে। কম খরচে এইরকম লোড সাপোর্ট দেয়ার জন্য আমরা বেশকিছু প্রযুক্তি ব্যবহার করেছি। যেটা নিয়ে iFeri.com এ লেখার ইচ্ছা আছে ভবিষ্যতে।

এরকম ১২টি সাক্ষাৎকার নিয়ে প্রকাশিত হয়েছে “প্রোগ্রামিং ক্যারিয়ার গাইডলাইন : এক ডজন প্রোগ্রামারের কথা”। বইটি পাওয়া যাচ্ছে নীলক্ষেতের হক লাইব্রেরি ও রকমারি ডট কম-এ। বিস্তারিত জানতে ওপরের ছবিতে ক্লিক করুন।

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

কোন ভার্সিটিতে সিএসই পড়ব ?

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

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

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

এবার আসি যারা সফটওয়্যার তৈরির কাজ করতে চাও। ভালো সফটওয়্যার ইঞ্জিনিয়ারদের চাকরির সুযোগ অনেক (দেশে এবং বিদেশে) আর বেতনও ভালো। আমি যদ্দূর জানি, এই কারণেই পোলাপান সিএসই পড়তে চায়।

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

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

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

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

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

আর ক্যারিয়ার বিষয়ক এই লেখাটাও দেখতে পারো :  http://blog.subeen.com/?p=175

তোমাদের জীবন সুন্দর হোক, ভালো প্রোগ্রামার হও, পাশ করে ভালো চাকরি পাও, অনেক টেকাটুকা কামাও, এই দোয়া রইল। 🙂

প্রোগ্রামিং ক্যারিয়ার গড়তে ৫টি টিপস্

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

কিভাবে নিজের দক্ষতা প্রকাশ করবে?

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

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

৩) ওয়েব অ্যাপ্লিকেশন তৈরি : তুমি নিজে বিভিন্ন ওয়েব অ্যাপ্লিকেশন তৈরি করে সেগুলো ইন্টারনেটে হোস্ট করে রাখতে পারো। আর নিজের একটি ওয়েবসাইট তৈরি করে সেখানে সবকিছু সাজিয়ে রাখো, এটাকে পোর্টফোলিও (Portfolio) বলে। তুমি কোন লেভেলের ওয়েব ডেভেলাপার, সেটা তোমার পোর্টফোলিওই বলে দেবে।

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

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

তোমার জন্য শুভকামনা রইল।

বি.দ্র. আরো কোনো টিপস্ জানা থাকলে দয়া করে মন্তব্যে লিখুন। ধন্যবাদ।

ফ্রি প্রোগ্রামিং ডিভিডি

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

প্যানারোমা কম্পিউটার্সের পরিচালক শাহাদাৎ হোসেন জানান: “প্যানারোমা থেকে যারা কম্পিউটার কেনে, তাদের বেশিরভাগই শিক্ষার্থী। তাই শিক্ষার্থীদের যদি ডিভিডি দেওয়ার মাধ্যমে প্রোগ্রামিংয়ে আগ্রহী করা যায়, তাহলে সেটা দারুণ ব্যপার হবে।”

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

প্যানারোমা কম্পিউটার্সের ঠিকানা: লেভেল ৮, মাল্টিপ্ল্যান সেন্টার,  নিউ এলিফ্যান্ট রোড, ঢাকা-১২০৫।
ওয়েবসাইট : http://www.panaromabd.com/

ডিসক্রিট ম্যাথমেটিকস্ -এর ডিভিডি

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

কোর্সের সবগুলো ভিডিও লেকচার নিয়ে একটি ডিভিডি বের করেছে দ্বিমিক কম্পিউটিং স্কুল। আগামী মঙ্গলবার (আগষ্ট ৪) থেকে এটি পাওয়া যাবে রকমারি ডট কম-এ এবং ঢাকার নীলক্ষেতের হক লাইব্রেরিতে। বাংলাদেশের যেকোনো জায়গা থেকে রকমারি ডট কম-এ ডিভিডি অর্ডার করলে ওরা বাসায় পৌঁছে দিবে মাত্র ৩০ টাকার বিনিময়ে।রকমারি ডট কম থেকে অর্ডার করার লিঙ্ক : http://goo.gl/dYGrxu

লিনাক্স এর ওপর ফ্রি অনলাইন কোর্স

লিনাক্স ফাউন্ডেশন একটি অলাভজনক প্রতিষ্ঠান। তাদের বিভিন্ন কাজের মধ্যে একটি গুরুত্বপূর্ণ কাজ হচ্ছে লিনাক্স-এর উপর বিভিন্ন কোর্সের আয়োজন করা। তেমন একটি কোর্স হচ্ছে লিনাক্স পরিচিতি (Intro to Linux)। কোর্সটি করতে আপনাকে গুনতে হবে $2400 (হুম, ঠিক দেখছেন, দুই হাজার চারশ ডলার যা বাংলাদেশি টাকায় প্রায় এক লক্ষ পঁচাশি হাজার টাকা)। এই কোর্সটি অনলাইন কোর্স হিসেবে ফ্রি নিয়ে আসছে এডএক্স। আগষ্টের এক তারিখ থেকে লিনাক্স ফাউন্ডেশনের সাথে যৌথভাবে তারা এই কোর্সটি শুরু করবে।

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

কোর্সের লিঙ্ক : https://www.edx.org/course/linuxfoundationx/linuxfoundationx-lfs101x-introduction-1621

পাইথন কী?

কম্পিউটারকে দিয়ে কাজ করাতে গেলে কম্পিউটার বুঝতে পারে, এমন ভাষায় তাকে নির্দেশ দিতে হয়। এরকম প্রোগ্রামিং ভাষা অনেক রয়েছে এবং নিত্যনতুন তৈরি হচ্ছে। তবে অল্প কয়েকটি প্রোগ্রামিং ভাষাই প্রোগ্রামারদের কাছে জনপ্রিয় হতে পেরেছে। তেমন একটি প্রোগ্রামিং ভাষা হচ্ছে পাইথন যেটি তৈরি করেন গুইডো ভন রুযাম (Guido van Rossum)। ১৯৮৯ সালের ডিসেম্বর মাসে ক্রিসমাসের ছুটিতে তিনি পাইথন তৈরি করা শুরু করেন। তবে পাইথন সবচেয়ে বেশি জনপ্রিয়তা পায় ২০০০ সালে তার ২.০ সংস্করণ চালু হওয়ার পরে। বর্তমানে পাইথনের ২.৭ এবং ৩.৪ এই দুটি সংস্করণ চালু রয়েছে।

Guido Van Rossum

পাইথন একটি উচ্চস্তরের প্রোগ্রামিং ভাষা। পাইথন স্ট্রাকচার্ড প্রোগ্রামিং এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং করা যায়। এছাড়া ফাংশনাল প্রোগ্রামিংও করা যায় পাইথন দিয়ে। সাম্প্রতিক একটি জরিপে [১] দেখা যায় যে সারা পৃথিবীতে বর্তমানে জনপ্রিয়তার বিচারে পাইথনের স্থান চতুর্থ (শীর্ষ তিনটি হচ্ছে, জাভা, সি, সি প্লাস প্লাস), আর যুক্তরাষ্ট্রের শীর্ষ বিশ্ববিদ্যালয়গুলোর ৬৯% তার শিক্ষার্থীদের প্রোগ্রামিংয়ের সাথে পরিচয় করিয়ে দেয় পাইথন ব্যবহার করে [২]। এছাড়া বিশ্ববিখ্যাত প্রতিষ্ঠান গুগলের তিনটি অফিশিয়াল প্রোগ্রামিং ভাষার একটি হচ্ছে পাইথন।

পাইথনের এত জনপ্রিয় হওয়ার কারণ কী? পাইথন প্রোগ্রামাররা নিচের কারণগুলোকেই প্রধান মনে করেন:‌

  • পাইথন কোড সহজে পড়া যায়
  • কোড সি বা জাভার চেয়ে তুলনামূলক অনেক ছোট হয়
  • পাইথনে রয়েছে লিস্ট, ডিকশনারি ও সেটের মতো চমৎকার ডাটা স্ট্রাকচার
  • পাইথন বিভিন্ন প্ল্যাটফর্মে ব্যবহার করা যায়
  • বিশাল ও কার্যকর স্ট্যান্ডার্ড লাইব্রেরি রয়েছে
  • শক্তিশালী অনলাইন কমিউনিটি
  • চমৎকার ওয়েব ফ্রেমওয়ার্ক (জ্যাঙ্গো, ফ্লাস্ক ইত্যাদি)

মোটামুটি সব লিনাক্স ডিস্ট্রিবিউশন ও ম্যাক অপারেটিং সিস্টেমে পাইথন বিল্ট-ইন থাকে, আলাদাভাবে ইনস্টল করতে হয় না। উইন্ডোজে পাইথন আলাদা করে ইনস্টল করতে হয়, যা পাইথনের অফিয়াল ওয়েবসাইট [৩] থেকে ডাউনলোড করা যায়।

পাইথন সবচেয়ে বেশি ব্যবহৃত হয় ওয়েব ভিত্তিক সফটওয়্যার নির্মাণে। জ্যাঙ্গো (django) ফ্রেমওয়ার্কটি খুবই জনপ্রিয়। এছাড়া বিভিন্ন অটোমেশন সফটওয়্যার নির্মাণ, বায়ো ইনফরমেটিক্স, মেশিন লার্নিং, ডাটা এনালাইসিস, ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং, ওয়েব ক্রলার তৈরিতেও পাইথনের ব্যাপক ব্যবহার রয়েছে। বিশ্বের সাথে তাল মিলিয়ে বাংলাদেশেও শুরু হয়েছে পাইথনের ব্যবহার। বেশ কিছু দেশীয় সফটওয়্যার নির্মাতা প্রতিষ্ঠানে পাইথন ব্যবহার করা হচ্ছে। বাংলাদেশ অভ্যন্তরীণ নৌ পরিবহন কর্তৃপক্ষ (বিআইডব্লিউটিএ)-এর অটোমেশনের লক্ষ্যে নির্মিত ‘ওয়েব বেইজড ডাটাবেজ’ সফটওয়্যারটি পাইথন দিয়েই তৈরি করেছে শাহজালাল বিজ্ঞান ও প্রযুক্তি বিশ্ববিদ্যালয় এবং মুক্ত সফটওয়্যার লিমিটেড।

পাইথন শেখার জন্য পাইথনের অফিশিয়াল টিউটোরিয়াল রয়েছে [৪]। এছাড়া অনলাইনে রয়েছে বিভিন্ন বই ও অনলাইন কোর্স। তবে বাংলা ভাষায়ও পাইথন শেখার সুযোগ রয়েছে অনলাইনে। একেবারে নতুনদের জন্য আছে ‘হুকুশ পাকুশের প্রোগ্রামিং শিক্ষা’ [৫] যেটি তৈরি করেছেন ইকরাম মাহমুদ। আর ‘পাইথন পরিচিতি’ [৬] নামে ধারাবাহিক ভিডিও লেকচার রয়েছে যা পাইথন শেখার জন্য বেশ কার্যকর। সম্প্রতি দ্বিমিক কম্পিউটিং স্কুল [৭], বাংলাদেশ পাইথন ইউজার গ্রুপ [৮] ও বাংলাদেশ ওপেন সোর্স নেটওয়ার্ক মিলে প্রথমবারের মতো আয়োজন করে ‘পাইকন ঢাকা ২০১৪’ যা পাইথনের উপর বাংলাদেশে প্রথম আন্তর্জাতিক সম্মেলন।

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

লিঙ্কঃ
১) http://goo.gl/DiWrtA
২) http://goo.gl/eDyqM0
৩) http://python.org
৪) http://goo.gl/QTfyY1
৫) http://hukush-pakush.appspot.com
৬) http://pyvideo.subeen.com
৭) http://dimikcomputing.com
৮) http://pycharmers.net

লেখাটি প্রথম আলোতে প্রকাশিত হয় ২৫-০৭-২০১৪ তারিখে।

অনলাইন সংস্করণ: http://www.prothom-alo.com/technology/article/276553

ই-প্রথম আলো: http://epaper.prothom-alo.com/index.php?opt=view&page=28&date=2014-07-25

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

কম্পিউটারের মেমোরি

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

তোমরা তো ইতিমধ্যেই জেনে গিয়েছ যে কম্পিউটার যে হিসাবনিকাশ করে, সেগুলো যত বড় বড় হিসেবই হোক না কেন, শেষ পর্যন্ত কম্পিউটার কেবল শূণ্য আর এক ব্যবহার করে হিসেব করে (এই হিসেব করাটাকেই আমরা প্রসেস করা বলছি মাঝে মাঝে)। তো এই 0 এবং 1-গুলো রাখার জন্য আমাদের জায়গা দরকার। সেই জায়গাটি দেয় কম্পিউটারের মেমোরি। এই 0 আর 1, এগুলো হচ্ছে একেকটি বিট (ইংরেজিতে bit)। একটি বিট যে কোনো এক রকমের হবে, হয় শূণ্য (0) না হয় এক (1)। তাহলে একটি বিট দিয়ে দুটি আলাদা জিনিস প্রকাশ করা সম্ভব, যখন বিটটি হবে 0 তখন এক রকম, আবার যখন 1 তখন আরেক রকম। তাহলে পাশাপাশি দুটি বিট দিয়ে কয়টি আলাদা জিনিস রাখা যায়? তোমরা একটু চিন্তা করো তো। চিন্তা করা শেষ হলে নিচের টেবিলটি দেখো:

১ম বিট

২য় বিট

0

0

0

1

1

0

1

1

তাহলে দুটি বিট পাশাপাশি রাখলে চারটি আলাদা জিনিস রাখা যায়, 00, 01, 10 11। এবারে তোমার জন্য কাজ। খাতাকলম নিয়ে বসে পরো এবং তিনটি ও চারটি বিটের ক্ষেত্রে কতটি করে আলাদা জিনিস রাখা সম্ভব সেটি বের করো। উত্তর হবে যথাক্রমে 8 16। তাহলে দাঁড়াচ্ছে 2, 3 4টি করে বিটের ক্ষেত্রে যথাক্রমে 4, 8 16টি পৃথক জিনিস রাখা যায়। তাহলে তোমাদের যেহেতু বুদ্ধিশুদ্ধি বেশি, তোমরা সহজেই বলে দিতে পারবে, 5টি বিটের জন্য 32, 6টি বিটের জন্য 64, 7টি বিটের জন্য 128টি পৃথক জিনিস রাখা সম্ভব। তাহলে 8টি বিটের জন্য কত? উত্তর হবে 256। আর যাদের সামান্য একটু গাণিতিক বুদ্ধি আছে, তারা কিন্তু এতক্ষণে মনে মনে একটি সূত্র বের করে ফেলেছো। nটি বিট থাকলে 2n টি পৃথক জিনিস রাখা সম্ভব।

বাইট শব্দটি নিশ্চয়ই তোমরা শুনেছ? ইংরেজিতে byte। তবে এই শব্দের মানে কিন্তু কামড় নয়, সেটির ইংরেজি bite। আটটি বিট পাশাপাশি রেখে তৈরি হয় একটি বাইট। তাহলে এক বাইটে কতটি আলাদা জিনিস রাখা যায়? আমি জানি তোমরা চট্ করে বলে দিতে পারবে, 256টি।

তোমরা সবাই ক্যারেক্টার টাইপের (char) ভেরিয়েবলের সাথে পরিচিত। তাহলে এখন তোমরা নিশ্চয়ই বুঝতে পারছ যে একটি ক্যারেক্টার টাইপের ভেরিয়েবলে 256টি আলাদা জিনিস রাখা সম্ভব। এজন্যই আমরা বিভিন্ন অক্ষর, সংখ্যা, চিহ্ন এগুলোকে ক্যারেক্টার টাইপের ভেরিয়েবলের মধ্যে রাখি। প্রতিটি অক্ষরের একটি মান রয়েছে যাকে সংখ্যা দিয়ে প্রকাশ করা যায়। যেমন a-এর মান 97, b-এর মান 98, c-এর মান 99, এভাবে z-এর মান 122। আবার A-এর মান 65, B-এর মান 66, C-এর মান 67, এভাবে Z-এর মান 90, 0 থেকে 9 পর্যন্ত চিহ্নগুলোর মান যথাক্রমে 48 থেকে 57। এই মানগুলোকে বলে ASCII মান। ASCII হচ্ছে American Standard Code for Information Interchange-এর সংক্ষিপ্তরূপ। ইংরেজি সমস্ত অক্ষর, চিহ্ন সবগুলোরই ASCII মান রয়েছে। এখন তোমার মনে প্রশ্ন জাগতে পারে, পৃথিবীর বাকী ভাষাগুলো কী দোষ করল? তাদের সব অক্ষরের জন্য ASCII মান নেই কেন? আসলে 8 বিটে আমরা তো মোটে 256টি জিনিস রাখতে পারি, তাই সবার জায়গা দেওয়া সম্ভব হয় নি। অন্য সব ভাষার জন্য রয়েছে Unicode

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

আমাদের প্রথম প্রোগ্রামঃ

#include <stdio.h>

int main()

{

    int i;

    for (i = 33; i <= 126; i++) {

        printf(“ASCII code for %c is %dn”, i, i);

    }

    return 0;

}

আমাদের দ্বিতীয় প্রোগ্রামঃ

#include <stdio.h>

int main()

{

    char small_letter, capital_letter;

    printf(“Please enter a small letter: “);

    small_letter = getchar();

    capital_letter = small_letter – 32;

    printf(“The capital letter is: %cn”, capital_letter);

    return 0;

}

এখন তোমার কাজ হবে একটি ফাংশন লেখা, যেটি প্যারামিটার হিসেবে একটি ক্যারেক্টার টাইপের ভেরিয়েবল নিবে এবং সেটি যদি কোনো অঙ্ক (digit) হয়ে, তবে 1রিটার্ণ করবে, আর না হলে 0 রিটার্ণ করবে। কাজ শেষ হলে চলো, আমরা মেমোরি নিয়ে আলাপআলোচনায় ফেরত যাই।

ইন্টিজার টাইপের ভেরিয়েবলের আকার হচ্ছে চার বাইট, মানে 32 বিট। এই 32 বিটে আমরা 232টি বা 4294967296টি সংখ্যা রাখতে পারি। এখন আমরা যদি কেবল ধনাত্মক সংখ্যা রাখতে চাই, তাহলে 0 থেকে 4294967295 পর্যন্ত রাখা যাবে। এ ধরণের ভেরিয়েবলকে বলে unsigned ভেরিয়েবল। আর যেসব ভেরিয়েবলে ধনাত্মক ও ঋনাত্মক – উভয় প্রকারের সংখ্যা রাখা যায়, তাকে বলে signed ভেরিয়েবল, তবে এক্ষেত্রে আলাদাভাবে সেটির উল্লেখ থাকে না। তাহলে আমরা বুঝতে পারলাম কেনো int টাইপের ভেরিয়েবলে -2147483648 থেকে 2147483647 পর্যন্ত সংখ্যা রাখা যায় আর কেনো unsigned int টাইপের ভেরিয়েবলে 0 থেকে 4294967295 পর্যন্ত সংখ্যা রাখা যায়।

কম্পিউটারের মেমোরিতে ক্ষুদ্রতম একক হচ্ছে বাইট। পরপর অনেকগুলো বাইট মেমোরিতে সাজানো থাকে। প্রতিটি বাইটের আবার নির্দিষ্ট ঠিকানা বা এড্রেস রয়েছে। তুমি যখন কোনো ক্যারেক্টার ভেরিয়েবল ডিক্লেয়ার করবে, সেটি মেমোরির একটি বাইট দখল করে ফেলবে। আবার তুমি যদি ইন্টিজার ভেরিয়েবল ডিক্লেয়ার করো তাহলে সেটি মেমোরির পরপর চারটি বাইট দখল করবে। ব্যাপারটি বোঝানোর জন্য নিচের ছবিটির মতো চিন্তা করা যায়। তোমরা দেখতে পাচ্ছ ছবিতে দশটি ঘর রয়েছে। প্রতিটি ঘরের আকার হচ্ছে এক বাইট। আবার প্রতিটি ঘরের আলাদা ঠিকানা বা এড্রেস রয়েছে। ধরে নিই, প্রথম ঘরের এড্রেস হচ্ছে 100। তাহলে পরের ঘরের এড্রেস হবে 101, তার পরের ঘরের এড্রেস হবে 102, এরকম। ছবিতে এড্রেসগুলো মূল ঘরের নিচে আরেকটি ঘরে লেখা হয়েছে।

100

101

102

103

104

105

106

107

108

109

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

এবারে নিচের প্রোগ্রামটা ঝটপট টাইপ করে রান করো। কম্পাইল করার সময় ওয়ার্নিং দেখাবে, সেটিকে এড়িয়ে যাবে এবং প্রোগ্রামটি রান করবে।

#include <stdio.h>

int main()

{

    char ch1 = ‘A’, ch2 = ‘B’;

    int n1 = 100, n2 = 100000;

    unsigned int address1 = &ch1;

    unsigned int address2 = &ch2;

    unsigned int address3 = &n1;

    unsigned int address4 = &n2;

    printf(“%c, %un”, ch1, address1);

    printf(“%c, %un”, ch2, address2);

    printf(“%d, %un”, n1, address3);

    printf(“%d, %un”, n2, address4);

    return 0;

}

আউটপুট কী? একেক জনের আউটপুট একেক রকম হবে, কারণ মেমোরির কোন জায়গায় কোন ভেরিয়েবল থাকবে, তার কোনো ঠিক নেই। এখন তোমরা লক্ষ করো, কোনো ভেরিয়েবল যদি n হয়, তবে তার এড্রেস হচ্ছে &n। একারণের আমরা scanf ফাংশন ব্যবহার করে কোনো ভেরিয়েবল ইনপুট নেওয়ার জন্য ভেরিয়েবলের নামের আগে & চিহ্ন ব্যবহার করি। কিন্তু অ্যারের বেলাতে সেটি করতে হয় না, কারণ অ্যারের নামটিতেই অ্যারের শুরুর এড্রেসটি থাকে। অর্থাৎ কোনো অ্যারে যদি হয় int ara[10], সেখানে ara-এর মান প্রিন্ট করলেই অ্যারের এড্রেস পাওয়া যায়।

এখন তুমি নিচের প্রোগ্রামটিও আগের মতো রান করবে (ওয়ার্নিং দেখালে পাত্তা দেওয়ার দরকার নেই)

#include <stdio.h>

int main()

{

    int ara[5] = {50, 60, 70, 80, 90};

    printf(“%d, %d, %d, %d, %dn”, ara[0], ara[1], ara[2], ara[3], ara[4]);

    printf(“%un”, ara);

    printf(“%un”, &ara[0]);

    printf(“%un”, &ara[1]);

    return 0;

}

প্রোগ্রামটির প্রথম লাইনে প্রিন্ট হবে অ্যারের উপাদানগুলো। দ্বিতীয় লাইন প্রিন্ট হবে অ্যারের শুরুর এড্রেস। একেক জনের কম্পিউটারে আউটপুট একেক রকম হবে। দ্বিতীয় লাইনে যা প্রিন্ট হবে, তৃতীয় লাইনে ঠিক তাই প্রিন্ট হবে, কারণ অ্যারের শুরুর এড্রেস আর অ্যারের প্রথম উপাদানের এড্রেস একই জিনিস। চতুর্থ লাইনে অ্যারের দ্বিতীয় উপাদানের এড্রেস প্রিন্ট হবে, যা প্রথম উপাদানের এড্রেসের চেয়ে চার বেশি। কারণ প্রথম উপাদান পরপর চারটি বাইট দখল করবে। যদিও তোমার মনে হতে পারে, 50 কেনো চার বাইট জায়গা নেবে, এক বাইটেই তো লিখা যায়, কিন্তু যখনই তুমি ডাটা টাইপ int বলে দিবে, তখনই চার বাইট জায়গা দখল হয়ে যাবে।

সিতে sizoeof নামে একটি অপারেটর আছে, যেটি বলে দেয় কোন ভেরিয়বলের সাইজ কত বাইট। নিচের প্রোগ্রামটি হুবুহু টাইপ করো, তারপরে কম্পাইল ও রান করো। এখন নিজে নিজে চিন্তা করে বুঝে নাও যে sizeof কিভাবে ব্যবহার করতে হয়।

#include <stdio.h>

int main()

{

    int num;

    char ch;

    double d_num;

    float f_num;

    printf(“%lun”, sizeof(int));

    printf(“Size of int: %dn”, sizeof(num));

    printf(“Size of char: %dn”, sizeof(ch));

    printf(“Size of double: %dn”, sizeof(d_num));

    printf(“Size of float: %dn”, sizeof(f_num));

    return 0;

}

এখন চলো জেনে নিই, কম্পিউটারে কয় ধরনের মেমোরি আছে।

কম্পিউটারের মেমোরিকে মোটা দাগে দুই ভাগে ভাগ করা যায়, অস্থায়ী ও স্থায়ী। ইংরেজিতে বলে ভোলাটাইল (volatile) ও ননভোলাটাইল (non volatile)। যেসব মেমোরীতে কম্পিউটার বন্ধ থাকলেও ডাটা সংরক্ষিত থাকে, তাকে বলে স্থায়ী (non volatile) মেমোরি, যেমন হার্ড ডিস্ক, রম, ডিভিডি, ইউএসবি ড্রাইভ। আর যেসব মেমোরির ডাটা কম্পিউটার বন্ধ (ক্ষেত্রবিশেষে প্রোগ্রাম বন্ধ) করলে হারিয়ে যায়, সেগুলোকে বলে অস্থায়ী মেমোরি, যেমন রেম (RAM)। কম্পিউটার প্রোগ্রামগুলো ডাটা নিয়ে কাজ করার সময় অস্থায়ী মেমোরি ব্যবহার করে। স্থায়ী মেমোরিগুলো বেশ ধীরগতির হয় বলে সেগুলো ব্যবহার করা হয় না।

কম্পিউটারের প্রসেসরের মধ্যেও কিন্তু মেমোরি আছে, প্রসেসরের সবচেয়ে কাছে থাকে রেজিস্টার, আর তার পরেই থাকে ক্যাশ মেমোরি। সি ল্যাঙ্গুয়েজে আমরা চাইলে কোনো ভেরিয়েবলকে রেজিস্টারে রাখার জন্য এভাবে ডিক্লেয়ার করতে পারি: register int number;। সেসব ভেরিয়েবলকেই আমরা রেজিস্টারে রাখার চেষ্টা করবো যেগুলো প্রোগ্রামের ভেতরে সবচেয়ে বেশি ব্যবহার করা হয়। তবে আজকাল রেজিস্টারে এভাবে না রাখলেও চলে, কম্পাইলারগুলো নিজেরাই বুঝে নেয় কোন ভেরিয়েবল কোথায় রাখতে হবে। রেজিস্টারের চেয়ে ক্যাশ মেমোরির আকার বড়, মানে বেশি তথ্য ধারণ করতে পারে, তবে গতি একটু কম। তারপরে আসে RAMRAM প্রসেসরের বাইরে মাদারবোর্ডে সংযুক্ত থাকে। ক্যাশের তুলনায় RAM-এর আকার বেশ বড়, তবে গতিও কম। এখন তোমরা প্রশ্ন করতে পারো, রেজিস্টার আর ক্যাশের আকার আরো বেশি হলে কী সমস্যা ছিল? শুধু শুধু RAM-এর ব্যবহার কেন করছি? আসলে রেজিস্টার মেমোরি তৈরিতে খরচ সবচেয়ে বেশি, তারপরে ক্যাশ মেমোরি। RAM তাদের তুলনায় বেশ সস্তা। RAM-এর পরে আসে ভার্চুয়াল মেমোরি। RAM-এ যখন জায়গা হয় না, তখন হার্ডডিস্কের একটা অংশকে কম্পিউটারের অপারেটিং সিস্টেম মেমোরি হিসেবে ব্যবহার করতে দেয় প্রোগ্রামগুলোকে। সেটা অবশ্যই RAM-এর তুলনায় ধীর গতির। নিচের ছবিটির দিকে একবার চোখ বুলিয়ে নাওঃ

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

 

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

উদ্যোক্তা বিষয়ক সাক্ষাৎকার – সুবিন

“দেশের তরুণ আইটি উদ্যোক্তাদের গল্প”
বাংলাদেশের তথ্যপ্রযুক্তি খাতে তরুণদের অবদান অপরিহার্য, মূলত তরুণ প্রযুক্তিবিদদের চৌকস দক্ষতা ও অপরিসীম ধৈর্য্যের দ্বারা এই খাত এগিয়ে চলছে প্রতিনিয়ত। বেশিরভাগ দেশী-বিদেশী বিভিন্ন প্রতিষ্ঠানে চাকুরীরত থাকলেও কিছু ব্যাতিক্রমও রয়েছেন। বেশ কয়েকজন প্রতিভাবান তরুণ অন্য জায়গায় চাকরি করার বদলে নিজেরাই গড়ে তুলেছেন প্রতিষ্ঠান, চাকরি দিচ্ছেন অন্যদের, আয় করছেন বৈদেশিক মুদ্রা, অণুপ্রেরণা হয়ে আছেন তাদের নবীনদের মধ্যে!
তাদের সফলতা, ব্যর্থতা, অর্জন আর পেছনের গল্প নিয়ে জানুয়ারি, ২০১৩ সংখ্যা থেকে “কম্পিউটার জগত” ম্যাগাজিনে প্রতি সংখ্যায় প্রকাশিত হবে একটি করে সাক্ষাৎকার। আশা করি এর মাধ্যমে নবীনরা অনূপ্রাণিত হবে তাদের অভীষ্ট স্বপ্ন “আইটি উদ্যোক্তাতা” হওয়ার লক্ষে। এই সিরিজ সাক্ষাৎকারগুলোর প্রথম পর্বে থাকছে দেশের একজন স্বনামধন্য  সফটওয়্যার প্রকৌশলী এবং সফল তরুণ আইটি উদ্যোক্তা তামিম শাহ্‍‍রিয়ার (সুবিন) এর, সাক্ষাৎকারটি নিয়েছেন মৃণাল কান্তি রায় দীপ।

দীপঃ প্রথমে আপনি এবং আপনার প্রতিষ্ঠান সম্পর্কে কিছু বলুন?
সুবিনঃ আমি তামিম শাহ্‍‍রিয়ার। তবে পরিচিতজনেরা আমাকে সুবিন (ডাকনাম) নামেই ডাকে। পেশায় সফটওয়্যার প্রকৌশলী। আমি শাহজালাল বিজ্ঞান ও প্রযুক্তি বিশ্ববিদ্যালয়ের কম্পিউটার সায়েন্স ও ইঞ্জিনিয়ারিং বিভাগ থেকে স্নাতক সম্পন্ন করি ২০০৬ সালে। বর্তমানে আমি কাজ করছি আমার নিজের প্রতিষ্ঠান মুক্ত সফটওয়্যার লিমিটেড-এ। মুক্ত সফটওয়্যার প্রতিষ্ঠিত হয় ২০০৯ সালে। আমার সাথে সহপ্রতিষ্ঠাতা ছিলেন মোহাম্মাদ মাহমুদুর রহমান যিনি বর্তমানে মুক্ত সফটের চেয়্যারম্যান ও প্রধান কারিগরি কর্মকর্তার দায়িত্ব পালন করছেন।

দীপঃ আমাদের দেশের বেশীরভাগ শিক্ষার্থীরা পড়ালেখা শেষে চাকরি খুঁজতে ব্যস্ত থাকে সেক্ষেত্রে আপনি ভিন্ন হলেন কেন?
সুবিনঃ আসলে আমার উদ্যোক্তা হবার কোনো সুনির্দিষ্ট পরিকল্পনা ছিল না। আমার ক্যারিয়ার শুরু হয় একটি বেসরকারি বিশ্ববিদ্যালয়ে শিক্ষকতার মাধ্যমে। সেখানে ২ সেমিস্টার কাটানোর পড়ে আমি বুঝতে পারি যে আমি আসলে কিছু শিখছি না, তাই চাকরী ছেড়ে দেই। তারপরে সফটওয়্যার ইঞ্জিনিয়ার হিসেবে প্রথমে দেশের খ্যাতনামা একটি কোম্পানীতে যোগ দেই। সেখানে দেড় বছর কাজ করার পরে আরো দেড় বছর কাজ করি প্লেডম বাংলাদেশে (তৎকালীন ট্রিপার্ট ল্যাবস)। চাকরী করতে গিয়ে আমার মনে হয়েছে আমার পুরোপুরি মেধা ও শ্রম আসলে কাজে লাগাতে পারছি না। তাই আমার কাছে মনে হয়েছে নিজেই একটি প্রতিষ্ঠান খুলে ফেলি যেখানে আমি আমার মেধা ও শ্রমের পর্যাপ্ত ব্যবহার করতে পারবো।

দীপঃ ব্যাক্তিগত ভাবে একজন ভালো প্রোগ্রামার হওয়ায় আপনার কাছে হয়ত বিদেশী প্রতিষ্ঠানের আমন্ত্রন ছিলো, সেটা উপেক্ষা করে নিজে কিছু করার উৎসাহ এবং অনুপ্রেরণা কেমন করে পেলেন?
সুবিনঃ হ্যাঁ, বিদেশি প্রতিষ্ঠান থেকে আমি চাকরির ইন্টারভিউ অফার পেয়েছিলাম। ফেসবুক থেকে আমাকে চাকরির ইন্টারভিউ-র জন্য আমন্ত্রণ জানানো হয় ২০১০ সালের জুন মাসে, আর গুগল থেকে চাকরির ইন্টারভিউ অফার পাই ২০১১ সালের ফেব্রুয়ারি মাসে। তাদেরকে আমি তখন ইন্টারভিউ দিতে অপারগতা জানাই এবং আরো কয়েকবছর আমার নিজের দেশে কাটানোর ইচ্ছার কথা জানাই। সেগুলো উপেক্ষা করা আমার জন্য মোটেও কঠিন কিছু ছিল না। কারণ আমি দেশে থাকতে চেয়েছিলাম। আর দেশে থাকার অনেকগুলো কারণের মধ্যে প্রধান ছিল বাবা-মা’র সাথে থাকা।
আর এপিজে আবুল কালামের “উইসং অব ফায়ার” বইটি আমাকে অনুপ্রাণিত করেছে।

দীপঃ শুরুটা কেমন? মূলধন কি রকম এবং কতজন পেশাদার নিয়ে শুরু হয়েছিলো “মুক্ত সফটওয়্যার”?
সুবিনঃ তখন রেন্টএকোডার ডট কম (rentacoder.com) নামের একটি সাইটে আমি মাঝে মাঝে কাজ করতাম। সেখানে আমার রেটিং বেশ ভালো ছিল। সেটাকেই মূলত আমাদের ব্যবসার মূলধন হিসেবে ধরতে পারেন। আর টাকা বিনিয়োগ করতে হয়েছে ছয়-সাত লাখের মতো। সেই টাকা এসেছিল আমাদের নিজেদের জমানো টাকা থেকে। এ ছাড়া আমি ব্যাংক থেকে পার্সোনাল লোন নিয়েছিলাম। শুরুর সময় আমি যেহেতু চাকরি করতাম, মাহমুদ-ই কোম্পানী দেখাশোনা করত। ২০১০ এর জুন মাসে আমি চাকরি ছেড়ে পুরোপুরি নিজের প্রতিষ্ঠানে চলে আসি। ২০০৯ সাথে আমাদের কোম্পানিতে ফুলটাইম পেশাদার ছিল ৩ জন, আর ২০১২ সালে সেটি এসে দাঁড়ায় ১২ জনে।

দীপ: লোন পেতে কোনো সমস্যা হয় নি?
সুবিন: না, কারণ তখন আমি ভালো বেতনের চাকরি করতাম। তাই ব্যাংক খুশিমনেই আমাকে লোন দিয়েছে। তবে এখন মনে হয় দিবে না।

দীপঃ আপনার প্রতিষ্ঠান থেকে কি ধরনের সার্ভিস দেয়া হয়ে থাকে বা কি ধরনের প্রজেক্ট আপনারা নিয়ে থাকেন?
সুবিনঃ আমরা মূলত কাস্টমাইজড সফটওয়্যার তৈরি করি। আমাদের কাজের প্লাটফর্মে বেশ বৈচিত্র আছে। আমরা রিচ ইন্টারনেট অ্যাপ্লিকেশন (RIA – Rich Internet Application), সোশ্যাল মিডিয়া ভিত্তিক অ্যাপ্লিকেশন এবং মোবাইল অ্যাপ্লিকেশন ও গেমস (আইফোন, অ্যান্ড্রয়েড, ব্লাকবেরি ও জাভা এম ই) তৈরি করি। তবে সম্প্রতি আমরা ইআরপি (ERP – Enterprise Resource Planner) সফটওয়্যার তৈরি করছি এবং সেই সাথে বিগ ডাটা ও মেশিন লার্নিং নিয়ে কাজ করছি।

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

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

দীপঃ প্রতিষ্ঠান ব্যবস্থাপনার জন্য আলাদা কোন ব্যবস্থাপনা টিম/বিভাগ কি রয়েছে?
সুবিনঃ ব্যবস্থাপনার কাজ আমি আর মাহমুদ মিলেই করি। ভবিষ্যতে আলাদা ব্যবস্থাপনা বিভাগ খোলার পরিকল্পনা আছে।

দীপঃ আপনার প্রতিষ্ঠানের অর্জন?
সুবিনঃ ব্যাক্তিগতভাবে প্রতিষ্ঠানের অনেকেরই জাতীয় ও আন্তর্জাতিক পর্যায়ে নানা রকম অর্জন রয়েছে। সেগুলোর বাইরে প্রতিষ্ঠানের অর্জনও কিছু আছে। vworker.com (পরে freelancer.com এটিকে কিনে নেয়) সাইটে আমরা এক নম্বর বাংলাদেশি প্রতিষ্ঠান। এছাড়া ইংল্যান্ডের একটি কোম্পানীর জন্য আমাদের বানানো একটি মোবাইল অ্যাপ্লিকেশন আন্তর্জাতিক একটি কেইস স্টাডি হিসেবে দেখানো হয় ২০১১ সালে। ২০১২ সালের বেসিস কোডওয়ারিয়র-এ আমাদের কোম্পানীর একটি দল অংশগ্রহন করে এবং পিএইচপি ট্র্যাকে তারা চ্যাম্পিয়ন হয়। এছাড়া ডাটা মাইনিংয়ের উপর একটি আন্তর্জাতিক প্রতিযোগিতায় আমরা সেরা ১০% এ ছিলাম।

দীপঃ আমাদের দেশের পরিপ্রেক্ষিতে একজন আইটি উদ্যোক্তা হওয়া কতটুকু গ্রহনযোগ্য?
সুবিনঃ এখানে আসলে গ্রহনযোগ্যতার কোনো প্রশ্ন আসে না। যেকোনো কাজ, যেখানে অন্যকে ক্ষতিগ্রস্ত না করে সৎপথে উপার্জন করা যায়, তা অবশ্যই গ্রহনযোগ্য। আপনি লক্ষ করে দেখবেন, বর্তমানে তরুণ প্রজন্মের মাঝে সরকারি চাকরির গ্রহনযোগ্যতা বেশ কম – কারণ সেখানে ঘুষ-দুর্নীতির সংস্কৃতি বেশ জাকিয়ে বসেছে। আর তরুণ প্রজন্ম দুর্নীতি-বিমুখ বলেই নিতান্ত বাধ্য না হলে কেউ সরকারি চাকরিতে যেতে চায় না। যদিও কিছু ব্যতিক্রম রয়েছে, তবে তা হাতেগোনা।

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

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

দীপঃ আইটি উদ্যোক্তা হতে কি কি প্রয়োজন?
সুবিনঃ

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

——-আইটি উদ্যোক্তা হওয়ার জন্য তামিম শাহরিয়ারের কিছু টিপস——–

  • যথেষ্ট পরিমান টাকা সঞ্চয় করতে হবে যেন নতুন প্রতিষ্ঠান থেকে কোনো আয় ছাড়াই কমপক্ষে এক বছর চলা যায়
  •  ব্যক্তিগতভাবে কোনো কিছুর উপর ভালো দক্ষতা অর্জন করতে হবে।
  •  নতুন কোম্পানীতে অভিজ্ঞ ও দক্ষ ব্যক্তিদের নিয়োগ দিতে হবে। কারণ ছোট অবস্থায় অনভিজ্ঞ কাউকে নিয়ে তার দক্ষতা বাড়ানোর পিছনে সময় দেওয়া সম্ভব হয় না।
  •  ব্যাক্তিজীবনে ও প্রতিষ্ঠানের খরচের ব্যাপারে মিতব্যায়ি হতে হবে।
  • কোম্পানীর আয়-ব্যায়ের হিসাব (একাউন্টস) ঠিকভাবে রাখতে হবে।
  •  সকল প্রকার আর্থিক লেনদেন ব্যাংকের মাধ্যমে করার চেষ্টা করতে হবে।

কম্পিউটার জগত  দেশের শীর্ষস্থানীয় বাংলা কম্পিউটার ম্যাগাজিন। তারা ২০১৩ সাল থেকে দেশের তরুণ আইটি উদ্যোক্তাদের উপর একটি নিয়মিত ফিচার শুরু করে। সেই ফিচার সিরিজের জন্য প্রথম ইন্টারভিউ নিয়েছিলেন মৃণাল কান্তি রয় (দীপ)। সেটি ২০১৩ সালের জানুয়ারি মাসের সংখ্যায় প্রকাশিত হয়: http://www.comjagat.com/home/articles/morearticles/6654। 

মূল ইন্টারভিউ এখানে প্রকাশ করা হলো। আগামী দিনের তরুণ আইটি উদ্যোক্তাদের হয়ত কিছুটা কাজে লাগলেও লাগতে পারে।