یکی از مهمترین تکنولوژیهایی که زندگی بشر را برای همیشه تغییر داد، کامپیوتر بود. از زمان بهوجود آمدن کامپیوتر تا به امروز، صنعتهای مختلفی استفاده از کامپیوتر را وارد حوزه کاری خود کردهاند و تقریبا عدم استفاده از آن امکانپذیر نمیباشد. شاید 10 سال پیش اگر رستورانی از کامپیوتر برای سفارش غذا و حساب و کتابها استفاده میکرد، اکثرا تعجب میکردند اما امروزه شاهد این هستیم که در تمامی رستورانها، فروشگاهها، کتابخانهها و... از کامپیوتر استفاده میشود. برای استفاده از کامپیوتر در موارد مختلف، باید نرمافزارهای مختص به آن حوزه را درونش نصب کرد. قطعا این نرمافزارها، برنامه نویسیبرنامه نویسی کامپیوتر چیست و چطور می توانید یک برنامه نویس موفق شوید؟در عصر فعلی برنامهنویسی یکی از پرطرفدارترین شغلهای دنیاست، دغدغهای افرادی که میخواهند در مسیر برنامهنویس شدن قدم بردارند این است که نمیدانند از کجا باید شروع کنند، در این صفحه هر آن چه برای تبدیل شدن به یک برنامه نویس حرفه ای نیاز دارید در اختیارتان قرار گرفته است شدهاند تا کارهای محول شده را به نحو احسن انجام دهند. در این مقاله به بررسی مقدمات، مبانی و اصول اولیه برنامه نویسی میپردازیم. قبل از اینکه بحث را جلوتر ببریم، لازم است که بدانید کد باینری یا دودویی (Binary) چیست.
کد باینری (Binary) یا دودویی چیست؟
بهطور خلاصه کد باینری یعنی کدی که از 0 و 1 تشکیل شده باشد. شاید در ابتدا درک کردن این موضوع کمی سخت باشد، اما تمامی اطلاعات موجود در جهان مانند اعداد، رشتهها، تصاویر، فیلم، موسیقی و... را میتوان بهصورت رشتههای طولانی از 0 و 1 درآورد. زبانی که سخت افزارسخت افزار چیست - بررسی اجزای اصلی سخت افزار کامپیوتردر این صفحه بررسی شده که سخت افزار چیست و سخت افزار کامپیوتر به زبان ساده معرفی شده است، همچنین به بررسی اجزای اصلی سخت افزار کامپیوتر پرداخته شده است با آن کار میکند زبان 0 و 1 است. 0ها و 1ها درواقع درون سویچهایی مانند ترانزیستورها و یا بهواسطه لامپهای خلا (در زمان قدیم) ذخیره میشوند. در اوایل سالهایی که کامپیوتر اختراع شد، مهندسان مجبور بودند تا بهوسیله نوشتن 0 و 1، نرمافزارها و ایدههای خود را درون کامپیوترها پیادهسازی کنند. این کار بسیار دشوار بود چرا که علاوه بر زمانبر بودن و نیازمند بودن به دانش زیاد، با خطاهای زیادی نیز روبرو بود. با گذشت زمان، زبانهایی مثل اسمبلی بهوجود آمد و کار مهندسان را کمی راحتتر کرد اما زبانهایی مانند اسمبلی، هم سخت و پیچیده بود و هم کلی مشکلات دیگر داشت. بههمین خاطر زبان های برنامه نویسیزبان های برنامه نویسی چیست؟این مقاله عالی توضیح داده که زبان های برنامه نویسی چیست؟ و انواع زبان های برنامه نویسی و بهترین زبان برنامه نویسی برای شروع و پردرآمدترین آنها را معرفی کرده بهوجود آمدند.
زبان برنامه نویسی چیست؟
زبان های برنامه نویسی، زبانهایی هستند که نوشتن کد در آن بسیار شبیه به زبان انسان است. این کدها برای انسانها قابل فهم هستند اما برای ماشینها خیر، بههمین علت نیاز است تا این کدها برای ماشین ترجمه شوند تا ماشین بتواند آنها را بفهمد و اجرا کند.
هر زبان برنامه نویسی برای یک هدف خاصی تشکیل شده است و دارای سینتکس (Syntax) و یا "نحو" مربوط به خود میباشد. اگر بخواهیم سینتکس را تعریف کنیم باید بگوییم که سینتکس همان قواعد مربوط به زبان است؛ بهعنوان مثال این مقالهای که پیش روی شما است و شما آن را میخوانید و میفهمید، بهدلیل رعایت کردن سینتکسهای زبان فارسی است؛ بههمین ترتیب زبان های برنامه نویسی نیز دارای سینتکسهای مربوط به خود هستند. فرضا میخواهیم جمله معروف Hello world را در خروجی چاپ کنیم، کد مربوط به 4 زبان جاواجاوا چیست؟ تعریف، معنی و ویژگی های جاوا (java) از 0تا100جاوا یک زبان برنامه نویسی همه منظوره، مبتنی بر کلاس و شی گرا است که برای داشتن وابستگی های پیاده سازی کمتر طراحی شده است، زبان برنامه نویسی جاوا شبیه ++C است ،پایتونزبان برنامه نویسی پایتون چیست؟ – نحوه شروع و دلایل محبوبیتزبان برنامه نویسی پایتون (Python) چیست؟ این مقاله عالی به بررسی دلایل محبوبیت پایتون، موارد استفاده از پایتون و نحوه شروع به برنامه نویسی پایتون پرداخته ،سی پلاس پلاسبرنامه نویسی سی پلاس پلاس چیست؟ مزایای برنامه نویسی C++؟برنامه نویسی سی پلاس پلاس چیست و چه کاربردی دارد؟ این صفحه عالی به بررسی مزایای برنامه نویسی C++ پرداخته و نمونه هایی از کدهای زبان برنامه نویسی ++C را آورده و C# در ادامه آورده شده است:
C++:
#include <iostream>
int main()
{
std::cout << "Hello, World!";
return 0;
}
Python:
print("Hello, World!")
Java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
C#:
using System;
class HelloWorld
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}
همانطور که مشاهده کردید، 4 زبان برنامه نویسی مختلف از 4 سینتکس یا دستور زبان مختلف استفاده کردهاند.
اصطلاحات اولیه زبانهای برنامه نویسی
با اینکه زبانهای برنامه نویسی مختلف در خیلی از موارد بهطور کلی با یکدیگر تفاوت دارند، اما بسیاری از مباحث بین آنها مشترک بوده و برنامهنویسان هر زبانی میبایست بر این مباحث مسلط باشند. در این قسمت مهمترین و ابتداییترین اصطلاحات برنامه نویسی را مرور میکنیم.
متغیر (Variable)
یکی از موارد مهم در هر زبان برنامه نویسی، متغیرها هستند. متغیرها بهوسیله برنامهنویسان تعریف میشوند. هر متغیر دارای یک نوع، یک نام و یک مقدار است. متغیرها درون حافظه رم (RAM) کامپیوتررم کامپیوتر چیست؟ رم کجاست؟ معرفی انواع رم (RAM) کامپیوتراین مقاله عالی به معرفی رم کامپیوتر پرداخته، همچنین بررسی کرده رم کامپیوتر (RAM : Random Access Memory) کجاست و انواع رم کامپیوتر را معرفی کرده است ذخیره میشوند. هر متغیر بسته به نوع و مقدار آن، قسمت بهخصوصی از فضای رم را اشغال میکند؛ بهعنوان مثال یک متغیر ممکن است 16 بیت (16 خانه 0 و 1) را اشغال و متغیر دیگر 32 و یا 64 بیت را اشغال کند. متغیرها در انواع مختلفی ذخیره میشوند. انواع اولیه متغیرها را در جدول زیر بههمراه نمونه آن مشاهده میکنید:
نمونه | نوع متغیر |
---|---|
“Hello” | نوع رشته ای (String) |
12 | نوع عدد صحیح (Integer) |
5.25 | نوع عدد اعشاری (Double) |
True | نوع بولین (Boolean) |
‘A’ | نوع کاراکتری (Char) |
تابع (Function)
اگر از درس ریاضی بهخاطر داشته باشید، تابعها مانند جعبهای هستند که ورودیهای مختلفی میتوانند داشته باشند اما تنها یک خروجی دارند، بهعنوان مثال تابع زیر، یک تابع ضرب (Multiply) است که دو ورودی عددی a و b را گرفته و حاصل ضرب این دو عدد را بر میگرداند.
توابع در برنامه نویسی یکی از اصلیترین بخش های زبان های برنامه نویسی محسوب میشوند. تمامی اموراتی که در نرمافزارها و یا بازیها صورت میپذیرد، درون تابعها پیادهسازی میشوند. لازم به ذکر است که توابع در کامپیوتر دقیقا مانند ریاضیات نیستند. بعضی از تابعها هیچ خروجیای ندارند (Void) و تنها یک عمل خاصی را انجام میدهند؛ بهعنوان مثال در یک بازی رایانهای، تابعی وجود دارد که مربوط به "شلیک کردن" است، در این تابع هیچ خروجیای برگشت داده نمیشود و صرفا یکسری عملیات بهترتیب درون بازی اجرا میشوند.
عبارات شرطی (Conditions)
وجود عبارات شرطی درون برنامهها باعث میشود تا عملکرد برنامه از یکنواختی خارج شود و بهصورت یک برنامه پویا عمل کند؛ بهعنوان مثال در یک برنامه آزمون آنلاین میتوانیم شرطی بگذاریم که اگر کاربر به 10 سوال پاسخ صحیح داد، عبارت "شما قبول شدید" و در غیر این صورت عبارت "متاسفانه شما رد شدید" را نمایش دهیم.
حقله ها (Loops)
گاهی اوقات در نوشتن برنامه مجبور میشویم بعضی از کارها را چندین بار تکرار کنیم؛ در این صورت بهجای تکرار کردن یک کد به تعداد دفعات زیاد، آنها را درون یک حلقهحلقه در برنامه نویسی چیست؟ حلقه یا لوپ (Loop) چیست؟این مقاله عالی به زبان ساده و با استفاده از فیلم توضیح داده که حلقه در برنامه نویسی چیست، همچنین در خصوص حلقه یا لوپ (Loop) بی نهایت صحبت کرده است میگذاریم تا به تعداد دفعاتی که میخواهیم تکرار شود. حلقهها انواع مختلفی دارند که هرکدام کاربردهای خاص خودشان را دارند؛ بهعنوان مثال ممکن است کدهای درون حلقه نیاز باشد 20 بار تکرار شود، اما میتواند حلقهای وجود داشته باشد که بخواهیم بینهایت بار اجرا شوند.
آرایه (Array)
یکی از موارد بسیار پرکاربرد در زبان های برنامه نویسی، آرایهآموزش آرایه در ساختمان داده به زبان ساده و از 0 تا 100در این مقاله موارد زیر بررسی شده است : 1- آرایه چیست 2- انواع اندیس گذاری در آرایه 3- انواع آرایه 4- محاسبه آدرس در آرایه 5- محاسبه شماره در آرایه 6- آرایه در برنامه نویسی 7- مزایای استفاده از آرایهها هستند. آرایه، در واقع یک لیستی است که از تعدادی متغیر که معمولا یک نوع خاصی دارند تشکیل شده است؛ بهعنوان مثال آرایهای از جنس اعداد اعشاری که 25 خانه دارد و نمرات دانشآموزان را در خود ذخیره کرده است و یا آرایهای از جنس رشته که نامهای دانشآموزان را ذخیره میکند.
کلاس (Class)
در مبحث متغیرها گفتیم که دادهها در نوعهای مختلفی میتوانند ذخیره شوند اما گاهی اوقات نیاز است تا دادههای پیچیدهتری درست کنیم تا برنامهای که قرار است بنویسیم راحتتر مدیریت شود؛ بهعنوان مثال میتوانیم یک کلاس بسازیم برای ذخیره کردن کارمندان یک شرکت درون یک متغیر یکتا. در این صورت داده ساخته شده که آبجکت (Object) یا شی نامیده میشود بهجای اینکه از یک نوع ساده مانند عدد صحیح یا رشته باشد، از نوع کارمند است. در کلاسها قادر هستیم تا از تعداد دلخواهی متغیر و تابع استفاده کنیم؛ بهعنوان مثال در کلاس کارمند (Employee)، 2 متغیر رشتهای (String) شامل نام و نام خانوادگی کارمند، دو متغیر اعداد صحیح شامل سال تولد و میزان درآمد کارمند وجود دارد، همچنین کلاس کارمند دارای یک تابع برای محاسبه میزان مالیات پرداختی است که با توجه به میزان حقوق کارمند تعریف میشوند.
چرا تعداد زیادی زبان برنامه نویسی ساخته شده است؟
شاید این سوال در ذهن شما باشد که چرا تعداد زبان های برنامه نویسی اینقدر زیاد است و هر ساله نیز به تعداد آنها اضافه میشود؟ هدف زبان های برنامه نویسی و تمرکز آنها با یکدیگر متفاوت است؛ بهعنوان مثال ساخت وبسایت و ساخت نرمافزار کامپیوتری و یا ساختن سیستم عاملسیستم عامل چیست به زبان ساده، چرا باید از OS استفاده کنیم؟این مقاله عالی به معرفی سیستم عامل (Operating System|OS) به زبان ساده پرداخته، همچنین بررسی کرده که چرا باید از سیستم عامل استفاده کنیم ، مباحث کاملا مستقلی از یکدیگر هستند و نیازمندیهای گوناگونی دارند؛ مثلا زبانهایی مثل جاوا اسکریپتجاوا اسکریپت چیست؟ معرفی زبان برنامه نویسی java scriptزبان برنامه نویسی جاوا اسکریپت چیست و چه کاربردی دارد؟ این صفحه عالی به بررسی مزایای JavaScript پرداخته و مبانی برنامه نویسی جاوا اسکریپت را آموزش داده (Javascript) و Php برای برنامه نویسی وب مورد استفاده قرار میگیرند اما زبانهایی مثل C++ و C# برای ساخت نرمافزارهای کامپیوتری و یا برنامههای سیستمی کاربرد دارند. بعضی از زبانها مانند زبان جاوا (Java) میتوانند برای موارد مختلفی استفاده شوند؛ مثلا بهوسیله زبان جاوا میتوان برای سیستم عامل اندرويدسیستم عامل اندرويد چیست؟ هر آنچه باید درمورد Android بدانیداندروید چیست و چه ویژگی هایی دارد؟ این مقاله عالی به معرفی سیستم عامل اندروید (Android)، تاریخچه و توسعه اندروید، ویژگی های ورژن های مختلف اندروید پرداخته است، ویندوز و لینوکس، نرمافزار ساخت و حتی با استفاده از کتابخانههای موجود میتوان برنامه سمت وب نیز نوشت اما کار بههمینجا ختم نمیشود. برای برنامه نویسی یک برنامه ویندوز، زبانهای مختلفی وجود دارد که رویکردشان با یکدیگر متفاوت است. زبان Cزبان برنامه نویسی C – مزایا و کاربرد زبان C – فرق C و ++Cاین مقاله عالی ابتدا توضیح میدهد که زبان برنامه نویسی c چیست، سپس به بررسی مزایا و معایب زبان C ، کاربردهای زبان سی ، و تفاوت بین C و ++C میپردازد یا زبان C++ از ساختار پیچیدهای برخوردار است و کار با آن دانش بالایی میطلبد اما سرعت اجرای بالایی دارد؛ در حالی که زبان Python از ساختار بسیار سادهتری برخوردار است اما سرعتش در برابر زبان C++ بسیار پایینتر است. انتخاب زبان های برنامه نویسی با درنظر گرفتن این نقاط ضعف و نقاط قوت توسط خود برنامهنویس صورت میگیرد.
اصطلاحات فنی برنامه نویسی
در برنامه نویسی اصطلاحات و علمهای مختلفی وجود دارد که هرکدام مبحث گسترده مربوط به خودشان را دارند و یک برنامهنویس باید با تمامی آنها آشنا شود. در اینجا بهطور خلاصه مهمترین اصطلاحات برنامه نویسی را جمعآوری کردهایم.
سطح زبان برنامه نویسی
زبان های برنامه نویسی دارای سطح بندیهای مختلفی میباشند. هرچه سطح زبان پایینتر باشد یعنی زبان مورد نظر به زبان ماشین نزدیک تر است، سینتکسهایش تقریبا پیچیدهتر است و سرعتش بیشتر است و هرچه سطح زبان بالاتر باشد یعنی سینتکسهای زبان مورد نظر به زبان انسان نزدیکتر است، ساختارش سادهتر است و سرعتش (نسبت به زبانهای سطح پایین) کمتر است.
کامپایلر
بهطور خلاصه وظیفه ترجمه کردن کدهای نوشته شده بهوسیله زبان های برنامه نویسی برای ماشین، یافتن خطاها و... برعهده کامپایلر (Compiler)کامپایلر چیست و چگونه کار میکند و چرا از آن استفاده میشود؟کامپایلر (Compiler) یک برنامهی خاص برای ترجمه سورس کدهای (Source Code) یک زبان برنامه نویسی، به زبان ماشین یا بایت کد و یا یک زبان برنامه نویسی دیگر است است.
باگ
به خطاهایی که در کدهای نوشته شده وجود دارد و باعث میشود عملکرد برنامه ما آنطور که انتظار میرود نباشد، بهاصطلاح باگ میگویند.
دیباگ
بهطور خلاصه به عملیات پیدا کردن و رفع کردن باگ، دیباگ یا اشکال زدایی (Debugging)دیباگ چیست؟ معرفی روشها و ابزارهای دیباگینگ(اشکال زدایی)این مقاله عالی مفاهیم دیباگ (debug)، دیباگینگ (Debugging) یا همان اشکال زدایی، دیباگر (Debugger) را معرفی و همچنین روشها و ابزارهای دیباگینگ را بررسی کرده میگویند.
ساختمان داده
یکی از مباحث مهم در علوم کامپیوتر و برنامه نویسی، ساختمان های داده هستند. ساختمانهای داده در واقع ساختارهایی هستند که اقدام به ذخیرهسازی داده به روشهای خاص میکنند. هرکدام از انواع ساختمان دادهآموزش ساختمان داده و الگوریتمهر ساختمان داده یک نوع فرمت ذخیرهسازی و مدیریت دادهها در کامپیوتر است، که امکان دسترسی و اصلاح کارآمد آن دادهها را برای یکسری از الگوریتمها و کاربردها فراهم میکند، در این صفحه به بررسی و آموزش ساختمان داده و الگوریتم پرداخته شده است با هدف خاصی ایجاد شده است؛ بهعنوان مثال یک نوع برای ذخیره سریع دادهها ساخته شده است، نوع دیگر برای امکان جستجو کردن سریع در بین دادهها ساخته شده است و الی آخر. در لیست زیر مهمترین نوعهای ساختمان داده را آوردهایم:
- Stacks
- Heaps
- Trees
- Linked lists
- Queues
- Arrays
- Tables
- Graphs
الگوریتم
به تقسیم کردن یک مساله بزرگ به تکههای کوچکتر و حل کردن آن بهوسیله تکههای کوچک بهاصطلاح، الگوریتمالگوریتم چیست به زبان ساده و با مثال های فراواندر این مقاله به زبان بسیار ساده و با مثال های متعدد توضیح داده شده که الگوریتم چیست و چه کاربردهایی دارد میگویند. برای مسائل مختلف کامپیوتری الگوریتمهای مختلفی بهوجود آمده است؛ بهعنوان مثال الگوریتمهای جستجوی یک داده درون یک آرایه و یا الگوریتم یافتن کوچکترین عدد درون یک لیست و...
سورس کد
بهطور ساده به کد نوشته شده بهوسیله یک زبان برنامه نویسی، سورس کد یا کد منبع میگویند. سورس کدها قابلیت اجرا ندارند و بهوسیله فایلهای ساده میتوانند جابجا شوند. برای اجرای سورس کد ابتدا باید بهوسیله کامپایلرها یا مفسرها (Interpreter) ترجمه شوند.
برنامه نویسی شی گرا
برنامه نویسی شی گرابرنامه نویسی شی گرا چیست؟ شی گرایی چیست؟این صفحه عالی به معرفی برنامه نویسی شی گرا پرداخته و توضیح داده شی گرایی یا همان object oriented یا OPP چیست؟ همچنین مزایای برنامه نویسی شی گرا را بیان کرده یا Object Oriented Programming یک رویکرد بسیار محبوبی در برنامه نویسی است که بهوسیله آن میتوان برنامههای خواناتر و با قابلیت استفاده مجدد نوشت. در بعضی از زبانها مانند زبان برنامه نویسی C، امکان نوشتن برنامه شی گرا وجود ندارد.
جمعبندی
آشنایی با مبانی برنامه نویسی و کامپیوتر، اولین قدم برای ورود به دنیای شیرین و پایانناپذیر برنامه نویسی است. در این مقاله به موارد مهم مبانی برنامه نویسی که هر فردی برای شروع برنامه نویسی نیاز است آنها را بداند پرداختیم؛ همچنین اصطلاحات رایج در برنامه نویسی را مرور کردیم.
آیا یادگیری مبانی برنامه نویسی قبل از یادگیری برنامه نویسی ضروری است؟
اگر میخواهید برنامه نویسی را بهطور اصولی یاد بگیرید، میبایست مبانی برنامه نویسی را به صورت حرفهای بیاموزید تا در هنگام یادگیری زبان های کدنویسی بهمشکلی برنخورید و هیچ قسمت از آن برای شما گنگ نباشد؛ چرا که اصولا در آموزش های زبان های برنامه نویسی، سخنی از مبانی برنامه نویسی بهمیان نمیآید و صرفا به توضیحات مختصری بسنده میشود.
یادگیری مبانی برنامه نویسی چقدر طول میکشد؟
زمان یادگیری مبانی برنامه نویسی بستگی به نوع یادگیری دارد. اصولا در دانشگاهها درس مبانی کامپیوتر و برنامه نویسی، 1 ترم زمان میبرد. اما با یک آموزش اصولی که در اینترنت فراوان است تنها 1 تا 2 هفته زمان برای یادگیری کلیه اصول مقدماتی برنامه نویسی لازم است.
آیا نیاز است تا چندین زبان مختلف برنامه نویسی را یاد بگیریم؟
اگر کار شما در رابطه با برنامه نویسی و کامپیوتر است، احتمال اینکه نیازمند به زبانهای برنامه نویسی مختلف باشید بسیار زیاد است بهخصوص زمینههایی مانند برنامه نویسی سمت وب، اما اگر رشته شما چیز دیگری است و تنها برای موارد خاصی مانند ترسیم نمودارها یا اتوماتیک کردن آزمایشها و... نیاز به برنامه نویسی دارید، یادگیری یک زبان کافی به احتمال خیلی زیاد کافی میباشد.