برنامهنویسی شیءگرا (Object-Oriented Programming مخفف:OOP) یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شیء (علوم رایانه)ها میباشند. در واقع در این شیوه برنامه نویسی، برنامه به شیء گرایش پیدا میکند. به این معنا که دادهها و توابعی که قرار است بر روی این دادهها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمعبندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله میشوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در دادههای درون آن شی را ندارند. به طور مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را میدهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد. از دیگر ویژگیهای برنامه نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادایمهای برنامه نویسی است. پایتون (Python) یک زبان برنامهنویسی همه منظوره، سطح بالا، شیءگرا و مفسر است که توسط خودو فان روسوم (به هلندی: Guido van Rossum) در سال ۱۹۹۱ در کشور هلند طراحی شد. فلسفهٔ ایجاد آن تأکید بر دو هدف اصلی خوانایی بالای برنامههای نوشته شده و کوتاهی و بازدهی نسبی بالای آن است. کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شدهاند و در مقابل کتابخانههایی که در اختیار کاربر است بسیار وسیع هستند. در دوره آموزشی Udemy Java Object Oriented Programming Analysis Design OOPs & OOAD با آموزش برنامه نویسی شی گرا در جاوا اشنا خواهید شد.
گو (Go) یک زبان برنامهنویسی ترجمهشده و همروند است که در شرکت گوگل و توسط رابرت گریسمر، راب پایک و کن تامپسون توسعه داده میشود. این زبان در نوامبر ۲۰۰۹ معرفی شد و در حال حاضر در چند سامانهٔ اجرایی گوگل استفاده میشود. کامپایلر گو از لینوکس، مک او اس، ویندوز و انواع سیستمهای عامل بیاسدی مانند FreeBSD پشتیبانی میکند. از لحاظ معماری پردازنده نیز، معماری x86، معماری x64، معماری ARM و معماری POWER که مخصوص به شرکت آیبیام است، توسط کامپایلر گو پشتیبانی میشوند. اهداف ایجاد زبان گو کارایی زبانهای ترجمهشده دارای سامانه نوع ایستا،آسانی برنامه نویسی زبانهای پویا، امنیت نوعها و حافظه، پشتیبانی برای همروندی و ارتباط، و کامپایل سریع است. در زبان گو، ارثبری نوعها وجود ندارد. در این زبان، میتوان برای هر نوع دادهای، حتی برای نوعهای داخلی، مثل اعداد صحیح فاقد بستهبندی، تابع عضو تعریف کرد و این عمل محدود به ساختها نمیشود. در دوره آموزشی Udemy Golang - How to design and build REST microservices in Go با آموزش طراحی مایکروسرویس های رست با زبان گو اشنا خواهید شد.
طراحی گرافیک یا گرافیک دیزاین (Graphic Design) فرآیند ارتباطات بصری، و حل مسئله از طریق استفاده از تایپ، فضا، تصویر و رنگ است. رشته طراحی گرافیک زیرمجموعه ارتباطات بصری و طراحی ارتباطات در نظر گرفته شدهاست، اما گاهی اوقات اصطلاح "طراحی گرافیک" میتواند به خاطر اشتراکات فنی پیچیده، به جای طراحی ارتباطات و ارتباط بصری استفاده شود. طراحان گرافیک از روشهای مختلف در ایجاد و ترکیب کلمات، نمادها و تصاویر به منظور خلق یک نمایش تصویری از ایدهها و پیام استفاده میکنند. طراح گرافیک ممکن است ترکیبی از تایپوگرافی، هنرهای بصری و تکنیکهای صفحهآرایی را برای تولید یک نتیجه نهایی استفاده کند. طراحی گرافیک، اغلب به هر دو فرآیند (طراحی) که توسط آن ارتباط ایجاد شدهاست و محصولات (طرح) که تولید میشوند اشاره میکند. کاربردهای رایج طراحی گرافیک شامل هویت (لوگو و نام تجاری)، انتشارات (مجلات، روزنامهها و کتابها)، تبلیغات چاپ، پوسترها، بیلبوردها، گرافیک وبسایت و عناصر، علائم و بستهبندی محصولات است. در دوره آموزشی Udemy Digital Design Masterclass for Graphic Designers با آموزش تسلط بر طراحی های دیجیتال برای طراحان گرافیک اشنا خواهید شد.
به عنوان یک کاربر ما ترجیح می دهیم برنامه ای که با آن در حال کار هستیم، به سرعت به درخواست ها و تعاملات ما پاسخ بدهد و در زمان پردازش اطلاعات و یا بارگذاری آن ها، دچار freeze نشود (یا به اصطلاح، هنگ نکند.). در برنامه هایی که بر روی دسکتاپ اجرا می شوند، معمولا کاربران، شکیبایی بیشتری در صورت اجرا نشدن درست برنامه دارند ولی در مورد برنامه های موبایل اینطور نیست و کاربران انتظار پاسخ سریع و درست دستگاه را دارند. همچنین برای جلب رضایت کاربران در سیستم عامل های جدید، امکانی به کاربران داده شده است که می توانند برنامه هایی که راندمان دستگاه را پایین می آورند، به طور کلی از حالت اجرا خارج کنند. اگر شما یک برنامه نویس باشید، احتمالا با این مورد مواجه شده اید که ناگهان برنامه تان قادر به واکنش و انجام امور نباشد. یک مثال ساده می تواند زمانی باشد که درخواست های زیادی به سمت سرور فرستاده می شود و پاسخ آن ها بیشتر از حد معمول طول می کشد (که مثلا این مساله می تواند ناشی از مشکلاتی در سمت سرور باشد). اگر این درخواست ها به صورت همزمان فرستاده شده باشند، دستگاه تا زمانی که مشکل خود را برطرف نکند، نمی تواند به هیچ یک از درخواست ها پاسخ بدهد. در دوره آموزشی Udemy Asynchronous JavaScript Deep Dive با آموزش عمیق جاوا اسکریپت غیرهمزمان اشنا خواهید شد.
به عنوان یکی از شاخههای وسیع و پرکاربرد هوش مصنوعی، یادگیری ماشینی (Machine learning) به تنظیم و اکتشاف شیوهها و الگوریتمهایی میپردازد که بر اساس آنها رایانهها و سامانهها توانایی تعلٌم و یادگیری پیدا میکنند. هدف یادگیری ماشین این است که کامپیوتر (در کلیترین مفهوم آن) بتواند به تدریج و با افزایش دادهها کارایی بهتری در انجام وظیفهٔ مورد نظر پیدا کند. گسترهٔ این وظیفه میتواند از تشخیص خودکار چهره با دیدن چند نمونه از چهرهٔ مورد نظر تا فراگیری شیوهٔ گامبرداری روباتهای دوپا با دریافت سیگنال پاداش و تنبیه باشد. طیف پژوهشهایی که در یادگیری ماشینی میشود گستردهاست. در سوی نظری آن پژوهشگران بر آناند که روشهای یادگیری تازهای به وجود بیاورند و امکانپذیری و کیفیت یادگیری را برای روشهایشان مطالعه کنند و در سوی دیگر عدهای از پژوهشگران سعی میکنند روشهای یادگیری ماشینی را بر مسایل تازهای اعمال کنند. البته این طیف گسسته نیست و پژوهشهای انجامشده دارای مولفههایی از هر دو رویکرد هستند. در دوره آموزشی Udemy Clustering and Classification with Machine Learning in Python با آموزش طبقه بندی و خوشه بندی با یادگیری ماشین در پایتون اشنا خواهید شد.
نرم افزار بلندر (Blender) یکی از محبوبترین برنامه های کاربردی مدلسازی و ساخت انیمیشن به صورت سه بعدی است که با حفظ سادگی رابط کاربری و در عین حال ارائه ویژگی هایی نظیر مانند پنل قدرتمند و حرفه ای، کاربرد آسان برای افراد مبتدی و حرفه ای، امکان ویرایش ویدیو و ... امکان ساخت انیمیشن به صورت سه بعدی را فراهم می کند. Blender امکان ایجاد طیف گسترده ای از محتوای دو بعدی و سه بعدی در زمینه های گسترده ای از مدل سازی های مربوط به بافت متن، نور، انیمیشن، ویدیو و Post Production را به شما ارائه می دهد. Blender از طریق معماری باز امکان همکاری cross-Platform، قابلیت توسعه پذیری و ایجاد یک گردش کاری یکپارچه را برای بکارگیری در پروژه های فیلم، انیمیشن و بازی سازی به وجود می آورد. در دوره آموزشی Udemy 3D Modeling in Blender: Create 3D game assets with Blender با آموزش مدلسازی سه بعدی در بلندر اشنا خواهید شد.
جنگو (Django) یک چارچوب نرمافزاری تحت وب آزاد و متنباز است که به زبان پایتون نوشته شده است و از معماری مدل-نما-کنترلگر (Model-view-controller) پیروی میکند. جنگو اولین بار برای مدیریت صفحات خبری وبسایت شرکت Lawrence Journal-World توسعه داده شد و سپس در سال ۲۰۰۵ تحت اجازهنامه بیاسدی منتشر شد. نام جنگو از جنگو راینهارت، نوازندهٔ گیتار جاز گرفته شده است. هدف اصلی جنگو ساخت آسان سایتهای پیچیده و وابسته به دیتابیس است و بر پایهٔ قابلیت استفادهٔ مجدد و قابل اتصال بودن اجزای مختلف، توسعه ی سریع و اصل خودت را تکرار نکن (DRY) طراحی شده است. جنگو سراسر از پایتون استفاده میکند، حتی برای تنظیمات، فایلها و مدلهای اطلاعات. در دوره آموزشی Udemy The Ultimate Beginner's Guide to Django 1.11 با آموزش مقدماتی جنگو 1.11 اشنا خواهید شد.
JUnit در واقع یک فریم ورک اجرای unit test بر روی پروژه های جاوایی است که با استفاده از annotation ها، متدهایی که رفتارها و قابلیت های تست را به صورت جداگانه آزمایش می کنند با علائم یا دستورهای خاص نشانه گذاری و معرفی می نماید. JUnit test در حقیقت یک متد است که داخل کلاس تعریف شده و منحصرا برای منظور تست مورد استفاده قرار می گیرد. کلاسی که میزبان متد مذکور می باشد در اصطلاح test class نامیده می شود. به منظور نوشتن یک تست بر مبنای JUnit 4، متد مورد نظر را با دستور @org.junit.Test داخل کلاس میزبان نشانه گذاری (annotate) می کنید. این متد کد مورد آزمایش را اجرا می کند. می توانید از متد assert که خود JUnit ارائه می دهد استفاده نمایید و یا از متدی که فریم ورک assert دیگری فراهم می نماید، بهره بگیرید. متد assert در اصل برای بررسی نتیجه ی واقعی با نتایج مورد انتظار مورد استفاده قرار می گیرد. متدهایی که به این صورت استفاده می شوند در اصطلاح تست گیری، assert ها یا دستورات assert خوانده می شوند. لازم است در دستورات assert پیغام های معنی دار قرار دهید چرا که در صورت مواجه شدن با خطا کاربر سریع تر می تواند مشکل را شناسایی کرده و برطرف نماید. این ویژگی می تواند به ویژه برای فردی که کد را می خواند اما در نوشتن آن شرکت نداشته، مفید باشد. در دوره آموزشی Udemy JUnit 5 Java Unit Tests for Beginners با آموزش مقدماتی تست واحد جاوا با جی یونیت 5 اشنا خواهید شد.
Xamarin یک ابزار برای برنامه نویسی بر روی موبایل با استفاده از زبان #C می باشد. این ابزار در ماه مه سال ۲۰۱۱ توسط سازندگان پروژه متن باز Mono Android خلق شد. تاکنون حدود ۸۰۰ هزار توسعه دهنده در بیش از ۱۲۰ کشور جهان بروی این فریم ورک کار کردهاند. کتابخانه xamarin بیش از ۲۰۰۰۰ کامپوننت قابل استفاده دارد، کدهای برنامه قبل از کامپایل شدن در بستر فریم ورک دات نت اجرا میشوند و نهایتا به صورت کدهای بومی آی او اس و اندروید در خروجی پدید میآیند. توسعه دهندگانی که از این ابزار استفاده کنند میتوانند اپلیکیشنهای خود را بروی بیش از ۱۰۰۰ دستگاه مختلف که با تکنولوژی پردازش ابری (Cloud) بنا شده است تست کنند. در دوره آموزشی Udemy Xamarin iOS A Master Guide to App Development in C# با آموزش زامارین آی او اس - تسلط بر توسعه اپ در سی شارپ اشنا خواهید شد.
طراحی وب به مهارت ساخت و راهاندازی صفحات وب گفته میشود. تیم برنرز لی، مخترع وب، با برپایی یک سایت وب در اوت ۱۹۹۱، نام خود را به عنوان نخستین سازندهٔ وب در تاریخ نگاشت. او در نخستین وب سایتش، از اَبَرمتن و پیوندی برای ایمیل (پست الکترونیک) استفاده کرده بود. در آغاز، وب سایتها با کُدهای ساده HTML نوشته میشدند، گونهای از زبان نشانهگذاری که ساختار سادهای به وب گاهها میداد، شامل سرتیتر و پاراگراف، و توانایی پیوند دادن به آدرسهای دیگر از طریق ابرپیوند. در مقایسه با روشهای دیگر، این راه تازه و متفاوتی بود که کاربران به سادگی میتوانستند با یک مرورگر، صفحههای پیوند خورده را باز کنند. با پیشرفت وب و هنر طراحی آن، زبان کُد نویسی اش، اَبَرمتن یا اچ تی ام ال، پیچیدهتر و پرانعطاف تر شد. ابزاری مانند جدولها که بیشتر برای نمایش نمودارهای دادهای بودند، بزودی مورد استفاده نادرست، برای چیدمانهای پنهان در صفحههای وب قرار گرفتند. در دوره آموزشی Udemy Web Development HTML CSS & JS a 2020 Beginner to Advance با آموزش مقدماتی تا پیشرفته توسعه وب با اچ تی ام ال، سی اس اس و جاوا اسکریپت اشنا خواهید شد.