Web portal of https://www.howtocode.dev
সমস্যার অনুধাবন
১- আমরা অনেকেই আছি যারা নিজেদের ব্যক্তিগত ব্লগে বিভিন্ন টেক আর্টিকেল যেমন, প্রোগ্রামিং ও সফটওয়্যার ডেভেলপমেন্ট সম্পর্কিত টিউটোরিয়াল লিখে থাকি- বাংলায় অথবা ইংলিশে। অনেকেই আছেন যারা ইতোমধ্যে বাংলায় অনেক সুন্দর সুন্দর সিরিজ পোস্ট পর্যন্ত লিখে ফেলেছেন তাদের ব্লগে বা সাইটে। কিন্তু অনেক ক্ষেত্রেই যাদের উদ্দেশ্যে এই (বাংলায়) লেখা তারা অর্থাৎ আমাদের দেশের নবীন এবং প্রোগ্রামিং-এ আগ্রহীরা সেসব উৎসের সন্ধান হয়তবা ঠিকমত পান না অথবা পেলেও সেগুলোর আপডেটের সাথে সঠিক ভাবে নিজেকে আপডেট রাখতে পারেন না।
২- অন্যদিকে, একজন শিক্ষানবিস বিশেষ করে একজন নবীন পাঠক হয়ত কোথাও প্রকাশ হওয়া একটা কোর্স শেখা শুরু করে দেয়ার পর সেটা সম্পূর্ণ না করেই অন্যখানে অথবা ওই জায়গাতেই একই বিষয়ের উপর প্রকাশ হওয়া আরেকজন লেখকের আরেকটি কোর্স শুরু করে দেন। এতে করে হয়তবা তিনি কোর্সটির একটি সাধারণ পর্যায় শেষ করার আগেই বার বার দ্বিধাদ্বন্দ্বে পরে যান যে- তিনি কোন কোর্সটি থেকে শেখা শুরু ও শেষ করবেন। কারন প্রথমত তিনি ওই বিষয়ের ব্যাপারে একদমই অজ্ঞ এবং দ্বিতীয়ত কনফিউজড।
৩- আরেকটা ব্যাপার ঘটে অনলাইনে যেকোনো তথ্য শেয়ার করার ক্ষেত্রে। কেউ যখন (অবশ্যই সৎ উদ্দেশ্যে) কোন একটা পোস্ট, আর্টিকেল বা কোর্স তৈরি করে সবার সাথে শেয়ার করেন তখন প্রথমত তার কন্টেন্টে অনিচ্ছাকৃত কোন ভুল তথ্য থেকে যেতে পারে, দ্বিতীয়ত ওই কোর্সটি পরবর্তীতে হয়ত সেটার সাবজেক্টের সাথে সম্পর্কিত বিষয়ের আপডেটের সাথে সাথে নিজে আপডেট হয় না, তৃতীয়ত পাঠকের সাথে সমন্বয় করে কন্টেন্টটিকে সর্বদা পরিবর্তন-পরিবর্ধন সম্ভব হয় না।
আইডিয়া
১- এই চিন্তা থেকেই howtocode.dev সাইটের জন্ম এবং আমরা চাচ্ছি এখানে Java, Python, C/C++, Objective-C, Swift, Go, PHP, Ruby ইত্যাদি প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং django, wordpress, angular.js, git এর মত টুলস এর ব্যবহার নিয়ে বাংলা কোর্স থাকবে। সহজভাবে বলতে গেলে অনেক অনেক প্রয়োজনীয় কোর্সের একটা স্থায়ী ঠিকানা। সবাই একটা জায়গাতে এসেই বাংলায় লেখা প্রোগ্রামিং ও সফটওয়্যার ডেভেলপমেন্ট সম্পর্কিত কিছু সুন্দর কোর্স পেয়ে যাবেন। বাংলা ভাষা জানেন এমন সবাই যাতে সহজে সংক্ষেপে একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ বা সফটওয়্যার ডেভেলপমেন্ট সম্পর্কিত টুলস বিষয়ে সহজ ও সাবলীল ভাবে জানতে পারেন।
২- একটি কোর্সের একাধিক লেখক থাকতে পারেন কিন্তু কোন একটি টপিকের উপর মাল্টিপল বা রিপিট কোর্স থাকবে না। ওই কোর্সটি শুধু সময়ের প্রয়োজনে আপডেট হতে পারে। তো প্রশ্ন হতে পারে- সেই একের অধিক লেখক কারা? উত্তর হচ্ছে সবাই। হ্যাঁ সবাই। প্রথমত কোন লেখক হয়ত একটা কোর্স শুরু করে দিতে পারেন কিন্তু পরবর্তীতে তিনি হয়ত যেকোনো কারনে আর লেখা গুলো এগিয়ে নিয়ে যেতে পারছেন না। সেক্ষেত্রে ওই বিষয়ের উপর অভিজ্ঞ এবং নিজের জ্ঞান অন্য সবার সাথে শেয়ার করতে চান এমন কেউ একজন ওই কোর্স বা বইটিতে লিখে সেটার পূর্ণতা দিতে পারেন। এতে করে একাধিক লেখক মিলে একটা জায়গাতেই তাদের জ্ঞান সবার সাথে শেয়ার করতে পারছেন। পাঠকরাও সবসময় পূর্ণ একটি কোর্স শেখার সুযোগ পাচ্ছেন।
৩- আবার কোন একজন লেখক হয়ত ওই কোর্সে থাকা কোন একটি তথ্যের ভুল ধরিয়ে দিয়ে সেটার জন্য সঠিক তথ্যটি দিয়ে ছোট পরিসরে অবদান রাখতে পারেন। আরেকজন হয়ত ওই কোর্সের কিছু পুরনো হয়ে যাওয়া তথ্য যেটা ওই বিষয়ের সমসাময়িক সাবজেক্টের সাথে এখন আর যায় না সেই টুকু ঠিক করে দিয়েও অবদান রাখতে পারেন। এমনকি, ওই কোর্সের একজন পাঠকও কোন একটি তথ্যের পরিবর্তন চেয়ে রিকোয়েস্ট দিতে পারেন। এভাবে কোর্সটি আস্তে আস্তে সবচেয়ে কম ভুল সম্পন্ন, সবচেয়ে বেশি সমন্বয়কৃত এবং সব সময়ের জন্য আপডেটেড একটি কোর্সে রূপ নিবে।
আরও সমস্যা – প্রযুক্তিগত এবং অর্থগত
উপরে উল্লেখিত- “মিলিত অবদান” বিষয়ক সমাধানটি বাস্তবায়ন করতে গিয়ে আমরা এমন কোন প্রযুক্তিগত কাঠামোর কথা ভাবিনি যেটা গঠন করতে যথেষ্ট সময়, প্রতিনিয়ত তত্ত্বাবধান এবং শ্রমের প্রয়োজন। সাথে সাথে এটাও মাথায় রাখতে হয়েছে- যেহেতু এটা সবার জন্য বিনামূল্যে একটি সেবা মূলক কাজ সেহেতু এর পিছনে প্রয়োজনীয় অর্থ কই থেকে আসতে পারে।
এবং একটি সফল বাস্তবায়ন
প্রযুক্তিগত কাঠামোর ক্ষেত্রে আমরা বেছে নিয়েছি সবচেয়ে আধুনিক, নিরাপদ এবং বিশ্বাসযোগ্য কিছু মাধ্যম যেগুলো একই সাথে শক্তিশালী এবং বিনামূল্যে ব্যাবহার করা যায়। বুঝিয়ে বলা যাক- আমাদের প্রত্যেকটি কোর্স থাকছে github (এটি হচ্ছে দুনিয়ার সব বড় বড় সফটওয়্যার এবং ওপেনসোর্স জিনিস রাখার উত্তম একটি জায়গা) নামের একটি সোর্সকোড হোস্টিং-এ পাবলিক রিপোজিটরি হিসেবে। এবং ওই রিপোজিটরি গুলো ব্যাবহার করে git ভার্সন কন্ট্রোলিং নামক একটি টুল যার মাধ্যমে এর মধ্যে থাকা কন্টেন্ট গুলোকে সবার সাহায্য নিয়ে পরিবর্তন করা যায় এবং আগের পরিবর্তন গুলোর সাথে বর্তমান অবস্থার একটি সময়চিত্রও দেখা যায়। সাথে সাথে সব কন্ট্রবিউটর এর সুপারিশ করা পরিবর্তন গুলো যাচাই বাছাই করে শুধুমাত্র গ্রহণযোগ্য পরিবর্তন গুলোকেই একীভূত করা যায় খুব সহজেই।
আর এই রিপোজিটরি থেকে প্রতিবার আপডেটের পরপরই স্বয়ংক্রিয় ভাবে প্রত্যেকটি কোর্সের স্বাধীন ওয়েব অ্যাড্রেসে (যেমন পাইথনের জন্য http://python.howtocode.dev) একটি সুন্দর পাঠ যোগ্য বই তৈরি হয়ে যায়। এর জন্য gitbook নামের একটি ফ্রি ওয়েব সার্ভিস ব্যাবহার করা হয়েছে।
এমনকি আমাদের মুল সাইট http://www.howtocode.dev নিজেও একটি ওপেন সোর্স পাবলিক রিপোজিটরি। ভার্সন কন্ট্রোলিং এবং ওয়েব প্রোগ্রামিং বোঝা যে কেউ এই সাইটের যেকোনো রকম পরিবর্তন করে আপডেট রিকোয়েস্ট দিতে পারেন এবং সেটা গ্রহণযোগ্য হলে সাথে সাথেই মুল সাইট আপডেট হয়ে যাবে।
আর শেষ এবং গুরুত্বপূর্ণ সমস্যাটির সমাধান হয়ত ইতোমধ্যে বুঝেও গেছেন কারন উপরে উল্লেখিত সমাধান গুলোর কোথাও অর্থের প্রয়োজনের কথা উল্লেখই করা হয়নি।
সবমিলিয়ে আমরা এটাকে বলছি একটা জায়গা যেখানে পাওয়া যায়- Community Contributed Open Source Bangla Courses
বিঃ দ্রঃ সিরিজ পোস্ট বা কোর্স বাদেও অনেকেই বিচ্ছিন্ন অনেক বিষয় (প্রোগ্রামিং এবং সফটওয়্যার ডেভেলপমেন্ট) নিয়ে বাংলায় পোস্ট লিখে থাকেন। সেগুলোর একটি গোছানো সংগ্রহ থাকছে HowToCode এর ব্লগে। যে কারো ব্লগে লেখা বাংলা পোস্ট গুলো ব্লগ মালিকের অনুমতি সাপেক্ষে এখানে রিপোস্ট করা হয় এবং মুল পোস্টে ব্যাকলিঙ্ক, পিংব্যাক দেয়া হয়। অন্যদিকে, অনেকেই শুধুমাত্র এই ব্লগের জন্যও লিখছেন।
কোর্স এবং ব্লগে কন্ট্রিবিউশনের নিয়ম দেখে নিতে পারেন এখান থেকে
আমাদের মিশন
প্রথমত, আমরা একটি জনবহুল দেশে বাস করছি। আমাদের দেশের তরুণ সমাজের জন্য হুমকি হয়ে আশা অনেক সমস্যার মধ্যে বেকারত্ব এবং হতাশা গুরুত্বপূর্ণ। আবার সবার ক্ষেত্রে ছোট বড় উদ্যোগ নিয়ে ব্যাবসায়িক কর্মকাণ্ডে যুক্ত হওয়া সম্ভব নয় যথাযথ আর্থিক ও আনুসাঙ্গিক জটিলতার কারনে। অন্যদিকে প্রযুক্তিগত ভাবে শক্তিশালী একটি রাষ্ট্র গঠণের পেছনে দরকার প্রযুক্তিতে অভিজ্ঞ একটি শক্তিশালী জনগোষ্ঠী।
প্রোগ্রামিং তথা সফটওয়্যার ডেভেলপমেন্ট হতে পারে এরকম সমস্যার ভিড়ে একটি অপার সম্ভাবনাময় ক্ষেত্র। একদিকে, আউটসোর্স করার মাধ্যমে দেশের বাইরের বিশাল বাজারেও সফটওয়্যার রপ্তানি করে বৈদেশিক মুদ্রা আয় করা সম্ভব কোন রকম জটিল অথবা মূল্যবান রিসোর্স ব্যাবহার না করেই। শুধুমাত্র যদি আপনি একজন ভালো প্রোগ্রামার হিসেবে নিজেকে গড়ে তুলতে পারেন। অন্যদিকে, সবার মধ্যেই প্রোগ্রামিং ও সফটওয়্যার ডেভেলপমেন্ট এর ধারনা থাকা অবশ্যই প্রযুক্তিগতভাবে শক্তিশালী একটি ভবিষ্যৎ রাষ্ট্রের ইঙ্গিত।
আর এর প্রথম ধাপ হিসেবে প্রোগ্রামিং শেখার বিষয়টি চলে আসে। অনেকেই আছেন প্রোগ্রামিংকে অনেক কঠিন ভাবে উপলব্ধি করে এদিকে আসার প্ল্যান একদমই রাখেন না। তাদের উদ্দেশ্যেই আমাদের বাংলা কোর্স গুলো। অন্তত যাতে নতুন কেউ খুব সহজে একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ অথবা টুলস বিষয়ে জানতে পারে খুব সহজ ও সাবলীল ভাষায়।
অন্যদিকে যারা তুলনামূলক কম বয়সী, তারা যদি প্রথম থেকেই বাংলায় সহজ ভাবে প্রোগ্রামিং এর বিষয় গুলো পড়ে নিজেদের মধ্যে আগ্রহ জন্মাতে পারে তাহলে তো কথাই নেই। ভবিষ্যতে তারাই হতে পারে বিশ্বের আইটি ফিল্ডের ডেভেলপমেন্টের বড় অংশীদার।
আর যারা ছাত্র এবং তাদের কোর্সে প্রোগ্রামিং আছে কিন্তু সেটার উপর আগ্রহ নিয়ে কাজ করতে ভয় পাচ্ছেন তারাও যত তারা তারি প্রোগ্রামিং এর উপর ভালবাসা জন্মাতে পারবেন ততই মঙ্গল। উচ্চ শিক্ষা অথবা গবেষণার কাজে প্রোগ্রামিং যে কতটা অপরিহার্য সেটা হয়ত ইতোমধ্যে আপনারা বড়দের কাছ থেকে জেনেও থাকবেন।
তাই আমাদের স্লোগান- সবার জন্য প্রোগ্রামিং