۱۰ مبحث پایه ریاضی برای شروع برنامه نویسی که بهتره بلد باشیم!

دغدغه خیلی از دوستانی که میخوان تازه شروع به برنامه نویسی کنن وجود ریاضیات در برنامه نویسی هست، اما واقعا چقد ما به ریاضیات در برنامه نویسی وابسته‌ایم؟!اولین جوابی که خیلی از ماها موقع پرسیدن این سوال میشنویم اینه که شما نیازی به ریاضیات ندارین و واقعا هم ندارین اما واقعیت ماجرا اینه که بلد بودن مباحث پایه ریاضی میتونه سرعت پیشرفت شما در برنامه نویسی رو افزایش بده.حالا بریم و ۱۰ تا از مهم ترین مباحث پایه ریاضی رو ببینیم : ۱. منطق بولین (Boolean Algebra)در منطق بولین که ما خیلی توو برنامه نویسی بکارمون میاد بحث 0 و 1 بودن یک متغیر هست، برای مثال : شما پیتزا رو دوست دارین یا ندارین دو حالت بیشتر نداره :var doesHerLikePizza = true | falseممکنه بعضی وقتا شرایط فرق کنه و شما مثلا فقط پیتزا پپرونی رو دوست داشته باشین اونوقت ما به ذائقه شما احترام میذاریم و همچین کدی رو توو برناممون مینویسیم :doesHerLikePizza && isPizzaKindPepperoniشایدم ممکنه همه پیتزا هارو دوست داشته باشین و فقط از پپرونی بدتون بیاد :doesHerLikePizza && ! isPizzaKindPepperoniاز علامت ! برای برعکس کردن اون متغیر استفاده میکنیم اگر 1 یا true باشه شرایط مارو پاس نمیکنه و ما انتظار 0 یا false رو داریم.اطلاعات بیشتر توو ویکی پدیا هست.۲. سیستم اعداد (Numeral Systems)در برنامه نویسی و کامپیوتر ما عدد 45 نداریم بلکه عدد 101101 داریم، یعنی همه چی توو کامپیوتر و نرم افزار 0 و 1 هست که اصطلاحا به اونها میگیم اعداد باینری، اما اینطور نیست که شما نتونید اصلا اعداد decimal (همون اعدادی که معمولا خودمون استفاده میکنیم) رو بنویسین، همه چیزی که ما در هر زبان برنامه نویسی مینویسیم در نهایت تبدیل به اعداد صفر و یک (باینری) میشه و اگر میخواید بیشتر یاد بگیرین من این دوره رایگان فرادرس رو پیشنهاد میکنم.البته باید بدونید که ما اعداد hexadecimal هم داریم و یاد گرفتن همه اینا به ما کمک میکنه تا بتونیم برنامه و کد های بهتری بنویسیم.مثال ساده اش توو css هست برای اعداد hexadecimal ما اعداد 0 تا 9 و A تا F رو داریم، یعنی دیگه برای ۱۰ از ۱۰ استفاده نمیکنیم و بجاش A و ۱۱ و ۱۲ هم حروف خودشون رو دارن و این تا 15 که F هست ادامه پیدا میکنه و ما با این اعداد میتونیم برای css رنگ های مختلفی بسازیم :color: #F3EEEA۳. اعداد اعشاری (Floating Point Numbers)بعضی حالت های اضطراری وجود داره که دونستن اعداد اعشاری و چجوری کار کردن اونها بدردتون میخوره و خیلی جاها با مسلط بودن بهشون میتونین خیلی سریعتر کدتون رو دیباگ کنید.مثلا یک خط کدی که توو جاوا اسکریپت ران شده و ممکنه باعث سوپرایز بشه :14900*(10.8/100) = 1609.200000000003 (Javascript)البته اگه از من میشنوید و تازه دارین وارد حوزه برنامه نویسی میشن خیلی به ریاضیات جاوا اسکریپت اعتماد نکنید :))۴. لگاریتم ها (Logarithmic Functions)یادگیری لگاریتم ها زمانی به شما کمک میکنن که میخواین الگوریتم های پیچیده ای مثل باینری سرچ بنویسید.این مقاله نمیخوام وارد جزئیات بشم و صرفا میخوام معرفی کنم، اگه دوست دارین راجب لگاریتم بیشتر بدونین این آموزش ویدیویی بدردتون میخوره :https://www.aparat.com/v/JelKI۵. نظریه مجموعه ها (Set Theory)مهم ترین کاربرد مجموعه در دیتابیس ها هستند، جایی که ما کالکشنی از اطلاعات رو داریم و بحث منحصر بفرد و دسته بندی اونها نقش مهمی رو در ساختار بندی دیتابیس ایفا میکنه.عملیاتی مثل join, union, intersection در دیتابیس از دل مجموعه ها بیرون میاد.۶. ریاضی ترکیبی (Combinatorics)ترکیبیات یا ریاضی ترکیبی ساختار های متنوعی رو بررسی میکنه و برای شمارش ساختار های دارای حالت بکار میاد، در برنامه نویسی برای بهینه سازی ساختار های گراف،‌ الگوریتم های ساده و پیچیده بکار میره و یک تخصص خیلی با ارزش در برنامه نویسی به حساب میاد!۷. نظریه گراف (Graph Theory)همونطور که از اسمش پیداست یک شاخه ای از ریاضیه که در برنامه نویسی هم خیلی بکار میاد مثلا توو معماری نرم افزار و دیتابیس ها ما از نظریه گراف خیلی بهره میبریم، با ترکیب اینها یک نرم افزار استاندارد و اصولی رو طراحی میکنیم. پیشنهاد میکنم حتما این مقاله انگلیسی رو مطالعه کنید :https://betterprogramming.pub/a-short-practical-programmers-guide-to-graph-theory-bfc87bc52581۸. نظریه پیچیدگی محاسباتی (Complexity Theory (Big O Notation))این مبحث به ما برای بهبود و بنچمارک کردن الگوریتم های مختلف کمک میکنه، به ما اطلاعاتی از زمان و مقدار منابع مورد نیاز برای اجرای الگوریتم و بهینه سازی اون میده و بسیار در برنامه نویسی حرفه‌ای و علوم رایانه پر کاربرد هست.با داشتن تصویر از نمودار Big 0 Notation ما خیلی بهتر میتونیم برای انتخاب الگوریتم های مختلف بر اساس منابع تصمیم‌گیری کنیم.۹. آمار (Statistics)پرکاربرد ترین حوزه علوم رایانه که از آمار استفاده میکنه هوش مصنوعی هست، ما با ترکیب ابزار های مختلف و ورودی میلیونها و میلیارد ها اطلاعات مختلف و استفاده از مبحث آمار در ریاضیات میتونیم تحلیل ها و پیش‌بینی های کارآمد و نسبتا دقیقی انجام بدیم.آمار در ویکی‌پدیا۱۰. جبر خطی (Linear Algebra)تقریبا در همه حوزه های علوم رایانه شما میتونین رد پای جبر خطی رو حس کنین: گرافیک، شبکه های عصبی، کریپتوگرافی، یادگیری ماشین و ...در آخر...این ۱۰ مورد از پایه ترین مباحث ریاضی بود و نمیگیم باید ولی بهتره به عنوان یک برنامه نویس بلد باشید، البته اگر بخواین رو حوزه های مختلف علوم رایانه مثل هوش مصنوعی تمرکز کنید "بهتره" تبدیل به "باید" میشه و شما حتما باید نه تنها به این مباحث بلکه به خیلی از مباحث دیگه برای خبره شدن در اون حوزه مسلط باشید.موفق باشید.منبع : dev.to