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

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