برنامه نویسی چیست؟ به چه کسی برنامه نویس میگویند؟
در همین ابتدای مطلب، قبل از آنکه بگوییم برنامه نویسی چیست، باید گفت که پشتِ هر کلیکی که میکنیم، برنامه نویسی شده و پای یک برنامه نویس در میان است. از ۲ بعلاوه ۲ که در ماشین حساب کامپیوتر وارد میشود تا برنامههای سنگین و بازیهای ویدیویی گرفته تا زمانی که سبد خرید فروشگاه آنلاین را نهایی میکنیم و به درگاه بانکی وصل میشویم، از مسیر طراحی شده توسط برنامه نویسان عبور میکنیم.
برای رسیدن به پاسخ این سوال که”برنامه نویسی چیست”، کافی است سه خط پایین را خوب درک کنید:
برنامه نویسی علمی است که از طریق آن دستوراتی را جهت اجرا به کامپیوتر تفهیم میکنیم؛ به کسی که این دستورات و برنامهها را مینویسد، برنامه نویس میگوییم. این دستورات در قالب کدهایی که برنامه نویسان آنها را نوشتهاند به کامپیوتر داده میشود و کدها در پردازشگر رایانه (یا همان CPU) پردازش شده و خروجی نهایی به کاربر نشان داده میشود.
کاربردهای برنامه نویسی آنقدر وسیع است که زندگی بدون این کدها معنای خود را از دست میدهد. از همان ابتدای صبح که بیدار میشوید، ناخودآگاه با طیف وسیعی از نرم افزارهای ریز و درشت روبهرو خواهید شد. حتی بسیاری از کسب و کارها با این حوزه از فناوری به شکلی عجیب عجین شدهاند! از آنجایی که علم برنامه نویسی بسیار وسیع است و بخشهای مختلفی را در بر میگیرد، در این مطلب مرحله به مرحله جلو میرویم تا بتوانیم شاخهها و زبانهای برنامهنویسی را در یک ساختار هدفمند توضیح دهیم.
فهرست مطالب
آیا کد نویسی همان برنامه نویسی است؟
این که در برخی از مطالب کد نویسی را به جای برنامه نویسی و یا بالعکس میآورند، اشتباه محض است. صرف اینکه شما توانایی کد نویسی دارید، به این معنی نیست که برنامه نویس هم هستید! کدنویسی (Coding) با اینکه بخش بزرگی از توسعه نرم افزار را دربر میگیرد اما هرگز یک بخش ضروری نیست. تفاوت کدنویسی با برنامه نویسی بیشتر در محدوده کاری (Scope)، مهارتها، ابزارها و نتیجه پایانی به چشم میخورد. در واقع:
اگر برنامه برنامه نویسی را یک درخت فرض کنیم، کدنویسی تنها شاخهای از این درخت است.
معرفی بهترین زبانهای برنامه نویسی در دنیا
زبان برنامه نویسی ساختار اصلی تشکیلدهنده هر نرم افزار، وبسایت و اپلیکیشنهای موبایلی و کامپیوتر است که ما به صورت روزمره با آنها سر و کار داریم. تاریخچه، ویژگیها و کاربردهای هر یک از این زبانها متفاوت هستند و برای برخی از زبانهای برنامه نویسی، آینده بهتری را پیشبینی کردهاند. در ادامه برخی از محبوبترین زبانهای برنامه نویسی را به شما معرفی میکنیم. پس اگر قصد استخدام برنامه نویس را دارید، بهتر است قبل از آن، با این زبانها آشنا شوید.
زبان برنامه نویسی پایتون (Python)
از زبان برنامه نویسی پایتون (Python) همین را بدانید که وبسایتهای اینستاگرام، گوگل، اسپاتیفای، نتفلیکس، اوبر، پینترست و دراپباکس در بکاند (Back-End) خودشان از پایتون استفاده میکنند!
این زبان برنامه نویسی توسط آقای گایدو وان روسام (Guido Van Rossum) در سال ۱۹۹۰ طراحی شد و کاملا یک زبان شی گرا، تفسیری و سطح بالا (High Level) است و آینده بسیار درخشانی پیش رو دارد. زبان برنامهنویسی پایتون در دهه اخیر همیشه جزو پنج زبان برتر به شمار میرفته است. همچنین به علت محبوبیت بیش از اندازه، قدرت بالا و تنوع و تعدد فرصتهای شغلی که این زبان بوجود آورده است، نه تنها جزو ۵ زبان برتر که معمولا یکی از دو گزینه اول یا دوم بوده است. پایتون کاربردهای بسیار گستردهای مانند هوش مصنوعی و امنیت دارد و بسیاری از کارفرمایان برای پیادهسازی استارتاپها و ساخت نمونه اولیه وبسایت و اپلیکیشنها، به استخدام برنامه نویس پایتون روی میآورند.
پی اچ پی (PHP)
اگر میخواهید بدانید PHP چیست، باید بگوییم که پی اچ پی مخفف عبارت Hypertext Preprocessor به معنی پیشپردازنده ابرمتن یا مافوق متن است که در ابتدا به اشتباه آن را مخفف Personal Homepage میدانستند! بالغ بر سه چهارم (نزدیک به ۸۰ درصد) از وبسایتهای موجود در دنیای مجازی از این زبان برنامه نویسی استفاده میکنند.
سایتهایی مثل ویکیپدیا، فیسبوک، یاهو، وردپرس و Tumblr از کاربران این زبان برنامهنویسی هستند. یکی از مزایای زبان PHP این است که میتواند با HTML ادغام شود و همچنین برای طراحی وبسایتهای پویا (Dynamic) بسیار کاربردی است. این زبان معمولا به عنوان زبان بکاند در طراحی وبسایت به کار میرود.
جاوا اسکریپت (JavaScript)
جاوا اسکریپت (JS یا JavaScript) یکی دیگر از محبوبترین زبانهای برنامهنویسی به خصوص در طراحی سایت به شمار میرود. این زبان، از شیوههای مختلف برنامهنویسی پشتیبانی میکند و مانند پایتون یک زبان سطح بالا، شیگرا و تفسیری است.
به غیر از طراحی وبسایت، از این زبان بیشتر در ساخت اپلیکیشنهای موبایلی و کامپیوتری و همچنین در تولید بازیهای ویدیویی استفاده میشود. اگر به دنبال استفاده از یک زبان برنامهنویسی کاربردی برای وبسایت یا کسب و کار خود هستید، استخدام برنامه نویس جاوا اسکریپت به شما پیشنهاد میشود. به زبانهایی که ساختار نوشتاری و منطق آنها به زبان انسانی نزدیکتر باشد، زبانهای سطح بالا یا (High Level) گفته میشود.
وبسایت گوگل و یوتیوب در بکاند و هم در فرانتاند خود از جاوا اسکریپت استفاده میکنند. به غیر از این دو وبسایت بزرگ، فیسبوک، یاهو، آمازون، ایبی (eBay) و QQ از طرفداران زبان برنامهنویسی JS هستند.
منظور از بک اند و فرانت اند چیست؟
در این مطلب بارها به مفاهیم فرانت اند (Front-End) و بک اند (Back-End) اشاره شد و در این بخش به معنای این دو مفهوم میپردازیم! فرانت در زبان انگلیسی به معنی رو، جلو و نما است. در طراحی وبسایت و برنامه نویسی فرانت اند، منظور آن بخشی است که توسط کاربران قابل رویت است و کاربر بصورت مستقیم با آن تعامل میکند.
در گذشته هرگاه صحبت از توسعه سایت میشد، منظور همان بک اند سایت بود. اما در چند سال اخیر این موضوع دستخوش تغییراتی شده است. برای مثال وظایف شخصی که نرم افزاری مانند افتر افکت را طراحی میکند، با وظایف شخصی که آنها را تبدیل به کدهای HTML و CSS میکند، تفاوت بسیاری دارد. حالا کدهای HTML و CSS چیست؟! در ادامه به آنها هم خواهیم پرداخت.
اما بک اند عمدتا از سه بخشِ سرور، برنامه و دیتابیس (پایگاه داده یا Database) تشکیل میشود. برای مثال؛ هنگام خرید آنلاین بلیط هواپیما از یک وبسایت، ابتدا با فرانت اند سایت تعامل میکنید. سپس هنگامی که اطلاعات خود را وارد کردید، برنامه آن اطلاعات را در دیتابیس ذخیره میکند. زمانی که شما بلیط را پرینت میگیرید، آن اطلاعات از دیتابیس فراخوانی و چاپ میشوند.
برنامه نویسانی که از تمامی تکنولوژیها استفاده میکند تا با یکدیگر در تعامل باشند، توسعهدهنده بک اند گفته میشوند و زبانهای مورد علاقه آنها پایتون، جاوا اسکریپت و PHP است. برای سرعت بخشیدن و آسانتر شدن فرآیندها، این Back-end Developerها از چارچوبهای یا فریمورکهایی مثل Laravel یا VueJs استفاده میکنند. شاید برای شما جالب باشد که بدانید، وبسایت پونیشا با فریمورک Laravel و VueJs توسعه داده شده است.
آیا HTML و CSS زبان برنامه نویسی هستند؟
اگر صاحب کسب و کاری هستید، حتما در رزومه افرادی که برای استخدام شدن به شرکت شما مراجعه میکنند، دیدهاید که نوشتهاند مسلط به زبان برنامهنویسی HTML و CSS هستند. در ادامه توضیح میدهیم که چرا HTML و CSS نمیتوانند از لحاظ فنی و علمی در دسته زبانهای برنامه نویسی قرار بگیرند.
این دو عبارت مخفف چه هستند و چه ویژگیهایی دارند؟
کلمه HTML مخفف عبارت Hyper Text Markup Language. کلمه Markup که در این عبارت آمده است، خودش یک زبان نشانهگذاری یا علامت گذاری است. از طرف دیگر CSS هم مخفف عبارت Cascading Style Sheet است و اشاره میکند که CSS تنها یکStyle Sheet است یا برگه تعیینکننده سبک نگارش یک صفحه وب است. در واقع CSS به کمک HTML میآید تا صفحات وب به زیبایی هرچه تمامتر طراحی شوند.
از طرف دیگر، زبانهای برنامهنویسی دارای ویژگیها و قابلیتهایی هستند که آنها را تبدیل به یک “زبان” میکنند. برای مثال در PHP میتوانید از موارد زیر استفاده کنید:
- از حلقههای while و for
- از جملات شرطی if و else
- از توابع (Functions)
- متغیر تعریف کنید و به آنها مقدار دهید
هیچ یک از ویژگیهایی که در بالا ذکر کردیم در HTML و CSS یافت نمیشوند. یعنی هرگز نمیتوانید کارها و دستوراتی مانند دستورات بالا را در HTML و CSS اعمال کنید.
فوت و فن برنامه نویسی موبایل
یکی از جذابترین قسمتهای توسعه نرم افزار، برنامه نویسی موبایل بوده است. صحبت از مشاغل فریلنسری شد، پس حتما در ادامه مطلب این فرصتهای کاری در دنیای برنامهنویسی را هم بررسی میکنیم.
به نحوی میتوانیم بگوییم که اکثر اپلیکیشنهای کاربردی که در گوشیهای هوشمند نصب هستند، همان وبسایتهایی هستند که در قالب یک اپلیکیشن برای راحتتر شدن کار با آنها بوجود آمدهاند. برنامهنویسی موبایلی با توجه به دو پلتفرم اصلی یعنی iOS و Android، از استقبال بسیار خوبی برخوردار شدهاند. برای سیستم عامل iOS معمولا از زبان Swift استفاده میشود. اما برای اندروید، معمولا از زبانهایی مثل Java، Kotlin، و Xamarin استفاده میشود.
از مزایای استفاده از اپلیکیشنهای موبایلی، میتوان به چند گزینه زیر اشاره کرد:
- در دسترس بودن در هر زمان و هر مکان
- امکان ارسال اعلان برای کاربر
- به روزرسانی خودکار اطلاعات سایت
چرا برخی برنامه نویسها به صورت فریلنسر کار میکنند؟
با توجه به تعریف برنامه نویسی که تا کنون ارائه کردیم، برنامه نویسی، طراحی سایت و اپلیکیشن موبایلی را میتوان تلفیقی از علم و هنر دانست. برخی از برنامه نویسان که تعداد آنها کم هم نیست، به صورت خوداشتغالی (فریلنسری) کسب درآمد میکنند. یعنی فریلنسرها به استخدام هیچ شرکتی در نمیآیند. زیرا خیلی راحت میتوانند در آنِ زمینه در چندین پروژه مشغول به کار شوند.
شناور بودن ساعات کاری، قراردادهای کوتاه و کسب درآمد حتی از خانه همگی از مزیتهای کار بصورت فریلنسینگ است. از طرفی اما خوداشتغالی به این شکل معایبی هم دارد و برای مثال فریلنسر خودش باید به دنبال مشتری باشد! اما در کل فریلنسرینگ در این حوزه این روزها طرفداران زیادی دارد. معمولا برای طراحان وب، توسعهدهندگان اپلیکیشنها و نرم افزارها که به صورت پروژهای کار میکنند، یک گزینه ایدهآل است.
سخن پایانی
در این مطلب گفتیم برنامه نویسی چیست، برنامه نویس کیست و با اصطلاحات مهم این حوزه آشنا شدیم. همچنین بررسی کردیم که بک اند و فرانت اند چه تعریفی دارند و بهترین زبانهای برنامه نویسی در دنیا کدام هستند. اگر صاحب کسب و کار هستید و به دنبال مکانیزه کردن فعالیتهای خود در بستر اینترنت هستید، حتما باید پیشزمینه مناسبی در این حوزه داشته باشید. زیرا شما نیاز دارید از متخصصینی استفاده کنید که دانش مورد نیاز پروژه شما را داشته باشند، خواندن مقالهی “برنامه نویس موفق” نیز به شما کمک میکند تا بهترین انتخاب را در زمینهی انتخاب متخصص مورد نظر داشته باشید. همچنین شما میتوانید پروژه خود را در دستهبندی فریلنسرهای برنامه نویسی پونیشا ثبت کنید. سپس منتظر باشید تا برترین فریلنسرهای پونیشا، نسبت به نیازمندیهای شما پیشنهاد خود را ثبت کنند.
سوالات متدوال
برنامه نویسی چیست؟
برنامه نویسی علمی است که از طریق آن دستوراتی را جهت اجرا به کامپیوتر تفهیم میکنیم؛ به کسی که این دستورات و برنامهها را مینویسد، برنامه نویس میگوییم.
بهترین زبان برنامه نویسی چیست؟
ویژگیها و کاربردهای هر یک از این زبانها متفاوت هستند و برای برخی از زبانهای برنامه نویسی، آینده بهتری را پیشبینی کردهاند؛ از جمله پایتون، PHP، جاوا اسکریپت و …
تفاوت برنامه نویسی و کد نویسی چیست؟
این که در برخی از مطالب کد نویسی را به جای برنامه نویسی و یا بالعکس میآورند، اشتباه محض است. صرف اینکه شما توانایی کد نویسی دارید، به این معنی نیست که برنامه نویس هم هستید!
سلام ممنون بابت متن کامل و مفیدتون. میشه لطفا در مورد زبان های برنامه نویسی برای موبایل هم مطلب منتشر کنید؟
سلام مهدیهی عزیز. بله ما در پونیشا مقالهی “بهترین زبانهای برنامه نویسی موبایل” رو داریم که میتونه به شما کمک کنه.
سلام ممنون از متن خوبتون در مورد برنامه نویسی. بسیار کامل بود.
سلام سوزان عزیز. خوشحالیم که خوشتون اومده.
ممنون از این مقاله کاربردی