شروع یادگیری برنامه نویسی جاوا اسکریپت چگونه است؟

دسته بندی: جاوا اسکریپت
زمان مطالعه: 10 دقیقه
۳۱ فروردین ۱۳۹۸

در شروع یادگیری برنامه نویسی جاوا اسکریپت ، دانستن مسیر گام به گام رسیدن به مقصد کار را ساده تر می کند. این کار باعث می شود تخمین درست تری از زمانی که برای آموزش جاوا اسکریپت نیاز دارید بزنید. همچنین از سردرگمی و هدر رفتن زمانتان برای تحقیق در این مورد کم می کند. در این مطلب قصد داریم مسیر پر پیچ و خم شروع یادگیری جاوا اسکریپت و حرفه ای شدن در آن را به طور کامل برای شما توضیح دهیم.

 

یادگیری برنامه نویسی جاوا اسکریپت

ممکن است در ابتدا ساده به نظر برسد! زبان برنامه نویسی ساده ای که به صفحات HTML متصل می شود و معجزه می آفریند. اما پس از شروع یادگیری جاوا اسکریپت رفته رفته به این نتیجه می رسید که مفاهیم بسیاری برای یاد گرفتن وجود دارد. ممکن است کمی گیج شوید. اسامی زیادی به گوشتان می خورد: انواع تکنولوژی های جاوا اسکریپت که کاربرد یا معنی آن ها را نمی فهمید. نگران نباشید! هر چه نیاز دارید اینجاست:

یادگیری برنامه نویسی جاوا اسکریپت

چگونه جاوا اسکریپت یاد بگیریم

در ابتدای مسیر نیاز است که شما مفاهیم زبان برنامه نویسی جاوا اسکریپت مانند تعریف متغیر ها، توابع و... را فرا بگیرید. این مرحله مثل خط شروع شما است. می توانید برای شروع یادگیری جاوا اسکریپت از کتاب ها، دوره آموزش جاوا اسکریپت، مقالات و... استفاده کنید. به هر حال احتمالا به زودی در این مرحله آماده می شوید. خواندن و دنبال کردن مقالات راهنمای جامع جاوا اسکریپت برای شروع این کار، پیشنهاد ماست!

یادگیری ES6

ECMAScript یا به اختصار ES یک استاندارد برای زبان های برنامه نویسی است. جاوا اسکریپت مهم ترین پیاده کننده این استاندارد است. ES6 در واقع آخرین نسخه منتشر شده از اکما اسکریپت است. اگر در مورد ES6 اطلاعات کافی ندارید می توانید به بخش تاریخچه جاوا اسکریپت در نوشته جاوا اسکریپت چیست مراجعه کنید.

ES6 امکانات جدیدی را به جاوا اسکریپت اضافه می کند. اما همه مرورگر ها از آن پشتیبانی نمی کنند. برای حل این مشکل می توانیم از ابزار هایی استفاده کنیم که کد ES6 را به جاوا اسکریپتی که توسط همه مرورگر ها قابل اجرا باشد ترجمه می کند. یکی از این ابزار ها کتابخانه Babel است. با استفاده از Babel به راحتی می توانید کد های ES6 خود را برای اجرا روی مرورگر به جاوا اسکریپت خام تبدیل کنید.

یادگیری برنامه نویسی جاوا اسکریپت

یادگیری یک Task Runner

قبلا اجرای کار های مختلفی مانند کم حجم کردن فایل های جاوا اسکریپت و سی اس اس (minify کردن)، چسباندن فایل های جاوا اسکریپت به هم (concatenate کردن) و... بر عهده خودمان بود. بعد از هر بار ایجاد تغییر در فایل ها مجبور بودیم، تمام عملیات بالا و دسته ای از عملیات دیگر را دوباره و دوباره تکرار کنیم. این کار وقت گیر، پر هزینه و البته ملال آور بود. تا اینکه  Task Runner ها به میدان آمدند.

Task Runner همان کاری را انجام می دهد که از اسم آن مشخص است. وظیفه Task Runner انجام دادن وظایف است. مثلا Task Runner می تواند با دریافت یک دستور watch با هر بار ایجاد تغییر در فایل ها پروژه را دوباره اجرا کند. تعداد زیادی Task Runner وجود دارد که یادگیری کار با آن ها هم راحت است مانند Gulp.js، Grunt.js، npmscript و... به طور کلی بیشتر Task Runner ها می توانند این کارها را انجام دهند:

  • چک کردن فایل های جاوا اسکریپت برای یافتن خطا
  • الحاق یا Concatenate کردن فایل های مختلف جاوا اسکریپت
  • کم حجم کردن یا Minify کردن فایل های جاوا اسکریپت
  • بهینه سازی حجم تصاویر
  • بارگزاری مجدد برنامه پس از تغییر در فایل ها یا Watch کردن
  • و ....

یادگیری برنامه نویسی جاوا اسکریپت

یادگیری یک Package Manager

قدم بعدی در شروع یادگیری جاوا اسکریپت ، آموزش یک یا چند Package Manager است. پکیج ها در واقع قطعاتی از کد هستند که قابلیت استفاده مجدد را دارند. این پکیج ها می توانند از یک نرم افزار Package Manager یا مدیریت پکیج دانلود شده و در سیستم توسعه برنامه نویس ذخیره شوند. پکیج های مختلف ممکن است به یکدیگر وابسته باشند. Package Manager نرم افزاری است که به شما کمک می کند که پکیج های مختلفی که خودتان نوشته اید و یا دیگران آماده کرده اند مدیریت کنید تا پروژه تان به درستی کار کند. اگر به دنبال یادگیری یک Package Manager هستید پیشنهاد ما به شما npm است. البته پکیج منجرهای دیگری مانند bower، yarn و... نیز وجود دارند.

یادگیری برنامه نویسی جاوا اسکریپت

یادگیری یک Bundler

در قدم بعدی باید با Bundler ها آشنا شوید. اگر آشنایی مقدماتی با جاوا اسکریپت پیدا کرده باشید احتمالا می دانید که برای اضافه کردن فایل های جاوا اسکریپت به یک صفحه باید از کد زیر در HTML استفاده کنید:

<script src=’app.js’ rel=’text/javascript’></src>
<script>
…
</script>

در مثال بالا اگر در فایل app.js یک متغیر سراسری (متغیری که از تمام نقاط به آن دسترسی دارید) تعریف شده باشد؛ شما به راحتی می توانید در داخل تگ script دوم به آن دسترسی داشته باشید (در جاوا اسکریپت به متغیر هایی که در خطوط بعدی تعریف شده اند دسترسی ندارید). حالا فرض کنید که تعداد فایل های جاوا اسکریپت زیاد باشد. برای مثال، نمونه زیر را در نظر بگیرید:

<script src=’app.js’ rel=’text/javascript’></script>
<script src=’main.js’ rel=’text/javascript’></script>
<script src=’script.js’ rel=’text/javascript’></script>

در این حالت کنترل ترتیب متغیر ها در فایل ها کمی سخت می شود. ممکن است در فایل main.js به متغیری احتیاج داشته باشید که در فایل script.js تعریف شده است. در این حالت راه حل، جابه جا کردن ترتیب معرفی فایل ها است. اما این عمل با زیاد تر شدن تعداد فایل ها پیچیده تر می شود. در اینجا Bundler ها یا Module Loader ها برای الحاق خودکار فایل ها به کمک شما می آیند!

Bundler ابزاری است که تمام تکه کد های جاوا اسکریپت و فایل های وابسته آن ها را به صورت یک بسته در یک فایل جمع آوری می کند. این کار علاوه بر رفع دردسری که بالا توضیح داده شد، باعث می شود تعداد Request ها در زمان بارگزاری صفحه کاهش پیدا کند و سرعت بارگزاری صفحه بهبود پیدا کند.

برنامه نویسی جاوا اسکریپت

از محبوب ترین Bundler ها می توان به Webpack، Browserify، Rollup اشاره کرد. البته باید بگوییم که ابزار های جامعی مثل Webpack  ضمن اینکه کتابخانه Babel را برای ترجمه کد ES6 در خود دارند، بخشی از وظایف Task Runner ها را هم انجام می دهند!

یادگیری یک فریمورک جاوا اسکریپت

بعد از مقداری کدنویسی با جاوا اسکریپت  متوجه می شوید که کدهای زیادی در حال تکرار شدن هستند. ایجاد تغییر در کدها با زیاد شدن خطوط کد مشکل تر و مشکل تر می شود. این روش کدزنی مسلما استاندارد نیست. اما ابزار هایی وجود دارند که در واقع کدهایی از پیش نوشته شده و استاندارد هستند. فریورک ها چهارچوب هایی هستند که شما تحت آن ها به کدزنی می پردازید و با این روش، نه تنها سرعت توسعه برنامه افزایش پیدا می کند بلکه نگهداری و بهینه سازی کدها بسیار آسان می شود. به عنوان مثال Angular.js، React و Vue.js تعدادی از این فریمورک های محبوب جاوا اسکریپت هستند. اگر دوست دارید بیشتر با این فریمورک ها آشنا شوید، ما مقاله ای در مورد معرفی محبوب ترین فریمورک های جاوا اسکریپت برای شما آماده کرده ایم.

یادگیری برنامه نویسی جاوا اسکریپت

آشنایی با تست نویسی در جاوا اسکریپت

در کار برنامه نویسی زمان هایی پیش می آید که برنامه به مشتری تحویل داده می شود اما مشتری ادعا می کند که برنامه به درستی کار نمی کند. در موقعیت های مختلفی برنامه های ما به درستی عمل نمی کنند و به اصطلاح باگ دارند. بنابراین برنامه باید بارها و بارها ایرادگیری شود. این عمل، عمل وقت گیر و هزینه بری است. در واقع یک کابوس به تمام معنا!

راهکار این است که برنامه های ما بر اساس تست یا Test Driven نوشته شوند. یعنی برای تک تک عملکرد های برنامه ابتدا کدی برای تست آن نوشته شود. پس از اتمام کار تست نویسی شروع به نوشتن کدهایی می کنیم تا در نهایت در آن تست ها با موفقیت اجرا شوند. با این کار اگرچه فرآیند کدنویسی را طولانی تر کرده ایم، اما در نهایت فرآیند دیباگ و اشکال گیری نرم افزار بسیار راحت می شود.

در جاوا اسکریپت هم ابزار های تست نویسی مختلفی وجود دارند. به عنوان مثال می توان به Jest از شرکت فیسبوک و Mocha اشاره کرد.

یادگیری برنامه نویسی جاوا اسکریپت برای برنامه نویسی بک اند

یکی از کاربرد های بسیار زیاد جاوا اسکریپت استفاده از آن در بک اند برنامه هاست. به این صورت که با استفاده از موتور V8 جاوا اسکریپت را روی کامپیوتر سرور اجرا کنیم. اگر قصد دارید یک برنامه نویس فول استک جاوا اسکریپت شوید بنابراین برنامه نویسی بک اند با جاوا اسکریپت گزینه ای است که باید حتما یاد بگیرید. برای برنامه نویسی جاوا اسکریپت در سمت سرور از فریمورک Node.js استفاده می کنیم. در مطلبی که در مورد محبوب ترین فریمورک های جاوا اسکریپت نوشته ایم به معرفی این فریمورک پرداخته ایم.

یادگیری Typescript

متاسفانه زبان برنامه نویسی جاوا اسکریپت زبانی است که از نظر تعریف نوع متغیر ها فقیر است. این به آن معنی است که شما نمی توانید در جاوا اسکریپت انواع متغیر ها را تعیین کنید. مشکل این فقدان در این است که دیباگ کد ها در زمان اجرا را به شدت مشکل و در نهایت جاوا اسکریپت خام را در سمت سرور، برای اپلیکیشن های بزرگ نامناسب می کند.

زبان Typescript که در واقع یک بسته تکمیلی برای زبان برنامه نویسی جاوا اسکریپت است این مشکل را حل می کند. Typescript امکانات زیادی را به جاوا اسکریپت اضافه می کند. زبان Typescript در نهایت برای اجرا به کد جاوا اسکریپت ترجمه می شود. منظور از بسته تکمیلی این است که شما حتی می توانید کد جاوا اسکریپت خام را در Typescript استفاده کنید.

یادگیری برنامه نویسی جاوا اسکریپت

نتیجه گیری

ممکن است در ابتدای کار، شروع یادگیری برنامه نویسی جاوا اسکریپت ساده به نظر برسد. ممکن است تصور کنید با یک زبان برنامه نویسی ساده بدون حتی قابلیت تعریف نوع متغیر ها سر و کار دارید. اما یادگیری این زبان برنامه نویسی و متعلقات آن قرار نیست یک هفته ای ممکن شود! اما ما در این مطلب تلاش کردیم این مسیر طولانی را برای شما قدم به قدم شرح دهیم. روشن بودن مسیر یادگیری جاوا اسکریپت یا Roadmap آن به شما کمک می کند با زاویه دید بازتر و روشن تری به تخمین زمان یادگیری بپردازید. علاوه بر آن دانستن قدم بعدی به شما آرامش خاطر بیشتری می دهد. به نظر شما چه چیزهای دیگری باید در این مسیر گنجانده شود؟

اگر می خواهید بیشتر درباره برنامه نویسی جاوا اسکریپت مطالعه کنید مقالات زیر را دنبال کنید 

نویسنده

نظرات کاربران

علی سلیمی

سلام وخسته نباشید مچکر از مقاله خوبتون خانم فرحمند من با توجه به رشتم به مشاورتون نیاز دارم ممنونم

حمیدرضا اکبرنژاد

سلام. خیلی ممنون از مقاله ساده و در عین حال جامعتون. عالیه. همیشه قرار نیست یه مقاله با کلمات قلمبه سلمبه تو چشم مخاطب بلد بشه! سادگی، بهترین زیباییه. و این که اگه میشه یه کم عملی به بحث جاوااسکریپت بپردازین. این که چه سایت ها و اپلیکیشن هایی با جاوااسکریپت نوشته شدن(بک اند و فرانت اند) مزایای این سایتا و اپلیکیشنا چیه و این که آینده این زبان برنامه نویسی و فریم ورک هاش تو ایران به چه شکله؟ محبوبیت کدوم فریم ورک جاوااسکریپت به لحاظ کاری داخل ایران بیشتره؟ بازم ممنون بابت مقالتون و سون لرن

مهدی علامه

سلام حمید عزیز
خواهش می کنم
برای خواندن این موضوعات می تونی به لینک های زیر سر بزنی
فریمورک های جاوا اسکریپت : بهترین فریم ورک های JavaScript
جاوا اسکریپت چیست؟

علی قادری

سلام ممنون از مطلبتون
جاوااسکریپت برای بک اند چطوره ؟
ایا از php بهتره؟
برای بک اند وردپرس و لاراول رو یادبگیریم بهتره یا جاوااسکریپت؟

زهرا فرحمند

سلام آقای قادری عزیز. راستش زبان بهتر و بدتر برای شما وجود نداره. هرکدوم از این زبان ها و فریمورک ها در جایگاه خودشون بهترین هستند. به زودی پادکستی با موضوع انتخاب بین وردپرس و لاراول خواهیم داشت. 🙂

banihashem3

با تشکر از شما بابت مطلب خوبتون

آتنا

راهنمای جامع و کاربردی بود. ممنون از شما و تیم خوبتون

hamid golipoor

با سلام و احترام خدمت مدیریت سایت جناب آوند
با کمال تشکر از سایت و مرجع آموزشی که کمک شایانی به رشد علمی دانشجویان داشته، لطف بفرمایید امکان دریافت PDF برای مقاله هایی که توی سایت گذاشته می شه رو قرار بدهید.
با تشکر و سپاس فراوان

لقمان آوند

سلام اقا حمید
ممنون از شما
سون لرن جدید رو تا 1 ماه دیگه می بینید سعی می کنیم تو ورژن جدید بزاریم

مجتبی شهریور

سلام
وقت بخیر عالی بود در صورت امکان دریافت مقالات به صورت پی دی اف فراهم بفرمایید

زهرا فرحمند

سلام جناب شهریور عزیز. به زودی قالب جدید با امکانات جدید بالا خواهد اومد. ممنون از اینکه توی این راه همراه ما هستید 🙂

احسان

سلام
خیلی ممنون، این مقاله تاثیر زیادی داره برای مطالعه و بهتر یادگیری زبان JavaScript

زهرا فرحمند

سلام. خوشحالم که استفاده کردید احسان عزیز 🙂

ایمان شیخ ممو

عرض ادب و احترام
اینقدر وضح و شفاف توی این مقاله توضیحات مربوطه داده شده که یک فردی که اطلاعات مبتدیانه ای هم داشته باشه کاملا آگاهی پیدا میکنه ..
بسیار سپاسگزارم ازتون

زهرا فرحمند

سلام. خوشحالم که استفاده کردید آقای شیخ مموی عزیز. موفق باشید 🙂

نازمحمد گری

سلام / مقاله مفیدی بود / با تشکر

زهرا فرحمند

سلام ممنونم از همراهیتون 🙂

زهرا فرحمند

ممنونم از توجهتون آقای خادمی عزیز موفق باشید 🙂

زهرا فرحمند

ممنونم دوست عزیز ممنون از توجهتون

زهرا فرحمند

سلام آقای لطفی عزیز خوشحالم که استفاده کردید 🙂

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :

 
گزارش مشکل