آنچه در ادامه میخوانید، ترجمهایست از کتاب راهنمای جامع جاوااسکریپت نوشتۀ فیلیپ آکرمان.
بیایید با این سوال شروع کنیم: چرا برنامه مینویسیم یا بهتر بگوییم، با نوشتن برنامهها چه اهدافی را دنبال میکنیم؟. در وهلۀ نخست، برنامهنویسی به معنای برونسپاری وظایفی مشخص به رایانه است. این وظایف میتواند طیف وسیعی از مسائل باشد؛ از مسائل پیچیدهای که آدمی برای درک و حل آن، نیاز به تلاش فراوان دارد، تا چیزهایی که به ما کمک میکند در انجام کارهای روزمره موثرتر عمل کنیم؛ واژهپردازها، ایمیلها و مرورگرها از این دستاند. تمام این برنامهها توسط فرد یا افرادی نوشته شده است. به بیان ساده، وظیفۀ یک برنامهنویس و توسعهدهنده، این است که بهگونهای به رایانه دستورالعمل دهد تا آن بتواند وظایف محولشده را بهدرستی اجرا کند. بهعنوان یک توسعهدهنده، شما باید گامهای جداگانهای را برای حل یک مسئلۀ خاص، تدوین کنید. این مسئله میتواند نحوۀ مرتبسازی دادهها در یک جدول باشد یا نحوۀ اعتبارسنجی دادههای واردشده در یک فرم. رایانه این گامها را بهترتیب و یکبهیک، ارزیابی میکند. این روند، تقریباً با یک دستور پخت قابل قیاس است. در دستور پخت نیز، گامهای مجزایی تعریف شدهست که با پیگیری هرکدام، میتوانیم به هدف خود برسیم. در برنامهنویسی، توسعهدهنده کسیست که به کامپیوتر، دستورالعملی برای پیگیری میدهد. بهطور خلاصه، در علوم کامپیوتر و مهندسی نرمافزار، به مراحل حل یک مسأله، «الگوریتم» گفته میشود. بنابراین، یک برنامه که به آن نرمافزار یا برنامۀ کاربردی نیز گفته میشود، دنبالهای از الگوریتمهاست؛ دنبالهای از دستورالعملها که کامپیوتر بتواند آن را اجرا کند.
تعریف: در توسعۀ نرمافزار، مجموع مراحل تعریفشده برای حل یک مسأله را «الگوریتم» مینامند. این، با دستورپخت و از ایندست دستورالعملهای اجرایی یا دستی قابل مقایسه است. در این مفهوم، یک الگوریتم تدوین مجموعهای از دستورالعملها برای حل یک مسألۀ خاص در رایانه است.
کسانی که تازه به دنیای برنامهنویسی وارد شدهاند، اغلب بهسختی میتوانند مانند یک رایانه بیندیشند و گامهای حل یک مسأله را بر اساس الگوریتم تعریف کنند. درحالیکه ما بهعنوان یک انسان، همیشه میتوانیم در هنگام انجام یک دستورالعمل، فرضاً آشپزی، از خلاقیت خود استفاده کنیم و مراحلی را باتوجه به تجربۀ خود تغییر دهیم، رایانهها صرفاً دستورالعملهایی که میگیرند را، بهدقیقترین شکل، پیگیری میکنند. یک رایانه فرض میکند، مراحلی که شما پیش رویش قرار دادهاید، باید دقیقاً همانطور که تنظیم شدهاند، انجام شوند. این تفاوت و شکاف میانِ نحوۀ انجام کار انسان و ماشین، زمانی بهخوبی روشن میشود که در مقام یک توسعهدهنده قرار گیرید. آنجاست که متوجه میشوید برای ارتباط با رایانه و پُرکردن این شکاف، این شما هستید که باید سعی کنید تماماً خود را در جایگاه یک رایانه قرار دهید و دستورالعملها را در دقیقترین حالت، تنظیم کنید.
نکته: هنگامی که در سال 2000، برنامهنویسی را شروع کردم، مُدام در تعجب بودم که چگونه، فردی میتواند به دانش لازم برای نوشتن برنامهها دست یابد؟ و همواره توسعهدهندگان کاربلد را بهواسطۀ دانششان میستودم. بعد از همۀ این سالها، میتوانم بگویم: شما فقط در صورتی برنامهنویسی را یاد میگیرید، که خودتان آن را انجام دهید. بنابراین، شما نهتنها باید این کتاب را بخوانید، بلکه باید بهجد روی مباحث آن تمرین کنید و بارها و بارها برنامه بسازید. با این حال، اگر چیزی درست کار نکرد، بیجهت به خودتان گیر ندهید و استرس وارد نکنید. آنچه شما بهعنوان یک توسعهدهنده، بیش از هر چیز دیگری، بدان نیاز دارید، پشت کار و میل سیریناپذیر به یادگیریست.