زبان برنامهنویسی سی، زبانی همه منظوره، ساختیافته، دستوری و روندگرا است که در سال ۱۹۷۲ توسط دنیس ریچی در آزمایشگاههای بل ساخته شد. در دهه ۱۹۶۰ میلادی توسعه نرمافزار دچار مشکلات عدیدهای شد. در آن زمان سبک خاصی برای برنامه نویسی وجود نداشت و برنامهها بدون هیچگونه ساختار خاصی نوشته میشدند. وجود دستور پرش (goto) نیز مشکلات بسیاری را برای فهم و درک برنامه توسط افراد دیگر ایجاد میکرد، چرا که جریان اجرای برنامه مرتباً دچار تغییر جهت شده و دنبال کردن آن دشوار میگردید؛ لذا نوشتن برنامهها عملی بسیار زمان بر و پرهزینه شده بود و معمولاً اشکال زدایی، اعمال تغییرات و گسترش برنامهها بسیار مشکل بود. فعالیتهای پژوهشی در این دهه باعث بوجود آمدن سبک جدیدی از برنامه نویسی بنام برنامهنویسی ساختیافته گردید؛ روش منظمی که باعث ایجاد برنامههایی کاملاً واضح و خوانا گردید که اشکالزدایی و خطایابی آنها نیز بسیار سادهتر بود. برنامههای نوشته شده به زبان C در فایلی متنی با پسوند c. ذخیره میشوند. به این فایل، کد منبع (source code) گفته میشود. فایل کد منبع برای اجرا باید به زبان ماشین ترجمه شود که به اینکار ترجمه (compile) و به برنامهای که عمل ترجمه به زبان ماشین یا زبان دیگر را انجام میدهد مترجم (compiler) میگویند. در دوره آموزشی Udemy C Programming For Beginners Hands-On به صورت مقدماتی با زبان سی آشنا می شوید.
سی شارپ، زبانی شیءگرا و سطح بالا از خانوادهٔ زبانهای چارچوب داتنت شرکت مایکروسافت است. زبان سی شارپ، یک زبان برنامهنویسی چند الگویی و منظم شده مدلهای تابعی، امری، عمومی، شیءگرا و جز گرا و در بستر دات نت است. این زبان توسط مایکروسافت و جزئی از دات نت به وجود آمد و بعداً استانداردهای ECMA و ISO را نیز در بر گرفت. سی شارپ یکی از ۴۴ زبان برنامهنویسی است که توسط زمان اجرای زبان مشترک از چارچوب داتنت پشتیبانی میشوند و در همه جا به وسیله مایکروسافت ویژوال استودیو شناخته میشود. زبان سی شارپ با قدرت و در عین حال سطح بالایی خود توانسته توجه بسیاری از برنامه نویسان را به خود جلب کند. این زبان برپایه سادگی، مدرن بودن، همه منظوره و شیءگرا بودن ساخته شد. آندرس هجلزبرگ، طراح زبان برنامهنویسی دلفی، سرپرستی تیم طراحان زبان سی شارپ را بر عهده داشت. این زبان دارای دستوری شیءگرا مشابه ++C است و به شدت از زبانهای جاوا و دلفینیازمندمدرک تأثیر پذیرفتهاست. در ابتدا نام این زبان COOL بود که مخفف C like Object Oriented Language بود، هر چند در ژوئیه ۲۰۰۰، زمانی که مایکروسافت پروژه را عمومی اعلام کرد، اسم آن به سی شارپ تغییر پیدا کرد. آخرین نسخه آن نسخه ۵٫۰ است که همزمان با داتنت ۴٫۵ در اوت ۲۰۱۲ منتشر شد. در دوره آموزشی Udemy C#: The Complete Foundation به طور کامل با اصول و مبانی سی شارپ آشنا می شوید.
در مهندسی نرمافزار، الگوی طراحی (Design Pattern) یک راهحل عمومی قابل تکرار برای مسائل و مشکلات متداول در یک زمینه در طراحی نرمافزار است. الگوی طراحی، یک طراحی تمامشده نیست که به صورت مستقیم بتواند تبدیل به کد منبع یا ماشین شود؛ بلکه، یک توضیح یا قالب برای حل یک مسئله در شرایط مختلف است. الگوها به عنوان بهترین روش ممکن که یک برنامهنویس میتواند در هنگام طراحی یک برنامه برای حل مشکلاتش استفاده کند، معرفی میشوند. الگوهای طراحی شیءگرا نوعاً نشاندهندۀ روابط و تعاملها بین کلاسها و شیءها هستند، بدون اینکه کلاسها یا اشیاء نهایی برنامه را مشخص کند. الگوهایی که در خود وضعیتهای تغییرپذیر دارند، شاید مناسب زبانهای برنامهنویسی تابعی نباشند. همچنین، در بعضی از زبانها که برای حل یک مسئله راهحلهای آمادۀ از پیش تعریفشده وجود دارد، استفاده از بعضی الگوها برای حل مسئلۀ مشابه میتواند لازم نباشد. به همین ترتیب، الگوهای طراحی شیءگرا ممکن است برای زبانهای غیر شیءگرا مناسب نباشند. در دوره آموزشی ++Udemy Design Patterns Through C با الگوهای طراحی در سی پلاس پلاس آشنا می شوید.
در زبان برنامه نویسی، یک رویداد، کار یا رخدادی است که توسط نرمافزار شناخته میشود و میتواند توسط نرمافزار بهکار بردهشود. رویدادهای رایانهای میتوانند توسط سامانه یا کاربر ایجاد شود. معمولاً رویدادها بهطور همگام با روند برنامه بهکار برده میشوند؛ به این معنی که، نرمافزار ممکن است یک با چند مکان اختصاصی که رویدادها بهکار برده میشوند داشتهباشد. معمولاً منابع رویدادها کاربری را شامل میشود که ممکن است یک کلید از صفحهکلید را بفشارد. دیگر منبع یک دستگاه سختافزاری مانند یک زمانسنج است. نرمافزار همچنین میتواند مجموعهٔ خودش از رویدادها را درون حلقهٔ رویداد راهاندازی کند، مانند ارتباط برقرارکردن با اتمام یک وظیفه. نرمافزاری که رفتارش را در پاسخ به رویدادها تغییر میدهد رویدادمحور گفته میشود. Delegates می تواند یک شی باشد که شامل لیستی از متدهای یکسان است. (هم امضا و دارای مقادیر بازگشتی یکسان). به متدهایی که تعداد و مقادیر و نوع پارامترها ورودی و خروجی یکسان است، متدهای یکسان می گویند. در دوره آموزشی O'Reilly Mastering Events and Delegates in C# Training Video با رویدادها و دلگیت ها در سی شارپ آشنا می شوید.
وراثت در برنامه نویسی شبیه وراثت بیولوژیکی است که در آن فرزندان صفاتی را از والدین به ارث میبرند. در برنامهنویسی شیءگرا میتوان با وراثت از کلاس موجود کلاسی را ایجاد کرد که دادهها و متدهای کلاس قبلی را به ارث ببرد. برای فرزند یک کلاس می توان توابع و متغیرهای جدید تعریف کرد یا توابع مربوط به والد را دوباره نویسی (overwrite) نمود. مفهوم چندریختی ویژگی است که به رابطها امکان میدهد تا برای گروهی از عملیاتها مورد استفاده قرار گیرند. مفهوم چندریختی از طریق دو مفهوم متدهای Override (توابع مجازی) و Overload شده پشتیبانی میشود. چندریختی به معنای چندین شکل از یک متد است. مفهوم چندریختی اغلب به وسیلهٔ عبارت« یک رابط، چند متد» بیان میشود. این بدین معناست که این امکان وجود دارد که یک رابط عمومی برای گروهی از فعالیتهای مرتبط به هم طراحی شود. در برنامههای شیء گرا مانند سی پاس پلاس، این امکان فراهم شده تا دو و یا بیش از دو متد همنام در یک کلاس تعریف نمود، مشروط بر اینکه تعریف پارامترهای آن متفاوت باشد. در این موارد متدها Overload میشوند. از چندریختی به منظور تعیین انواع مختلف متدهای پویا، در زمان اجرا استفاده میشود. که این یکی از قدرتمندترین امکاناتی است که چندریختی به وجود میآورد. چنانچه نام و امضای متدی از یک زیر کلاس (در ساختار سلسله مراتبی کلاسها) با نام و نوع امضای متدی از فوق کلاسش یکسان باشد، در آن صورت متد موجود در زیر کلاس، متد موجود در فوق کلاسش را Override میکند. در دوره آموزشی O'Reilly Inheritance and Polymorphism with C++ Training Video با استفاده از سی پلاس پلاس به آموزش وراثت و چندریختی در شی گرایی می پردازیم.
++C (سی پلاس پلاس) یک زبان برنامهنویسی رایانهای همهمنظوره، شیءگرا، سطح بالا و چندرگه (که از برنامهنویسی رویهای، تجرید دادهها و برنامهنویسی شیءگرا پشتیبانی میکند)، عمومی و با قابلیتهای سطح بالا و سطح پایین است. این زبان دارای قابلیتهای انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامهنویسی ساختیافته، برنامهنویسی شیءگرا، برنامهنویسی جنریک است. از آنجا که در سی++ اشیاء را میتوان ابتدا به ساکن از کلاسهایی ایجاد کرد که به هیچگونه سلسله مراتب ردهها و وراثت مقید نیستند، لذا سی++ از برنامهسازی شیء بنیاد (object-based programming) نیز پشتیبانی میکند. ++C به همراه جد خود C از پرطرفدارترین زبانهای برنامهنویسی تجاری هستند. برای کار با فایل در ++c به کتابخانه fstream احتیاج داریم. در دوره آموزشی Udemy C++ Operating on Files با سی پلاس پلاس و نحوه کار با فایل در آن آشنا می شوید.
در برنامهنویسی، تست واحد روشی است برای آزمودن واحدهای کوچکی از کد منبع برنامه و اطمینان از درست کار کردن آنها است. در این روش، درستی هر قسمت از کد، که به آن «واحد» گفته میشود، با استفاده از کدهای دیگری که توسط برنامهنویس نوشته شده ارزیابی میگردد. در زبانهای شیءگرا، معمولاً این کار با استفاده از یک کلاس مستقل انجام میشود، اگر چه میتواند تنها با استفاده از یک روش نیز صورت بپذیرد. در حالت ایدهآل هر کدام از آزمایشها از بقیه مستقل است. معمولاً آزمایشهای واحد توسط توسعهدهندگان نرمافزار به کار گرفته میشوند. نحوهٔ آزمایش واحد میتواند از ارزیابی نتیجه روی کاغذ، تا اجرای خودکار چندین آزمایش توسط برنامه و تحلیل نتیجهٔ آنها توسط خود برنامه، متغیر باشد. در دوره آموزشی Teamtreehouse JavaScript Unit Testing با انواع روش ها و مدل های تست واحدهای مختلف کدهای جاوا اسکریپت آشنا می شوید.
سیشارپ (#C) زبانی شیءگرا و سطح بالا (high level) از خانوادهٔ زبانهای چارچوب داتنت شرکت مایکروسافت است. زبان #C، یک زبان برنامه نویسی چند الگویی است و منظم شده مدلهای تابعی، امری، عمومی، شی گرا و جز گرا است. این زبان توسط مایکروسافت و جزئی از دات نت به وجود آمد و بعداً استانداردهای ECMA و ISO را نیز در بر گرفت. #C یکی از ۴۴ زبان برنامه نویسی ای است که توسط زمان اجرای زبان مشترک از NET Framework. پشتیبانی میشوند و در همه جا به وسیله مایکروسافت ویژوال استودیو شناخته میشود. این زبان برپایه سادگی، مدرن بودن، همه منظوره و شی گرا بودن ساخته شد. Anders Hejlsberg، طراح زبان برنامه نویسی دلفی، سرپرستی تیم طراحان زبان #C را بر عهده داشت. این زبان دارای دستوری شی گرا مشابه ++C است. در ابتدا نام این زبان COOL بود که مخفف C like Object Oriented Language بود، هر چند در جولای ۲۰۰۰، زمانی که مایکروسافت پروژه را عمومی اعلام کرد، اسم آن به #C تغییر پیدا کرد. آخرین نسخه آن نسخه ۵.۰ است که همزمان با داتنت ۴.۵ در آگوست ۲۰۱۲ منتشر شد. در دوره آموزشی Udemy C# For Beginners: Programming in Windows Forms با مباحث مقدماتی طراحی و ایجاد ویندوز فرم در سی شارپ آشنا می شوید.
++C (سی پلاس پلاس) یک زبان برنامهنویسی رایانهای همهمنظوره، شیءگرا، سطح بالا و چندرگه (که از برنامهنویسی رویهای، تجرید دادهها و برنامهنویسی شیءگرا پشتیبانی میکند)، عمومی و با قابلیتهای سطح بالا و سطح پایین است. این زبان دارای قابلیتهای انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامهنویسی ساختیافته، برنامهنویسی شیءگرا، برنامهنویسی جنریک است. از آنجا که در سی++ اشیاء را میتوان ابتدا به ساکن از کلاسهایی ایجاد کرد که به هیچگونه سلسله مراتب ردهها و وراثت مقید نیستند، لذا سی++ از برنامهسازی شیء بنیاد (object-based programming) نیز پشتیبانی میکند. ++C به همراه جد خود C از پرطرفدارترین زبانهای برنامهنویسی تجاری هستند. دوره آموزشی Udemy Learn C Plus Plus coding through interactive console applications مختص افرادی است که قصد دارند با سی پلاس پلاس آشنا شوند و مباحث مقدماتی آن را بیاموزند. در این دوره همزمان با استفاده از یک برنامه محاوره ای تحت کنسول به آموزش سی++ می پردازیم.
برنامهنویسی شیءگرا (OOP) یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شیها میباشند. در واقع در این شیوه برنامه نویسی، برنامه به شیء گرایش پیدا میکند. به این معنا که دادهها و توابعی که قرار است بر روی این دادهها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمعبندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله میشوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در دادههای درون آن شی را ندارند. به طور مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را میدهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد. از دیگر ویژگیهای برنامه نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادایمهای برنامه نویسی است. در دوره آموزشی Teamtreehouse - C# Objects با مفایم اولیه سی شارپ و شی گرایی آشنا می شوید.