آیا براى برنامهنویس شدن باید ریاضیات بدانید؟

آیا دانستن ریاضیات براى برنامه نویسى لازم است؟ اگر ریاضیات ندانید آیا برنامهنویس بدى خواهید شد؟ ریاضیات از چه جهاتى مىتواند به شما کمک کند که یک برنامهنویس یا توسعهدهنده شوید؟ شما به عنوان یک برنامهنویس چقدر ریاضیات باید بدانید؟ براى کار بر روى چارچوبها در برنامهنویسى به طور کلى به ریاضیات احتیاج است؟ چقدر ریاضیات باید بدانید تا به مشکل برنخورید؟ این مقاله را بخوانید تا پاسخ خود را بیابید.
صادقانه باید بگویم ، مهم است که پیشزمینهاى در ریاضیات داشته باشید. مىبایست حداقل با جبر آشنا باشید زیرا بسیارى از متغیرها در برنامهنویسى از جهاتى شبیه جبر خواهند بود. اگر کمى حسابان بدانید قادر خواهید بود مسائل را به گونهاى حل کنید که به احتمال زیاد بسیار کارآمدتر نسبت به راههاى دیگر خواهد بود. زیرا مسئله این است که اگر شما حسابان ندانید قادر به شناسایى نوع مسائل و یا نوع الگوریتمهایى که وجود دارند نخواهید بود . در حالیکه اگر حسابان بدانید و خوب آن را فرا گرفته باشید ، متوجه مسئله خواهید شد و مثلا خواهید گفت اوه این یک مسئله مینى ماکسى است .آن را تشخیص خواهید داد و مطمئن هستید که فرمولى براى محاسبه آن وجود دارد . در حالیکه اگر حسابان ندانید حتى متوجه نخواهید شد که راه حلى براى محاسبه مسئله مورد نظر وجود دارد و تنها راه حلى ناشیانه ارائه خواهید داد.
بنابراین دانستن ریاضیات مانند آشنایى با الگوهاى طراحى مفید خواهد بود . الگوهاى طراحى در برنامهنویسى به شما کمک مىکند که شرایط را تشخیص دهید و دریابید که در مسئله مورد نظر باید مثلا از الگوى نظارهگر استفاده کنید و این کار شما را سادهتر مىکند و به عبارتى یک میانبر محسوب مىشود .
از این رو دانستن یا ندانستن ریاضیات به جایى که مشغول به کار هستید و یا کارى که انجام مىدهید بستگى دارد. اگر کارهاى مبتنى بر وب انجام مىدهید جایى که کارهاى frontend زیاد انجام مىشود ، احتمالا با چنین مسائلى زیاد برخورد نخواهید داشت ، اگرچه گاهى اوقات ممکن است پیش بیاید . اما اگر زیاد با واسط کاربر سر و کار دارید و یا طراحى و یا انتقال داده به پایگاه داده از طریق عملیات CRUD انجام مىدهید ، احتمالا ریاضیات چندان هم مهم نخواهد بود . اما تضمین مىکنم که اگر روى زمان واقعى سیستم عامل (RTOS) کار مىکنید و یا با پردازش تصویر یا از این قبیل مسائل سر و کار دارید احتیاج به محاسبات سنگین الگوریتمى پیدا خواهید کرد و ریاضیات نقش بسیار مهمى را ایفا خواهد کرد.
بنابراین این مسئله تنها به این بستگى دارد که به چه کارى مشغول هستید. البته داشتن معلومات بالا در ریاضیات ضررى هم نخواهد داشت . اگر مىبایست براى برنامهنویس شدن حتما ریاضیات مىدانستیم ، من حتى حاضر بودم با مطالعه شخصى این علم را فرا گیرم . قطعا مىخواستم که جبر بخوانم ، مىخواستم که حسابان بدانم و با ریاضیات گسسته آشنا شوم چون داشتن دیدى منطقى در این زمینه به شما کمک زیادى خواهد کرد زیرا بیشتر برنامهنویسى منطق و شرط است . یادگیرىاش الزامى نیست اما مفید خواهد بود .
به طور خلاصه باید گفت براى برنامهنویس شدن و یا یک توسعهدهنده نرمافزار ، واقعا احتیاجى به دانستن ریاضیات نیست . نرمافزارهاى زیادى وجود دارند که مىتوانید حتى با دانستن کمى ریاضیات ، توسعه دهید اما مطمئنا بیشتر دانستن آن ، کمکتان خواهد کرد . دانستن ریاضیات مانند ابزار دیگرى در جعبه ابزار شما مىماند . احتیاج مبرم نیست اما مطمئنا برنامههایى وجود خواهند داشت که چیزى حدود ٢٠ ساعت زمان بخواهند تا کدنویسى شوند اما چون حسابان مىدانید و مسئله را تشخیص مىدهید ، اینکه مثلا یک مسئله مینى ماکسى است یا هرچیز دیگرى یا اینکه مشکل را پیدا مىکنید ، سریع دست به کار مى شوید و در یک ساعت حلش مىکنید و به این شکل ١٩ ساعت در زمانتان صرفه جویى مىشود . کاملا به شما بستگى دارد که تا کجا بخواهید پیش بروید . اینکه به عنوان یک توسعه دهنده نرم افزار مى خواهید چه کار کنید ، چه تکنولوژى اى استفاده کنید ، و اینکه کجا مشغول به کار شوید این را مشخص خواهد کرد . حتى مىتوانید ریاضیات را خودتان به تنهایى فرا گیرید . امروزه منابع بسیار خوبى براى یادگیرى ریاضیات به ویژه ریاضیات پیشرفته موجود هست . بنابراین خودتان به تنهایى مىتوانید ریاضیات را فرا گیرید پس اگر به رفتن به دانشگاه و انجام کتاب تمرین ریاضیات علاقهاى ندارید ، مسئلهاى نیست .
چیزى که مطمئنا نمىخواهم از این مقاله برداشت کرده باشید این است که اگر در دانشگاه نتوانستید ریاضیات را فرا گیرید بنابراین نمىتوانید یک برنامه نویس باشید . اگر اینطور است مى خواهم این سوء برداشت را رفع کنم . اینطور نیست . اگر در دانشگاه ریاضیات را فرا نگرفتهاید مسئلهاى نیست . اگر همچنان مى خواهید یک برنامهنویس شوید مىتوانید . اما اگر ریاضیات مىدانید ، آن را نادیده نگیرید . حتى اگر کم ریاضیات مىدانید ، حتى اگر فقط به شناسایى مسئله علاقه دارید ، الگوریتمها را شناسایى خواهید کرد و حداقل متوجه مىشوید که این مسئله را قبلا کسى حل کرده است و راه حلى براى آن وجود دارد . بنابراین اگر راه حل را نمىدانید مىتوانید به راحتى در نت جستجو کنید و آن را بیابید . نیازى به حفظ کردن همه معادلات نیست.
زمانیکه من براى اولین بار در این حوزه شروع به فعالیت کردم ، کتاب بسیار قطورى داشتم . اسمش را به خاطر نمىآورم اما مانند دایرهالمعارف ریاضیات یا همچین چیزى بود که تمامى معادلات را شامل مىشد . من به پردازش تصویر با چاپگر و این قبیل چیزها مشغول بودم به همین خاطر مسائل همیشه وجود داشتند . من به مسائل واقف بودم چون اطلاعات کافى در ریاضیات داشتم ، بنابراین زمانیکه معادله را به خاطر نمىآوردم به راحتى آن را در کتابم مىیافتم و سپس مسئله را حل مىکردم . تازه این جریان براى زمانى است که امکان جستجو در اینترنت به راحتى امروزه وجود نداشت .
به هر حال امیدوارم این مطلب براى شما مفید بوده باشد.
منبع:
این هم یک منبع فارسی با کیفیت و ارزان ریاضی
http://faradars.org/topic/math-sciences/university-mathematics
آموزش های مفید زیادی داره به خصوص که آموزش مقدماتی Spring را هم هفته پیش منتشر کرد
سلام مطلب جالبی بود استفاده کردم
موفق باشید