এটা পুরাটাই ডিপেন্ড করবে তুমি কোন এপ্রোচে প্রোগ্রামিংটা শিখা শুরু করতেছো। সো এই প্রোগ্রামিং শিখার বিভিন্ন এপ্রোচগুলাকে চারটা ক্যাটাগরিতে ভাগ করছি।
ডিগ্রি বেইজড এপ্রোচ-
তুমি কোন একটা ইউনিভার্সিটিতে বা কোন একটা ইন্সটিটিউটে যাবা। সেখানে তুমি কম্পিউটার সাইন্সে ভর্তি হবা। সেখানে একটা কারিকুলাম ওয়াইজ, তুমি সিরিয়াল ওয়াইজ মোটামুটি সিন্সিয়ারলি ক্লাসের পড়াশোনা করবা, সিন্সিয়ারলি তোমাকে যে প্রজেক্ট বা এসাইনমেন্ট দেওয়া হবে সেটা তুমি করবা। এই প্রসেসে তুমি যদি একটু সিন্সিয়ারলি যাও তাইলে মোটামুটি তোমার ডিগ্রীটা শেষ করতে অর্থাৎ প্রোগ্রামার হতে ৪ বছরের মতো সময় লাগবে। তবে সিএসই তে ভর্তি হয়ে গেলেই অটো প্রোগ্রামার হয়ে যাবে। এমনটা চিন্তা করার কোন কারণ নাই। সিএসই তে ভর্তি হওয়ার পর সিরিয়াসলি ক্লাস করতে হবে। ক্লাস প্রজেক্ট ভালোভাবে করতে হবে। (সম্ভব হলে কম্পিটিটিভ প্রোগ্রামিং করার চেষ্টা করবে) অর্থাৎ সিরিয়াসলি খাটবে। তাহলে প্রোগ্রামার হয়ে উঠতে পারবে।
সেল্ফ গাইডেট সেমি-ডিস্ট্রাকটেড এপ্রোচ-
তুমি মোটামুটি সিনসিয়ার হয়ে নিজেই নিজেকে গাইড করতেছো। মাঝে মধ্যে বিভিন্ন জায়গা থেকে রিসোর্স জোগাড় করে, নিজের মতো করে একটা আউটলাইন বানিয়ে চালাচ্ছ। হয়তো ইউটিউবে চমৎকার একটা প্লেলিস্ট পাইছো। সেটা তুমি ধরে ধরে সিরিয়ালি প্র্যাক্টিস করতেছো। কোন একটা জায়গায় আটকে গেলে হয়তো তোমার তিন-চারদিন-পাঁচদিন সময় লেগে যাচ্ছে ওই প্রবলেমটা সলভ করার জন্য। আবার বিভিন্ন জায়গা থেকে ডিফারেন্ট গাইডলাইন ফলো করতে গিয়ে মাঝে মধ্যে লাইন একটু এইদিক থেকে ওই দিকে যায়। তারপরেও মোটামুটি সেল্ফ গাইডেড হিসেবে লাইনে আছো। কিছুটা খুবড়া-খাবড়া দিলা, থুবড়া-থাবড়া দিলা মাগার লাইন ঠিক থাকলো। তাহলে তোমার মোটামুটি ২ বছর সময় লেগে যাবে একটা রিজনেবল লেভেলে যাওয়ার জন্য।
১০০% কমিটেড ক্লোজড ডোর এপ্রোচ-
তুমি ১০০% ডিটারমাইন্ড যে এক্সাক্টলি তুমি কি টাইপের ডেভেলপার হইতে চাও এবং সেই রাস্তাটা তোমার ১০০% ডিটারমাইন্ড অর্থাৎ হইতে পারে যে তুমি MERN স্ট্যাক দিয়ে ওয়েব ডেভেলপার হবা অথবা তুমি পিএইচপি দিয়ে এই ধরনের ডেভেলপার হবা অথবা তুমি পাইথন দিয়ে জ্যাংগো ডেভেলপার হবা বা তুমি হয়তো জাভা + কটলিন দিয়ে এপ ডেভেলপার হবা। অর্থাৎ তোমার ফুল কমিটেড একটা রাস্তা আছে এবং সে রাস্তার জন্য রিসোর্সও তোমার কাছে আছে। সেটা অনেকগুলা কোর্স হতে পারে যেটা যেকোন জায়গা থেকে তুমি হয়তো কালেক্ট করছো। এবং তোমার ক্লোজ একটা সার্কেল আছে যাদের কাছ থেকে মাঝে মধ্যে হেল্প পেতে পারো। সেক্ষেত্রে তুমি ডেইলি ডেইলি ৬-৮ ঘন্টা সিরিয়াস সময় দিচ্ছো। দরকার হলে আরো বেশি সময় দিচ্ছ। এবং প্রোগ্রামিং শেখাই তোমার তোমার প্রাইমারি কাজ। তাইলে তোমার মোটামুটি একবছর বা তার কাছাকাছি সময় লাগবে এই প্রোগ্রামিং এর জিনিসটাকে আয়ত্ত করতে।
এক্সটার্নালি গাইডেট ১০০% ফোকাসড ডিসিপ্লিন এপ্রোচ-
কোন একজন বা একাধিক পারসনের ফুলটাইম জবই হবে যে তোমাকে গাইড করা। যারা তোমাকে প্রতিদিন গাইড করবে। কোনটার পর কোনটা কিভাবে কোথা থেকে একজাক্টভাবে শিখতে হবে। সেই আউটলাইন পাবে। কবে কোন জিনিস শেষ করতে হবে সেই ডেডলাইন পাবে। প্রজেক্ট দিবে। আটকে গেলে ইমিডিয়েটলি হেল্প করবে। ডেইলি ডেইলি সলিড ৬-৮ ঘন্টা সময় দিবে। দরকার হলে ৮-১০ ঘন্টা বা মাঝে মধ্যে একটু বেশি লাগলে বেশি দিবে। কোন কিছু বুঝতে না পারলে বুঝায় দিবে। তাহলে ক্লিয়ার একটা এপ্রোচে অনেক দূর কভার করে ফেলতে পারবে। অর্থাৎ তুমি যদি চিন্তা করো যে আচ্ছা ওয়েব ডেভেলপমেন্ট বা এপ ডেভেলপমেন্টই বলো যখন এই কন্টিনিউয়াস লার্নিং এর মতো বুটক্যাম্পে তুমি থাকবা তখন কিন্তু তোমার শয়নে সপনে জাগরনে মোটামুটি এই জিনিসটাই চলবে। সেক্ষেত্রে তুমি ওভারঅল লার্নিং এর টাইমটাকে ৬-৮ মাসের মধ্যে নিয়ে আসতে পারবা।
তবে আমি যে চারটা এপ্রোচের যে টাইমের কথা বলছি এই টাইমটা যে ১০০% সবায় একদম এক্সাক্টলি ওই সময়ের মধ্যেই কম্পলিট করে ফেলতে পারবে সেটার কোন গ্যারান্টি নাই। বরং তোমার কত টাইম লাগবে সেটা নির্ভর করবে তোমার এপ্রোচ, সিরিয়াসনেস, ডিটারমিনেশন এবং তোমার কমিটমেন্ট এর উপরে। বাকিটা তোমার এভিলিটি এবং কিছুটা তোমার লাকের উপর ডিপেন্ড করবে। আমি দেখছি: ৫০-৬০% পোলাপান অনটাইমে করে ফেলতে পারবে। আর ২০-৩০% এর জন্য এক্সট্রা সময় লেগে যাবে। আর ১০% উল্টা দিকে দৌড়াবে।
তাই এখন থেকে তোমার প্রথম প্রশ্ন হওয়া উচিত না– “প্রোগ্রামার হতে কতদিন সময় লাগবে?” বরং তোমার প্রথম প্রশ্ন হওয়া দরকার– আমি প্রোগ্রামার হতে চাই। আমার কতটুকু ডেডিকেশন, ডিটারমাইন্ড, ডিসিপ্লেইন, এবং ধৈর্য্য লাগবে। তাহলে এগুলা নিশ্চিত করতে পারলে তোমার এভিলিটি অনুসারে হয় দুই-চার মাস বেশী সময় লাগতে পারে বা কম লাগতে পারে। তবে কম লাগুক বা বেশি লাগুক এইটার পিছনে আমি লেগে থাকবো। সেই মাইন্ডসেট নিয়ে এই লাইনে আসা উচিত।
লেখক: ঝংকার মাহবুব