برنامهنویسی یعنی نوشتن دستوراتی منطقی و پشتسر هم برای ماشینها، در حقیقت هنگامی که فردی برنامهنویسی میکند دستورات بهخصوصی را نوشته و کامپیوتر آنها را اجرا میکند، در اینجا منظور از کامپیوتر هر نوع وسیلهی دارای قدرت پردازشی و پردازنده است، این تعریف میتواند شامل رایانههای امروزی، تلوزیونها، خودروها، لوازم خانگی و… باشد، در این مقاله از همیار آیتی قصد داریم کمی بیشتر با دنیای برنامهنویسها آشنا شده و ببینیم برنامهنویسی چیست و همچنین یک برنامهنویس کیست و چه وظایفی برعهده دارد؟
اجازه دهید مفهوم برنامهنویسی را با یک مثال بسیار ساده برای شما شرح دهیم، کمی دربارهی نحوهی برقراری ارتباط در موجودات زنده فکر کنید، ما انسانها از طریق صحبت کردن با یکدیگر ارتباط برقرار میکنیم، حیوانات با تولید صداهای مخصوص به خود با یکدیگر ارتباط برقرار میکنند، برخی از حشرات با تولید امواج فراصوت از محیط اطراف خود آگاه میشوند…
حال بیایید همین موضوع را در مورد ماشینهای الکترونیکی بررسی کنیم، به نظر شما ما انسانها چگونه میتوانیم با ابزارهای الکترونیکی ارتباط برقرار کنیم؟ بهخوبی میدانیم که یک کامپیوتر تنها از چند قطعهی الکترونیکی مانند پردازنده و حافظه تشکیل شده و با ولتاژ الکتریسیته کار میکند.
بنابراین ما هیچگاه نمیتوانیم با زبان انسانی خود با یک ماشین الکترونیکی ارتباط برقرار کنیم و مجبوریم با زبان خود کامپیوتر با آن ارتباط برقرار کرده و دستورات خاصی را به آن منتقل کنیم، این زبان بهخصوص، زبان برنامهنویسی نامیده میشود که خود تاریخچهی بلندی دارد، در ادامهی این مقاله با همیار آیتی همراه باشید تا باهم وارد دنیای بزرگ برنامهنویسها شده و دریابیم آنها چگونه میتوانند با این ماشینهای الکترونیکی صحبت کنند.
همانطور که گفتیم رایانهها با ولتاژ کار میکنند، در حقیقت با نیروی برق یا باتری، پس تنها چیزی که میتوانیم در مدارهای یک کامپیوتر مورد استفاده قرار دهیم ولتاژ الکتریسیته است، پردازنده و سایر اجزای یک کامپیوتر از طریق ولتاژهای گوناگون قادرند مفاهیم مختلفی را منتقل، پردازش و ذخیره کنند، اما مشکل اینجاست که هر ولتاژی مورد قبول این قطعات نیست و احتیاج داریم با قوانین خاصی از این پتانسیل استفاده کنیم.
در حقیقت دو ولتاژ به خصوص را در قطعات به کار میگیریم، و از آنها به عنوان ۰ و ۱ یاد میکنیم، با توجه به ساختار قطعات مقدار ولتاژ متفاوت خواهد بود، به عنوان مثال در برخی رایانهها ولتاژ ۰ به معنای بیت ۰ و ولتاژ ۵ به معنای بیت ۱ است، در برخی دیگر ولتاژ ۵ نشاندهندهی مقدار بیت ۰ و ولتاژ ۱۰ نشاندهندهی بیت ۱ است.
در پایینترین سطح یک کامپیوتر (یعنی سختافزار) تنها و تنها قادریم با بیتهای ۰ و ۱ با دستگاه ارتباط برقرار کنیم، به عنوان مثال در برخی از پردازندههای قدیمی یا سیستمهایی که احتیاج به سرعت بسیار بالا در پردازش دارند زبان ۰ و ۱ که اصطلاحا آن را زبان باینری (دودویی) مینامیم کارساز خواهد بود، اگر دوست دارید بیشتر با این زبان آشنا شوید میتوانید مقالهی کدهای باینری را در ویکیپدیا مطالعه کنید.
به زبان ساده، در سیستم باینری بیت ۱ به معنای روشن بودن و بیت ۰ به معنای خاموش بودن است، از کنار هم قرار گرفتن بیتهای گوناگون بینهایت عدد تولید خواهد شد که هرکدام از آنها نشاندهندهی یک دستورالعمل یا مفهوم خاص برای کامپیوتر هستند و اساس کار رایانههای امروزی را شکل میدهند.
مشکل تازهای که سر راه برنامهنویسان وجود داشت این بود که ارتباط با یک کامپیوتر به زبان باینری، برای انسانها کاری دشوار و تقریبا غیر ممکن بود، به همین علت تصمیم گرفتند زبانهایی را برای ارتباط با رایانهها طراحی کنند که تا حدودی به زبان انسان نزدیکتر بوده و برنامهنویسی با آنها سادهتر باشد.
نخستین زبانهای برنامهنویسی چگونه بهوجود آمدند؟
همانطور که گفتیم، کار با زبان باینری چندان آسان نبود، به همین علت انسانها برای هر دستور یک معادل کلمهای در نظر گرفتند و از آن به بعد به کمک آن کلمات برنامهنویسی میکردند، که به آن زبان اسمبلی (Assembly) گفته میشد.
به عنوان مثال به جای کد ۰۱۰۰۱۱۰۱ عبارت SUM را به ماشین تحویل میدادند و کامپیوتر زحمت تبدیل این عبارت به معادل باینری آن را بر عهده داشت، اگر تا قبل از به وجود آمدن این زبان رشتهی عددی 01001101 نشاندهندهی عملیات جمع در کامپیوتر بود، از این پس عبارت SUM برای کامپیوتر معادل 01001101 و به معنای عملیات جمع تلقی میشد.
البته که در نهایت تمام این دستورات برای فهم کامپیوتر باید به زبان باینری تبدیل میشد، که این فرایند (یعنی تبدیل دستورات اسمبلی به باینری) بر عهدهی اسمبلر بود، از آنجایی که تبدیل زبان اسمبلی خود احتیاج به پردازش جداگانهای داشت، بنابراین از سرعت کمتری نسبت به زبان باینری برخوردار بود.
به مرور زمان، زبانهای پیشرفتهای خلق شد که امکانات و قابلیتهای گستردهتری را در اختیار برنامهنویسان قرار میداد، زبانهایی مانند سی، جاوا، پایتون و… نمونههایی از این زبانها به شمار میآیند، هرچند زبانهای سطح بالا سادگی و کارایی بیشتری را در اختیار برنامهنویس قرار میدادند، اما زبانهای سطح پایین مانند باینری و اسمبلی همچنان از سرعت بیشتری برخودار هستد، چراکه فرایند تبدیل و کامپایل در آنها وجود نداشته و پردازش کمتری توسط رایانه انجام میشود.
امروزه در سیستمهایی که احتیاج به سرعت پردازش بالایی دارند، بهعنوان مثال فضاپیماها، سیستمهای بیمارستانی یا رباتهای خاص از زبانهای سطح پایینتر مانند اسمبلی و حتی باینری استفاده میشود، اما در برنامهنویسیهای معمولی، مانند اپلیکیشنهای کامپیوتر، موبایل و وب از زبانهای سطح بالا استفاده شده و وظیفهی کامپایل یا ترجمهی دستورات برعهدهی کامپیوتر گذاشته میشود.
برنامهنویسی چیست؟ برنامهنویس کیست؟
احتمالا با خواندن این مقاله تا بهحال متوجه مفهوم برنامهنویسی شدهاید، اما به زبان ساده، برنامهنویسی عبارت است از تحلیل نیازها و تبدیل آنها به دستورات قابل فهم کامپیوتر، وظیفهی نوشتن این دستورات بر عهدهی برنامهنویسهاست، آنها قادرند دستورات انسانی را برای کامپیوتر نوشته و از آن برای پردازشهای مورد نیاز ما استفاده کنند.
به عنوان مثال دستورات زیر را در نظر بگیرید:
#include <iostream>
using namespace std;
int main() {
int a , b;
cin >> a >> b;
cout << a+b;
return 0;
}
این مجموعه دستورات به زبان ++C نوشته شدهاند و از کامپیوتر میخواهند دو عدد a و b را از کاربر دریافت کرده، آنها را باهم جمع کند و در نهایت حاصل جمع را در صفحهی خروجی نمایش دهد.
دقیقا معادل همین کد در زبان پایتون (Python) به شکل زیر نوشته میشود:
a = int(input())
b = int(input())
print(a+b)
همانطور که مشاهده میکنید، هرچند نوع نگارش این دو زبان با هم متفاوت است، اما هردوی آنها در اصل یک کار یکسان را انجام میدهند و از رایانه میخواهند دو عدد را از ورودی دریافت کرده و حاصل جمع آنها را محاسبه کرده و نمایش دهد.
برنامهنویسها نحوهی کار با یک زبان بهخصوص را فراگرفته و به کمک آن زبان، برنامههای مورد نیاز سایرین را برای کامپیوتر نوشته و اجرا میکنند، تمام برنامههایی که این روزها مشاهده میکنیم به همین شکل توسط یک یا چند برنامهنویس نوشته شدهاند.
حال دیگر بهخوبی میدانیم برنامهنویسی چیست و به چهکسی برنامهنویس میگویند، بیایید کمی بیشتر با نحوهی زندگی یک برنامهنویس آشنا شویم!
یک برنامهنویس چه ویژگیهایی دارد؟
برنامهنویسها موجوداتی سختکوش و منطقی هستند، همانطوری که گفتیم یک کامپیوتر فقط و فقط زبان ۰ و ۱ را درک میکند، اصطلاحا به این زبان، زبان منطقی گفته میشود، یعنی هر ورودی یک نتیجهی ثابت و منطقی خواهد داشت.
کامپیوترها اشتباه نمیکنند و معمولا بروز باگهای مختلف در نرمافزار ناشی از اشتباهات برنامهنویس است، چرا که کامپیوتر یک ماشین منطقی بوده و نتیجهای که تولید میکند متناسب با دستوراتی است که برنامهنویس برای آن نوشته است، بنابراین اکثر برنامهنویسها دارای ذهنی منطقی و الگوریتمیک هستند.
میزان حقوق یک برنامهنویس چقدر است؟
پاسخ این سوال کاملا به تخصص و مهارت یک برنامهنویس بستگی داشته و میتواند از یک میلیون تا چند ده میلیون تومان در ماه متغیر باشد، هرچه مهارت و تخصص بیشتری در این زمینه داشته باشید میزان درآمد شما نیز افزایش خواهد یافت، البته که لازم به ذکر است این شغل نیز سختیهای مربوط به خود را دارد، از بروز باگها و مشکلات عجیب در برنامه گرفته تا شبهایی که لازم است تا صبح بیدار مانده و مشکلات پروژهتان را برطرف کنید!
به شما توصیه میکنیم تنها اگر عاشق برنامهنویسی و دنیای کامپیوتر هستید وارد این حرفه شوید، در غیر اینصورت به سرعت خسته شده و آن را رها خواهید کرد…
چگونه میتوانم برنامهنویس شوم؟
در ابتدا باید به خوبی با منطق برنامهنویسی آشنا باشید، برای این منظور سعی کنید بهطور کامل با مفهوم الگوریتم و فلوچارت آشنا شوید، فرقی نمیکند به چه زبانی علاقهمند هستید، شما با دانستن الگوریتم میتوانید در هر زبانی برنامهنویسی کنید، پس از اینکه بهخوبی با الگوریتم و منطق برنامهنویسی آشنا شدید باید پلتفرم مورد نظرتان را برای برنامهنویسی انتخاب کنید.
به چه پلتفرمی علاقهمند هستید؟ برنامهنویسی تحت وب، موبایل یا کامپیوتر؟ پس از اینکه سیستم مورد نظرتان را انتخاب کردید کافیست یک زبان متناسب با آن را انتخاب کرده و آن را یاد بگیرید، اگر از قبل به خوبی با مفهوم الگوریتم و منطق برنامهنویسی آشنا باشید میتوانید در مدت زمانی بسیار کم کدنویسی را شروع کرده و اولین برنامهی خود را روانهی بازار کنید.
شما چه تجربهای در این خصوص دارید؟ آیا تا بهحال با برنامهنویسها در ارتباط بودهاید یا شاید هم خودتان یک برنامهنویس حرفهای هستید؟ دیدگاههای ارزشمندتان را در اینباره با ما و سایر کاربران همیار آیتی به اشتراک بگذارید.