۵ اصطلاح مهم که هر برنامه نویسی باید بداند
همه افراد میخواهند یک توسعهدهنده نرمافزار باشند؛ اما هیچ کس نمیخواهد مشقّتهای تبدیل شدن به یک توسعهدهنده نرمافزار را متحمل شود. یکی از دلایل این مسئله این است که افراد نمیدانند چطور میتوان این همه اصطلاحات مختلف را در ذهن نگهداری کرد. در ادامه 5 اصطلاح مهم برنامهنویسی که به عنوان یک مبتدی باید بدانید و هنگام یادگیری روش کدنویسی به طور روزمره با آنها مواجه میشوید را ارائه کردهایم.
سرآغاز
از شما انتظار نمیرود که همه اصطلاحهای برنامهنویسی که میبینید را حفظ کنید. در طی تمرینهای مختلف به طور شهودی، اصطلاحها و تعاریف آنها را یاد خواهید گرفت، پس سعی کنید روی تشخیص منطق چرایی و چگونگی استفاده از این اصطلاحها در یک محیط برنامهنویسی متمرکز شوید.
این روش به طور خاص با در نظر گرفتن اصطلاحهای پیچیده برنامهنویسی که غالباً شامل واژههای سردرگم کننده دیگری نیز میشود مفید خواهد بود. در هر حال نکته مهم این است که در هنگام یادگیری زبان برنامهنویسی، استرس نداشته باشید.
ویرایشگر متن
ویرایشگر متن برنامهای است که با آن به ویرایش متن میپردازیم. گرچه این مفهوم میتواند ساده به نظر بیاید؛ اما اگر بدانید استفاده از یک ویرایشگر متن مناسب تا چه اندازه مهم است شگفتزده خواهید شد.
Notepad در ویندوز یک نمونه معروف از نرمافزار ویرایشگر متن است. با این وجود، برنامههای ویرایشگر متن به دلیل قابلیتهای برنامهنویسیشان دارای دستورها و ویژگیهای مختلفی هستند. بدین ترتیب امکان کدنویسی سریعتر و تمیزتر فراهم میشود.
یکی از این ویژگیهای مهم، هایلایت کردن دستور زبان (syntax highlighting) است. این قابلیت به نرمافزارهای ویرایش متن، امکان هایلایت کردن بخشهای مختلف متن با رنگهای مختلف را میدهد. بدین ترتیب برنامهنویس میتواند دستورها، زبانها، و نمادهای مختلف را با نگاهی گذرا در سند شناسایی کند. هایلایت کردن دستور زبان برای توجه به خطاها و جداسازی بخشهای مختلف کد کاملاً ضروری است. این قابلیت همچنین باعث تسریع در درک شهودی منطق برنامهنویسی میشود. به عنوان یک مثال ساده، یک پرانتز باز قرمز رنگ به این معنی است که باید پرانتز بسته نیز نوشته شود.
++Notepad و Sublime Text دو نمونه دیگر از نرمافزارهای ویرایش متن خوب هستند که میتوانید آنها را دانلود کرده و مورد استفاده و بررسی قرار دهید.
IDE (محیط توسعه یکپارچه)
با این که نرمافزارهای ویرایش متن صرفاً روی کدی که مینویسید تمرکز دارند؛ اما IDE نوعی محیط امن محسوب میشود که میتوانید در آن برنامه خود را نوشته، کامپایل (ترجمه از متن به زبان رایانه)، تست، و دیباگ (تصحیح یا اشکالزدایی) کنید. کلمه محیط در عبارت «محیط توسعه یکپارچه» واژههای کلیدی محسوب میشود، زیرا استفاده از یک IDE به معنی استفاده از چند ابزار برنامهنویسی است که در یک برنامه واحد بستهبندی شدهاند. بنابراین از شما انتظار میرود که از این ابزارها برای ساخت یک محصول استفاده کنید.
با این که IDE لزوماً تجربه برنامهنویسی سادهتر یا سختتری نسبت به ویرایشگر متن ندارد؛ اما دلیل علاقه اکثر افراد به IDE در برخی قابلیتهای تسهیلکننده کلیدی آنها مانند لینک کردن فایلها به هم، نهفته است. شاید مدیریت یک فایل منفرد HTML که توسط یک فایل CSS تغییر مییابد کار آسانی باشد؛ اما در پروژههای پیچیدهتر که نیازمند لینک کردن بین زبانهای مختلف برنامهنویسی، فریمورکهای متفاوت و مواردی از این دست هستند، استفاده از IDE بسیار کار را سادهتر میسازد.
این همان جایی است که IDE فایده خود را نشان میدهد، زیرا باعث یکپارچه شدن فایلها، پوشهها و ابزارها در یک بستهبندی آسان میشود. IDE ها به طور خاص هنگام استفاده از زبانهای برنامهنویسی شیءگرا مانند C++، C، روبی و غیره نیز بسیار مفید هستند.
زبان برنامهنویسی در برابر زبانهای اسکریپتنویسی
یکی از بحثهای مشهوری که در دنیای برنامهنویسی همواره میبینیم، مربوط به مقایسه بین اسکریپت و زبان برنامهنویسی است. با این که اغلب برنامهنویسها معمولاً همه کدها را نوعی زبان برنامهنویسی میدانند؛ اما تمایز باینری ظریفی بین یک زبان برنامهنویسی و زبان اسکریپتنویسی وجود دارد:
زبانهای برنامهنویسی کامپایل میشوند، در حالی که زبانهای اسکریپتنویسی تفسیر میشوند.
فرض کنید یک اپلیکیشن را روی رایانه 1 ساختهاید و میخواهید آن را به فردی که از رایانه 2 استفاده میکند ارسال کنید.
اگر بخواهید فرد کاربر رایانه 2 از برنامه کامپایل شده روی رایانه 1 استفاده کند، باید آن را از کد منبع کامپایل کنید، یعنی آن را از کد منبع به زبان قابل خواندن از سوی رایانه که یک فایل اجرایی است، تبدیل نمایید. در این حالت رایانههای دیگر میتوانند آن را دانلود کرده و برای استفاده اجرا کنند.
یک روش خوب برای به خاطر سپردن این مفهوم آن است که کد کامپایل شده به صورت فایل اجرایی روی یک رایانه ویندوز، نمیتواند روی یک رایانه Mac اجرا شود.
از سوی دیگر اگر بخواهید رایانه 2 از برنامه تفسیر شده استفاده کند، میتوانید از جاوا اسکریپت که یک زبان اسکریپتنویسی است، در یک وبسایت استفاده کنید و لینک آن صفحه وب را به رایانه 2 ارسال نمایید. این لینک از سوی رایانه مقصد به وسیله یک مرورگر وب تفسیر میشود؛ اما نیازمند هیچ فرایند مستقل دانلود و نصب نیست. از آنجا که کد تفسیر شده نیازی به کامپایل شدن ندارد، میتوان از آن روی پلتفرمهای مختلف استفاده کرد.
فریمورکهای نرمافزار در برابر کتابخانههای نرمافزار
یک فریمورک نرمافزاری طرح اولیه کدنویسی است که راهنمایی برای یک پروژه کدنویسی به حساب میآید. فریمورک در سطحی جدا از زبان برنامهنویسی قرار دارد و تعیین میکند که کدام جنبههای زبان برنامهنویسی در پارامترهای مشخص باید استفاده شوند. برای نمونه Bootstrap یک فریمورک فرانت-اند است که امکان فراخوانی مجموعهای از ابزارهای UI وب برای اجرای وظایف مختلف را فراهم میسازد. Ruby on Rails یک فریمورک بک-اند است که تعیین میکند دادهها چگونه باید روی یک سرور ذخیره شوند.
در سوی دیگر، یک کتابخانه نرمافزاری قطعهای کد با قابلیت استفاده مجدد است که در یک پروژه قرار گرفته و وظیفه خاصی را اجرا میکند. فریمورکها در اغلب موارد شامل کتابخانههای نرمافزاری هستند و به کاربران نیز امکان ادغام کتابخانهها برای افزایش قابلیتهای فریمورک برنامهنویسی را میدهند. برای مثال Ruby Gems کتابخانههایی هستند که از زبان برنامهنویسی روبی استفاده میکنند. سپس این کتابخانهها در فریمورک Ruby on Rails ادغام میشوند تا کارکردهای کد شما را بسط دهند.
شِبه کد
دو نوع کلی از کدنویسی وجود دارد که شما به عنوان یک برنامهنویس باید انجام دهید: کد مناسب که نیازمند دستور زبان مناسب است و شبه کد. دستور زبان، ساختار هر زبان برنامهنویسی را تعریف میکند. دستور زبان برنامهنویسی به طور خاص به قواعد و راهنماهای مناسب برای یک زبان برنامهنویسی مفروض جهت برنامهنویسی یک دستور خاص اشاره دارد.
شبه کد به منظور توضیح منطق دستور زبان برنامهنویسی با استفاده از زبان معمولی استفاده میشود. در این روش به جای این که بخواهیم کدی برای اجرای دستورهای برنامه بنویسیم، در واقع قصد داریم منطق دستورها را پیش از پیادهسازی آن با استفاده از دستور زبان روشن سازیم.
شبه کد یک قالب برای کد ایجاد میکند که باعث میشود تکمیل کردن برنامه سادهتر شود و قالبهای کدنویسی خاصی در ذهن شکل بگیرند.
برای نمونه برای تعیین نمره یک آزمون چه اقداماتی باید صورت بگیرد؟ احتمالاً شما بدین منظور از منطق سادهای مانند زیر شروع میکنید:
آزمون را تعیین کن به سؤالات نگاه کن پاسخ را علامت بزن اگر صحیح بود علامت صحیح بزن اگر نادرست بود علامت غلط بزن نمره را بنویس
با این که در متن فوق مراحل مورد نیاز برای تعیین نمره یک آزمون را به درستی نوشتهایم؛ اما مقدار زیادی تخیل نیز وجود دارد. آیا ما به طور دقیق آن چه را باید انجام دهیم توصیف کردهایم؟ آیا باید پاسخها را به صورت تصادفی نمره بدهیم یا از روش مرتبی استفاده کنیم؟ آیا نمره ما به یک درصدی وابسته است و اگر چنین است آیا باید دادههای خام مانند پاسخهای درست، پاسخهای نادرست و مجموع سؤالات را باید به صورت نسبت درآوریم تا درصد مناسب را محاسبه کنیم؟
این نوع از محاسبات منطقی در زمان کدنویسی ضروری هستند و از طریق نوشتن و طراحی شبه کد صورت میگیرند. در طی زمان شبه کد شما هم با روند منطقی و هم دستور زبان واقعی پروژههای کدنویسیتان ارتباط نزدیکتری مییابد.
این اصطلاحها صرفاً یک نقطه شروع هستند
اگر فکر میکنید هنوز برای آغاز یک موقعیت شغلی در زمینه توسعه نرمافزار آمادگی ندارید، کاملاً درست فکر میکنید! دنیای توسعه نرمافزار به اندازه همه کیهان وسیع و بیانتها است یا دست کم این گونه به نظر میرسد.
با این وجود شما باید در این فضای بیانتها روی پاهای خود بایستید. اگر این مقاله نخستین مواجهه شما با دنیای اصطلاحات برنامهنویسی محسوب میشود، باید بدانید که با واژههایی که در این مقاله فهرست کردهایم، در اغلب جنبههای شغل برنامهنویسی مواجه خواهید شد. دلیل این مسئله آن است که اصطلاحهای برنامهنویسی در اغلب موارد بر مبنای همدیگر ساخته میشوند. هر اصطلاح جدیدی که یاد میگیرید، دو اصطلاح جدید دیگر وجود دارد که باید بیاموزید. مهمترین نکته این است که شما اکنون با برخی از ضروریترین اصطلاحهای مقدماتی آشنا شدهاید.
اگر این مطلب برایتان مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- چگونه برنامهنویسی وب را شروع کنم؟
- مجموعه آموزشهای برنامهنویسی
- ۵ نکته ضروری برای شروع برنامهنویسی
- آموزش های ویژه علاقهمندان به کامپیوتر
- ۱۰ فیلمی که با دیدنشان شروع به برنامه نویسی میکنید
- آموزش اصول و مبانی برنامه نویسی
==