Showing posts with label learning. Show all posts
Showing posts with label learning. Show all posts

Thursday, August 3, 2017

কিভাবে মার্শাল আর্টের ধারণা আপনাকে জাভাতে মাস্টার হতে সাহায্য করে? (How martial art helps you to master Java)

Shu, Ha, Ri এই শব্দ তিনটি এসেছে জাপানি মার্শাল আর্টসের কনসেপ্ট থেকে। এটি সাধারণত কোনো কিছু শেখার ক্ষেত্রে ব্যবহার করা হয়। শব্দ তিনটির অর্থ করলে দাঁড়ায় - 

১. shu (守) "protect", "obey" বা মান্য করা
২. ha (破) "detach", "digress", “break” ভাঙ্গা বা বিচ্ছিন্ন করা 
৩. ri (離) "leave", "separate" আলাদা হওয়া 

জাভা প্রোগ্রামিং শেখার ক্ষেত্রে এই তিনটি ধারণা ব্যবহার করা যেতে পারে। কীভাবে তা নিয়েই এই আলোচনা- 

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

অর্থাৎ প্রথমে কী করতে হবে এবং এগুলো কীভাবে করতে হয় এগুলো নিয়ে বেশি মনোযোগী হওয়া উচিৎ, এ পর্যায়ে প্রত্যেকটি বিষয়ের অন্তর্নিহিত তত্ত্ব সম্পর্কে চিন্তা না করলেও চলবে।

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

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

তৃতীয়ত রু, এই পর্যায়ে শিক্ষার্থী অন্যদের কাছে না শিখে বরং নিজেই নিজের কাছে শিখতে শুরু করে নিজের অনুশীলনের মাধ্যমে। এই পর্যায়ে নিজস্ব স্বকীয়তা তৈরি হয়। যেমন -

- কীভাবে কোড লিখবে, কোডটি ফাংশনাল বা অবজেক্ট ওরিয়েন্টেড হবে কিনা,
- ল্যামডা এক্সপ্রেশন ব্যবহার করা হবে নাকি হবে না,
- জাভা এন্টারপ্রাইজ এডিশন ব্যবহার করবে নাকি স্প্রিং ফ্রেমওয়ার্ক ব্যবহার করবে,
- হাইবারনেট ব্যবহার করবো নাকি Plain JDBC দিয়ে কাজ করা যাবে

ইত্যাদি ব্যাপারে নিজস্ব মতামত তৈরি হয়।

Monday, February 6, 2017

Types of Learners - the dabblers, the hacker, and the master

জর্জ লেনার্ডের একটা বই আছে, নাম মাস্টারি (MASTERY The Keys to Success and Long-Term Fulfillment)। বইয়ে তিনি তিন ধরণের শিক্ষার্থী(learners) এর কথা বলেছেন - 

The dabblers, the hacker, and the master. 

Dabblers হলো যারা খুব সহজেই একটা বিষয় নিয়ে আবেগকম্পিত(exicited) হয়ে যায়। নতুন কিছু পেলেই খুশিতে আকাশ পাতাল এক করে লাফিয়ে পরে এবং শিখতে শুরু করে এবং সবাইকে বলা শুরু করে। কিন্তু সমস্যা হলো এরা এই আগ্রহ খুব বেশি দিন ধরে রাখতে পারে না। আগ্রহ হারিয়ে যায়। তখন অন্য কিছু নিয়ে লাফাতে শুরু করে। 

এর পরের গোষ্ঠী হলো হ্যাকার। এরা একটা নির্দিষ্ট পরিমাণ পর্যন্ত শিখে। They get to reasonably good at things. এরা এই বিষয় নিয়ে কাজ করে যেতে পারে। যখন learning plateau চলে আসে অর্থাৎ একটা জিনিস শিখতে শরু করতে আস্তে আস্তে ইমপ্রুভ হয়, কিন্তু একটা সময় ইমপ্রুভ হওয়া বন্ধ হয়ে যায়, তখন তারা থামিয়ে দেয় এবং অন্য কিছু তে মনোযোগ দেয়। 

অন্যদিকে মাস্টার হলো যারা কোনো কিছুতে মাস্টারি অর্জন করে ফেলেছে তারা নয়, বরং যারা কোনো একটা বিষয়ে প্রতিজ্ঞাবদ্ধ (he is somebody that's commited to continual improvement)। learning plateau চলে আসলেও থামিয়ে দেওয়া যাবে না। তিনি বলেন, এই সময়ে সবচেয়ে বেশি শেখা যায়। যদিও এটা একটা কঠিন সময় কিন্তু এর পরেই আসলে বড় জাম্প দেওয়া যায়। 

প্রোগ্রামিং বেশ কমপ্লেক্স একটা স্কিল। এখানে dabblers হলে আসলে কোনো লাভ নেই। হ্যাকার হলেও চলে। তবে মাস্টার হতে হলে এই কমিটমেন্টটা থাকতে হবে।