برنامه نویسی چیست ؟
برنامهنویسی کار و دانشی است که در آن فرآیند و قوانین و دستورالعملهای لازم برای انجام یک فعالیت به شکل قابل درک برای کامپیوتر ایجاد میشوند. به عبارت دیگر کار «ساخت نرمافزار» برنامهنویسی نامیده میشود.
یک برنامهنویس برای اینکه بتواند کار برنامهنویسی یک نرمافزار را انجام دهد به چند چیز نیاز دارد:
- دانستن هدف از ایجاد نرمافزار
- آشنایی با شیوه عملکرد سختافزار مقصد( کامپیوتر، موبایل، تبلت، تلویزیون هوشمند، میکروکنترلر، … )
- آشنایی با زبان برنامهنویسی
- خلاقیت و تجربه برای طراحی فرآیند و الگوریتمهای مورد نیاز
- صرف زمان برای آماده سازی نرمافزار
برنامهنویسی چه طور انجام میشود ؟
یک برنامهنویس برای اینکه بتواند افکار خود را به شکلی که ماشین آن را بفهمد تبدیل کند، لازم است تا آنها را مکتوب کند. شکل مکتوب کردن این افکار میبایست با قوانین و دستورالعملهای خاصی به انجام برسد.
برای مثال قطعه کد زیر یک عملیات ساده جمع را به انجام میرساند:
1 2 3 4 |
var a = 10; var b = 20; var c = a + b; alert( c ); |
دستورالعملهای نوشته شده توسط برنامهنویس معمولا «کد» نامیده میشوند. این کدها سپس در چند مرحله به شکلهایی دیگر تبدیل میشوند و در نهایت به شکل قابل اجرا توسط سختافزار تغییر شکل میدهند. سختافزار سپس این کدها را اجرا میکند و اهداف برنامهنویس را عملی مینماید.
هدف از برنامهنویسی چیست ؟
هدف اصلی برنامهنویسی آماده کردن یک ابزار جدید که بتواند کار یا مجموعهای از کارها را در زمانی کوتاهتر و با دقت بیشتر و با کیفیت بالاتر به انجام برساند. یک برنامه میبایست اصول امنیتی، کاربردی، هزینهای و … مورد نیاز برای نیاز پروژه را به خوبی در نظر بگیرد.
این کار با نوشتن دستورالعملهای قابل فهم برای ماشین به انجام میرسد تا سختافزار بر اساس این دستورالعملها، فعالیت مورد نظر را عملی کند.
سختافزارهای دارای قابلیت برنامهپذیری
برنامهنویسی تنها برای کامپیوتر به انجام نمیرسد. انواع ابزارهای هوشمند مانند موبایلها، تبلتها، دستگاههای هوشمند خانگی مثل تلویزیون، قطعات الکترونیک مثل میکروکنترلرها و … میتوانند قابلیت برنامهپذیری داشته باشند.
برنامهنویسی هر سختافزار به ابزارها و دانش متفاوتی نیازمند است و همچنین ممکن است با یک یا چند زبان برنامهنویسی بتوان برای هر سختافزار، برنامه و نرمافزار تولید نمود.
انواع برنامهنویسی
برنامهنویسی نیز مانند سایر علوم در گذر زمان تغییرات زیادی را به خود دیده است. نسلهای برنامهنویسی به شکل زیر میتوانند طبقهبندی شوند:
- برنامهنویسی خطی( Linear )
- برنامهنویسی ساختیافته( Structured )
- برنامهنویسی شیء گرا( Object Oriented )
- برنامهنویسی خدمات گرا( Service Oriented )
لازم به ذکر است در نسلهای جدیدتر برنامهنویسی ممکن است از شیوههای متداول در گذشته نیز استفاده شود. همچنین ممکن است بتوان نسلهای برنامهنویسی را با توجه به معیارهای دیگر به شکلهایی دیگری نیز طبقهبندی نمود.
زبانهای برنامهنویسی
تعداد زبانهای برنامهنویسی بسیار زیاد است ولی تعداد محدودی از این زبانها به صورت گسترده استفاده میشوند. هر زبان برنامهنویسی قوانین خاص و مزایا و معایب ویژهای دارد. گاهی برنامهنویسی برای یک هدف خاص با چند زبان برنامهنویسی امکانپذیر است. در چنین شرایطی، دانستن مزایا و معایب هر یک انتخاب مناسبترین گزینه و در نتیجه به دست آمدن بهترین خروجی با کمترین هزینه را امکانپذیر میکند.
از جملهی مشهورترین و پرکاربردترین زبانهای برنامهنویسی میتوان به C++، Java، php، Javascript، C# و Python اشاره کرد. با روی کار آمدن گوشیهای هوشمند، استفاده از زبانهایی که به طور خاص برای این محیطها توسعه یافتهاند هم مورد توجه قرار گرفته است. از آن جمله میتوان به زبان Swift برای گوشیهای اپل اشاره نمود.
کدام زبان برنامهنویسی بهتر است ؟
این سوال شبیه به این سوال است که «دانستن زبان کدام کشور بهتر است ؟». پاسخ این است که «به شرایط شما بستگی دارد». اگر در اسپانیا زندگی کنید، دانستن زبان فارسی تقریبا بی فایده است و اگر در آمریکا زندگی میکنید، حتما باید زبان انگلیسی را بلد باشید. بنابراین زبان برنامهنویسی که انتخاب میکنید، باید بر اساس شرایط شغلی یا علاقه شما باشد. اگر یک زبان برنامهنویسی خاص را انتخاب کنید، باید به دنبال شغلهایی متناسب با آن زبان باشید یا اینکه اگر نمیتوانید برای یافتن محل مناسب، جستجو کنید، باید زبانی را یاد بگیرید که در اطراف شما برای آن شغل وجود دارد.
برنامهنویسی سایت چیست ؟
برنامهنویسی سایت، کار ایجاد نرمافزارهایی است که ورودی و خروجی آن از طریق مرورگرهای وب و با کمک سرورهای اینترنتی به انجام میرسد. به عنوان مثال یک نرمافزار حسابداری تحت وب یا سایت اینترنت بانک، ابزاری است که در هر جای جهان با در اختیار داشتن ارتباط اینترنتی و یک گوشی هوشمند یا یک لپتاپ میتوان از آن استفاده کرد.
هر چه اینترنت بیشتر فراگیر میشود، علاقه به استفاده از نرمافزارهای تحت وب نیز بیشتر میشود. زیرا به سختافزار خاص و محدودی نیاز ندارد و همچنین محدودیتهای مکانی نیز در این روش از بین رفته است.
البته نباید فراموش کرد که این دسترسپذیری بی انتها، میتواند تهدیدهای امنیتی را نیز به همراه داشته باشد.
برنامهنویسی چندسکویی
برخی زبانهای برنامهنویسی تنها برای یک سختافزار و یک سیستم عامل قابل استفاده هستند و برخی دیگر برای برنامهنویسی چندین سیستم عامل و محیط مختلف قابل استفاده میباشند. به دلیل گسترده شدن و تنوع بسیار زیاد سختافزارها، علاقه عمومی به سمت زبانهایی است که با کمک آن میتوان برای محیطهای مختلف برنامهنویسی انجام داد.
برای مثال این امکان وجود دارد که برنامهای با زبان Javascript نوشته شود و خروجی آن روی ویندوز، لینوکس، گوشی اندروئید و گوشی آیفون تقریبا به یک صورت قابل استفاده باشد.
برنامهنویسی گروهی
ایجاد نرمافزارهای بزرگ به فعالیت گروهی دهها یا صدها برنامهنویس به صورت همزمان نیازمند است. برای مثال برنامهنویسی مرورگر فایرفاکس به دلیل گستردگی بسیار زباد آن توسط صدها نفر به صورت همزمان انجام میشود. ابزارهایی ویژه برای مدیریت و هماهنگی کار گروههای بزرگ برنامهنویسان ایجاد شدهاند که کمک میکنند هر کس وظایف و حوزه فعالیت مشخصی داشته باشد. در پایان نیز قابلیتهای وجود دارد که میتواند فعالیتهای انجام شده توسط برنامهنویسان مختلف را به صورت مجتمع به صورت محصولی نهایی آماده سازی نماید.
از جمله محبوبترین ابزارهایی که در این فرآیند مورد استفاده قرار میگیرد، Git و Subversion میباشند.