javascript

?مقدمهبرای شروع هرچیزی وهرکاری مهم ترین چیز هدف است.هدف این مقاله این است که چرازبان جاوا اسکریپت بوجود آمده است.شخصی که این زبان راطراحی کرد بدنبال چه چیزی بود؟و همچنین پیشرفت های این زبان نسخه های مختلفی که از آن طراحی شده است چه تغییراتی رانسبت به نسخه های ابتدایی آن ایجاد کرده است؟و همچینین به مواردزیر نیزاشاره خواهیم کرد:*کتابخانه ها و فریم ورک های جاوا اسکریپت و این که هرکدام ازاین ها چه ویژگی هایی دارند .*درباره کدنویسی درجاوا اسکریپت و اصول اولیه کد نویسی به وسیله زبان جاوا اسکریپت .*چرا اگه برنامه نویس هستیم بخصوص تحت وب باید جاوا اسکریپت یادبگیریم شکل کار آن چگونه است.*مشکلات و سختی های کار با این زبان جاوا اسکریپت رانیزبیان خواهیم کردیم.*بازار کار درحوزه جاوا اسکریپت چگونه است و چرا جزو محبوب ترین زبان های برنامه نویسی دنیاشده است و به آن لقب زبان آینده داده اند.زبان جاوا اسکریپت چیست؟زبان جاوا اسکریپت زبانی است که درهمه حوزه های برنامه نویسی قابل استفاده است و همین مزیت باعث شده پیشرفت های چشم گیری داشته باشد. چون شما کمترزبان برنامه نویسی راپیداخواهید کرد که هم درحوزه وب و هم در حوزه اپلیکشن وهم دسکتاپ کاربرد داشته باشد. اکثرا آنهایی که آشنایی بازبان جاوا اسکریپت ندارند آن را با زبان جاوا اشتباه میگیرند وا ین درصورتی است که این دو زبان کاملا ازهم متفاوت هستند. و دلیل نام گذاری جاوا اسکریپت که شبیه به زبان جاوا است ,محبویت زبان جاوا درآن زمان بوده است. وازلحاظ ساختاری نیز شباهت زیادی به زبان های سی و سی پلاس پلاس و جاوا دارد که آن هم بدلیل راحتی یادگیری این زبانهابوده است.جاوا اسکریپت یک زبان مفسری و شی گرا هست و کدهای آن بصورت خط به خط اجرامشود و اگربه طور مثال شما درخط 10 خطا و یاباگ داشته باشید هیچ کدام ازکدهایی که بعداز خط 10نوشتین تازمانی که خطا خط10رارفع نکنید اجرا نخواهد و برای همین به زبان مفسری معروف است.ازجمله ویژگی دیگرآن این است که درحوزه وب وقتی میخواهیم آن استفاده کنیم درداخل همان کدhtml میتوان آن را باتگ </scripte> نوشت وکدهاراداخل آن قرارداد.جاوا اسکریپت تجربه کاربر را ازصفحه وب استاتیک به صفحه داینامیک وپویا تبدیل میکند.همه event ها فرم های لاگین صفحه هات تعاملی که دروب استفاده میشوداکثرا باکدهای جاوا اسکریپت طراحی میشوند.اضافه کردن رفتارتعاملی:نمایش یا پنهان کردن اطلاعات بیشتر با کلیک یک دکمه· تغییر رنگ یک دکمه زمانی که ماوس روی آن قرار می‌گیرد· نمایش اسلاید تصاویر در صفحه اصلی وب· زوم کردن بر روی یک عکس· نمایش تایمر یا شمارش معکوس در وب سایت· پخش فایل صوتی و تصویری در یک صفحه وب· نمایش انیمیشن‌هاساختارجاوا اسکریپتزبان جاوا اسکریپت ازلحاظ ساختار شبیه به زبان هایی مثل c/c++/javaاست.ماازطریق جاوا اسکریپت میتوانیم مقدار تگهای HTMLراتغییر دهیم .به عنوان مثال:درکد زیر تگpباایدیdemoداخل کدHTMLوجود دارد ولی مقداری به آن داده نشده است.درقسمت اسکریپت ماگفته ایم که تگpمقدارش برابر باjavadborojiباشد .وبرای تعریف چیزی که میخواهیم عینا درصفحه وب بما نشان داده شود از "" استفاده می کنیم. وبرای گزاشتن کامنت بین کدها از // استفاده میکنیم.برای تعریف مقداری یامتغیری از var/const/letاستفاده میکنیم که هرکدام ویژگی های خاص خود را دارد.<!DOCTYPE html><html><body><h2>JavaScript Expressions</h2><p>Expressions compute to values.</p><p id="demo"></p>document.getElementById("demo") = "javad" + " " + "boroji”;//display javad boroji</body></html>کتابخانه ها وفریم ورکهای جاوا اسکریپتکتابخانه ها وفریم ورک های جاوا اسکریپت را ما درسه حوزه مورد برسی قرار میدهیم.اولین حوزه :حوزه وب است که خودش به دوقسمت فرانت اندو بک اندتقسیم میشود.فرانت اند:فریم ورکAngular js:کاراصلی این فریم ورک مدیریت تعاملات کاربران صفحات وب دریک مرورگراست. کار این فریمورک در ابتدا بدین گونه است که صفحات HTML را برای به دست آوردن توصیفات جاسازی شده در تگ ها که به عنوان دستوالعمل تفسیر می شود را بررسی می‌کند و بعد از آن انگولار برای نمایش اجزای ورودی/خروجی از طریق }Ember.js یک فریم‌ورک‌ جاوا اسکریپت متن باز تحت لیسانس MIT است.Ember.js با استفاده از موتور نمونه‌های پیش‌ساخته HTMLBar که از مجموعه‌های اصلی موتور نمونه‌های پیش‌ساخته Handerlbars است، ساختار برنامه‌نویسی یکپارچه تازه‌ای را فراهم می‌سازد.Ember.js موتور رندرینگ Glimmer را برای افزایش سرعت رندرینگ فراهم می‌سازد.این فریم‌ورک‌ قابلیت Command Line Interface را فراهم می‌آورد. قابلیت مذکور الگوهای Ember را با فرآیند توسعه یکپارچه می‌کند و به‌راحتی بر بهره‌وری توسعه‌دهنده متمرکز می‌شود.Ember.js از قابلیت جفت‌سازی داده (Data Binding) برای ایجاد لینک بین دو مؤلفه پشتیبانی می‌کند و هرگاه یک قابلیت تغییر کند، قابلیت دیگر نیز با ارزش تازه روزآمد می‌شود.ویژگی‌های Ember.jsEmber.js برای خلق ابزارهای کاربردی جاوا اسکریپت که نگهداشت پذیر و دارای قابلیت استفاده مجدد هستند، استفاده می‌شود.فریم‌ورک‌ Ember.js در بطن مدل توسعه دارای HTML و CSS است.این فریم‌ورک‌ شامل تولید نمونه می‌شود.مسیرها از ویژگی‌های اصلی Ember.js هستند و برای مدیریت URL ها به کار گرفته می‌شوند.Ember.js ابزار Ember Inspector را برای رفع مشکل ابزارهای کاربردی Ember در اختیار کاربر قرار می‌دهد.این فریم‌ورک‌ جاوا از نمونه‌های پیش‌ساخته‌ای استفاده می‌کند که به به‌روزرسانی خودکار مدل درصورتی‌که محتوای ابزارها تغییر کند، کمک می‌کنند.بک اند:Metro js:Meteor.js در واقع یک فریمورک همه کار برای توسعه دهندگان است که در سال ۲۰۱۲ توسط گروه کاری Meteor عرضه شد. این فریمورک برای توسعه دهندگان قابلیتی را فراهم کرده است که بتوانند از ابتدای کار توسعه یک وبسایت تا انتهای آن فقط از جاوا اسکریپت استفاده کنند. این فریمورک جدای از دارا بودن یک موتور رندر برای محیط توسعه Front-Endدارای قابلیت ها و ویژگی های یک فریمورک Back-End مانند مدیریت بانک اطلاعاتی، معماری وب و … است. جدای از آن فریمورک MeteorJSدارای پاکت ها و کتابخانه هایی است که توسعه دهندگان با استفاده از آن می توانند کارهای بیشتری را انجام دهند. یکی از نکات مثبت MeteorJS این است که توسعه دهندگان دیگر مجبور به گذراندن وقت و صرف آن برای یادگیری محیط های توسعه و زبان های برنامه نویسی دیگر ندارند. همه کارها با جاوا اسکریپت انجام می شود.یکی از مهمترین نکات برای استفاده از Meteor.jsزمان لازم برای پیاده سازی آن است. این فریمورک با بانک اطلاعاتی MongoDB و متغیرهای همگانی کار می کند، این دو از موارد مهمی است که در بالا بردن سرعت کار فریمورک نقش بسزایی دارد. Meteor.js از مدیریت بسته های NPM برای محیط Runtime خود استفاده نمی کند. در نهایت کاربرد ها و ویژگی های بسیاری در این کتابخانه وجود دارد که کار بیشتر با آن می تواند شما را بیشتر آشنا کند.:Node jsنود جی اس یک پلتفرم کدنویسی سمت سرور است که بر پایه موتور جاوا اسکریپت مرورگرگوگل کروم کدنویسی شده است. این پلتفرم توسط رایان داهل در سال ۲۰۰۹ ایجاد شده است و در حال حاضر آخرین نسخه آن ورژن 0.10.36 می‌باشد.بر اساس اعلان مستندات رسمی تعریف node js به شکل زیر عنوان می‌شود:نود جی اس یک پلتفرم ایجاد شده بر پایه موتور جاوا اسکریپت گوگل کروم است که باعث سهولت ایجاد و مقیاس‌پذیری برنامه‌های تحت شبکه می‌شود. این پلتفرم از یک مدل I/O رویداد محور استفاده می‌کند که مسدود نشونده (non-blocking) است و همین امر باعث کاهش فشار موجود بر روی سرور و افزایش کارآیی می‌شود و این امر برای اجرای برنامه‌های مبتنی بر داده که بصورت بلادرنگ (Real-Time) بر روی سرورهای نامتمرکز استفاده می‌شوند بسیار مناسب است.”نود جی اس یک پلتفرم کد باز برای گسترش برنامه‌های سمت سرور و تحت شبکه می‌باشد. این پلتفرم بر اساس زبان جاوا اسکریپت نوشته شده است و میزبانی و هاست Nodejs قابلیت پیاده‌سازی بر روی سیستم‌عامل‌های ویندوز، لینوکس و سیستم عامل کامپیوترهای اپل را دارد.این فریم ورک کتابخانه‌ای عظیم از ماژول‌های مختلف جاوا اسکریپت را فراهم می‌کند که سهولت در گسترش وب‌اپلیکیشن ها را تا حد زیادی فراهم می‌آورد.ویژگی های node js:غیرهمزمانی و رویداد محوری: همه‌ی API های کتابخانه Node.js غیرهمزمان می‌باشند که همین امر باعث مسدودناپذیری (non-blocking) آن می‌شود. این بدان معناست که که Node.js در بستر سرور هیچگاه در انتظار بازگشت اطلاعات از API نمی‌ماند. سرور پس از صدا زدن یک API به سمت API بعدی حرکت می‌کند و برای اطلاع از وضعیت API قبلی از مکانیزم ثبت رویداد استفاده می‌کند.سرعت بالا: با توجه به این که نود جی اس بر پایه نسخه ۸ موتور جاوا اسکریپت گوگل کروم پیاده‌سازی شده است در اجرای کدها بسیار سریع عمل می‌کند.تک موضوع اما بسیار مقیاس‌ پدیر: نود جی اس از یک مدل تک موضوعی به همراه حلقه رویددادها استفاده می‌کند. مکانیزم رویداد باعث می‌شود که سرور به صورت مسدود نشونده پاسخ‌ها را ارسال کند و همین امر باعث می‌شود بر خلاف مکانیزم‌های سنتی که سرور را محدود به چند درخواست برای پردازش درخواست‌ها می‌کرد سرور بسیار مقیایس‌پذیر شود.نود جی اس از یک برنامه تک موضوعی استفاده می‌کند و همان برنامه می‌تواند سرویسی برای تعداد بسیار بیشتری از درخواست ها نسبت به مکانیزم‌های قدیمی سرور مثل HTTP سرور آپاچی فراهم کند.عدم وجود بافرینگ: این پلتفرم هیچ داده‌ای را بافر نمی‌کند و داده‌های خروجی را به صورت تکه‌تکه منتشر می‌کند.کجا از Node.js استفاده کنیم؟در زیر برخی از موقعیت‌هایی که نود جی اس خودش را به عنوان یک پلتفرم کارا معرفی می‌کند آمده است:– نرم‌افزارهای محدوده I/O (ورودی و خروجی)– نرم‌افزارهای جریان داده‌ای (Data Streaing)– داده‌های نرم‌افزارهای بلادرنگ (Real-Time)– برنامه‌های مبتنی بر JASON API– برنامه‌های تک صفحه‌ایفریم ورک موبایل:React native: بر پایه یکی دیگر از سرویس‌های محبوب فیس بوک یعنی React می‌باشد که در طراحی رابط کاربری (UI) استفاده می‌شود. ولی برخلاف React که تمرکز اصلی آن روی مرورگر است، React Native برای ساخت اپلیکیشن‌های موبایل استفاده می‌شود.به عبارت دیگر React Native شرایطی را مهیا کرده است که برنامه نویسان وب بتوانند اپلیکیشن هایی بسازند که دقیقا شبیه به برنامه‌های نوشته شده به زبان Native رفتار کند. از آنجایی که برنامه نویسان زیادی جاوا اسکریپت را دوست دارند و از آن استفاده می‌کنند، تجربه کار با React Native می‌تواند لذت بخش باشد.برنامه‌های React Native مانند React با زبان جاوا اسکریپت و JSX نوشته می‌شوند. سپس می‌توان از این کدها برای اندروید و iOS خروجی گرفت. دقت داشته باشید برنامه ای که با React Native می‌نویسید حالتWebview نداشته و کامپوننت‌های واقعی UI را تولید می‌کند. در واقع اپلیکیشن شما هیچ تفاوتی با سایر برنامه‌های موبایل که با زبانNative نوشته شده اند نخواهد داشت.مزایای استفاده از React Nativeتوسعه ی سریع اپلیکیشناز آن جایی که React Native برای این ساخته شد که برنامه نویسان وب بتوانند به راحتی موبایل اپلیکیشن هم توسعه بدهند، بنابراین قواعد آن تا حد زیادی شبیه به برنامه نویسی وب است و می توانید سریع تر از جاوا یا سوئیفت برنامه ی خود را توسعه دهید.مولتی پلتفرمقابلیت بعدی React Native که خیلی با ارزش هم هست مولتی پلتفرم بودن آن است. شما با تغییراتی اندک در ساختار کد خود می توانید هر دو خروجی اندروید و آی او اس را داشته باشید. این یعنی نیاز به دو تیم مختلف برای موبایل اپلیکیشن ندارید و در زمان و هزینه های خود صرفه جویی می کنید. برای استارتاپ ها دو فاکتور قبلی بسیار حیاتی است!عملکرد قابل قبولاگرچه ممکن است آن پلی که میان جاوااسکریپت و دسترسی های native اپلیکیشن ایجاد شده است تاحدی باعث کند شدن برنامه بشود اما شما اکثرا این کندبودن را حس نمی کنید! چرا که در اغلب موارد نیازی نیست که این جابه جایی از ناحیه ی جاوااسکریپت به native رخ بدهد و برنامه کاملا مانند یک اپلیکیشن متداول با سرعت بالا کار می کند. این برتری بالای React Native نسبت به رقبای قدیمی تر مثل اپ های WebView و زامارین است.معایب React Nativeسرعت تغییرات بالافریمورک React Native هنوز در نسخه ی بتا است و جای کار زیادی دارد. (در حال حاضر آخرین نسخه ی آن 0.59 است.) بنابراین اگر امروز یک پروژه ی جدید را با آن شروع کنید ممکن است برنامه ی اولیه شما با خطا مواجه شود! بنابراین اگر وارد برنامه نویسی React Native می شوید این نکته را درنظر داشته باشید که شما هم باید بتوانید هم زمان با این تغییرات جلو بروید.پایدارنبودن کتابخانه های جانبییکی از مشکلاتی که هنوز هم با آن دست و پنجه نرم می کنم خطاهایی است که هنگام آپدیت کردن برنامه ام به آن برخورد می کنم. فرض کنید ورژن react برنامه شما 16.6 و ورژن react native برنامه شما 0.57 است و چندین کتابخانه وابسته هم استفاده کرده اید. حالا اگر این کتابخانه ها را به آخرین ورژن آپدیت کنید به احتمال خیلی زیاد به خطاهای زیادی برخورد خواهید کرد! این واقعا آزاردهنده است و امیدوارم با تغییراتی که قرار است تیم react native روی هسته ی آن شکل دهد این مشکل هر چه زودتر برطرف شود.سختی ها ومعایب کارکردن بازبان جا وا اسکریپت:اولین عیبی که درجاوا اسکریپت به چشم میاد کند بودن ازانجا که درانجام پروژه سرعت وزمان مهمه برای برنامه نویس ولی کندی جاوا اسکریپت درمقابل این موضوع است. دلیل کند بودن زبان برنامه نویسی جاوا اسکریپت این است که این زبان ابتدا تمامی کدها را کامپایل می‌کند و بعد از کامپایل کردن اقدام به اجرای دستورات شما می‌کند. همین عامل باعث می‌شود که این زبان کند باشد چرا که کامپایل کردن کامل کدها زمان زیادی را در برنامه نویسی می‌گیرد. به صورت کلی زبان هایی که ابتدا کدهای شما را کامپایل می‌کنند، مدت زمان بیشتری را برای اجرای دستورات شما می‌گیرند و بسیاری از زبان‌های برنامه نویسی بزرگ به این شکل می‌باشند که یکی از معایب بزرگ این زبان هاست.سخت میتوان جاوا اسکریپت را دی باگ کرد:یکی دیگر از معایب جاوا اسکریپت این است که خیلی دیر دیباگ می‌شود. همانطور که می‌دانید دیباگ کردن اپلیکیشن هایی که طراحی کرده اید یکی از مهم‌ترین بخش‌های برنامه نویسی می‌باشد. کمتر برنامه نویسی را پیدا می‌کنید که بتواند در همان بار اول کدهایی بهینه را بنویسید و هیچ اشتباهی نداشته باشد. بنابراین دیباگ کردن در یک زبان برنامه نویسی باید کار راحتی باشد تا برنامه نویسان بتوانند به راحتی و در کوتاه‌ترین زمان ممکن اپلیکیشن‌های خود را دیباگ کنند ولی این امکان برای زبان برنامه نویسی جاوا اسکریپت فراهم نمی‌باشد و همین مورد یکی از مهم‌ترین معایب جاوا اسکریپت می‌باشد.مشکلاتی که هنگام خطادادن برنامه پیش میاید:از دیگر معایب جاوا اسکریپت می‌توان به این مورد اشاره کرد که هنگامی که برنامه ی شما خطا می‌دهد در برخی از موارد نمی‌توانید متوجه شوید که دلیل این خطا چیست و به همین علت است که باید زمان بسیار زیادی را برای رفع کردن آن سپری کنید. همانطور که می‌دانید بسیاری از زبان‌های برنامه نویسی به این شکل هستند که در صورتی که در حین اجرا دچار خطا شوند، می‌توانید با استفاده از روش هایی دلیل این خطا را پیدا کنید و پیغام مربوط به آن را مشاهده کنید و به این ترتیب خیلی راحت مشکل را حل کنید. ولی این امکان برای شما در زبان برنامه نویسی جاوا اسکریپت فراهم نمی‌باشد و گاهی اوقات نمی‌توانید دلیل خطا دادن برنامه ی خود را متوجه شوید.اجرانشدن درهمه مرورگرها:یکی دیگر از معایب جاوا اسکریپت این است که این زبان برنامه نویسی در همه مرورگرها اجرا نمی‌شود، البته باید گفت که تنها در مرورگرهای قدیمی اجرا نمی‌شود ولی با این حال هنوز هم هستند کسانی که از مرورگرهای قدیمی استفاده می‌کنند و به همین دلیل این مورد نیز یکی دیگر از مهم‌ترین معایب جاوا اسکریپت به شمار می‌آید. در کنار اجرا نشدن بر روی مرورگرهای قدیمی یک مشکل بسیار بزرگ دیگر نیز وجود دارد و آن این است که بسیاری از کاربران این زبان برای این که از سوء استفاده کردن افراد سودجو جلوگیری کنند، امکان اجرای اسکریپت‌های جاوا اسکریپت را بر روی مرورگر خود لغو می‌کنند.فقط بر روی مرورگر اجرا می‌شود:از دیگر معایب جاوا اسکریپت که مشکلات بسیار زیادی را برای برنامه نویسان ایجاد کرده است این است که تنها بر روی مرورگر اجرا می‌شود و به همین دلیل امکان این که بتوانید با سرور سایت مبادله انجام دهید وجود ندارد، همین موضوع باعث شده است که بسیاری از برنامه نویسان دچار مشکلات بسیار زیادی برای مبادله با سرور سایت شوند.امنیت پایین درسمت سرور:امنیت پایین از جمله دیگر معایب جاوا اسکریپت می‌باشد. دلیل امنیت پایین این زبان برنامه نویسی این است که کدهای جاوا اسکریپت بر روی کامپیوتر کاربر اجرا می‌شوند و به همین دلیل مورد مناسبی برای سوء استفاده می‌باشد، بسیاری از اهداف خرابکاری از طریق این مورد از معایب جاوا اسکریپت صورت می‌گیرد. این خرابکاری هایی که از طریق جاوا اسکریپت صورت می‌گیرد باعث شده است بسیاری از مردمی که از انواع مرورگرها استفاده می‌کنند، گزینه جاوا اسکریپت را بر روی مرورگر خود غیر فعال کنند تا از اهداف خرابکاری سوء استفاده گران راحت باشند.افزایش حافظه مرورگر:همانطور که گفته شد جاوا اسکریپت ممکن است دچار خطا شود یا این که مدت زمان بسیار زیادی طول بکشد که اجرا شود، این عامل می‌تواند تأثیر بسیار زیادی بر روی حافظه مرورگر گذاشته و باعث بسته شدن مرورگر کاربر شود و به همین دلیل گاهی اوقات کدهای شما به درستی اجرا نمی‌شود و همین باعث نارضایتی کاربران از وب سایتی می‌شود که با جاوا اسکریپت نوشته شده است. این مورد نیز از معایب جاوا اسکریپت است که باعث می‌شود تا برنامه نویسان دچار مشکلات بسیار زیادی در حین استفاده از زبان برنامه نویسی جاوا اسکریپت شوند.بازارکار ونحوه درامد جاوا اسکریپت:بیشترین حوزه فعالییت و استفاده ازجاوا اسکریپت درحوزه وب است واگرکسی درحوزه وب بخواهد فعالیت کند و باجاوا اسکریپت و کتابخانه های آن آشنایت نداشته باشدقطعا شغلی درست و حسابی پیدا نخواهد چراکه براصفحات تعاملی بایداین زبان رابلدبود.بازارکارجاوا اسکریپت روزبه روز درحال افزایش است و خیلی ازسایت ها ازآن کتابخانه آن درسایت های خود استفاده میکنند .به عنوان مثال اگرکسی بخواهد درحوزه ui وب فعالیت کندبا یادگرفتن فریم ورک Reactدرحال حاظر جزو محبوب ترین فریم ورک های جاوا اسکریپت هست درآمد نسبتا خوبی خواهدداشت. جاوا اسکریپت زبان قدیمی است ولی بازارکارآن روز به روز درحال رشد است و درسال 2019 جزو 10 زبان برنامه نویسی برتر دنیاشد. بر اساس نظرسنجی که توسط جادی در سال گذشته بین ۲۰۰۰ برنامه نویس ایرانی انجام شد، آمار جالبی در رابطه با کار برنامه نویسی به دست آمدکه نتیجه زیررانشان میداد:۴۶٪ توسعه‌دهنده بک اند و ۳۳٪ توسعه‌دهنده فول استک هستند. ۲۸٪ هم توسعه دهنده موبایل و ۲۵٪ توسعه دهنده فرانت اند.پرکاربردترین زبان های برنامه نویسی جاوا اسکریپت بانزدیک 50%است وبعدآن sql و php و پایتون با اختلاف کمی ازیکدیگرقراردارند.جاوا با33%رتبه پنجم است ورتبه های بعدی مربوط خانوادهای سی است.بیشتراز 42% علاقه مندهستندپایتون راشروع کنندورتبه بعدی(علاقه مند به کاربازبان بعدی)مربوط به گو(26%) است وپس ازآن جاواوبعدسوییفت وجاوا اسکریپت.نتیجه گیری:اصولا افرادی بسمت برنامه نویسی گرایش پیدا میکنن که یا مربوط به رشته تحصیلی آنهامیشود یادوست وآشنایی دارندکه دراین حوزه فعالیت میکنند. چون برنامه نویسی برای کسی که ازبیرون به آن نگاه میکند بسیار سخت و دشواره چون تو ذهنیت آنها برای برنامه نویس خوب شدن اول چیزاین است که ریاضی قوی داشته باشند که کاملا شناخت غلطیه چون ادم هایی بودن بدون هوش ریاضی آنچنایی دراین حوزه موفق بوده اند. دومین چیزی که ازدید بیرون مردم به برنامه نویسی دارنداین است که باید زبان اینگلیسی خیلی قوی داشته باشن که این نکته مهمه اگه کسی زبان اینگلیسی قوی داشته باشد باعث میشود خیلی سریع دربرنامه نویسی پیشرفت کند ولی با تسلط به زبان اینگلیسی حتی درحد متوسط میشود برنامه نویس خوبی شد.آن چیزکه دربرنامه نویسی خیلی مهمه داشتن پشت کار و حوصله است چون شما وقتی یه کاری راتازه آغازمیکنید قطعا شکست هایی درآن زمینه خواهید شد که این شکست هادرحوزه برنامه نویسی خیلی بیشتر است وافرادی برنامه نویس خوبی میشوندکه پشت کارخوبی دارند و باهربارشکست جانمیزند و ادامه میدهند. و هرکسی که تجربه بیشتری دارد کدهای آن شخص بهینه تر و بدون باگ تراست. واز آنجایی که جاوا اسکریپت زبانی است که سخت دیباگ میشود وشما اگردرکد خود باگی داشته باشی وتجربه کافی هم نداشته باشی قطعا وقت زیادی ازشما صرف دی باگ کردن کدتون میشود.ولی این عیب جاوا اسکریپت دلیل براین نمیشه که این زبان محبوب یادنگیریم زیرا درآینده حرفاهای زیادی درحوزه برنامه نویسی خواهدداشت همان طورکه درحاضرهم جزو محبوب ترین زبان ها است.پس اگه دنبال زبانی هستید که بعدازگذشت چندین سال ازبازاررقابت کنارنرود و بتوان با آن زبان درآمدی خوبی داشته باشید قطعا این زبان رایاد بگیرین.جامعه جاوا اسکریپت شبیه به کیسه مخلوط ازچیزهاست....انجمن های جاوا اسکریپت انچنان که باید ازاین زبان برنامه نویسی بدانندنمی دانند.این باعث میشود که توسعه دهندگان جاوا اسکریپت از آنها الگوبگیرند و تنها هدف شان هم سطح دانش از زبان باشد.ولی به مرورزمان این حالت تغییر کرده و روز به روز هم افزایش می یابد این است که درحال حاظر توسعه دهندگان خوب وماهری پدید آمده اندکه زمانی را برای یادگیری عمیق ترجاوا اسکریپت درنظر گرفته اند و حال دارند اطلاعات ودانش خود را درزمینه جاوا اسکریپت به صورت رایگان و برای مفیدشدن انجمن جاوا اسکریپت به شتراک می گذارند.جاوا اسکریپت معرکه نیست ولی در حال حاضر بهترین انتخاب ما به حساب می آید. جاوا اسکریپت به سادگی می تواند هر چیزی را انجام دهد، جاوا اسکریپت رو به زبان اصلی خودتون تبدیل کنید و باهاش هرچی دوست دارید بنویسید از وب گرفته تا دسکتاپ و اینترنت چیز ها و الی آخر. واقعیت آن است که نمیشه این حرف ها رو برای زبان های برنامه نویسی دیگه هم زد.