জাভাস্ক্রীপ্ট শিখতে হলে

জাভাস্ক্রীপ্ট একই সাথে চমৎকার এবং জঘন্য একটা ল্যাঙ্গুয়েজ, এর অনেক ফিচার আছে যেগুলো চমৎকার, তেমনি অনেক ফিচার আছে যেগুলো আপনার জন্য বিভীষিকা হয়ে দেখা দিতে পারে । জাভাস্ক্রীপ্ট এ এক্সপার্ট হওয়া মানে জাভাস্ক্রীপ্ট এর ভালো মন্দ দুই দিকই জানতে হবে । ভালো টা কাজে লাগাতে হবে, খারাপ দিকটা পরিহার করতে হবে ।

জাভাস্ক্রীপ্ট এ অভিজ্ঞ হতে হলে আপনার এই সব টপিকে জোর দেওয়া উচিৎ -
(গুগল করতে যাতে সহজ হয় তাই টপিকগুলো ইংরেজীতেই লিখছি)

- ডাটা টাইপ গুলো ভালো করে শিখতে হবে । 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/) - এটা একটা চমৎকার রেফারেন্স বই হিসেবে কাজ করতে পারে

টাকা দিয়ে কিনতে হবে এমন বইয়ের তালিকা -

- 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