জাভাস্ক্রীপ্ট শিখতে হলে
জাভাস্ক্রীপ্ট একই সাথে চমৎকার এবং জঘন্য একটা ল্যাঙ্গুয়েজ, এর অনেক ফিচার আছে যেগুলো চমৎকার, তেমনি অনেক ফিচার আছে যেগুলো আপনার জন্য বিভীষিকা হয়ে দেখা দিতে পারে । জাভাস্ক্রীপ্ট এ এক্সপার্ট হওয়া মানে জাভাস্ক্রীপ্ট এর ভালো মন্দ দুই দিকই জানতে হবে । ভালো টা কাজে লাগাতে হবে, খারাপ দিকটা পরিহার করতে হবে ।
জাভাস্ক্রীপ্ট এ অভিজ্ঞ হতে হলে আপনার এই সব টপিকে জোর দেওয়া উচিৎ -
(গুগল করতে যাতে সহজ হয় তাই টপিকগুলো ইংরেজীতেই লিখছি)
- ডাটা টাইপ গুলো ভালো করে শিখতে হবে । Object, Array, String, Number, undefined, null, NaN এগুলো সম্পর্কে ভালো করে জানতে হবে । primitive type আর reference type এর মধ্যে পার্থক্য জানতে হবে । প্রিমিটিভ টাইপের wrapper গুলো কি কাজে লাগে সেটা জানতে হবে । এগুলো কোথায় ব্যবহার করা উচিৎ আর কোথায় এ্যাভয়েড করা উচিৎ সেটা মাথায় রাখতে হবে । কোন ডাটা টাইপের কোন ভ্যালু গুলো truthy আর কোন গুলো falsy সেটা মনে রাখতে হবে ।
- কমন অপারেটর গুলো সম্পর্কে জানতে হবে । `+` অপারেটরটি স্ট্রিং আর নাম্বারের ক্ষেত্রে কিভাবে আচরন করে, দুইটা মেশালে কি হয় সেটাও খেয়াল রাখতে হবে ।
- কন্ট্রোল ফ্লো - কিভাবে if / else কাজ করে, while লুপ, do while লুপ, for লুপের দুইটা প্রকার ভেদ এবং তাদের পার্থক্য, switch , break
- এরর হ্যান্ডলিং - try / catch / finally এবং এদের আচরন (যেমন: finally ব্লক রিটার্ন করার পরও রান করে ), জাভাস্ক্রীপ্ট যে এরর পেলে এক্সিকিউশন থামিয়ে দেয় না, এটাও মনে রাখতে হবে । নিজেরা কিভাবে এরর throw করতে পারি, সেটাও জানা জরুরী ।
- function টা গভীরে যেয়ে জানতে হবে । জাভাস্ক্রীপ্ট এ ফাংশন ৪ ভাবে ব্যবহার করা যায় - function হিসেবে, method হিসেবে, constructor হিসেবে এবং apply ব্যবহার করে অন্য অবজেক্টের সাথে বাইন্ড করে । এগুলো সম্পর্কে জানতে হবে ভালো করে । এছাড়া IIFE, closure, scope, hoisting এবং this এর ভ্যালু কখন কি হয় সেটা জানা ও বোঝা জরুরী । ফাংশন অবজেক্ট এর call, apply, bind মেথড গুলো শিখতে হবে ।
- অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং শিখতে হবে, এসময় মনে রাখতে হবে জাভাস্ক্রীপ্ট ক্ল্যাসিক্যাল মডেল ফলো করে না, জাভাস্ক্রীপ্ট এর prototype বেইজড মডেল ফলো করে । prototypal inheritance এর ক্ষেত্রে prototype chain বুঝতে হবে । জাভাস্ক্রীপ্টে অবজেক্ট তৈরি করার দুটো প্রধান উপায় হলো object literal আর ফাংশনে দেখে আসা constructor । এই দুটো কিভাবে, কখন কোনটা ব্যবহার করা উচিৎ সে সম্পর্কে আইডিয়া নেওয়া জরুরী ।
- Array নিয়ে আলাদা ভাবে কিছু পড়াশুনা করা দরকার, এর মেথডগুলো জানা খুবই জরুরী
- regular expression
- DOM API
- কমন কিছু ডিজাইন প্যাটার্ন
- নতুন আসা স্ট্যান্ডার্ডগুলো আস্তে আস্তে আয়ত্ত করতে হবে । যেমন ES6 বা ES2015 সম্পর্কে ভালো করে জানতে হবে ।
জাভাস্ক্রীপ্ট কেন, যে কোন ল্যাঙ্গুয়েজ এর বেলায়ই - "সবার উপরে ডকুমেন্টেশন সত্য, তাহার উপরে নাই" । জাভাস্ক্রীপ্ট এর জন্য মজিলা ডেভেলপার নেটওয়ার্ক বেশ সুন্দর করে ডকুমেন্টেশন রেডী করেছে - https://developer.mozilla.org/en-US/docs/Web/JavaScript
এই ডকুমেন্টেশন টা ও ফলো করতে পারেনঃ https://javascript.info/
এবার আসি বইয়ের ব্যাপারে । প্রথমে দেখা যাক ফ্রী কি কি বই পাওয়া যায় -
- Speaking Javascript (http://speakingjs.com/es5/) - এটা একটা চমৎকার রেফারেন্স বই হিসেবে কাজ করতে পারে
- Eloquent Javascript ( http://eloquentjavascript.net/ )
- Javascript Alonge (https://leanpub.com/javascript-allonge/read)
- You don't know JS (Book Series) - https://github.com/getify/You-Dont-Know-JS
টাকা দিয়ে কিনতে হবে এমন বইয়ের তালিকা -
- Javascript The Good Parts
- Learning Javascript Design Patterns
- The Secrets of the Javascript Ninja
- Javascript The Definitive Guide
ফেইসবুকে জাভাস্ক্রীপ্ট নিয়ে আলোচনা বা প্রশ্নোত্তর এর জন্য ঢুঁ মারতে পারেন এখানে - http://talkjs.net
@credit: Abu Ashraf Masnun