কম্পিউটার সায়েন্সের শিক্ষার্থীরা কিভাবে প্রস্তুতি নেবেন

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

যদি এমন হয় তাহলে বুঝতে হবে আপনি এক গভীর কুয়ার অতলে পরে আছেন। আপনার চারদিকে ঘুটঘুটে অন্ধকার। চারদিকে নিস্তব্ধ নীরবতা। আপনি কান পেতে আছেন কিন্তু কিছু শুনতে পাচ্ছেন না, আপনি চোখ মেলে আছেন কিন্তু কিছু দেখতে পাচ্ছেন না। এক অসীম শূন্যতার মধ্যে অনন্তকাল পরে আছেন আপনি।

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

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

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

১ম বর্ষে যা যা শিখতে হবেঃ

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

২য় বর্ষে যা যা শিখতে হবেঃ

Java, PHP, Python, C# এর যেকোনো একটি ল্যাঙ্গুয়েজ। HTML, CSS, JavaScript, Object Oriented Programming Principle, Object Oriented Design Principle, UML, Git, SVN

৩য় বর্ষে যা যা শিখতে হবেঃ

Design Pattern (অন্তত কয়েকটা) , যে প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখেছেন সেটার ওয়েব ডেভেলপমেন্ট ফ্রেমওয়ার্ক – যেমন C# হলে Asp.net MVC, Python হলে Django, PHP হলে CakePHP, Laravel অথবা  Codeigniter, Java হলে Spring। এখানে উল্লেখ্য এই ফ্রেমওয়ার্ক আপনাকে খুব ভালোভাবে শিখতে হবে যেন আপনি এটা দিয়ে নিজে নিজে যেকোনো প্রোজেক্ট তৈরি করতে পারেন। বড় বড় কাজ করতে হবে তবে ছোট দিয়ে শুরু করে ধীরে ধীরে বড়র দিকে আগাতে হবে। একবারে বড় প্রোজেক্টের প্ল্যান করে তারপর কিছুই না করতে পারলে কোন লাভ নেই।

আরও শিখতে হবে SQL, JQuery, Bootstrap, Responsive Design। MySQL, Oracle, SQL Server এই ৩ টা ব্যাবহার করাই শিখতে হবে। অনেকে বলবেন যে ৩টা শিখার দরকার কি, যেমন PHP হলে তো খালি MySQL শিখলেই হয়। না, আমি মনে করি ৩টাই শিখতে হবে। কারণ PHP এর সাথে Oracle বা SQL Server ও ব্যাবহার হতে পারে। আর ৩টা শিখতে খুব বেশি পরিশ্রম করা লাগবে না।

৪র্থ বর্ষে যা যা শিখতে হবেঃ

রিপোর্ট টুল যেমন Crystal Report, বিভিন্ন ওয়েব ডেভেলপমেন্ট কন্ট্রোল টুল যেমন Telerik, Datatables। বিভিন্ন টুল এর ব্যাবহার শিখতে হবে যেমন Fiddler, Putty। SSH Connection, SSL Certificate, Cloud Computing এসব বিষয়ে শিখতে হবে।

ওয়েব সার্ভার কিভাবে কনফিগার করা যায় শিখতে পারলে ভালো।

বিভিন্ন প্যাকেজ ম্যানেজার সম্পর্কে জানা থাকা ভালো যেমন .net এর জন্য Nuget

Unit Testing সম্পর্কে বেসিক ধারণা যদি থাকে তাহলে খুবই ভালো হয়। ধারণা থাকলেই চলবে।

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

 

এখন আপনার কাছে কিছু লিস্ট আছে, এখন বাকিটা আপনার দায়িত্ব যে আপনি কতো দ্রুত ও কতো ভালোভাবে এই জিনিসগুলো শিখতে পারেন। আশা করি এই পোস্ট আপনার কাজে লাগবে। যদি কাজে লাগে তাহলে আপনার বন্ধুদের সাথে শেয়ার করুন, হয়ত তাদেরও কাজে লাগতে পারে।

মোঃ জালাল উদ্দিন,

প্রতিষ্ঠাতা ও সিইও, ডেভস্কীল.কম

 

ডেভস্কীলের কিছু বিশেষ সফটওয়্যার ইঞ্জিনিয়ারিং কোর্স –

  1. AWS Cloud Computing Fundamental

  2. AWS Cloud Computing Professional

  3. Complete Software Development with PHP Laravel for Non-CS Background

  4. Professional Python Programming

Leave a Reply

Your email address will not be published. Required fields are marked *