প্রথমেই বলে নেয়া প্রয়োজন যে এটা কোনো টিউটরিয়াল নয়। আমি প্রোগ্রামিং
রিলেটেড যতগুলো বই পড়েছি প্রায় প্রত্যেকটাতেই কম-বেশি কিভাবে এগুতে হবে
তার একটা ধারনা দেয়া থাকতো। এরকম গাইডলাইন যে খুবই উপকারী তা বলার অপেক্ষা
রাখে না। এইসব বই থেকে যা জানতে পেরেছি আর নিজের অভিজ্ঞতা থেকে যা বুঝতে
পেরেছি নিচের লেখাগুলি তারই বহিংপ্রকাশ। এটা জাভাস্ক্রিপ্ট শেখার গাইডলাইন
হলেও আমি এখানে এমন কিছু কথাও বলেছি যা আপাতপক্ষে অপ্রাসঙ্গিক বলে মনে হলেও
আসলে তা মোটেই নয়।
জাভাস্ক্রিপ্ট
শেখার কয়েকটা টিপস নিচে পয়েন্ট
আকারে দেয়া হল
##
জাভাস্ক্রিপ্ট
শেখা শুরু করার আগে HTML
আর
CSS
সম্পর্কে
কিছুটা ধারণা নিয়ে রাখা ভালো,
আসলে
নিয়ে রাখাই উচিত। কারও কারও
মনে প্রশ্ন জাগতে পারে
জাভাস্ক্রিপ্ট একটা স্বতন্ত্র
প্রোগ্রামিং
ল্যাঙ্গুয়েজ(
আসলে
স্ক্রিপ্টিং ল্যাঙ্গুয়েজ )
হওয়া
সত্ত্বেও এটা শিখতে হলে কেন
আগে HTML,
CSS শিখতে
হবে।
প্রশ্নটা হয়তোবা যুক্তিসঙ্গত
কিন্তু যারা জানেন জাভাস্ক্রিপ্ট
শেখার প্রয়োজনীয়তা কি অর্থাৎ
কেন তারা এটা শিখবেন তাদেরকে
আর এই বিষয়ে কোনো ব্যখ্যা
দেয়ার প্রয়োজন হবে না,
তাছাড়া
যেহেতু আমি এখানে জাভাস্ক্রিপ্ট
শেখার গাইড লাইন নিয়ে লিখতে
বসেছি তাই আমি HTML,
CSS নিয়ে
বিস্তারিত লিখতে যাব না। তবে
জাভাস্ক্রিপ্ট শিখতে হলে যে
HTML,
CSS এর
মাস্টার হতে হবে এমন কোনো
কথা নেই,
এই
দুটি বিষয় সম্পর্কে খুব অল্প
জ্ঞান থাকলেই চলবে। কিন্তু
কেউ যদি চায় যে সে জাভাস্ক্রিপ্ট
এর মাস্টার হবে তখন অবশ্যই
তার HTML,
CSS এর
মোটামুটি সকল ট্যাগ(
আশা
করি ট্যাগ কি তা আপনারা জানেন
)
নাড়াছাড়া
করার মতো দক্ষতা থাকতে হবে।
কেউ কেউ হয়তো এই কথায় বিরক্ত
হতে পারেন,
হওয়াটাই
স্বাভাবিক,
নাড়াছাড়া
করার মতো দক্ষতা আবার কি?
আসলে
HTML,
CSS এর
মোট ট্যাগ সংখ্যা অনেক,
সঠিক
সংখ্যা আমি নিজেও জানি না।
এতগুলো ট্যাগ সম্পর্কে
বিস্তারিত তথ্য মানুষের নিউরন
সেলে ধরে রাখা অসম্ভব। তাছাড়া
প্রত্যেকটা ট্যাগের(
বেশিরভাগ
)
অনেকগুলো
property,
method এবং
value
থাকে
যাদেরকে
একই ট্যাগের সাথে বসালেও
ভিন্ন
ফলাফল পাওয়া যায়। আবার
কিছু ট্যাগ আছে যাদের কাজ
প্রায় একইরকম,
সেক্ষেত্রে
উপযুক্ত ট্যাগ নির্বাচন করা
জরুরি হয়ে
পরে কারণ আপাত দৃষ্টিতে একই
মনে হলেও
প্রকৃত অর্থে তাদের কাজ করার
প্রক্রিয়া ভিন্ন,
তাছাড়া
তখন আপনাকে SEO(
Search Engine Optimization ) এর
ব্যপারটিও মাথায় রাখতে হবে
কারণ অনেক ট্যাগ আছে যেগুলো
SEO
এর
জন্য মোটেই ভালো নয়,
একজন
ভালো ডেভেলপার হতে চাইলে
আপনাকে অবশ্যই প্রত্যেকটি
বিষয় মাথায় রেখেই
কাজ করতে হবে।
##
HTML, CSS যেমন
অসংখ্য ট্যাগ নিয়ে কাজ করে
তেমনি জাভাস্ক্রিপ্টেরও
অসংখ্য function,
method, property ইত্যাদি
আছে যার কারণে HTML,
CSS এর
মতোই একে reference
language হিসেবে
শিখতে হবে,
আসলে
এভাবে
শিখলে ব্যপারটা অনেক সহজ হয়ে
আসে। যারা
C
ল্যাঙ্গুয়েজ
এর সাথে পরিচিত অর্থাৎ যারা
C
এর
একটু-আধটু
শিখেছেন তাদের জন্য জাভাস্ক্রিপ্ট
এর প্রাথমিক ব্যপারগুলো
শেখা পান্তাভাত
ছাড়া আর কিছুই না। তাই আমি বলব
যেকোনো প্রোগ্রামিং
ল্যাঙ্গুয়েজ অথবা স্ক্রিপ্টিং
ল্যাঙ্গুয়েজ শেখার আগে C
এর
অন্তত প্রাথমিক অর্থাৎ
মৌলিক বিষয়গুলো
সম্পর্কে ধারণা নেয়া উচিত।
একে অযথাই
“Mother
of all Programming
Language” বলা
হয় না।
জাভাস্ক্রিপ্ট শেখা শুরু
করেছেন মানে আপনি প্রোগ্রামিং
এর দুনিয়ায় পদার্পণ করেছেন
অথচ প্রোগ্রামিং
কি তাও যদি
আপনি ভালোভাবে
বুঝতে
না পারেন
তাহলে পদে পদে আপনাকে ক্ষান্ত
হতে
হবে,
সেক্ষেত্রে
বিরক্ত হয়ে পরে শেখাটাই বাদ
দিয়ে দিবেন,
এটাই
স্বাভাবিক(
আমি
নিজেও একই পরিস্তিতির শিকার
)।
শুধু
প্রোগ্রামিং এর সংজ্ঞা জানলেই
হবে না,
প্রোগ্রামিং
জিনিসটা
কি তা ভালোভাবে
নিজ থেকেই বুঝতে হবে আর এর
জন্য শ্রেষ্ঠ উপায় হল অন্তত
এক মাস C
নিয়ে
ঘাটাঘাটি করা। এভাবে শিখতে
থাকলে
বা প্রাকটিস
করতে থাকলে আপনার
নিজের ভিতরেই প্রোগ্রামিং
এর একটা সহজ,
ত্রিমাত্রিক
সংজ্ঞা তৈরি হবে আর তখনই আপনি
বুঝতে পারবেন প্রোগ্রামিং
এর মৌলিক
ব্যপারটা আপনি
বুঝে ফেলেছেন। তাছাড়া
জাভাস্ক্রিপ্ট
হচ্ছে একটি
Object
Oriented Programming Language( OOP ), যেসকল
ল্যাঙ্গুয়েজ object
নিয়ে
কাজ করে তাদেরকে Object
Oriented বলা
হয়। প্রোগ্রামিং বা স্ক্রিপ্টিং
ল্যাঙ্গুয়েজ সাধারণত দুই
প্রকার-
action বা
function
oriented( C, Fortran ইত্যাদি
)
আর
object
oriented( C++, Java, Javascript, Python, PHP, Ruby, Objective C, C#
ইত্যাদি
)
।
শেষেরটা function
কে
নিয়ে কাজ করে। যেকোনো OOP
ল্যাঙ্গুয়েজ
শেখার আগেই AOP
ল্যাঙ্গুয়েজ
শিখে নেয়া উচিত কারণ প্রথমেই
OOP
শিখতে
গেলে আপনার কাছে ব্যপারটা
অনেক জটিল মনে হবে আর প্রত্যেকটা
কোডের অর্থও কখনো শতভাগ বুঝতে
পারবেন না,
কন্সেপ্টটা
ভাসা ভাসাই থেকে যাবে। এটা
নিশ্চয়ই আপনার জানা আছে যে
ভাসা ভাসা জ্ঞানের স্থায়িত্ব
কখনোই
দীর্ঘ
হয় না আর
তা ব্যক্তির আত্মবিশ্বাসও
অনেকটা কমিয়ে দেয়।
এখানে
দুটি
কথা অবশ্যই বলে রাখা বাঞ্ছনীয়,
প্রথমত
C
ভালোভাবে
শিখতে হলে আপনাকে কমপক্ষে
ছয়মাস সময় দিতে হবে,
যেহেতু
আপনি জাভাস্ক্রিপ্ট
শিখতে চাচ্ছেন আর এটাই আপনার
মুখ্য উদ্দেশ্য তাই আপনার C
ল্যাঙ্গুয়েজ
এর উপর বেসিক
ধারণা থাকেলই
চলবে
আর এর জন্য এক মাসের বেশি লাগার
কথা নয়।
দ্বিতীয়ত HTML,
CSS কে
দয়া করে প্রোগ্রামিং ল্যাঙ্গুয়েজ
এর দলে ফেলবেন না কারণ এদের
প্রথমটি হচ্ছে markup
ল্যাঙ্গুয়েজ
আর দ্বিতীয়টি হচ্ছে markup
করার
পর এর স্টাইল
দেয়ার জন্য,
যদিও
তাদেরকে সার্বজনীনভাবে
“স্ক্রিপ্টিং
ল্যাঙ্গুয়েজ” এর
দলে ফেলা হয়।
আর
হে C
শিখতে
আপনি যতটুকু আনন্দ পাবেন
জাভাস্ক্রিপ্ট শিখতে তার
সিকিভাগও পাবেন না বরং বিরক্ত
হবার কথা। তাই প্রথমে C
শিখে
জাভাস্ক্রিপ্ট শেখার সময়টাকে
রিডিউস করে নেয়াই ভালো। C
শেখাটা
আপনার হবিও হতে পারে কিন্তু
জাভাস্ক্রিপ্ট
আপনি শিখবেন
প্রফেশনাল কাজ করার উদ্দেশে।
##
একেবারে
প্রথমেই আমি
HTML,
CSS কে
কিভাবে reference
এর
ভিত্তিতে সহজে ব্যবহার করা
যায় তা বলার চেষ্টা করেছি,
যদিও
আমার জাভাস্ক্রিপ্ট নিয়ে
লেখার কথা। এর
কারণ Document
Object Model ( DOM ) নামের
একটা ব্যপার আছে যেটা
স্ক্রিপ্টিং ল্যাঙ্গুয়েজ(
জাভাস্ক্রিপ্ট
হতে হবে এমন কোনো কথা নাই
)
এর
সাথে যুগপৎ হয়ে কাজ করে। এর
সাহায্যে HTML
এর
যেকোনো ট্যাগ কে object
হিসেবে
ধরে নিয়ে কাজ করা যায়,
এভাবে
করলে
অনেক
জটিল কাজ সহজে হয়ে
যায়। Object
কি
তা আমি আগেই বলেছি,
যেহেতু
এটা কোনো টিউটরিয়াল নয় তাই
আমি এখানে
object
বা
action
এর
কোনো ব্যাখা বা উদাহারণ
দেবনা।
##
প্রথম
থেকেই আমি reference
শব্দটি
অনেকবার ব্যবহার করে আসছি
কিন্তু আসল রেফারেন্সই এতক্ষণ
ধরে দেয়া হয়নি,
আমি
বলেছিলাম reference
এর
ভিত্তিতে জাভাস্ক্রিপ্ট
শিখলে শেখাটা অনেক সহজ হয়ে
যায়। এখন
আসি আসল reference
এর
কথায়। প্রথমেই বলে নেই reference
শব্দটির
দ্বারা আমি আসলে কি বুঝাতে
চেয়েছি। জাভাস্ক্রিপ্ট
কিংবা
অন্য যেকোনো কিছু
শেখার সময়
আপনি অবশ্যই বিভিন্নরকম বই
পড়বেন বা অনলাইনে
বিভিন্ন ওয়েবসাইটের শরণাপন্ন
হবেন?
এখানে
reference
বলতে
আমি
এইসব
বই
কিংবা ওয়েবসাইটকেই বুঝাচ্ছি।
এরকম
অনেক বই(
হার্ডকপি
বা সফটকপি
)
বা
ওয়েবসাইট রয়েছে যেখান থেকে
আপনি জাভাস্ক্রিপ্ট
শেখা শুরু করে দিতে পারেন।
তবে বাংলা টিউটরিয়ালের শরণাপন্ন
না হয়ে ইংরেজি বই বা ওয়েব
টিউটরিয়ালের দিকে ঝুঁকাই
ভালো কারণ ইংরেজিতে আপনি
জাভাস্ক্রিপ্টের
আগাগুড়া সবকিছুই পাবেন যেমন-
www.w3schools, www.developphp.com
কিংবা
জাভাস্ক্রিপ্টের
অফিসিয়াল ডকুমেন্টেশনে
আপনি এর সবকিছুই পাবেন,
এরকম
কোনো একটি সাইট কিংবা কয়েকটা
বইকে জাভাস্ক্রিপ্টের
টিউটরিয়াল+রেফারেন্স
দুটি হিসেবেই কাজে লাগাতে
পারবেন। তাছাড়া এরকম সাইট এ
আপনি জাভাস্ক্রিপ্টের
সকল
আপডেট
তথ্যও পাবেন। এখানে
আরেকটা কথা যোগ করা প্রয়োজন-
অনেকেই
আছেন যারা ভিডিও
টিউটরিয়াল
দেখে
শিখতে বা
কাজ করতে বেশি
পছন্দ
করেন কিন্তু জাভাস্ক্রিপ্ট
শেখার
ক্ষেত্রে ভিডিও টিউটরিয়াল
উপযুক্ত
নয় কারণ
জাভাস্ক্রিপ্টের
পাল্লা অনেক দীর্ঘ,
কোনো
ভিডিও
টিউটরিয়ালই
এর সম্পূর্ণটা কাভার করতে
পারবে না।
তবে ভালোভাবে এর বেসিকটা শেখার
পর বিভিন্ন ধরণের ওয়েব
অ্যাপ্লিকেশান তৈরি করার সময়
কিংবা
বিভিন্ন ধরণের
ফ্রেমওয়ার্ক
নিয়ে কাজ করার
সময় ভিডিও
টিউটরিয়ালের(
lynda, tutplus, infiniteskills, youtube ইত্যাদি
)
সাহায্য
নেয়া যেতে পারে।
##
ফ্রেমওয়ার্ক:
যারা
CSS ভালোভাবে
শিখেছেন তারা ফ্রেমওয়ার্ক
শব্দরটিত সাথে পরিচিত। আপনারা
হয়তো CSS এর
দু-চারটা
ফ্রেমওয়ার্ক
নিয়ে কাজও করে থাকবেন।
আসলে ফ্রেমওয়ার্ক
হচ্ছে বিশেষ বা নির্দিষ্ট
কোনো কাজের জন্য একটা
স্বয়ংসম্পূর্ণ প্লাটফর্ম
যাতে করে কাজটা সহজে,
অল্প
সময়ে এবং শতভাগ কার্যকরভাবে
করা যায়। জাভাস্ক্রিপ্ট
হোক,
CSS হোক
বা অন্য কিছুই হোক
ফ্রেমওয়ার্কের
সংজ্ঞা একই। কয়েকটা উদাহারণ
দিলে হয়তো
ব্যপারটা সহজেই বুঝতে পারবেন--
CSS নিয়ে
ওয়েবসাইট ডিজাইন করার সময়
সাইটটিকে রেস্পনসিভ করার
কাজে Less
Framework খুব
বেশি ব্যবহৃত হয়,
আবার
একটি উৎকৃষ্ট মানের এবং
রেস্পনসিভ ওয়েবসাইট ডিজাইন
করতে Bootstrap
নামক
একটি ওপেন সোর্স ফ্রেমওয়ার্ক
অনেক
কাজের। এখন কথা হচ্ছে ওয়েবসাইট
ডিজাইন তো HTML,
CSS দিয়ে
এমনিতেই করা যায় তাহলে অযথা
ফ্রেমওয়ার্কের
ঝামেলা করার দরকার কি?
এর
উত্তর অবশ্য
আমি
আগেই দিয়েছিলাম,
আপনি
যদি এই ওয়েবসাইট ডিজাইনের
ক্ষেত্রে Bootstrap
ব্যবহার
করেন তাহলে একসাথে অনেক সুবিধা
পাবেন আর তা হল-
(১)
আপনার
অনেক সময় বাঁচবে আপনি যদি
প্রফেশনাল হয়ে থাকেন তাহলে
সময়টা আপনার কাছে অনেক বড় একটা
ফ্যাক্ট। (২)
আপনার
ডিজাইনটি নিট অ্যান্ড ক্লিন
থাকবে এবং এর কার্যকারিতা
থাকবে শতভাগ। (৩)
আপনার
ওয়েবসাইট একই সাথে রেস্পনসিভ(
এক
সাথে অনেক ডিভাইসের জন্য
কার্যকরী )
হয়ে
যাবে। (৪)
আর
সবচেয়ে বড় সুবিধা হচ্ছে আপনার
কাছে কাজটা অনেক সহজ হয়ে উঠবে,
আপনি
যদি CSS
ভালোভাবে
নাও জানে তারপরও প্রফেশনালদের
মত কাজ করতে পারবেন।
আমি
Bootstrap
ফ্রেমওয়ার্কের
মাধ্যমে আপনাদেরকে ফ্রেমওয়ার্ক
সম্পর্কে
একটা ধারনা দিতে চেয়েছি। এক-এক
ফ্রেমওয়ার্কের
সুবিধা,
কাজের
ধরণ এবং
উদ্দেশ্য একেক রকম।
এখন
আসি জাভাস্ক্রিপ্টের
ফ্রেমওয়ার্কের
কথায়। এতক্ষণ ফ্রেমওয়ার্ক
নিয়ে
যা যা বলেছি তা জাভাস্ক্রিপ্ট
ফ্রেমওয়ার্কের
ক্ষেত্রেও প্রযোজ্য।
জাভাস্ক্রিপ্টের
ফ্রেমওয়ার্কগুলা
যে
জাভাস্ক্রিপ্ট দিয়েই তৈরি
হতে
হবে এমন কোনো নেই,
তবে
সাধারণত
কোর পার্টটা জাভাস্ক্রিপ্ট
দিয়েই
হয়ে থাকে,
যার
কারণে আপনি ভালোভাবে জাভাস্ক্রিপ্ট
পারলেও ফ্রেমওয়ার্ক
আবার নতুন করে শিখতে হবে। তবে
ফ্রেমওয়ার্ক
শেখার ক্ষেত্রেও আপনি একই
পন্থা অবলম্বন করবেন অর্থাৎ
রেফারেন্স
হিসেবে শিখবেন আর এর জন্য
ফ্রেমওয়ার্ক
এর অফিসিয়াল
ডকুমেন্টেশনই হচ্ছে বেস্ট।
জাভাস্ক্রিপ্টের
অধিক ব্যবহৃত কয়েকটা ফ্রেমওয়ার্ক
সম্পর্কে
নিচে কিছু তথ্য দেয়া হল--
jQuery:
সাধারণত
animation,
slider ইত্যাদি
নিয়ে কাজ করার জন্য ব্যবহৃত
হয়,
এটাকে
javascript
library বলা
হয়। jQuery
Mobile দিয়ে
স্মার্টফোন,
ট্যাবলেট
ইত্যাদির জন্য বিভিন্ন ধরণের
অ্যাপ্লিকেশান তৈরি করা হয়।
AJAX(
Asynchronous JavaScript and XML ): এটাও
জাভাস্ক্রিপ্টের
একটি
অতি পরিচিত ফ্রেমওয়ার্ক।
AJAX
এর
মূল কাজ হচ্ছে সার্ভারে ডাটা
আদান-প্রদান
করা,
কোনো
একটি ওয়েব পেজের সম্পূর্ণ
লোড না করে নির্দিষ্ট অংশ
আপডেট করা।
AngularJS:
single page Application এর
জন্য এটি অত্যন্ত কার্যকরী।
এটা শেখাও খুব সহজ।
JSON(
JavaScript Object Notation ):
এটা
XML
এর
পরিবর্তে শেখা যেতে পারে,
এটাও
syntex-এর
ভিত্তিতে ডাটা বিনিময়ের কাজ
করে থাকে।
তাছাড়াও
Encoder,
Meteor ইত্যাদি
জাভাস্ক্রিপ্টের
আরও
অনেক
ফ্রেমওয়ার্ক
আছে।
Google Maps API নিয়ে কাজ করার জন্যও জাভাস্ক্রিপ্ট অতুলনীয়।
শেষবেলা
এসে আমি এই কথাটাই বলব যে
কম্পিউটার প্রোগ্রামিং
শুধুমাত্র কয়টা লজিক এর ভিত্তিতে
কাজ করে অর্থাৎ যত ভালোভাবে
এলগরিদম ডিজাইন করতে পারবেন
আপনি ততোই ভালো প্রোগ্রামার
হতে পারবেন। জাভাস্ক্রিপ্ট
যেহেতু প্রোগ্রামিং ল্যাঙ্গুয়েজের
অন্তর্ভুক্ত এটির বেলায়ও তাই
কথাগুলো প্রযোজ্য। আপনি
যদি এলগরিদমের ব্যপারটা বাদ
দিতে চান তাতেও কোনো সমস্যা
নেই কিন্তু সেক্ষেত্রে আপনি
স্বনির্ভরতা হারাবেন অর্থাৎ
আপনি ওয়েব অ্যাপ্লিকেশান
তৈরি করতে পারবেন ঠিকই কিন্তু
নিজের তৈরি লজিক আর এলগরিদমের
সাহায্যে কোনো অ্যাপ্লিকেশান
বা সফটওয়্যার তৈরি করার যে
আনন্দ তা থেকে অবশ্যই বঞ্চিত
হবেন। এলগরিদমের ব্যপারটা
নিজের কাছে স্পষ্ট করার জন্য
সবচেয়ে উত্তম ল্যাঙ্গুয়েজ
হচ্ছে C.
ধন্যবাদ
উত্তরমুছুন