برنامه نویسی چیست؟ برنامه نویس دقیقا چه کاری انجام میدهد؟
” در آینده ای نزدیک، برنامه نویسی حکم آموزش های اولیه همچون نوشتن و خواندن را برای کودکان پیدا خواهد کرد و نیاز به آن در همه زمینه ها احساس خواهد شد، به گونه ای که بزرگترها افسوس می خورند که چرا زودتر اقدام به آموزش آن نکرده اند.”
تا 15 سال آینده همانطور که خواندن و نوشتن را به بچها یاد میدهیم ، برنامه نویسی را هم یاد خواهیم داد و افسوس میخوریم که چرا زود تر این کار را شروع نکردیم!
شاید در ابتدا تصور کنیم که این جمله اغراق آمیز است، ولی زمانی که بیشتر به آن و تغییرات دنیا فکر کنیم ، به صحت آن پی خواهیم برد. ولی اصلا برنامه نویسی چیست و برنامه نویسان چه کسانی هستند؟ اگر شما به تازگی با این دنیای جذاب و وسیع آشنا شده اید ، به شما پیشنهاد میکنیم که این مقاله کد یاد را تا آخر بخوانید.
تاریخچه برنامه نویسی
شاید تصور کنید که برنامه نویسی یک علم نو و جدیدی است که در سال های اخیر به آن دست پیدا کرده ایم ولی اینطور نیست. در واقع عمر برنامه ریزی برای ماشین ها به حدود یک قرن میرسد.
در قرن نوزدهم زمانی که آدا لاولیس توانست الگوریتمی برای ماشین تحلیلی چارلز باباجی طراحی کند، عنوان اولین برنامه نویس جهان را به نام خود ثبت کرد. در دهه 1940 با ابداع ماشین تورینگ توسط یک ریاضیدان بریتانیایی، انقلابی بزرگ در حوزه برنامه نویسی رخ داد تا مقدمه ساز ایجاد زبان های برنامه نویسی شود. در دهه 1950 زبان اسمبلی (Assembly Language) که اولین زبان برنامه نویسی سطح پایین بود ظاهر شد.
درست در طی یک دهه پس از آن، رایانه ها به عنوان ابزارهای اصلی برنامه نویسی وارد عرصه شدند و پس از آن زبان فورترن (Fortran) که با هدف حل محاسبات علمی و ساده سازی عملیات ریاضی طراحی شده بود، ظهور کرد و به عنوان اولین زبان برنامه نویسی علمی شناخته شد. در طول سه دهه از 1970 تا 2000 زبان های برنامه نویسی مدرن مانند C و Pascal توسعه پیدا کردند، اینترنت به وجود آمد و زبان های HTML JavaScript، Python و Ruby ابداع شدند و تا امروز که زبانهای متعدد دیگری به وجود آمده اند.
ما باید خوشحال باشیم که در نقطه ای از تاریخ قرار دارم که زبان های برنامه نویسی و کامپیوتر ها تا این حد پیشرفت کرده اند. این رشد تکنولوژی نتیجه ساعت ها تفکر و تلاش انسان هایی در طول تاریخ بوده است که عمر خود را برای توسعه تکنولوژی صرف کرده اند. البته ما هم میتوانیم جزئی از این تاریخ باشیم و در توسعه نرم افزار ها و علم برنامه نویسی تاثیر بگذاریم.
برنامه نویسی چیست؟
برنامه نویسی هنر دستور دادن به یک کامپیوتر برای انجام وظایف خاص است
به زبان ساده، برنامه نویسی یعنی نوشتن دستورات منطقی برای کامپیوترها و ماشین ها. این دستور های منطقی را با استفاده از زبان های برنامه نویسی که توسط کامپیوتر ها قابل فهم هستند، مینویسند. سپس کامپیوتر با تحلیل و پردازش دستورها، آن ها را اجرا میکند. برنامه نویسی به ما این امکان را میدهد که با هر سیستم یا ماشین الکترونیکی ارتباط برقرار کنیم و آنها را برنامه ریزی کنیم. شاید این ماشین یک کامپیوتر رو میزی باشد و شاید هم یک ساعت هوشمند و یا یک بازی کامپیوتری.
البته با یک زبان برنامه نویسی خاص نمیتوانیم همه کاری انجام دهیم. هر زبان برنامه نویسی برای هدف خاصی ساخته شده است که به برنامه نویسان کمک میکند با کیفیت بیشتری در هر حوزه فعالیت کند. به عنوان مثال زبانی که برای ساخت بازی های کامپیوتری از آن استفاده میشود با زبانی که برای برنامه نویسی یک ساعت هوشمند از آن استفاده میشود متفاوت است.
هر جامعه ای یک زبان مشترک برای برقرار کردن ارتباط دارند. زبان های برنامه نویسی زبان مشترک بین برنامه نویس و ماشین ها هستند.
برنامه نویس کیست؟
برنامه نویسی صرفا یک شغل نیست بلکه یک طرز فکر است که توسط برنامه نویسان به اشتراک گذاشته می شود. برنامه نویس ها افرادی هستند که به کمک زبان برنامه نویسی با کامپیوترها تعامل می کنند و به آنها دستوراتی می دهند که البته محدوده عملکرد آنها در کدنویسی خلاصه نمی شود بلکه لازم است مهارت های متنوعی را در خود توسعه دهند.
البته اگر بخواهیم جواب پخته تری به سوال “برنامه نویس کیست” بدهیم ، بهتر است بگوییم که برنامه نویس ها برای مسئله ها بهترین جواب ها را پیدا میکنند و با استفاده از زبان های برنامه نویسی به کامپیوتر منتقل مینند. به این صورت کامپیوتر ها آنها را اجرا میکند و خروجی را نمایش میدهد.
چرا باید برنامه نویسی را یاد بگیریم؟
اگر شما هم جز آن دسته از افراد هستید که میخواهید با تکنولوژی روز پیش بروید ، یکی از بهترین شغل هایی که میتوانید داشته باشید برنامه نویسی است. برنامه نویسی به شما کمک میکند که در قلب تکنولوژی حرکت کنید و سوار بر موج جدیدی شوید که در یک قرن اخیر در حال قدرتمند تر شدن است. یادگیری برنامه نویسی به شما کمک میکند در کنار درآمدی که از آن دارید ، در حل مسائل زندگی عملکرد بهتری داشته باشید و به افزایش خلاقیت شما نیز کمک خواهد کرد. یادگیری برنامه نویسی به شما این اجازه را میدهد که شما توانایی پیاده سازی ایده های خود را داشته باشید. قبل از شروع یادگیری برنامه نویسی به این سوال جواب دهید ، چرا باید برنامه نویسی یاد بگیریم؟
انواع زبان های برنامه نویسی
زبان های برنامه نویسی به چند دسته تقسیم می شوند؟ منظور از زبان برنامه نویسی سطح بالا یا سطح پایین، کامپایل شده یا تفسیری و… چیست؟ بیایید تا این موضوع را با هم بررسی کنیم.
- زبان برنامه نویسی سطح پایین
کد ماشین که به عنوان زبان ماشین نیز شناخته می شود، یک زبان برنامه نویسی سطح پایین است که شامل مجموعه ای از دستورالعمل ها به شکل کدهای 0 و1 باینری می باشد که توسط CPU اجرا می شود.
زبان برنامه نویسی سطح پایین، معماری مشابه با سخت افزار کامپیوتر دارد و می تواند کد های دستوری را بسیار کارآمد و سریع اجرا کند. زبان های سطح پایین شامل زبان اسمبلی و زبان ماشین بوده و در مقایسه با زبان های سطح بالا، بسیار پیچیده تر هستند، زیرا برنامه نویسان باید جزئیات مربوط به سخت افزار را در آنها مدیریت کنند.
- زبان برنامه نویسی سطح بالا
زبان برنامه نویسی سطح بالا کدهای خوانا و ساده تری دارد. در زبان سطح بالا دستورات از طریق کامپایل یا تفسیر به کد ماشین ترجمه می شوند. بنابراین از زبان های سطح پایین کندتر می باشند.
- زبان برنامه نویسی رویه ای
برنامه نویسی رویه ای الگویی است که ساختار آن به کمک توابع خطی سازماندهی می شود. برنامه نویسی رویه ای ساده است و در کارهایی که نیاز به ساختار پیچیده یا شی گرایی نیست بکار می رود.
- زبان نشانه گذاری
هدف از زبان نشانه گذاری، ارائه دستورالعمل هایی برای درک ساختار و قالب بندی محتوا در یک صفحه است. به این معنا که اجزای محتوا را تفکیک می کند تا کدها خوانا و قابل دسترسی شوند. رایج ترین زبان های نشانه گذاری عبارتند از HTML , XML و JSON .
- زبان برنامه نویسی شی گرا
برنامه نویسی شی گرا (OOP) یک الگوی برنامه نویسی مبتنی بر مفهوم “اشیاء” است که هم داده ها (attributes) و هم توابع (functions) را شامل می شود. زبان شی گرایی انعطاف پذیر است و بر استفاده مجدد از کدها تاکید دارد. OOP توسعه نرم افزارهای پیچیده را آسان تر می کند و در بسیاری از زبان های برنامه نویسی از جمله #Ruby ،Java ، Python، C و ++C که به کدهای سازماندهی شده و ساختار یافته نیاز دارند به کار می رود.
- زبان برنامه نویسی تابعی
زبان برنامه نویسی تابعی بر استفاده از توابع برای انجام محاسبات خود تاکید دارد. در زبان تابعی داده ها قابل تغییر نیستند، بنابراین در نگهداری داده ها عملکرد خوبی دارد. محبوب ترین زبان های تابعی عبارتند از Haskell، Lisp، Erlang، Python، JavaScript و Java.
- زبان برنامه نویسی کامپایل شده
زبان برنامه نویسی کامپایل شده زبانی است که در آن کد قبل از اجرا توسط یک کامپایلر به کد ماشین تبدیل می شود و معمولاً سریعتر و کارآمدتر از کدهای تفسیر شده عمل می کند، زیرا نیازی به تفسیر خط به خط کدها در زمان اجرا ندارد. نمونه هایی از زبان های کامپایل شده عبارتند از C، C++، Rust و Swift.
- زبان برنامه نویسی تفسیری
زبان تفسیری پیش از اجرا به کد ماشین تبدیل نمی شود بنابراین کد باید خط به خط توسط مفسر به کد ماشین ترجمه شود. زبان تفسیری بر روی اغلب سیستم ها قابل اجرا بوده و دیباگ کردن در آن ساده تر است اما با این وجود، کد تفسیری از کد کامپایل شده کندتر عمل می کند. نمونههایی از زبانهای تفسیر شده عبارتند از Python، JavaScript و Ruby.
- زبان برنامه نویسی اختصاصی دامنه (DSL)
زبان اختصاصی دامنه بر خلاف زبان برنامه نویسی همه کاره، زبانی است که صرفا برای حل چالش های پیچیده محاسباتی یا مهندسی طراحی شده و قواعد دستوری سطح بالا اما مختصری را به توسعه دهندگان ارائه می دهد.
- زبان برنامه نویسی همزمان گرا
زبان برنامه نویسی همزمان گرا برای اجرای چند کار به طور همزمان طراحی شده است و از پردازنده های چند هسته ای استفاده می کند تا عملکرد را بهبود بدهد. زبان هایی مانند Go، Erlang، Java، Python و ++C همزمان گرا هستند و کدهای دستوری را به بخش های کوچک تقسیم می کنند تا روند پردازش را همزمان کرده و با سرعت بالاتر اجرا کنند.
- زبان برنامه نویسی تایپ استاتیک
تایپ استاتیک زبانی است که تمام متغیرها در آن تعریف شده اند و زمانی که کامپایل انجام شده و کدها آماده اجرا هستند، آن ها را بررسی می کند. در این زبان کامپایلر می تواند کد را بهتر مدیریت کند که منجر به بهبود عملکرد می شود. برخی از زبان های برنامه نویسی شناخته شده با تایپ استاتیک عبارتند از C ،Java ، #C ، Kotlin ، C++، Haskell، TypeScript، Swift و Go.
- زبان برنامه نویسی تایپ پویا
تایپ پویا نیز مانند تایپ استاتیک زبانی است که کدها را در زمان اجرا بررسی می کند اما برخلاف استاتیک، روند بررسی در این زبان به کامپایلر ارتباطی ندارد. متغیرها در زبان پویا انعطاف پذیری دارند و می توانند نوع خود را در حین اجرا تغییر دهند. علاوه بر انعطاف پذیری، تایپ پویا توسعه سریع تری را ارائه می کند، اما مستعد خطا در هنگام اجرا نیز هست. برخی از زبان های برجسته که از تایپ پویا پیروی می کنند عبارتند از Python، JavaScript، Ruby، PHP و Perl.
تفاوت زبان برنامه نویسی و زبان اسکریپت نویسی
اصلی ترین تفاوت زبان برنامه نویسی با زبان اسکریپت، در فرایند کامپایل کد است. زبان های برنامه نویسی علاوه بر اینکه پیش از اجرا نیاز به کامپایل دارند و مستقیما بر روی سخت افزار اجرا می شوند، انعطاف پذیر هم هستند و از برنامه نویسی شی گرا و رویه ای پشتیبانی می کنند. زبان های برنامه نویسی مانند C و ++C معمولا برای توسعه نرم افزار استفاده می شوند. زبان های برنامه نویسی همچنین قابلیت محاسبات علمی و تحلیل داده ها را نیز دارند. توسعه بازی های ویدیویی هم اغلب به زبان های برنامه نویسی مانند #C و ++C متکی است، زیرا عملکرد و قابلیت های لازم را برای ارائه گرافیک ها و شبیه سازی های پیچیده ارائه می کنند.
زبان اسکریپت زبانی تفسیری و تایپ پویا است که بر توسعه سریع، خودکارسازی فرایند و کدنویسی مختصر تاکید دارد. بنابراین توسعه دهندگان می توانند کد خود را بدون هر بار کامپایل کردن به سرعت تغییر دهند و اجرا کنند. زبان های اسکریپتی Python، Ruby، JavaScript و PHP در توسعه وب رایج هستند و همچنین در پردازش داده و مدل سازی هوش مصنوعی هم بکار می روند.